導航:首頁 > 操作系統 > 單片機數碼管顯示字母編程

單片機數碼管顯示字母編程

發布時間:2023-09-17 21:49:10

1. 單片機控制74LS164控制數碼管顯示怎麼編程(匯編語言)

74LS164是串入並出轉換晶元,可以藉助串口來實現,也可以用普通IO口模擬實現。舉例如下:

#include<reg51.h>

#define uchar unsigned char

uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};

sbit keyup=P3^6;

sbit keydn=P3^7;

void delay()

{

int i=1000;

while(i--);

}

main()

{

uchar i;

i=0;

SCON=0x00;

TI=1;

while(1)

{

SBUF=table[i];

while(TI==0);

TI=0;

delay();

if(keyup==0)

{

i++;

while(keyup==0);

}

if(keydn==0)

{

if(i>0)i--;

while(keydn==0);

}

i%=10;

}

}

2. 單片機四位數碼管顯示中間一行字母

51單片機(四位數碼管蘆襪的顯示)程序基於單片機V1或V2實驗系統,編寫一個程序,實現以下功能:1)首先在數碼管 上顯示P 」個字元;2)等待按鍵,如按了任何一個鍵,則將這 4個字元清除, 改為顯示0000」個字元(為數字的0)。E3最佳答案下面這個程序是4x4距陣鍵拍或盤丄ED數碼管顯示,一共可以到0-F顯示,你可以稍微改一下就可以實現你的功能了,如還有問題請發信息,希望能幫上你!#i nclude<at89x52.h> un sig ned char codeDig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //gongyang 數碼管 0-F 代碼

un sig ned char k;//設置全局變數k為鍵盤的鍵值鍵盤延時函數

//延時函數
void key_delay(void) {int t;for(t=0;t<500;t++);}

鍵盤掃描函數******************************/
//鍵盤掃描函數
void keyscan(void)

{unsigned char a;P2 = 0xf0;if(P2!=0xf0){key_delay();if(P2!=0xf0){P2 = 0xfe; key_delay();a = P2;switch (a)
//鍵盤初始化//有鍵按下?//延時//確認真的有鍵按下?//使行線 P2.4 為低電平,其餘行為高電平//a 作為緩存/陪賀激/開始執行行列掃描{case 0xee:k=15;break;case 0xde:k=11;break;case 0xbe:k=7;break;case 0x7e:k=3;break;default:P2 = 0xfd; //使行線 P2.5 為低電平,其餘行為高電平a = P2;switch (a)
case 0xed:k=14;break;case 0xdd:k=10;break;case 0xbd:k=6;break;case 0x7d:k=2;break;default:P2 = 0xfb; //使行線 P2.6 為低電平,其餘行為高電平a = P2;switch (a){case 0xeb:k=13;break;case 0xdb:k=9;break;case 0xbb:k=5;break;case 0x7b:k=1;break;default:P2 = 0xf7; //使行線P2.7為低電平,其餘行為高電平a = P2;switch (a){case 0xe7:k=12;break;case 0xd7:k=8;break;case 0xb7:k=4;break;case 0x77:k=0;break;default:break;
}} break;}}}}

