完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
unsigned char code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code table2[]={0x7f,0xbf}; unsigned char table3[2]; int count=0; unsigned char i=0; /********************Delay function************************/ void delay(unsigned int t) { unsigned char i=250; while(t--)while(i--); } /**********************Display function********************/ void smg( int count) //数码管显示2位数字 { table3[0]=count%10; table3[1]=count/10; P3= table2[i]; P0=table1[table3[i]]; //送出段选数据 delay(20); i++; //扫描指针加计数 if(i==2) i=0 ; } /**********************Main function*************************/ void main() { count=0; P0=0x00; while(1) { smg(count); count++; if(count==100) //循环计数 count=0; } } |
|
相关推荐
2个回答
|
|
void smg( int count) //数码管显示2位数字
{ table3[0]=count%10; table3[1]=count/10; P3= table2[i]; P0=table1[table3[i]]; //送出段选数据 delay(20); i++; P3= table2[i]; P0=table1[table3[i]]; //送出段选数据 delay(20); i=0 ; }这样改试试看 |
|
|
|
你的void smg( int count) 函数有问题
你的i变量肯定是为了让它扫描 但是扫描循环你没写 所以它变成了:第一次调用smg函数,i=0,P3=table2[0],P0=table1[0];i=1;回主函数count=1 第二次调用smg函数,i=1,P3=table2[1],P0=table1[0],i=0;回主函数count=2 第3次,i=0,P3=table3[0],P0=table1[2],i=1;回主函数count=3 第4次,i=1,P3=table3[0],P0=table1[0],i=0;回主函数count=4 所以出问题,该给显示加个循环扫描 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
386 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1670 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1123 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1005 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1229 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12017 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 09:30 , Processed in 0.852267 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号