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

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

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

一天的堅(jiān)持沒有白費(fèi)了,呵呵。又一個(gè)模塊學(xué)會(huì)了,下午的時(shí)間利用了定時(shí)器編了一下數(shù)碼管的動(dòng)態(tài)顯示程序,其實(shí)數(shù)碼管動(dòng)態(tài)就是使單片機(jī)不斷地向數(shù)碼管輸送數(shù)據(jù),使其速度極快地顯示內(nèi)容,當(dāng)然極快是快到人的眼睛分辨不出來它在送數(shù)據(jù)時(shí)的間隙,下面我把程序編了人的眼睛看得分辨出來的效果和程序?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;//打開單片機(jī)計(jì)時(shí)工作方式
TMOD &= 0xfd;
TH0 = (65536-5000)/256;//賦初值
TL0 = (65536-5000)%256;
TR0 = 1;//定時(shí)器打開
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)然這個(gè)程序如果把時(shí)間調(diào)快一點(diǎn)的話,我們看到的是數(shù)碼管顯示1至7的內(nèi)容了。這就是數(shù)碼管動(dòng)態(tài)顯示。加油。努力。相信我行的。

關(guān)閉窗口

相關(guān)文章