**************************** ***主函數 ***********************************
void main(void){while(1)
//調用鍵盤掃描函數//查找按鍵對應的數碼管顯示代碼
{keyscan(); switch(k){case 0:P0=Dig[0];break;case 1:P0=Dig[1];break;case 2:P0=Dig[2];break;case 3:P0=Dig[3];break;case 4:P0=Dig[4];break;case 5:P0=Dig[5];break;
case 6:P0=Dig[6];break;case 7:P0=Dig[7];break;case 8:P0=Dig[8];break;case 9:P0=Dig[9];break;case 10:P0=Dig[10];break;case 11:P0=Dig[11];break;case 12:P0=Dig[12];break;case 13:P0=Dig[13];break;case 14:P0=Dig[14];break;case 15:P0=Dig[15];break; default:break; // 退出}}}

end
Welcome ToDownload !!!歡迎您的下載,資料僅供參考!

5.9
網路文庫VIP限時優惠現在開通,立享6億+VIP內容
立即獲取
51單片機(四位數碼管的顯示)程序[1]
51單片機(四位數碼管的顯示)程序
基於單片機V1或V2實驗系統,編寫一個程序,實現以下功能:1)首先在數碼管 上顯示P 」個字元;2)等待按鍵,如按了任何一個鍵,則將這 4個字元清除, 改為顯示0000」個字元(為數字的0)。
E3最佳答案
下面這個程序是4x4距陣鍵盤丄ED數碼管顯示,一共可以到0-F顯示,你可以稍微
改一下就可以實現你的功能了,如還有問題請發信息,希望能幫上你!

3. 利用AT89c51單片機數碼管顯示「HELLO」靜態的編程

數碼管是共陰極的,HELLO[]={0x6e,0x9e,0x1c,0x1c,0xfc}
P0是段選;P2是位選
char i;

void delay()
{
for(i=10000;i>0;i--);
}
void main()
{

for(i=0;i<8;i++)
{
P2=~(0x01<<i);
P0=HELLO[i];
delay();
}
while(1);
}

差不多就是這樣啦

4. 在51單片機中1位位數碼管顯示的編程怎麼寫啊,

下面這個程序是4x4距陣鍵盤,LED數碼管顯示,一共可以到0-F顯示,你可以稍微改一下就可以實現你的功能了,如還有問題請發信息,希望能幫上你!
#include<at89x52.h>
unsigned char code Dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //數碼管 0-F 代碼
unsigned char k; //設置全局變數k 為鍵盤的鍵值

/************************************鍵盤延時函數****************************/

void key_delay(void) //延時函數
{
int t;
for(t=0;t<500;t++);
}

/************************************鍵盤掃描函數******************************/
void keyscan(void) //鍵盤掃描函數
{
unsigned char a;
P2 = 0xf0; //鍵盤初始化
if(P2!=0xf0) //有鍵按下?
{
key_delay(); //延時
if(P2!=0xf0) //確認真的有鍵按下?
{
P2 = 0xfe; //使行線P2.4為低電平,其餘行為高電平
key_delay();
a = P2; //a作為緩存
switch (a) //開始執行行列掃描
{
case 0xee:k=15;break;
case 0xde:k=11;break;
case 0xbe:k=7;break;
case 0x7e:k=3;break;
default:P2 = 0xfd; //使行線P2.5為低電平,其餘行為高電平

a = P2;
switch (a)
{
case 0xed:k=14;break;
case 0xdd:k=10;break;
case 0xbd:k=6;break;
case 0x7d:k=2;break;
default:P2 = 0xfb; //使行線P2.6為低電平,其餘行為高電平

a = P2;
switch (a)
{
case 0xeb:k=13;break;
case 0xdb:k=9;break;
case 0xbb:k=5;break;
case 0x7b:k=1;break;
default:P2 = 0xf7; //使行線P2.7為低電平,其餘行為高電平

a = P2;
switch (a)
{
case 0xe7:k=12;break;
case 0xd7:k=8;break;
case 0xb7:k=4;break;
case 0x77:k=0;break;
default:break;
}
}
}
break;
}
}
}
}

/****************************** ***主函數*************************************/
void main(void)
{
while(1)
{
keyscan(); //調用鍵盤掃描函數
switch(k) //查找按鍵對應的數碼管顯示代碼
{
case 0:P0=Dig[0];break;
case 1:P0=Dig[1];break;
case 2:P0=Dig[2];break;
case 3:P0=Dig[3];break;
case 4:P0=Dig[4];break;
case 5:P0=Dig[5];break;
case 6:P0=Dig[6];break;
case 7:P0=Dig[7];break;
case 8:P0=Dig[8];break;
case 9:P0=Dig[9];break;
case 10:P0=Dig[10];break;
case 11:P0=Dig[11];break;
case 12:P0=Dig[12];break;
case 13:P0=Dig[13];break;
case 14:P0=Dig[14];break;
case 15:P0=Dig[15];break;
default:break; //退出
}
}
}

/**********************************end***************************************/

5. 如何用單片機讓數碼管顯字

LED靜態顯示介面
數碼管工作在靜態顯示方式時,共陰極(共陽極)的公共端COM連接在一起接地(電源)。每位的段選線與一個8位並行口相連。只要在該位的段選線上保持段選碼電平,該位就能保持相應的顯示字元。這里的8位並行口可以直接採用並行I/O介面片(例如80C51的P1埠、8155和8255的I/O埠等),也可以採用串列輸入/並行輸出的移位寄存器。考慮到若採用並行I/O介面,佔用I/O資源較多,因而靜態顯示方式常採用串列介面方式,外接8位移位寄存器74HCl64構成顯示電路,圖2是通過串列口擴展8位LED顯示器靜態驅動電路,在TXD(P3.1)運行時鍾信號,將顯示數據由RXD(P3.0)口串列輸出,串列口工作在移位寄存器方式(方式0)。

圖2中使用的是共陰極數碼管,因而各數碼管的公共極COM端接地,要顯示某欄位,則相應的移位寄存器74HC164的輸出線必須是高電平。 顯然,要顯示某字元,首先要把這個字元轉換成相應的字形碼,然後再通過串列口發送到74HC164。74HC164把串列口收到的數變為並行輸出加到數碼管上。先建立一個字形碼表,以十六進制數的次序存放它們的相應字形碼,共陰極字形碼表如表1所示。
考慮到本設計成本問題,靜態電路需要對應於每一個數碼管LED接一個移位寄存器74HC164晶元。而且TXD、RXD埠在上位機通信中要用到,而如果界別的埠,編碼就變得比較復雜了,所以靜態顯示就放棄了。

如要顯示字元6,查表可知6的字形碼為0x7d,把0x7d送到8位移位寄存器74HC164即可。顯然,要顯示字元0~9、A~F,其高4位為全0,而低4位為十六進制數。如果要顯示的數高半位元組不是0,則要通過程序加以變換。這種靜態LED顯示法有著顯示亮度大,軟體較為簡單的特點,但硬體上使用晶元多,每個LED顯示器需要一個驅動電路。

6. 用89c51單片機寫一個數碼管顯示HELLO的程序,是在一個七段數碼管上依次出現幾個字母

在數碼管依次排列好這一句話,首先取模,然後寫顯示函數,寫完函數放置while(1)中無限循環下去

代碼如下:

#include; //用的是單獨操作,沒有用匯流排

sbit led1 = P1^0;

sbit led2 = P1^1;

sbit led3 = P1^2;

sbit led4 = P1^3;

sbit led5 = P1^4;

sbit led6 = P1^5;

sbit led7 = P1^6; //看清楚自己的管腳,不一定對應,這里採用P0對應段選

code unsigned char led_paly[5] = {0x76,0x79,0x38,0x38,0x5c};// H E L L O

void delay(unsigned int um)//延時函數

{

int i,j;

for(i = 0;i &lt; um;i++)

{

for(j = 0;j &lt; 200;j++);

}

}

void display()

{

P0 = led_paly[0];//顯示局尺桐H

led2 = 0;

delay(50);

led2 = 1;

P0 = led_paly[1];//顯示E

led3 = 0;

delay(50);

led3 = 1;

P0 = led_paly[2];//顯示L

led4 = 0;

delay(50);

led4 = 1;

P0 = led_paly[3];//顯示E

led5 = 0;

delay(50);

led5 = 1;

P0 = led_paly[4];//顯示O

led6 = 0;

delay(50);

led6 = 1;

}

void main(void)

{

while(1)

{

display();

}

}

(6)單片機數碼管顯示字母編程擴展閱讀:

51單片機的介面作用

P0口:可以被定義為桐坦數據/地址的低八位,能夠用於外部程序/數據存儲器。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。

P1口:標准輸入輸出I/O,P1口管腳寫入1後,被內部上拉為高,可用作輸入。在FLASH編程和校驗時,P1口作為第八位地址接收。

P2口:既困棗可用於標准輸入輸出I/O,也可用於外部程序存儲器或數據存儲器訪問時的高八位地址。

P3口:既可以做標准輸入輸出I/O,也可作為AT89C51的一些特殊功能口。

7. 51單片機怎樣用鍵盤控制數碼管顯示

51單片機怎樣用鍵盤控制數碼管顯示的方法。

如下參考:

1.首先,編寫代碼並點亮數碼管。

閱讀全文

與單片機數碼管顯示字母編程相關的資料

熱點內容
文件夾英文名排序 瀏覽:48
西二旗最高程序員 瀏覽:95
台灣寫真內部加密無刪減視頻 瀏覽:828
在線照片壓縮變小 瀏覽:654
隱藏配置文件夾 瀏覽:186
php分布式模塊化開發 瀏覽:389
wula是什麼app 瀏覽:832
豌豆莢里怎麼降低安卓手機版本 瀏覽:371
桌面的文件夾怎樣解散 瀏覽:796
貴州貴陽山洞伺服器雲空間 瀏覽:221
年薪48萬程序員老公 瀏覽:917
使用預構建的python 瀏覽:532
加密對沖基金交易有限公司 瀏覽:357
煙台製冷壓縮機價格 瀏覽:249
平板能用騰訊雲伺服器嗎 瀏覽:867
有js基礎學python 瀏覽:599
程序員可以回老家蓋房子嗎 瀏覽:555
pythonserial波特率 瀏覽:578
pc我的世界國際服怎麼下伺服器 瀏覽:144
udp凈荷加密 瀏覽:928