7695|16

31

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

PIC32M自学进程,喜欢的一起来。 [复制链接]

正在学PIC32MZ,自己做了个开发板,可以查看https://bbs.eeworld.com.cn/thread-450429-1-1.html相关内容。我每天晚上都会抽时间学PIC32相关内容,尽量在写清楚贴在这里供大家一起学习。
20141105写的第一章:
**************************************************************************************
一, PICM32ZI/O配置与使用
1,所有IO上电默认为输入模式。如果是ADC口,则默认ADC输入口;
   目的:安全性,不用的I/O口,实际应用时要10K下拉电阻接地为佳。
2,所有IO基本上由8个寄存器控制
  2.1  TRISX--------方向寄存器     例:TRISA=0X000F;   
       目的:设置IO的方向,是输入还是输出?      
  2.2  PORTX------端口寄存器     例:PORTB=0XFF0F;     
       目的:控制硬件的实际PIN脚位,输入数据用   
  2.3  LATX---------锁存器   例:LATD=0XF000;   
        目的:锁存数据,刷新PORTX  输出数据用
  2.4  AD1PCFG------ADC或数字IO选择    //例:AD1PCFG=0xFFFF;   //0ADC,1为数字I/O
  2.5  CLR------0寄存器           //位操作             例:TRISBCLR|= (1<< 7);
  2.6  SET------1寄存器          //位操作              例:PORTBSET|= (1<< 0)
  2.7  INV------翻转寄存器(位取反) //位操作     例:LATAINV|=(1<<2);
       目的:高速的位控制指令,相当8位机的RC0=1,RD1=~RD1;
       TRISXPORTXLATXAD1PCFG相结合,进行各种位控制。
  2.8  ODCXX-------漏极开路或数字OI输出。  例:ODCC0=1;  //RC0输出漏极开路
       目的:置1漏极开路,为适应外部5V供电的信号,要外接上拉电阻
***************************************************************************************************
//下面软件环境使用HT-PICC32IDE8.8编写测试通过。
#include
void main()
{
         DDPCONbits.JTAGEN = 0; //如果用ICSP串口(ICD2,KIT2),要关闭JTAGEN功能,肆放RA部分端口      


        AD1PCFG=0xFFFF;    //将RB口全设为数字IO口,手册有AD1PCFG的PCFG3位,位是不能PCFG3=1或PCFG3=0;这样操作。
        AD1PCFGCLR|=(1 << 3);//将RB3设为ADC模拟输入

        PORTB=0XFF0F;      //PORTB端口输出0XFF0F电平
        PORTBSET|=(1 << 7);//RB7位置1

        PORTB=0XFF0F;//PORTB端口输出0XFF0F电平
        ODCASET|=(1<<0);//RB7位置1

        LATB=0X0000;//对B口锁存器写入数据
        LATBCLR|=(1 << 0)|(1 << 1)|(1 << 2);//位置1 (1<<0)//对B口锁存器的指定位进行清0

        ODCB=0X0000;//RB口全部为数字I/O口;手册有ODCB的ODCB0位,位是不能ODCB0=1或ODCB0=0;这样操作。
        ODCBSET|=(1<<0);//RB0口为漏极开路输出

        TRISB=0X0000;     //RB口全为输出
        TRISBSET|=(1 << 2);//RB2为输入
    while(1)
    {
        LATBINV|=(1<<0);//对RB0进行翻转        
    }
}
*******************************************************************************************
进行软件单步仿真时,RB0是在不断的进行翻转0-1-0-1-0-1-0-1-0.。。。。。。。。。。
一章总结:

1 查阅PIC32的数据手册    2. 网上前辈例题结合手册分析,   3。加上IDE的编译编程运行和仿真,4 开发板实际运行脱机运行。

最新回复

楼主加油!我是来跟你一起学习MZ的继续更新  详情 回复 发表于 2016-6-14 08:27
点赞 关注
 

回复
举报

6040

帖子

196

TA的资源

版主

沙发
 
楼主加油。我现在没有得心应手的开发工具,要不也陪楼主一起学习。

点评

一起学习,请多多指教,呵呵!  详情 回复 发表于 2014-11-6 17:25
 
 
 

回复

135

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
赞一个
 
 
 

回复

3028

帖子

0

TA的资源

五彩晶圆(初级)

4
 
1。 查阅PIC32的数据手册    2. 网上前辈例题结合手册分析,   3。加上IDE的编译编程运行和仿真,4 开发板实际运行脱机运行。
总结有意思

点评

总结哪里有意思?想到什么就写什么,不入法眼!  详情 回复 发表于 2014-11-6 17:27
 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

5
 
lcofjp 发表于 2014-11-6 07:46
楼主加油。我现在没有得心应手的开发工具,要不也陪楼主一起学习。

一起学习,请多多指教,呵呵!
 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

6
 
凤凰息梧桐 发表于 2014-11-6 10:13
1。 查阅PIC32的数据手册    2. 网上前辈例题结合手册分析,   3。加上IDE的编译编程运行和仿真,4 开发板 ...

总结哪里有意思?想到什么就写什么,不入法眼!
 
 
 

回复

721

帖子

1

TA的资源

一粒金砂(高级)

7
 
赞一下,支持!
 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

8
 
在网上找到PIC32MZ的官方手册,附件出自http://www.amobbs.com/forum.php?mod=viewthread&tid=5010750,资料专业性很强,在此感谢这位网友的整理!辛苦了。
正在学习定时器1的配置和使用,正在研制中。。对于我这样的新手,压力呀!!

官方PIC32MZ中文资料.rar

12.44 MB, 下载次数: 431

 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

9
 
回复需要审核,请等待通过
 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

10
 
这网站我不上了,什么JB管理员  我去!
 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

11
 
