看完这篇文章,PIC单片机就能入门了
void ConfigIntTimer1(unsigned char priority)
{
IFS0bits.T1IF = 0 //清除中断标志
IPC0bits.T1IP = priority; //设置中断优先级
IEC0bits.T1IE = 1; //使能中断
}
void OpenTimer1(unsigned int period)
{
TMR1 = 0; /* Reset Timer1 to 0x0000 */
PR1 = period; //中断周期
T1CONbits.TCS = 0; //选择时钟源
T1CONbits.TSYNC =1;
T1CONbits.TCKPS =3; //256分频
T1CONbits.TGATE =0;
T1CONbits.TSIDL =0;
T1CONbits.TON = 1; //启动定时器
}
选择系统时钟(20MIPS),并进行256分频,20M/256=78125,说明定时器计时到78125要用1秒钟,定时到500ms需要 39062个周期,因此需要设置计时周期为39062,而且由于定时器1为16位定时器,无法计时到一秒,如果需要计时1s可以使用32位定时器 timer23和timer45。
定时器1中断函数
void __attribute__((__interrupt__, no_auto_psv)) _T1Interrupt(void)
{
IFS0bits.T1IF = 0;//清零中断标志
LED = !LED;//对LED循环取反,进行亮灭控制
}
如此便可实现LED闪烁功能。
附上完整的工程源码,请下载查看:
http://forum.eepw.com.cn/thread/276018/1
在使用该款单片机的时候还需要注意几个问题:
1、 由于单片机的管脚有复用功能,在使用端口B的时候,如果想将端口B的第7位用作数字IO,需要这样来设置,(其它端口无需这样操作)
ADCON1bits.ADON = 0;//关闭AD转换器
ADPCFGbits.PCFG7 = 1;//该位必须置位,否则PORTB_7无法用作数字IO管脚
2、 在系统的安装目录下,自带了单片机各个资源的使用例程,使用者可以参考。我的目录是:C:\Program Files (x86)\Microchip\MPLAB C30\src\peripheral_30F_24H_33F\src\ pmc (供参考)
3、 在使用串口资源时,需要准确设定串口波特率,以设置UART1, 9600波特率为例,波特率计算方法为:20MIPS/((9600+1)*16)=130。将130赋给U1BRG寄存器即可。
4、 该单片机具有内部EEPROM,如果需要存储的数据量不大的话,一些需要掉电存储的参数可以存储在单片机内部,可简化外部电路设计。
有了以上的基础,相信学习这款单片机就轻松多了,可以使初学者少走弯路,集中精力解决实质性问题
dsPIC30F6014A MPLAB 单片机 相关文章:
- MPLAB? Harmony 2.0——适用于PIC32单片机的全功能固件开发框架(08-20)
- 单片机在电源设计中的应用(06-07)
- 基于单片机的锅炉液位控制装置设计(07-22)
- 基于SPWM的交流稳压电源设计方案(09-15)
- 基于单片机的电池保护电路系统设计(02-24)
- 晶闸管三相全控桥式整流电路的直流电源设计(02-08)