完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
写了个数码管读秒的程序,想法是只显示有效数字部分,一秒一秒的往上加,有效数字前的0全部隐去,可是烧完程序后数码管虽然只显示出了有效数字,但同时该有效数字还向前移了一位隐隐约约的也显示出来了,本人初学者,实在是分析不出原因,请各位大侠指点一下吧,谢谢了
#include #define uint8 unsigned char #define uint16 unsigned int #define uint32 unsigned long ***it ADDR0 = P1^0; ***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; code uint8 num[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; uint8 a[6]; uint16 sec; void refresh() { static uint8 i = 0; switch(i) { case 0: ADDR2 = 0; ADDR1 = 0; ADDR0 = 0; if(sec>=1) P0 = num[a[i]]; else P0 = 0xFF; i++; break; case 1: ADDR2 = 0; ADDR1 = 0; ADDR0 = 1; if(sec/10>=1) P0 = num[a[i]]; else P0 = 0xFF; i++; break; case 2: ADDR2 = 0; ADDR1 = 1; ADDR0 = 0; if(sec/100>=1) P0 = num[a[i]]; else P0 = 0xFF; i++; break; case 3: ADDR2 = 0; ADDR1 = 1; ADDR0 = 1; if(sec/1000>=1) P0 = num[a[i]]; else P0 = 0xFF; i++; break; case 4: ADDR2 = 1; ADDR1 = 0; ADDR0 = 0; if(sec/10000>=1) P0 = num[a[i]]; else P0 = 0xFF; i++; break; case 5: ADDR2 = 1; ADDR1 = 0; ADDR0 = 1; if(sec/100000>=1) P0 = num[a[i]]; else P0 = 0xFF; i = 0; break; default: break; } } void timer0_init(void) { TMOD = 0x01; TH0 = 0xFC; TL0 = 0x67; TR0 = 1; } void main() { uint16 counter; ENLED = 0; ADDR3 = 1; timer0_init(); while(1) { if(TF0 == 1) { TF0 = 0; TH0 = 0xFC; TL0 = 0x67; counter++; refresh(); } if(counter == 1000) { counter = 0; sec++; a[0] = sec%10; a[1] = sec/10%10; a[2] = sec/100%10; a[3] = sec/1000%10; a[4] = sec/10000%10; a[5] = sec/100000%10; } } }
|
|
相关推荐
2个回答
|
|
用过锁存器吗
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNK210使用指南 -CanMV版 V1.0》第八章 CanMV IDE初体验
458 浏览 0 评论
过采样提高12位ADC精度在STM32主控上的实现(附电路及代码)
570 浏览 0 评论
飞凌嵌入式-ELFBOARD 解决PCB布线时无法捕捉到焊盘中心的问题
878 浏览 0 评论
Openharmony软件评估指南-米尔瑞芯微RK3568开发板
1322 浏览 0 评论
STM32CUBEMX(7)--移植雅特力AT32F403AVGT(兼容STM32F103VGT6),DAC输出电压
1226 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11108 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-16 11:56 , Processed in 0.397460 second(s), Total 43, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号