導航:首頁 > 操作系統 > 單片機按鍵數碼管顯示程序

單片機按鍵數碼管顯示程序

發布時間:2023-04-07 15:47:03

單片機用匯編寫兩個數碼管顯示0到99循環的程序

1、新建項目拆猜兄旅襲,做好准備。

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

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

如下參考:

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

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

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顯示,你可以稍微
改一下就可以實現你的功能了,如還有問題請發信息,希望能幫上你!

⑷ 單片機 按鍵(採用獨立式按鍵)按下一次,讓液晶第一位顯示的數碼加1,顯示範圍0~9

程序清單如下:

#include < reg51.h >// 51單片機頭文件

#define uchar unsigned char // 宏定義,用uchar替代無符號字元型

#define uint unsigned int // 宏定義,用uint 替代無符號整數型

sbit Key = P2 ^ 7;

uchar Count = 0;

uchar code DataChar[10] = // 定義數碼管的段碼 '0'~'9'、'-'、' ' 'P'

{

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

};//延時N毫秒

void DelayNms( uint N ) // 利用x、y作簡單的自減運算,消耗單片機指令周期,達到延時的目的

{

uint x,y;

for( x=N; x>0; x-- )

for( y=110; y>0; y-- );

}

//數碼管顯示 // 顯示方式為動態掃描,視覺暫留原理

void Display( uchar Num ) // *p指向Main函數中的數組ShowNum的首地址

{

P0 = DataChar[ Num ]; // 向P0賦段碼值

DelayNms(2); // 短暫的延時

P0 = 0x00; // 讓數碼管熄滅,否則會造成數字重疊

}

void main( void )

{

while(1)

{

if( Key == 0 )

{

DelayNms(30);

if( Key == 0 )

{

Count += 1;

Count = (Count>9)? 0 : Count;

}

while( !Key );

}

Display( Count );

}

}

⑸ 單片機鍵盤程序數碼管顯示36

下面是單片機鍵盤程序數碼管顯示36的簡單代碼示例(以STC89C52單片機為例,具體單片機型野爛明號的代碼可能會有所不同):

```
#include<reg52.h>

#define uint unsigned int
#define uchar unsigned char

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

uchar code table[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0x00};
// 數碼管0~F的編碼

uchar keyCode; // 按鍵值
uchar num = 0; // 顯示的數字

void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}

void DigDisplay()
{
uchar i;
for(i=0;i<8;i++)
{
switch(i)
{
case(0):LSA=0;LSB=0;LSC=0;break; //選擇第0位數碼管
case(1):LSA=1;LSB=0;LSC=0;break; //選擇第1位數碼管
case(2):LSA=0;LSB=1;LSC=0;break; //選擇第2位數碼管
case(3):LSA=1;LSB=1;LSC=0;break; //選擇第3位數碼管
case(4):LSA=0;LSB=0;LSC=1;break; //選擇第4位數碼管
case(5):LSA=1;LSB=0;LSC=1;break; //選擇第5位數碼管
case(6):LSA=0;LSB=1;LSC=1;break; //選擇第6位數碼管
case(7):LSA=1;LSB=1;LSC=1;break; //選擇第7位數碼管
}
P0 = table[num];
delay(1); // 延遲一段時間
P0 = 0x00; // 清空P0,關閉所有頌告數碼管,以便製造閃爍效果
}
}

void KeyDown()
{
if(keyCode==0x0D) // 判斷是否按下鍵盤數字3
{
num = 3; // 顯示數字3
}
}

void main()
{
while(1)
{
keyCode=P1; // 讀取鍵盤按鍵值
if(keyCode!=0xff) // 如果不是按下任何鍵,則不響應
{
KeyDown(); // 判斷用戶按下哪個鍵
DigDisplay(); // 7段數碼管顯示
}
}
}
```

上面的代碼實現了一個簡單的程序,實現了單歷羨片機鍵盤按鍵輸入數字3,然後在7段數碼管上顯示數字3。程序中使用了數碼管的位選功能和鍵盤掃描功能,以及延遲和數碼管編碼表等知識。

⑹ 單片機按鍵控制數碼管顯示

你有原理圖沒?
設置三個標志位,全局變數,需要在倒計時中斷里改變狀態的。
程序流程是:
主程序流程:
上電初始化(設置LED狀態,設置定時器相關寄存器參數,設置三個標志位狀態)--->
死循環(判斷標志位是否容許按鍵有效,然後判斷是否有按鍵按下,轉入響應的子程序處理段)
定時器中斷任務:
判斷是否到15秒,到了就置位標志位。

⑺ 如何利用單片機讓4位數碼管顯示

程序如下(用的是STC89C52晶元):

#include<reg52.h>//52系列單片機頭文件

#defineucharunsignedchar

#defineuintunsignedint

uintx,y;

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};//共陰極數碼管編碼

voiddisplay(uchar,uchar,uchar,uchar);//聲明子函數斗謹

voiddelay(int);//聲明子函數

voidmain()

{

while(1)

{

display(1,2,3,4);//主程序始終調用數碼管顯示子程序

}

}

voiddisplay(uchara,ucharb,ucharc,uchard)

{

P2=0xef;

P0=table[a];//給第一個數碼管送"a"

delay(1);//延時1ms

P2=0xdf;

P0=table[b];//給第二個數碼管送"b"

delay(1);//延時1ms

P2=0xbf;

P0=table[c];//給第三個數碼管送"c"

delay(1);//延時1ms

P2=0x7f;空畝基

P0=table[d];//給第三個數碼管送"d"

delay(1);//延時1ms

}

voiddelay(uintz)//延時子函數

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(7)單片機按鍵數碼管顯示程序擴展閱讀

