當前位置:編程學習大全網 - 編程語言 - 編程實現數碼管的靜態顯示

編程實現數碼管的靜態顯示

/********************/

/*

按鍵靜態顯示不同的數字,即按鍵1顯示1。

動態顯示:數字移動顯示

*/

# include & ltreg52.h & gt

#定義?uint?未簽名?int?

#定義?烏恰爾?未簽名?夏爾?

sbit?dp=p0^6;

sbit?d1=p2^4;

sbit?d2=p2^5;

sbit?d3=p2^6;

sbit?d4=p2^7;

烏恰爾?代碼?表[]=

{0x28,0xeb,0x32,0xa2,

0xe1,0xa4,0x24,0xea,

0x20,0xa0,0xf 7 };

烏恰爾?代碼?table1[]=?{0xfe,0xfd,0x FB };?

uint?num1=0,temp,num,flag = 0;

夏爾?Char[50]="=== ",* p;

烏恰爾?dp=0,魏;

浮動?a = 0;

作廢?延遲(uint?z)

{?uint?x;

uint?y;

for(x = z;x & gt0;x -)?

for(y = 110;y & gt0;y -)?;?}

作廢?簡()?//鍵盤掃描?

{

if(num 1 = = 3)num 1 = 0;

P2 = table 1[num 1];

temp = P2;

溫度=溫度& amp0xf0

if(temp!=0xf0)

{延遲(5);

temp = P2;

溫度=溫度& amp0xf0

if(temp!=0xf0)

?{ temp = P2;flag = 1;

?開關(溫度& gt& gt4)

?{案例?0x0e:num = 0+4 * num 1;

打破;

案子?0x0d:num = 1+4 * num 1;

打破;

案子?0x0b:num = 2+4 * num 1;

打破;

案子?0x 07:num = 3+4 * num 1;

打破;

?}

while(temp!=0xf0)

?{

temp = P2;

溫度=溫度& amp0xf0

?}

延遲(5);

while(temp!=0xf0)

?{

temp = P2;

溫度=溫度& amp0xf0

?}

?}

}

num 1++;?P2 = 0x ff;

}

//數碼管顯示

作廢?顯示(char?z[],uchar?Z1)/"表示"-"/* *無。

{?if(z[0]-' 0 ' & lt;13)?//不能小於或等於0。

{

d 1 = 0;P0 = table[z[0]-' 0 '];if(z 1 = = 1)Dp = 0;

延時(1);d 1 = 1;P0 = 0xff

}

if(z[1]-' 0 ' & lt;13){ D2 = 0;P0 = table[z[1]-' 0 '];if(z 1 = = 2)Dp = 0;延時(1);D2 = 1;P0 = 0xff?}

if(z[2]-' 0 ' & lt;13){ D3 = 0;P0 =表[z[2]-' 0 '];if(z 1 = = 3)Dp = 0;延時(1);D3 = 1;P0 = 0xff}

if(z[3]-' 0 ' & lt;13){ D4 = 0;P0 =表[z[3]-' 0 '];if(z 1 = = 4)Dp = 0;延時(1);D4 = 1;P0 = 0xff?} }

作廢?主()

{

while(1)

{

簡();

if(flag = = 1){ flag = 0;?

?char[Wei+3]= ' 0 '+num;?wei++;

?p = Char+Wei-1;

?}?

?如果(魏& gt0)顯示(p,DP);?

}

}

硬件電路圖

  • 上一篇:關於當兵的臺灣電影
  • 下一篇:國家計算機等級考試壹***有幾個級別?
  • copyright 2024編程學習大全網