完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是一个从0到60的一个计秒器的程序。最后测试了,能够正常完成计秒功能。但是,唯一让我费解的是,无论十位还是个位,轮到显示1和4的时候显不出来,数码管直接黑掉,然后轮到下一个数字的时候就可以正常显示。#include
#define uint unsigned int ***it dula=P2^6; ***it wela=P2^7; void display(uchar,uchar); uchar num,num1,shi,ge; uchar code SZ[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(uint); void main() { TMOD=0x11; TH1=(65536-45872)/256; TL1=(65536-45872)%256; EA=1; ET1=1; TR1=1; while(1) { display(shi,ge); } } void delay(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display(uchar shi,uchar ge) { wela=1; P0=0xbf; wela=0; P0=0x00; dula=1; P0=SZ[shi]; dula=0; delay(5); wela=1; P0=0x7f; wela=0; P0=0x00; dula=1; P0=SZ[ge]; dula=0; delay(5); } void t1time()interrupt 3 { TH1=(65536-45872)/256; TL1=(65536-45872)%256; num++; if(num==20) {num=0; num1++; if(num1==60) num1=0; shi=num1/10; ge=num1%10; } } 在数字代码里面,0x06是数字1,0x66数字4,当我将其换成别的数字代码的时候,可以正常显示,比如我把0x06换成0x4F,则可以正常显示一个3.求大神解答一下。还有哦,能告诉我这这个代码中 delay(5); 是起到一个什么作用。 |
|
相关推荐
9个回答
|
|
我用你的程序显示很正常,因为不知道你的数码管是共阴极还是共阳极的,因为我的数码管是共阴极,所以那个消影的我改为P0=0xff;了。都可以显示啊
|
|
|
|
|
|
|
|
meng19901003 发表于 2013-8-17 17:41 事实上是可以可以代替display(uchar,uchar)的,还有“你的显示函数形参和全局变量一样的?”这个是什么意思?没看懂,麻烦你解释下。。。 |
|
|
|
额,我这个是共阴极的,而且,数码管要高电平才显示,消影的话,我这改成0x00才可以。。 |
|
|
|
你是说,你用我的程序显示是正常的是吧?那显示不出来是我这里的电子版的问题吗? |
|
|
|
我用的是郭天祥单片机开发板,反正显示没有问题
|
|
|
|
楼主程序没有问题
|
|
|
|
全局变量命名和局部变量一样,当你改变局部变量的时候,全局变量不就改变了。 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
1226 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
1453 浏览 1 评论
1457 浏览 0 评论
615 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1283 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11602 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-4 12:20 , Processed in 0.689092 second(s), Total 87, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号