#define uchar unsigned char
uchar m=0,i=0
void main()
{
TMOD|=0x01 //定时器0工作方式为1
TH0=(65536-50000)/256 //装初值
TL0=(65536-50000)%256
EA=1 //开总中断山弯
ET0=1 //开定时器中断
TR0=1 //开启定时器
while(1) //等待中断
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256
TL0=(65536-50000)%256
m++
if(m==5) //12M晶振 定时5*50MS=250MS
{
m=0
P1=~(0X01<<i) //P1接8个LED
if(++i==8)
i=0
}
}
[补充]
延时函数是一种粗略计算延时时间的函数
是通过让单片机执行空指令,达到等待延时的目的。
经常被应用在对延时时间要姿颤求不太严格的场合。
而定时器中断,则是通过对晶振时钟进行计数
由于晶振的频率一般是很稳定的,所以晶振的脉冲频率基本稳定
从而通过对脉冲进行计数即可得到准确的延时目的。
中断延时函数和定时器中断延时没有明确的对应关系。
主要迹唯败是根据你的应用场合来确定使用哪种函数。
流水灯和扫描灯连在一起中断实现的方法如下:1、配置中断,根据使用的开发板或芯片的具体文档,配置中断,一般情况下,需要选择一个中断类型、一个中断优先级以及一个中断回调函数。
2、初始化流水灯和扫描灯,初始化GPIO口,设置流水灯的引脚和扫描灯的引脚以及流水灯的方向。
3、在中断回调函数中循环执行流水灯和扫描灯,当中断触发时,进入中断处理程序,回调函数中搭旅循环执行流水灯和扫描灯的 *** 作。
4、如核启知橡凳用中断,在主代码中启用中断,使之能够在特定条件下触发。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)