led數碼管是由多個發光二極體封裝在一起組成「8」字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。led數碼管常用段數一般為7段有的另加一個小數點,還有一種是類似於3位「+1」型。

位數有半位,1,2,3,4,5,6,8,10位等等,led數碼管根據LED的接法耐昌不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數碼管,除了它們的硬體電路有差異外,編程方法也是不同的。

⑻ 51單片機c語言設計,按鍵控制數碼管,依次按下顯示0到9循環

#include<reg51.h>

sbitk1=P1^0;

#define uint16 unsigned int

#define uchar unsigned char

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

void delay()
{

uint16 i=1000;

while(i--);
}

void main()

{

uchar n ;

P2=0xfe;

P1=0xff;

while(1)

{

if(k1==0)
{

if(n>=9) n=0;

else n++;

P0=shuzu[n];

while(!k1);

delay();

while(!k1);

}

}

}

(8)單片機按鍵數碼管顯示程序擴展閱讀

51單片機的功能特性

1,可以模擬63K程序空間,接近64K 的16位地址空間;

2,可以模擬64Kxdata 空間,全部64K 的16位地址空間;

3,可以真實模擬全部32 條IO腳;

4,完全兼容keilC51 UV2 調試環境,可以通過UV2 環境進行單步,斷點, 全速等操作;

5,可以使用C51語言或者ASM匯編語言進行調試 ;

6,可以非常方便地進行所有變數觀察,包括滑鼠取值觀察,即滑鼠放在某 變數上就會立即顯示出它此的值;

7,可選 使用用戶晶振,支持0-40MHZ晶振頻率;

8,片上帶有768位元組的xdata,您可以在模擬時選 使用他們,進行xdata 的模擬;

9,可以模擬雙DPTR 指針;

10,可以模擬敏則羨去除ALE 信號輸出. ;

11,自適應300-38400bps 的所有波特率通訊;

12,體積非常細小,非常方便插入到用戶板中.插入時緊貼用戶板,沒有橋拍連接電纜,這樣可以有效地減少運行中的干擾,避免模擬時出現莫名其妙的故障;

13,模擬插針採用優質鍍金插針,可以有效地防止日久生銹,選擇優質園腳IC插座,保護模擬插針,同時不會損壞目標板上的插座. ;

14,模擬時監控和用戶代碼分離,不可能產生不能模擬的軟故障;

15,RS-232介面不盯虛計成本採用MAX202集成電路,串列通訊穩定可靠,絕非一般三極體的簡易電路可比。

⑼ 51單片機數碼管顯示的程序是什麼

#include //52系列單片機頭文件x0dx0a#define uchar unsigned char //宏定義x0dx0a#define uint unsigned intx0dx0asbit la=P2^6; //申明u1鎖存器的鎖存端x0dx0asbit wela=P2^7; // u2x0dx0auchar num1,num2;x0dx0auchar code table[]={ //數組定義x0dx0a 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,x0dx0a 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};x0dx0auchar code aable[]={ //位選數組定義x0dx0a 0xfe,0xfd,0xfb,0xf7,0xef,0xdf};x0dx0a void delays(uint); //子函數申明x0dx0ax0dx0a void main() x0dx0a{x0dx0a while(1)x0dx0a {x0dx0a for(num1=0;num1<48;num1++)//6個數循環顯示x0dx0a {x0dx0a wela=1;//打開u2鎖存端x0dx0a P0=aable[num1%6];//送入位選信號x0dx0a wela=0;//關閉u2鎖存端x0dx0a //delays(1);x0dx0a la=1;//打開u1鎖存端x0dx0a P0=table[num1%16];//送入段選信號x0dx0a la=0;//關閉u1鎖存端x0dx0a delays(1);x0dx0a }x0dx0a }x0dx0a}x0dx0a/*---------主函數-----------------------------------------------*/x0dx0ax0dx0avoid delays(uint xs)x0dx0a{x0dx0a uint i,j,k;x0dx0a for(i=xs;i>0;i--)x0dx0a for(j=1000;j>0;j--)x0dx0a for(k=110;k>0;k--);x0dx0a}x0dx0a/*----------------延時程序-----------------------------------------------*/

⑽ 51單片機用4個按鍵,每個按鍵被按下都會使數碼管顯示一個數值

5. [問答題] [技能題畫10配線圖寫出程序]按下按鈕S1,數碼管顯示1;按下按鈕S2,數碼管顯示2;按下按鈕S3,數碼管顯示3;按下按鈕S4,數碼管顯示4;能互相直接切換。按下停止按鈕後,數碼管熄滅。。

閱讀全文

與單片機按鍵數碼管顯示程序相關的資料

熱點內容
linux用戶密碼忘記 瀏覽:240
gb壓縮天然氣 瀏覽:631
圖片拼接不壓縮app 瀏覽:666
我的世界如何編程 瀏覽:84
vue反編譯代碼有問題 瀏覽:948
linuxshell字元串連接字元串 瀏覽:51
androidviewpager刷新 瀏覽:438
python編程計算平均分 瀏覽:678
加密數字貨幣市值查詢 瀏覽:692
時尚商圈app怎麼樣 瀏覽:584
stacklesspython教程 瀏覽:138
用命令行禁用135埠 瀏覽:212
linux防火牆編程 瀏覽:627
pdf閱讀器刪除 瀏覽:979
考研人如何緩解壓力 瀏覽:822
買電暖壺哪個app便宜 瀏覽:505
洛克王國忘記伺服器了怎麼辦 瀏覽:782
為什麼cf登錄伺服器沒反應 瀏覽:695
伺服器如何獲取文件列表 瀏覽:673
creo五軸編程光碟 瀏覽:14