完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include unsigned char ledbuf[8]; code unsigned char ledmap[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; //8段显示 void delay(unsigned char cnt) { unsigned char i; while(cnt--!=0) for(i=100;i!=0;i--); } #define tick 7554 #define T100us (256-134) unsigned char hour,minute,second,ankey; unsigned int c100us; void sees() { ledbuf[0]=ledmap[hour/10]; ledbuf[1]=ledmap[hour%10]; ledbuf[2]=0xbf; ledbuf[3]=ledmap[minute/10]; ledbuf[4]=ledmap[minute%10]; ledbuf[5]=0xbf; ledbuf[6]=ledmap[second/10]; ledbuf[7]=ledmap[second%10]; } void displayled() { char i; unsigned char pos; pos=0x01; for(i=7;i>=0;i--) { P2=0x255; P0=ledbuf[i]; P2=~pos; delay(2); P2=0x255; pos<<=1; } } void key() { if(P32==0||P33==0||P35==0) delay(2); if(P32==0||P33==0||P35==0) { if(P32==0) { hour++; if(hour==24) hour=0; while(P32==0) { sees(); displayled(); } } if(P33==0) { minute++; if(minute==60) minute=0; while(P33==0) { sees(); displayled(); } } if(P35==0) { second++; if(second==60) second=0; while(P35==0) { sees(); displayled(); } } } } void t0int()interrupt 1 { c100us--; if(c100us==0) { c100us=tick; second++; if(second==60) { second=0; minute++; if(minute==60) { minute=0; hour++; if(hour==24)hour=0; } } } } void main() { TMOD=0x02; TH0=T100us; TL0=T100us; IE=0x82; hour=0; minute=0; second=0; c100us=tick; TR0=1; while(1) { sees(); displayled(); key(); } } 求解key函数和void t0int()interrupt 1之间的关系?key函数不是已经实现了按键调时吗?为什么还需要时钟中断服务程序?中断函数里面写的是干嘛的?如果把key里面的调时写到void t0int()interrupt 1可以吗?刚学中断,不太懂。 |
|
相关推荐
6个回答
|
|
定时器是用来定时时间的!
|
|
|
|
键扫可以写在中断里 而且效率更好
|
|
|
|
void key函数可以没有吗?如果没有键扫的key函数,那么主函数中 也就去掉了key函数,只剩下sees函数和displayed函数了,这样单片机也可以中断吗? |
|
|
|
边城雨 发表于 2015-5-20 17:08 我指的是按键扫描函数(就是判断哪个键按下)。这样要另写一个按键处理函数进行操作添加在main函数中就可以完成了 |
|
|
|
为什么按键处理不能写在中断里面?中断一般都能写些什么?求详解,刚学单片机,不太明白,谢谢。 |
|
|
|
看来楼主对中断的作用还是没有搞明白。中断程序里面只是简单的计数秒数,秒数到了向分进位,分到了,就向小时进位,仅此而已。key()函数是用来处理调节时钟的操作。增减时分秒的。怎么能放在中断?中断的处理占的时间越少越好啊。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
122 浏览 0 评论
565 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
772 浏览 0 评论
948 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
658 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12041 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 16:29 , Processed in 0.730996 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号