1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 wnwnwn 于 2013-1-3 13:07 编辑
大家好,本人是纯新手,用单片机实验板运行下面这段程序,数码管相邻位总是出现前一位的阴影。大家帮忙看下这段程序问题出在哪里,功能很简单独立按键控制三个功能加1(P^0)、减1(P1^1)、清0(P1^2)。P0口连接数码管,P2^7是段选,P2^6是位选。 #include #include typedef unsigned char uchar; typedef unsigned int uint; uchar code DSY_CODE[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xff}; uchar Num_Buffer[] = {0, 0, 0}; uchar Key_Code, Key_Counts = 0; ***it dula = P2^7; ***it wela = P2^6; void Show_Counts_ON_DSY(void); void DelayMS(uint x); void main(void) { uchar i; P0 = 0xff; P1 = 0xff; // P2 = 0x00; Key_Code = 0xff; while (1){ Show_Counts_ON_DSY(); P1 = 0xff; Key_Code = P1; if (Key_Code != 0xff){ // DelayMS(10); // 去抖动会产生数码管闪烁。 // if (Key_Code != 0xff){ while (P1 != 0xff) for (i = 0; i < 30; i++) Show_Counts_ON_DSY(); } switch (Key_Code){ case 0xfe: if (Key_Counts < 255) Key_Counts++; break; case 0xfd: if (Key_Counts > 0) Key_Counts--; break; case 0xfb: Key_Counts = 0; break; } Key_Code = 0xff; } } void Show_Counts_ON_DSY(void) { uchar i, j = 0xfe; Num_Buffer[2] = Key_Counts / 100; Num_Buffer[1] = Key_Counts / 10 % 10; Num_Buffer[0] = Key_Counts % 10; for (i = 0; i < 3; i++){ P0 = 0x00; //消隐 j = _cror_(j, 1); P0 = j; wela = 1; wela = 0; P0 = ~DSY_CODE[Num_Buffer]; dula = 1; dula = 0; DelayMS(8); //扫描间隙延迟,太长会造成闪烁,太短会造成重影。就是这个延迟设成1ms拖影很明显,设成 10ms就会出现数码管闪烁,取8ms拖影小但还是存在。 } } void DelayMS(uint x) { uchar i; while (x--) for (i = 0; i < 110; i++); } |
|
相关推荐
7个回答
|
|
|
|
对是用的573,我去试一下。 |
|
|
|
问题解决了,谢谢您啦! |
|
|
|
解决的非常好
|
|
|
|
哇噢~一不小心,曾经困扰过的问题被解决了,嘿嘿。另外,在这里建议楼主,利用定时器来控制数码管显示的刷新比较好哦。
|
|
|
|
好的,谢谢您的建议,我刚开始学单片机,以后会多练习定时器滴!! |
|
|
|
想再请教一下,按键去抖动的10ms产生的数码管闪烁问题怎么解决呢? |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12020 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 18:10 , Processed in 0.670703 second(s), Total 86, Slave 70 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号