看完这篇文章,PIC单片机就能入门了(续)

来源:本站
导读:目前正在解读《看完这篇文章,PIC单片机就能入门了(续)》的相关信息,《看完这篇文章,PIC单片机就能入门了(续)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《看完这篇文章,PIC单片机就能入门了(续)》的详细说明。
简介:本文对LED闪灯的源码逐语句进行了讲解,希望对你学习PIC单片机有所帮助。。

#include "p30f6014A.h" //包含头文件

_FOSC(CSW_FSCM_OFF & XT_PLL16); //配置时钟

_FWDT(WDT_OFF); //关闭看门狗

假设使用的外部晶振为5Mhz,系统指令周期的计算方法为:

5M*16/4=20MIPS

16为16倍频,每执行一条指令要4个时钟周期,因此要除四,就得到了实际的系统时钟。

IO端口的配置

IO端口使用很简单,和51相比只是多了一个方向控制,在使用端口之前 ,先设置好方向。假设我们使用的端口A的第十位作为LED的控制位,首先设置该管脚的方向,

TRISAbits.TRISA10 = 0;//该位置零为输出,置1位输入

控制端口实际输出高低电平的寄存器位LATAbits,将该寄存器的LATA10位进行置1置0操作,即可输出高、低电平。

#define LED LATAbits.LATA10

值得注意的是,当进行读引脚操作时,要读PORTAbits寄存器,而不是LATAbits寄存器。

我们是采用定时500ms中断的方式来进行LED的亮灭控制,因此需要进行定时器的配置,这里使用的是16位定时器timer1。涉及到两个函数。

ConfigIntTimer1(5);//初始化定时器1,中断优先级为5

OpenTimer1(39062);//进行相关配置并打开定时器1

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)MicrochipMPLAB C30srcperipheral_30F_24H_33Fsrc pmc (供参考)

3、 在使用串口资源时,需要准确设定串口波特率,以设置UART1, 9600波特率为例,波特率计算方法为:20MIPS/((9600+1)*16)=130。将130赋给U1BRG寄存器即可。

4、 该单片机具有内部EEPROM,如果需要存储的数据量不大的话,一些需要掉电存储的参数可以存储在单片机内部,可简化外部电路设计。

有了以上的基础,相信学习这款单片机就轻松多了,可以使初学者少走弯路,集中精力解决实质性问题,以上是本人个人的一点经验,如有疏漏之处,欢迎指正。

提醒:《看完这篇文章,PIC单片机就能入门了(续)》最后刷新时间 2024-03-14 00:55:16,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《看完这篇文章,PIC单片机就能入门了(续)》该内容的真实性请自行鉴别。