完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
抢答时利用外部中断响应
void main() { uchar ret; Waittime=EEPROM_Read(0x2000); if((WaitTime==0)||(WaitTime>99)) { WaitTime=30; } AnswerTime=EEPROM_Read(0x2001); if((AnswerTime==0)||(AnswerTime>99)) { AnswerTime=15; } TimerInit(); Buff[0]=Array[0]; //数码管刷新 Buff[1]=Array[0]; Buff[2]=Array[0]; Buff[3]=Array[0]; while(1) // 设置时间 { SetTime(); ret=KeyScanf(); if(ret!=0) { Buff[0]=Array[ret]; Buff[1]=Array[16]; Buff[2]=Array[12]; Buff[3]=Array[12]; bp=0; while(1); } Init_INT0(); if(kStart==0) { break; } } DelayMs(10); while(!kStart); DelayMs(10); Buff[0]=Array[17]; Buff[1]=Array[17]; Buff[2]=Array[WaitTime/10]; Buff[3]=Array[WaitTime%10]; TR1 = 1; while(1) { if(Count>=20) { WaitTime--; Buff[2]=Array[WaitTime/10]; Buff[3]=Array[WaitTime%10]; Count=0; if(WaitTime<6) { bp=0; DelayMs(100); bp=1; } } if(WaitTime==0) { TR1=0; bp=0; Buff[0]=Array[16]; Buff[1]=Array[16]; Buff[2]=Array[16]; Buff[3]=Array[16]; while(1); } ret=KeyScanf(); if(ret!=0) { break; } } Buff[0]=Array[ret]; Buff[1]=Array[16]; Buff[2]=Array[AnswerTime/10]; Buff[3]=Array[AnswerTime%10]; Count=0; while(1) { if(Count>=20) { AnswerTime--; Buff[2]=Array[AnswerTime/10]; Buff[3]=Array[AnswerTime%10]; Count=0; if(AnswerTime<6) { bp=0; DelayMs(100); bp=1; } } if(AnswerTime==0) { TR1=0; bp=0; Buff[0]=Array[16]; Buff[1]=Array[16]; Buff[2]=Array[16]; Buff[3]=Array[16]; while(1); } } } void Timer0(void) interrupt 1 { TH0 = 248; TL0 = 48; P0=0x00; w1=1; w2=1; w3=1; w4=1; if(ShowID==1) { w1=0; P0=Buff[0]; } if(ShowID==2) { w2=0; P0=Buff[1]; } if(ShowID==3) { w3=0; P0=Buff[2]; } if(ShowID==4) { w4=0; P0=Buff[3]; } ShowID++; if(ShowID==5) ShowID=1; } void Timer1(void) interrupt 3 { TH1 = 60; TL1 = 176; Count++; } void INT0_ISR(void) interrupt 0 { } |
|
相关推荐
1个回答
|
|
很久没玩过51了,51的外部中断源有两个:INT0、INT1。如果是需要4个中断源的话,只能另寻它法。如果就加入外部中断到这段代码来说,可以使用51支持的两级中断服务嵌套形式加入中断。或者用软件的方法交替开关中断都可以。
另外你的定时器0的if扫描语句可以使用switch,这样执行效率会高一点。就这些吧,希望能对你有所帮助。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
304 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
842 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1131 浏览 0 评论
876 浏览 0 评论
914 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11837 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 17:33 , Processed in 0.493190 second(s), Total 71, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号