找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6135|回復(fù): 5
收起左側(cè)

求助---寫了個顯示程序顯示總不對

[復(fù)制鏈接]
ID:16693 發(fā)表于 2010-8-2 07:10 | 顯示全部樓層 |閱讀模式

寫一個數(shù),然后把他顯示出來,不知為啥顯示的不對,請指點下,鼓搗好幾天了,也沒有頭緒,謝謝

#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的數(shù)碼管位控制
{
 WEI=1;
 P0=wei;
 WEI=0;
}

void duan_1(uchar duan)       //鎖存器573的數(shù)碼管段控制
{
 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();

}

回復(fù)

使用道具 舉報

ID:16693 發(fā)表于 2010-8-2 20:47 | 顯示全部樓層

!�。。。。�

回復(fù)

使用道具 舉報

ID:19162 發(fā)表于 2010-8-3 04:09 | 顯示全部樓層

隨便一看就發(fā)現(xiàn)好幾處錯誤         void wei_1(uchar wei)       //鎖存器573的數(shù)碼管位控制
{
 WEI=1;
 P0=wei;
 WEI=0;
}

此段 P0=WEI??不解  P0口應(yīng)該送入具體數(shù)據(jù)。比如0Xff········;

其二   有語法錯誤  void duan_1(uchar duan)       //鎖存器573的數(shù)碼管段控制
{
 unint i;
 DUAN=1;
 P0=xian[duan];
 DUAN=0;
 for(i=200;i>0;i--);
}

據(jù)我所知   for應(yīng)該在P0=xian 之前  而且數(shù)組里面的duan  應(yīng)該改成變量i....。我也是初學(xué)   總覺得你的程序問題很多 仔細(xì)看看吧     還有你的數(shù)組名前最好加個code  這樣就不會占用寶貴的RAM空間

[此貼子已經(jīng)被作者于2010-8-3 4:16:28編輯過]
回復(fù)

使用道具 舉報

ID:16693 發(fā)表于 2010-8-3 07:27 | 顯示全部樓層

for是一個循環(huán),延時用的

那個wei在后面有 數(shù)據(jù)給他,

仍然謝謝,能不能給我講下code的用法,

回復(fù)

使用道具 舉報

ID:16693 發(fā)表于 2010-8-3 07:33 | 顯示全部樓層
我寫他主要就是因為我的1302那個時鐘顯示時間不對,那段數(shù)組和顯示就是1302程序中的一部分,有數(shù)組時候顯示就亂了,等待中。。。。。。。。。。。。。。。。。
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2010-8-9 20:04 | 顯示全部樓層
zhouli297 兄弟說得很對啊,你這個程序錯的地方太多了,你還是參考一下我給出的板子附帶的例程吧,那個是測試通過的,你用的好像是老板子對吧,只需要改下 段和位的端口就行了,其他都一樣
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表