2657|3

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

4位数码管显示遇到些问题,菜鸟求大神帮忙! [复制链接]

#include
#define uchar unsigned char
#define uint unsigned int
uchar code SMG[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};/*要显示的0~9数字*/
uchar code CTR[]={0xF8,0xF9,0xFA,0xFB};/*控制显示哪位数码管*/
uchar Data1[4]={0x00,0x00,0x00,0x00};/*定义一个四位的数组,初始为0*/
uint i;
void delay(uint t)
{
uint k;
for(k=0;k<=t;k++);
}
void Change(uint i)
{
Data1[3]=i/1000;
Data1[2]=i%1000/100;
Data1[1]=i%1000%100/10;
Data1[0]=i%1000%100%10;
}
void Display(void)
{
uchar k;
for(k=0;k<=3;k++)
{
  P2=0;
  P0=Data1[k];
  P2=CTR[k];
  delay(50);
}
}
void main()
{
i=6329;
Change(i);
while(1)
{
  Display();
}
}
为什么变量跟踪要显示的数组Data1的值没问题,但实际数码管显示的却是乱码??
求指教!
此帖出自51单片机论坛

最新回复

问题出在 P0=Data1[k]; 你要传给IO口的是字库,而不是计算出来各个位的数值  详情 回复 发表于 2014-9-26 08:43
点赞 关注
 

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

四位数码管显示问题

#include
unsigned char code LED[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//实现四位静态数码管显示1970;
unsigned char code TAB[]={0xF8,0xF9,0xFA,0xFB};
void main()
{  
   while(1)
          {
                P0=0;
                   P1=TAB[0];   
                P0=LED[0];
                P0=0;
                P1=TAB[1];
                P0=LED[7];
                P0=0;
                P1=TAB[2];
                P0=LED[9];
                P0=0;
                P1=TAB[3];
                P0=LED[1];
        }
}


第二种方式
/*unsigned char code Display[]={0x3F,0x07,0x6F,0x06};
void main()
{
        unsigned char i,k=4,*p;
        p=Display;
        P1=0;
        while(1)
        {
           if(k>3) k=0;
      P0=*(p+k);
                P1=TAB[k++];
                for(i=0;i<=50;i++);
                P1=0;
        }
}*/
为什么前面的程序实现方法数码管确实是显示1970而用指针实现的数码管却显示1978;
此帖出自51单片机论坛
 
 
 

回复

1792

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
问题出在 P0=Data1[k];
你要传给IO口的是字库,而不是计算出来各个位的数值
此帖出自51单片机论坛

点评

嗯,谢谢你!这个问题已经解决了!  详情 回复 发表于 2014-9-29 19:05
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

4
 
sint27 发表于 2014-9-26 08:43
问题出在 P0=Data1[k];
你要传给IO口的是字库,而不是计算出来各个位的数值

嗯,谢谢你!这个问题已经解决了!
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表