找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5300|回复: 5
打印 上一主题 下一主题
收起左侧

求助---写了个显示程序显示总不对

[复制链接]
跳转到指定楼层
楼主
ID:16693 发表于 2010-8-2 07:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

写一个数,然后把他显示出来,不知为啥显示的不对,请指点下,鼓捣好几天了,也没有头绪,谢谢


#include <AT89X52.h>
#include <math.h>
#define uchar unsigned char
#define unint  unsigned int
sbit DUAN=P2^0;     //74HC573的LE端    LED的段选端
sbit WEI=P2^1;      //74HC573的LE端    LED的位选端
unint  a[5];
unint j;
unint temp;
uchar xian[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,};//共阴显示字库 0123456789
void delay(unint z)              //1ms延时
{
unint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void wei_1(uchar wei)       //锁存器573的数码管位控制
{
 WEI=1;
 P0=wei;
 WEI=0;
}

void duan_1(uchar duan)       //锁存器573的数码管段控制
{
 unint i;
 DUAN=1;
 P0=xian[duan];
 DUAN=0;
 for(i=200;i>0;i--);
}
void shuzhi()
{a[0]=temp/100000;
 temp=temp%100000;
 a[1]=temp/10000;
 temp=temp%10000;
 a[2]=temp/1000;
 temp=temp%1000;
 a[3]=temp/100;
 temp=temp%100;
 a[4]=temp/10;
 temp=temp%10;
 a[5]=temp;
  }
  void display2()         //显示
{
shuzhi();
wei_1(0x7f);    /*秒*/
duan_1(a[0]);
 wei_1(0xbf);
 duan_1(a[1]);
 wei_1(0xdf);    /*-*/
 duan_1(10);
 wei_1(0xef);   /*分*/
 duan_1(a[2]);
 wei_1(0xf7); 
duan_1(a[3]);
 wei_1(0xfb);    /*-*/
 duan_1(10);
 wei_1(0xfd);   /*时*/
 duan_1(a[4]);
 wei_1(0xfe); 
 duan_1(a[5]);
  }
 void main()
{   temp=323456;
 display2();

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:16693 发表于 2010-8-2 20:47 | 只看该作者

!!!!!!

回复

使用道具 举报

板凳
ID:19162 发表于 2010-8-3 04:09 | 只看该作者

随便一看就发现好几处错误         void wei_1(uchar wei)       //锁存器573的数码管位控制
{
 WEI=1;
 P0=wei;
 WEI=0;
}

此段 P0=WEI??不解  P0口应该送入具体数据。比如0Xff········;

其二   有语法错误  void duan_1(uchar duan)       //锁存器573的数码管段控制
{
 unint i;
 DUAN=1;
 P0=xian[duan];
 DUAN=0;
 for(i=200;i>0;i--);
}

据我所知   for应该在P0=xian 之前  而且数组里面的duan  应该改成变量i....。我也是初学   总觉得你的程序问题很多 仔细看看吧     还有你的数组名前最好加个code  这样就不会占用宝贵的RAM空间

[此贴子已经被作者于2010-8-3 4:16:28编辑过]
回复

使用道具 举报

地板
ID:16693 发表于 2010-8-3 07:27 | 只看该作者

for是一个循环,延时用的

那个wei在后面有 数据给他,

仍然谢谢,能不能给我讲下code的用法,

回复

使用道具 举报

5#
ID:16693 发表于 2010-8-3 07:33 | 只看该作者
我写他主要就是因为我的1302那个时钟显示时间不对,那段数组和显示就是1302程序中的一部分,有数组时候显示就乱了,等待中。。。。。。。。。。。。。。。。。
回复

使用道具 举报

6#
ID:1 发表于 2010-8-9 20:04 | 只看该作者
zhouli297 兄弟说得很对啊,你这个程序错的地方太多了,你还是参考一下我给出的板子附带的例程吧,那个是测试通过的,你用的好像是老板子对吧,只需要改下 段和位的端口就行了,其他都一样
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表