完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
做了一个用数码管显示数字,并且让数字每隔一段时间加1的程序,但里面的一个变量count出问题了,百思不得其解:我用count这个变量放在主循环里面每循环一次加1,到1000的时候就归零重新计数,同时显示数字num+1,达到延迟一定时间显示加1的效果,但是调试的时候发现count最大只能到255,然后就归零重计了,数据类型是unsigned int应该没错啊,请大神指教
程序如下: void main() { unsigned int count=0; long num=3420; while(1) { a[5]=num/100000%10; a[4]=num/10000%10; a[3]=num/1000%10; a[2]=num/100%10; a[1]=num/10%10; a[0]=num%10; disp(); count++; if(count==1000) { num++; count=0; } } } void disp() { unsigned char i; for(i=0;i<6;i++) { WE=1; P0=wei[i]; WE=0; DU=1; P0=numbercode[a[i]]; DU=0; delay1ms(); } } |
|
相关推荐
6个回答
|
|
好像还真没看出啥问题来,把整个程序贴上来看看吧
|
|
|
|
前面没什么,就头文件和引脚定义#include #include unsigned char numbercode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char wei[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; unsigned char a[5]=0; ***it DU=P2^6; ***it WE=P2^7; void delay1ms(void) //误差 -1.074652777778us { unsigned char a,b; for(b=2;b>0;b--) for(a=215;a>0;a--); } void disp(); 这是前面的部分 |
|
|
|
|
|
|
|
|
|
|
|
估计是你调试器的问题而已
|
|
|
|
亲,我知道你这个问题在哪里,
void disp() { unsigned char i;//吧这里修改成unsigned int i试一试 for(i=0;i<6;i++) { WE=1; P0=wei[i]; WE=0; DU=1; P0=numbercode[a[i]]; DU=0; delay1ms(); } } |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
219 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
574 浏览 0 评论
684 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1074 浏览 0 评论
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12048 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 19:48 , Processed in 0.596327 second(s), Total 84, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号