完善资料让更多小伙伴认识你,还能领取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 所以出问题,该给显示加个循环扫描 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
341 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
405 浏览 0 评论
506 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
857 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
726 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10489 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-4 02:14 , Processed in 0.725084 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号