⑴ 單片機用匯編寫兩個數碼管顯示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
⑽ 51單片機用4個按鍵,每個按鍵被按下都會使數碼管顯示一個數值
5. [問答題] [技能題畫10配線圖寫出程序]按下按鈕S1,數碼管顯示1;按下按鈕S2,數碼管顯示2;按下按鈕S3,數碼管顯示3;按下按鈕S4,數碼管顯示4;能互相直接切換。按下停止按鈕後,數碼管熄滅。。