微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 如何实现定时器与中断来点亮二极管

如何实现定时器与中断来点亮二极管

时间:11-18 来源:互联网 点击:
什么是定时器,什么是中断,这些简单的概念,在此就不多说了,百度一下就有很多资料了。

下面是个人使用定时器与中断来实现 点亮二极管

#include

sbit LED=P2^0; //点亮一个二极管

unsigned char i=0;

void main()

{

TMOD=0x01; // TMOD寄存器高4位设置T1,低4位设置T0。设置T0定时器工作模式

EA=1; // 允许打开全局中断变量EA

ET0=1; //允许打开定时器T0中断

TR0=1; //设置TCON寄存器: 启动定时器T0

TH0=(65536-50000)/256; //50ms毫秒发生一次中断溢出,初始化TH0

TL0=(65536-50000)%256;

LED=0; //点亮二极管

while(1)

{

if(i==20) //20次50ms 等于1秒钟 即 1秒钟二极管就点亮或熄灭

{

LED=~LED; //二极管状态取反

i=0;

}

}

}

void TimerLED() interrupt 1 using 1 // 中断源T0定时器,使用第1组寄存器工作组存储中断程序

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

i=i+1;

}

只要了解原理,就非常简单了。 记住:学习单片机,就是为了以后学习ARM更容易,更快速的学习。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top