完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大体说一下思路,主函数在闪烁led灯(用到定时器0精确1秒闪一下),然后一个外部中断打断他,让数码管一次显示0123...7,也就是第一个显示0亮一秒,然后灭了,第二个显示1亮一秒,依次这样……这里怎么再加一个定时器1,让其精确为一秒。
中断没参透,所以求指导!!! #include #define uchar unsigned char #define uint unsigned int uchar smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //0.1.2.3.4.5.6.7.8.9.a.b.c.d.e// uchar we[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7}; uchar i,num; ***it D1=P2^0; void inte() { EX0=1; EA=1; IT0=1; } void time() { TMOD=0x01; TH0=(65536-5000)/256; TL0=(65536-5000)%256; EA=1; ET0=1; TR0=1; } void time1() { TMOD=0x01; TH1=(65536-5000)/256; TL1=(65536-5000)%256; EA=1; ET1=1; TR1=1; } void main() { init(); inte(); while(1) //主函数每隔一秒闪一下 { if(num==200) { D1=~D1; num=0; } } } void timer() interrupt 1 { TH0=(65536-5000)/256; TL0=(65536-5000)%256; num++; } void inter() interrupt 0 { for(i=0;i<8;i++) { P1=we; P0=smg_du; //这里怎么加上定时器1呢?也就是怎么进行嵌套呢?让数码管每隔一秒每一位上依次显示123...9 } } void timer1() interrupt 3 //这个定时器怎么用到上面的中断函数中???? { TH1=(65536-5000)/256; TL1=(65536-5000)%256; } |
|
相关推荐
2个回答
|
|
在外部中断里启动定时器1,也就是加你那个time1()函数到里面去,偶也只是个新手
|
|
|
|
需要用一个延时函数进行led灯的1秒闪烁控制
void delayms(uint xms) { uint x,y; for(x=xms;x>0;x--) for(y=110;y>0;y--); //这个是xms毫秒的延时函数,然后再主函数中调用进行led闪烁控制 } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
464 浏览 0 评论
643 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
942 浏览 0 评论
1028 浏览 2 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
724 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12043 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 07:31 , Processed in 4.458563 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号