① 單片機A4H是什麼意思
二進制數10100100=十六進制數0A4H(H表示十六進制數)=十進制數的164
② 單片機,求通過四個獨立按鍵控制四位數碼管靜態,動態或加1減1-類顯示的實驗匯編程序
SCANLED EQU30H
ORG0000H
LJMPMAIN
ORG001BH
LJMPT1ISR ;掃描顯示
ORG0030H
MAIN:
MOVSP,#5FH
MOVTMOD,#10H
MOVTH1,#0ECH
MOVTL1,#078H
MOVSCANLED,#0
SETBET1
SETBTR1
SETBEA
MOV30H,#0
MOV31H,#0
MOV32H,#0
MOV33H,#0
LOOP:
JBP1.0,LP1
JNBP1.0,$
INC30H
MOVA,30H
CJNEA,#10,LOOP
MOV30H,#0
SJMPLOOP
LP1:
JBP1.1,LP2
JNBP1.1,$
INC31H
MOVA,31H
CJNEA,#10,LOOP
MOV31H,30
SJMPLOOP
LP2:
JBP1.2,LP3
JNBP1.2,$
INC32H
MOVA,32H
CJNEA,#10,LOOP
MOV32H,#0
SJMPLOOP
LP3:
JBP1.3,LOOP
JNBP1.3,$
INC33H
MOVA,33H
CJNEA,#10,LOOP
MOV33H,#0
SJMPLOOP
;--------------------
T1ISR:
CLRTR1
MOVTH1,#0ECH
MOVTL1,#78H
SETBTR1
MOVDPTR,#LEDTAB
MOVR2,SCANLED
MOVA,#01H
CJNER2,#0,T1DIS0
SJMPT1DIS1
T1DIS0:
RLA
DJNZR2,T1DIS0
T1DIS1:
MOVP2,A
MOVA,SCANLED
ADDA,#30H
MOVA,@R0
MOVCA,@A+DPTR
MOVP0,A
INCSCANLED
MOVA,SCANLED
CJNEA,#4,T1END
MOVSCANLED,#0
T1END:
RETI
;--------------------
LEDTAB:
DB0C0H ;"0" 00H
DB0F9H ;"1" 01H
DB0A4H ;"2" 02H
DB0B0H ;"3" 03H
DB99H ;"4" 04H
DB92H ;"5" 05H
DB82H ;"6" 06H
DB0F8H ;"7" 07H
DB80H ;"8" 08H
DB90H ;"9" 09H
DB88H ;"A" 0AH
DB83H ;"B" 0BH
DB0C6H ;"C" 0CH
DB0A1H ;"D" 0DH
DB86H ;"E" 0EH
DB8EH ;"F" 0FH
DB0FFH ;"" 10H
;--------------------
END
③ 求單片機實驗七段數碼管顯示實驗程序
/* ch03-3-4.c - 七段LED數碼管實驗程序 */
//==聲明區=================================================
#include<reg51.h> //定義8051寄存器的頭文件,P2-17~19
#define SEG P0 //定義七段LED數碼管接至Port 0
/*聲明七段LED數碼管驅動信號數組(共陽)*/
char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99, //數字0-4
0x92,0x83,0xf8,0x80,0x98}; //數字5-9
void delay(int); //聲明延遲函數
//==主程序==========================================
main() //主程序開始
{ unsigned char i; //聲明無符號變數i
while(1) //無窮循環,程序一直跑
for(i=0;i<10;i++) //顯示0-9,共10次
{ SEG=TAB[i]; //顯示數字
delay(500); //延遲500×1m=0.5秒
} //for循環結束
} //主程序結束
//==子程序==========================================
/* 延遲函數,延遲約x×1ms */
void delay (int x) //延遲函數開始
{ int i,j; //聲明整形變數i,j
for (i=0;i<x;i++) //計數x次,延遲x×1ms
for (j=0;j<160;j++); //計數120次,延遲1ms
} //延遲函數結束
④ 單片機音樂程序中DB 0C0H, 0F9H, 0A4H中的0C0H, 0F9H, 0A4H怎樣弄出來的,是什麼意思啊
你說的DB 0C0H, 0F9H, 0A4H是LED顯示控制的段碼,不是音樂旋律和節拍控制碼,旋律的控制碼是根據音高所對應的頻率結合定時器計算出來的。節拍也是根據延時長短計算出來的。
⑤ AT89C51單片機怎麼用匯編語言讓4個數碼管同時顯示1234
1、首先我們先打開keil。
⑥ 52單片機實現兩位數按鍵計數,匯編語言
又有按鍵又有數碼管,即應該先畫模擬圖或原理圖,確定硬體連接關系後才能寫程序。如果是實物開發板,就更應該給出原理圖,否則,寫出來的程序與開發板不符,那程序也沒用。可以用模擬圖來調試程序。
⑦ 51單片機的加法指令到底怎麼加啊,例如12A4H+0FE7H
不僅僅51單片機,所有計算機都是一樣的實現機理。
都是通過硬體實現的,通過硬體的邏輯門實現,具體邏輯門很多,常見的有大家熟知的「與」,「或」,「異或」等等,這些邏輯門進行組合,實現了更加強大的功能,比如加法器,累加器,等等,你去網路一下「邏輯門」「門電路」「加法器」就知道咯大概了。
在邏輯門中,1,和0就是高電平和低電平。比如是1+0,它則是這樣實現的:將某個邏輯門的引腳(你可以想像為某跟電線)設置為高電平,將另一個引腳設置為低電平,然後通過一些電路(這就是邏輯門了),他會得到高電平(即1)。同理如果是2+3(都會先轉換成二進制數)呢?多幾個引腳,多幾次處理不就ok了么!你上面的12A4H和0FE7H是16進制數,硬體計算時會利用邏輯門先將他們轉換成二進制數。如果你想了解是怎麼轉換成二進制數則可以網路一下AD轉換。好了,就這樣啦!
順便說句,沒事得給點分,要不一般是沒人願意為你做詳細解答的!
⑧ 51單片機a2和a4的區別
1、A2是STC89C51單片機,它具有8K位元組的Flash存儲器,128位元組的RAM,一個定時器/計數器,兩個串列口,還有一個6位的A/D轉換器。
2、A4是AT89C51單片機,它有4K位元組的Flash存儲器,128位元組的RAM,一個定時器/計數器,兩個串列口,一個8位的A/D轉換器。
⑨ 單片機控制四位數碼管顯示0000-9999
首先告訴你,AT89C51已基本上沒人用了,代替它的是AT89S51。
共陽數碼管,OK,單片機設計多數使用共陽數碼管。
單片機控制四位數碼管顯示0000-9999
我給你提供一個每秒自動加1的四位數碼管循環顯示0000~9999的程序。
D0 equ 0c0h ; 11000000B
D1 equ 0F9h ; 11111001B
D2 equ 0A4h ; 10100100B
D3 equ 0B0h ; 10110000B
D4 equ 99h ; 10011001B
D5 equ 92h ; 10010010B
D6 equ 82h ; 10000010B
D7 equ 0F8h ; 11111000B
D8 equ 80h ; 10000000B
D9 equ 90h ; 10010000B
org 0000h
jmp start
org 0030h
start:
mov dptr,#data0
mov r2,#0
mov r3,#0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
next: call display
inc r2
cjne r2,#100,next
mov r2,#0
inc r3
cjne r3,#100,next
mov r3,#0
jmp next
display:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov r4,#250
lpr4: mov p2,#0ffh
mov a,r3
mov b,#10
div ab
movc a,@a+dptr
mov p0,a
clr p2.0
call t1ms
mov p2,#0ffh
mov a,b
movc a,@a+dptr
mov p0,a
clr p2.1
call t1ms
mov p2,#0ffh
mov a,r2
mov b,#10
div ab
movc a,@a+dptr
mov p0,a
clr p2.2
call t1ms
mov p2,#0ffh
mov a,b
movc a,@a+dptr
mov p0,a
clr p2.3
call t1ms
djnz r4,lpr4
ret
data0: db d0,d1,d2,d3,d4,d5,d6,d7,d8,d9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
t1ms:
mov r7,#250
djnz r7,$
mov r7,#250
djnz r7,$
ret
jmp $
end
⑩ 51單片機按鍵控制數碼管數據的加減
DAT EQU 30H
SCANLED EQU 32H
FSDAT EQU 33H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#0F4H
MOV TL0,#048H
MOV P2,#00H
MOV SCANLED,#0
MOV 30H,#2
MOV 31H,#0
MOV FSDAT,#20
SETB EA
SETB ET0
SETB TR0
LOOP:
JB P3.0,$
JNB P3.0,$
DEC FSDAT
MOV A,FSDAT
MOV B,#10
DIV AB
MOV 30H,A
MOV 31H,B
MOV A,FSDAT
JNZ LOOP
MOV FSDAT,#20
SJMP LOOP
;--------------------
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#0F4H
MOV TL0,#48H
SETB TR0
MOV DPTR,#LEDTAB1
T000:
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T001
MOV P2,#02H
SJMP T0DIS
T001:
MOV P2,#01H
T0DIS:
MOV A,@R0
MOVC A,@A+DPTR
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
ANL A,#01H
MOV SCANLED,A
POP ACC
RETI
;--------------------
LEDTAB1:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
DB 88H ;"A" 0AH
DB 83H ;"B" 0BH
DB 0C6H ;"C" 0CH
DB 0A1H ;"D" 0DH
DB 86H ;"E" 0EH
DB 8EH ;"F" 0FH
DB 0FFH ;" " 10H
;--------------------
END