⑴ 如何用51單片機用一位數碼管顯示對應數字
首先你要把0到9的數字對應的七段碼放在一個數組中,然後用一個變數計按鍵的次數或序號,把該序號的七段碼輸出到對應的埠即可。
⑵ 怎樣單獨控制51單片機中數碼管顯示數字
設置一個延時,一個while(1)循環,循環內讓每一個電子管依次打開位選,各自的斷選,並且每個電子管顯示延時1毫秒。
單片機,全稱單片微型計算機(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數器(Timer/Counter)、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出介面簡單,功能較低。由於其發展非常迅速,舊的單片機的定義已不能滿足,所以在很多應用場合被稱為范圍更廣的微控制器;由於單晶元微電腦常用於當控制器故又名single chip microcontroller,但是目前在中國大陸仍多沿用「單片機」的稱呼。
⑶ 用c語言單片機led燈顯示數字「28」,如何編程
摘要 給LED編個數組,控制IO口,或者直接控制IO口,不過要看顯示的28要多大,會佔用比較多的IO口,道理和矩陣鍵盤差不多。
⑷ 關於單片機用液晶屏顯示數字的問題
用液晶顯示數字比起用數碼管來說更方便,採用7段數碼管來顯示,需要定時掃描,打個類似的比方:就猶如動態RAM和靜態RAM一樣,用液晶顯示,只要初始化後,送位置和顯示內容就可以了。總體價格更便宜,比如1602液晶,不到20元錢,但可以顯示兩行共32個字元,而32個數碼管,總的價格要到50元左右,相差還是很大的。
⑸ 51單片機的共陰數碼管怎麼顯示數字(c語言)知道
共陰極數碼管也就是說,當控制信號為1時該段LED點亮,8段數碼管的數字0~9定義為:
3FH,06H,5BH,4FH,66H
;01234
6DH,7DH,07H,7FH,6fh
;56789
以下為簡易8路搶答器的常式:
#include<reg51.h>
#define
uchar
unsigned
char
uchar
table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit
rstkey=P2^2;
sbit
speaker=P2^0;
void
delay()//延時約400毫秒
{
uchar
i,j;
for(i=0;i<200;i++)
for(j=0;j<250;j++);
}
main()
{
uchar
i,key;
P2=0xff;
while(1)
{
i=0;
P1=table[i];
while(1)
{
key=P3;
if(key!=0)break;
}
switch(key)
{
case
0x01:i=1;break;
case
0x02:i=2;break;
case
0x04:i=3;break;
case
0x08:i=4;break;
case
0x10:i=5;break;
case
0x20:i=6;break;
case
0x40:i=7;break;
case
0x80:i=8;break;
default:break;
}
P1=table[i];//顯示按下搶答器的號
P0=key;//顯示按下鍵號的LED
while(1)
{
if(rstkey==0)break;//主持人按下復位鍵則重新開始
speaker=~speaker;//否則蜂鳴器報警
delay();
}
}
}
⑹ 51單片機的共陰數碼管怎麼顯示數字(c語言)
要讓51單片機共陰數碼管顯示數字,只需要將單片機的P2埠輸出數字對應的段碼即可。
以顯示數字「0」為例,c語言程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
//數碼管的段碼編碼
Uchar table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main(){//主函數
P0 = table[0];//顯示0,大家可以修改裡面的數據。
while(1);//程序不再執行其他步驟;
}
(6)單片機顯示數字擴展閱讀:
數字0-9的對應段碼:
數字0 0x3f
數字1 0x06
數字2 0x5b
數字3 0x4f
數字4 0x66
數字5 0x6d
數字6 0x7d
數字7 0x07
數字8 0x7f
數字9 0x6f
⑺ 單片機數字顯示
實際上,是一個秒錶。
在 P0 口,外接一個共陽數碼管,執行下列程序,即可。
ORG 0000H
MAIN:
MOV DPTR, #TAB
MOV TMOD, #01H
SETB TR0
LOP0:
MOV R3, #10
LOP1:
MOV A, R3
MOVC A, @A + DPTR
MOV P0, A
MOV R4, #20
LOP2:
MOV TH0, #3CH
MOV TL0, #0B0H
JNB TF0, $
CLR TF0
DJNZ R4, LOP2
DJNZ R3, LOP1
SJMP LOP0
TAB:;共陽極
DB 00H, 90H, 80H,0F8H, 82H, 92H
DB 99H, 0B0H,0A4H,0F9H,0C0H
END
⑻ 單片機試驗數碼管上如何顯示數字
解決方法:
試驗數碼管上顯示數字( 單片機直接實現位選 共陰極) 。
解決方式:
連接方法:P0與J12 用8PIN排線連接 P1與JP16 用排線連接 。
代碼:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
unsigned int code dbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};
unsigned int code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
void main()
{
while(1)
{
P1=dbit[4];
P0=num[9];
}
}
位定義
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
while(1)
{
LSA=0;
LSB=0;
LSC=0;
P0=num[6];
delay(2);
LSA=1;
LSB=0;
LSC=0;
P0=num[6];
delay(2);
}
}
//讓八個數碼管全部亮並且從0~9循環
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar wnum=0x00;
uchar code dbit[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段選,選擇要顯示的數字
//uchar code wnum[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//八位數碼管
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
P1=wnum;
while(1)
{
for(num=0;num<10;num++)
{
P0=dbit[num];
delay(500);
}
}
}
⑼ 單片機數碼管如何顯示數字
從電路圖來看,是需要數碼管共陽極的,哪一位的三極體導通,則該位的數碼管就有被點亮的機會。
那麼七段碼數據,低電平的位對應該筆畫的LED亮。
大致代碼:
P2=0xff;
P0=s_code[1]; //0xF9
P2=0xfe;// P2.0=0
delay_ms();
P2=0xff;
P0=s_code[2]; //0xA4
P2=0xfd;// P2.1=0
delay_ms();
P2=0xff;
P0=s_code[3]; //0xB0
P2=0xfb;// P2.2=0
delay_ms();
P2=0xff;
P0=s_code[4]; //0x99
P2=0xf7;// P2.3=0
delay_ms();
⑽ 單片機兩位數碼管顯示數字
#include<reg51.h>
#define uchar unsigned char;
uchar distab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //0到f
uchar number,dat=29;
void t0isr() interrupt 1
case 0:P2=0x02;P0=distab[dat/10];
break;
case 1:P2=0x01;P0=distab[dat%10];
TMOD=0x01;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
分類
數碼管也稱LED數碼管,不同行業人士對數碼管的稱呼不一樣,其實都是同樣的產品。按發光二極體單元連接方式可分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極體的陽極接到一起形成公共陽極(COM)的數碼管,共陽數碼管在應用時應將公共極COM接到+5V,當某一欄位發光二極體的陰極為低電平時,相應欄位就點亮,當某一欄位的陰極為高電平時,相應欄位就不亮。
以上內容參考:網路-數碼管