專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

數(shù)碼管動態(tài)顯示

作者:李俊軒   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年07月18日   【字體:

一天的堅持沒有白費了,呵呵。又一個模塊學(xué)會了,下午的時間利用了定時器編了一下數(shù)碼管的動態(tài)顯示程序,其實數(shù)碼管動態(tài)就是使單片機不斷地向數(shù)碼管輸送數(shù)據(jù),使其速度極快地顯示內(nèi)容,當(dāng)然極快是快到人的眼睛分辨不出來它在送數(shù)據(jù)時的間隙,下面我把程序編了人的眼睛看得分辨出來的效果和程序?qū)懗鰜硪幌隆?/p>

程序如下:#include<reg52.h>
unsigned char wei[]={
     0x00,
     0x01,
     0x02,
     0x03,
     0x04,
     0x05,
     0x06,
     0x07
     };//數(shù)碼管位的數(shù)據(jù)組
unsigned char duan[]={
     0x06,
     0x5b,
     0x4f,
     0x66,
     0x6d,
     0x7d,
     0x07
     };//數(shù)碼管段的數(shù)據(jù)組
int x,y;
void main()
{int a=0;
TMOD |= 0x01;//打開單片機計時工作方式
TMOD &= 0xfd;
TH0 = (65536-5000)/256;//賦初值
TL0 = (65536-5000)%256;
TR0 = 1;//定時器打開
while(1)
{
if(TF0==1)
{
 TF0=0;
 TH0 = (65536-50000)/256;
 TL0 = (65536-50000)%256;
 a++;
 if(a==1)
 {
 a=0;

 P0 = wei[x];//位操作顯示
 x++;
 if(x==7)
 x=0;

 P1 = duan[y];//段操作顯示
 y++;
 if(y==7)
 y=0;
 }
}
}
}

在這里要聲明一下,我的開發(fā)板是P0.0   ,P0 .1  P0.2控制位操作的。P1口控制段選內(nèi)容的。

當(dāng)然這個程序如果把時間調(diào)快一點的話,我們看到的是數(shù)碼管顯示1至7的內(nèi)容了。這就是數(shù)碼管動態(tài)顯示。加油。努力。相信我行的。

關(guān)閉窗口

相關(guān)文章