第二章  定时器1的配置和使用
定时器13个寄存器进行控制:
1 TMR1  寄存器      目的:用来装载16位计数值的,也就是计时或计数时,数值会进行递加0+1   1+1  2+1 3+3.。。。。。。。。
2. T1CON  控制寄存器   目的:开启定时器 设置工作模试  分频比等等,
3.  PR1    周期寄存器   目的:PR1内设定一个数值,当TMR1递加到与PR1相配时,产生中断。值得注意的是,在8位机中,定时器是数值记满溢出产生中断。
知道这个三个寄存器作用,查看芯片手册,明白每一个BIT位的相关内容后,我们就可以写个简单的廷时测试程序了:
下面软件环境使用HT-PICC32IDE8.8编写测试通过。
********************************************************************************************8
#include
#define FALS 0                   //是0为假
#define TRUE !FALS              //非0为真
#define   NOP()  asm("nop")    //为了使用汇编nop()指令
#define over 20      //测试TMR1
void main(void)
{
//        DDPCONbits.JTAGEN = 0;
        AD1PCFG=0xFFFF;    //设RB口为数字IO口
        TRISB = 0X00;      //全B口为输出模试
        LATB = 0;         //RB口端口清0
    T1CONCLR|=(1<<4)|(1<<5)|(1<<15);  //也可写成T1CON=0;
    PR1 = 0XFFFF;    //周期设为最大值
    T1CONSET |= (1<<15);//开启定时器1
    NOP();
    while(TRUE)
    {

            LATBINV |= (1<<0);   //对RB0进行取反
            while(TMR1 > over)   //用OVER测试TMR1的数值
            {
                    TMR1=0;         //如果大于OVER清0
                    NOP();
            }
    }//while(TRUE)

}//main
***********************************************************************************
在进行软件仿真时,可以在Watch变量窗口中,看到TRM1在递加0+1  1+1  2+1  3+3.。。。。。当递加到20时,就会取反一次RB0;

二章总结:
1.  看懂数据手册。并且怎么应用和产生的后果
2.  2天要复习进行加强巩固!人的记忆退化很快的

3.  为什么T1CONCLR|=(1<<4)|(1<<5)|(1<<15)改为T1CONSET|=(1<<4)|(1<<5)|(1<<15);只是设了分频比,TMR1就不记数了,大家解译一下!谢谢

 
 
 

回复

31

帖子

1

TA的资源

一粒金砂(中级)

12
 
第三章  系统时钟
本来想直接跳过这个内容的,后来想想这部份也非常重要。
还是硬着头皮学习了一下:

PIC32MZ有三种时钟:
1. SYSCLK-----系统时钟        目的:供CPU和一些外设模块使用
2. PBCLK------外设总线时钟  目的:供大部分外设模块使用
3。USBCLK------USB时钟      目的:USB模块专用


三种时钟由下列时钟源产生:
1,  OSC1和OSC2的主振荡器产生(POSC)
2.   内部快速RC振荡器产生(FRC)
3.   内部低功耗RC振荡器产生(LPRC)


另外时钟配置输入分频  倍频器  输出分频选项,可以通过软件进行改变,比如CPU平时以4M晶振频率在运行(低功耗),突然有大容量的视频和音频数据,这时我们通过软件设置成80M主频来处理这些数据,完了以后又进入4M晶振运行,或SLEEP模试。这是多么高兴的事情呀!当然其他还有很多很多时钟的内容,软件上的  时钟解锁和加锁,时钟中断产生,双启模式,USB时钟配置等等,大家可以多看看手册。最后引个例子(官方):
*************************************************************************
假设使用内部为8MHZ,现在想把时钟提高到80MHZ,
1 设置输入分频比为2
2 设置倍频比为20
3 设置输出分频比为1

时钟=8MHZ/2*20/1
       =4*20*1(MHZ)
       =80MHZ
********************************************************************************
值得高兴的是,我们可以直接在IDE的配置位进行选择,至于在运行时彻换时钟和时钟产生的中断,等用到时再去学习。

第三章部总结
1.   这部分对新手来说不重要!
2.   这部分对真正做产品非常重要!



321321.jpg (66.34 KB, 下载次数: 0)

321321.jpg
 
 
 

回复

21

帖子

0

TA的资源

一粒金砂(中级)

13
 
很想学习PIC32,但这个又不能进行PROTEUS软件仿真,又没有学习板,不知道如何下手!

点评

一方面,可以在EEWORLD 淘E淘版块,从其他坛友那里看看能不能收购一个闲置 另一方面,也可以关注EEWORLD论坛活动,也许有相关的活动。  详情 回复 发表于 2016-2-22 11:05
 
 
 

回复

2万

帖子

71

TA的资源

管理员

14
 
chengfgc 发表于 2016-2-21 11:17
很想学习PIC32,但这个又不能进行PROTEUS软件仿真,又没有学习板,不知道如何下手!

一方面,可以在EEWORLD 淘E淘版块,从其他坛友那里看看能不能收购一个闲置

另一方面,也可以关注EEWORLD论坛活动,也许有相关的活动。
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

284

帖子

2

TA的资源

纯净的硅(高级)

15
 
chengfgc 发表于 2016-2-21 11:17
很想学习PIC32,但这个又不能进行PROTEUS软件仿真,又没有学习板,不知道如何下手!

亲,我自己画了一块板子,但是烧录程序烧不进去。并且找不到这方面的资料。头疼啊
 
 
 

回复

187

帖子

3

TA的资源

一粒金砂(高级)

16
 
怎么不见楼主更新了!!!
 
 
 

回复

180

帖子

0

TA的资源

一粒金砂(中级)

17
 
楼主加油!我是来跟你一起学习MZ的继续更新
 
个人签名是金子总会发光1
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表