这个定时器中断程序怎么编写?
这个定时器中断程序怎么编写?1.定时器0设定为定时器模式方式1,50ms溢出中断一次,20次秒(unsignedcharsec)加一,并显示在P0口(1对应的灯亮,0对应...
这个定时器中断程序怎么编写?1.定时器0设定为定时器模式方式1,50ms溢出中断一次,20次秒(unsigned char sec)加一,并显示在P0口(1对应的灯亮,0对应的灯灭)P0=~SEC
每10秒蜂鸣器叫一次,60秒清零秒计数。
2. 在上面程序中加入外部中断0,按下K1前记住P0口灯的亮灭状态,在中断程序中停止T0定时,让P0口灯全亮约1秒(用软件延时程序实现),在外中断函数最后再启动T0,观察外中断返回后,P0口是否继续正确进行秒计时。 展开
每10秒蜂鸣器叫一次,60秒清零秒计数。
2. 在上面程序中加入外部中断0,按下K1前记住P0口灯的亮灭状态,在中断程序中停止T0定时,让P0口灯全亮约1秒(用软件延时程序实现),在外中断函数最后再启动T0,观察外中断返回后,P0口是否继续正确进行秒计时。 展开
1个回答
展开全部
#include<reg51.h>
#define uchar unsigned char
uchar sec,cnt;
sbit fmq=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=20){cnt=0;sec++;P0=~sec;if(sec>=60)sec=0;}
if((sec%10)==0)fmq=0;
else fmq=1;
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询