完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位师傅前辈们,辛苦了!!快帮小弟看看单片机数码管如何消除无效的0!
比如一个1—99999的计数器要显示“152”,我只想让它显示“152”而不是“00152”应该如何实现? #include #define uint unsigned int #define ulint unsigned long int //宏定义unsigned long int型 #define uchar unsigned char void display(uchar wan,uchar qian, uchar bai,uchar shi,uchar ge); //声明显示子程序 void delay(uint x); void init(); ulint temp; //unsigned long int型数值范围0~4294967295 uchar wan,qian,bai,shi,ge; ***it dula=P3^7; //锁存器使能端 ***it key=P3^2; //加一按键,每按一次数码管加一; uchar code dutab[]={ //********* 0x3f,0x06,0x5b,0x4f, //********* 0x66,0x6d,0x7d,0x07, //段编码表 0x7f,0x6f,}; //********* void main() { init(); //调用初始化子程序; while(1) { if(key==0) { delay(5); if(key==0) //消抖 { temp++; } delay(2); while(!key) //松手检测 { if(temp==99999) temp=0; wan=temp/10000; qian=temp%10000/1000; bai=temp%10000%1000/100; shi=temp%10000%1000%100/10; ge=temp%10; display(wan,qian,bai,shi,ge); } } display(wan,qian,bai,shi,ge); } } void init() //初始化子程序 { temp=0; EA=1; EX1=1; IT1=1; dula=0; } void timer0() interrupt 2 //启用外部中断1,数码管清零 { temp=0; wan=0; qian=0; bai=0; shi=0; ge=0; } void display(uchar wan,uchar qian, // uchar bai,uchar shi,uchar ge) // 显示子程序 { dula=1; P0=dutab[wan]; dula=0; P2=0X03; delay(1); dula=1; P0=dutab[qian]; dula=0; P2=0X04; delay(1); dula=1; P0=dutab[bai]; dula=0; P2=0X05; delay(1); dula=1; P0=dutab[shi] ; dula=0; P2=0X06; delay(1); dula=1; P0=dutab[ge]; dula=0; P2=0X07; delay(1); } void delay(uint x) //延时子程序 { uint a,b; for(a=0;a } |
|
相关推荐
4个回答
|
|
显示加一个条件语句,如果最高位为0,则不送显,或加一判断,如<10只显示个位,
|
|
|
|
谢谢!根据你的指点我搞定了! void display(uchar wan,uchar qian, // uchar bai,uchar shi,uchar ge) // 显示子程序 { wan=temp/10000; qian=temp%10000/1000; bai=temp%10000%1000/100; shi=temp%10000%1000%100/10; ge=temp%10; if(temp>9999) { P0=dutab[wan]; P2=0X03; delay(1); } if(temp>999) { P0=dutab[qian]; P2=0X04; delay(1); } if(temp>99) { P0=dutab[bai]; P2=0X05; delay(1); } if(temp>9) { P0=dutab[shi] ; P2=0X06; delay(1); } if(temp>0) { P0=dutab[ge]; P2=0X07; delay(1); } P0=dutab[10]; //送了一个0x00,让它哈都不显示! } |
|
|
|
dddddddd
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
199 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
748 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1122 浏览 0 评论
874 浏览 0 评论
910 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11835 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-1 10:08 , Processed in 0.594494 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号