完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我想写一个八位数码管每个数码管依次移动显示0,1,2,3,4,5,6,7(只每次显示一个),但是不懂什么原因,无法显示。。。。然后我做了一些尝试主程序中,如果while(1)替换delay(10),则第一个显示0,此时i替换成0,1,2,···是可以在对应位置显示数字的;如果while(1)不替换delay(10),数码管无显示。然后重点是怎么让八位数码管每个数码管依次移动显示0,1,2,3,4,5,6,7(只每次显示一个)?
程序如下 #include #include #define uchar unsigned char #define uint unsigned int #define smgen_set PORTB |= BIT (7) #define smgen_clr PORTB &=~BIT (7) #define rs_set PORTB |=BIT (6) #define rs_clr PORTB &=~BIT (6) unsigned char table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; unsigned char table2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delay(); void main() { uint i; DDRB = 0XFF; PORTB = 0X00; DDRC = 0XFF; PORTC = 0X00; while(1) { for(i = 0;i < 8;i++) { rs_set; PORTC = table2; rs_clr; smgen_set; PORTC = table1; smgen_clr; // while(1);//如果while(1)替换delay(10),则第一个显示0,此时i替换成0,1,2,···是可以在对应位置显示数字的。 delay(10);//如果while(1)不替换delay(10),数码管无显示。 } } } void delay(uint k) { uint x,j; for(x=0;x { for(j=0;j<570;j++); } } 仿真电路图:
|
|
相关推荐
2个回答
|
|
|
已解决,谢谢大家
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
506 浏览 0 评论
607 浏览 0 评论
837 浏览 0 评论
832 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
768 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
17058 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 07:19 , Processed in 1.300101 second(s), Total 88, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
3872