|
51開發(fā)板上的數(shù)碼管是共陽(yáng)極 ,
兩個(gè)鎖存器的鎖存端分別和單片機(jī)的 P2.6,P2.7 相連。
其中: U1(段選)的數(shù)據(jù)輸入端接到單片機(jī)的P0口;
U2(位選)的數(shù)據(jù)輸入端接到單片機(jī)的P2口;
動(dòng)態(tài)顯示的過程是:
第一個(gè)數(shù)碼管顯示0,延遲一會(huì),第二個(gè)顯示1,延遲一會(huì),依次。。。 利用發(fā)光二極管的余暉和人眼視覺暫留效應(yīng),使人感覺數(shù)碼管的各位都在顯示,其實(shí)是,數(shù)碼管是一位一位的輪流顯示,人眼沒辦法分辨出來(lái)。
注意:加消影語(yǔ)句。
動(dòng)態(tài)顯示的程序:
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table1[]=
{0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,0x90,0x88};
uchar code table2[]=
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit wela=P2^7;
sbit dula=P2^6;
uint n,m;
void delay ()
{ uint i,j;
for(i=0;i<5;i++)
for(j=0;j<100;j++);
}
void main()
{
while(1)
{
wela=1;
P2=0XFF; // 消影
P2=table2[n];
wela=0;
n++; if(n==7) n=0;
dula=1;
P0=0XFF;
P0=table1[m];
dula=0;
delay();
m++; if(m==7) m=0;
}
}
|
|