您的位置 首页 设计

PIC 定时器0中止

include调用头文件,可以去PICC18软件下去查找PIC18FXX2H__CONFIG(1,XT);晶振为外部4M__CONFIG(2,WDTDIS);

#include //调用头文件,能够去PICC18软件下去查找PIC18FXX2.H

__CONFIG(1,XT) ; //晶振为外部4M
__CONFIG(2,WDTDIS) ; //看门狗封闭
__CONFIG(4,LVPDIS) ; //制止低电压编程
#define uint unsigned int
#define uchar unsigned char
uint count=0;
void timer0init(void)
{
T0CS=0; //TMR0作业于守时器方法
PSA=1; //TMR0不分频
TMR0IF=0; //TMR0IF是中止标志,守时一段时刻就会输出1
TMR0IE=1; //答应TMR0中止
T0CON=0x88; //16bit守时方法
TMR0=0xff13;//晶振4M,守时250us(便是先在TMR0L和TMR0H中存入必定的数,使
计时时刻为计数器中剩下的空间次数*履行每次的时刻)
GIE=1; //
}
void interrupt ISR(void)
{
if(TMR0IF==1) //达到了250us
{
TMR0=0xff13; //从头装入初值
TMR0IF=0; //中止标志位清零,便利下一次中止发生时
判别
count++;
if(count==4000)
{
count=0;
}
}
}
void delayms(uint x)
{
uint i,j;
for(i=0;i<=110;i++)
for(j=0;j<=x;j++);
}
void main(void)
{
ADCON1=0X06; //一切IO均为数字口,模拟量输入制止
TRISD=0B11111110;
timer0init();
while(1)
{
if(count==0)
{
RD0=1;
delayms(400);
}
else RD0=0;
}
}
这个作用比较单一,只能显现一闪一闪;但守时器中止却能够用在数码管动态扫描中,假如不必守时器中止,只用delayms()延时函数来让数码管闪是不可能完成的。必须用守时器中止。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/263087.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部