單片機新手或教學使用。
單字節BCD碼減法.doc:
實現R0指向的單元減去R1指向的RAM單元內容(十進制減法),結果存在R0指向的RAM單元中。
答案:
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV A,#9AH
CLR C
SUBB A,@R1
ADD A,@R0
DA A
MOV @R0,A
END
堆棧操作.doc:
判斷操作結果
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN: MOV SP,# 2FH
MOV A,#88H
MOV R2,#5
PUSH ACC
PUSH 02H
MOV R2,#10H
MOV A,#80H
ADD A,R2
DA A
MOV R0,A
POP 02H
POP ACC
END
多字節BCD碼加法.doc
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV A,R7
MOV R2,A
ADD A,R0
MOV R0,A
MOV A,R2
ADD A,R1
MOV R1,A
CLR C
BCD: DEC R0
DEC R1
MOV A,@R0
ADDC A,@R1
DA A
MOV @R0,A
DJNZ R2,BCD
END
0.jpg (60.48 KB, 下載次數: 27)
下載附件
2018-3-7 21:42 上傳
例如:15362817+29436485=44799302
(R7)=4 (R0)=30H (R1)=40H
外部RAM訪問.doc
1、 將片外RAM2000H單元內容傳送到內部RAM的30H中。
2、 將片外(2000H)傳送到2001H中。
答案:
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV DPTR,#2000H
MOVX A,@DPTR
MOV R0,#30H
MOV @R0,A
END
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV DPTR,#2000H
MOVX A,@DPTR
MOV DPTR,#2001H
MOVX @DPTR,A
END
偽指令練習.doc
1、 建立表格,首地址為4300H,將0----9的平方值存放在表格中。并將0——9送給A,取出A 中對應 的平方值且送到外部RAM的30H單元中。
ORG 0000H
LJMP MAIN
ORG 4100H
MAIN:MOV DPTR,#4300H
MOVC A,@A+DPTR
MOV R0,#30H
MOV @R0,A
SJMP $
ORG 4300H
DB 0,1,4,9,16H,25H
DB 36H,49H,64H,81H
END
開關控制的中斷系統
ORG0000H LJMPMAIN ORG 0003H LJMPINT_0 ORG 4100H MAIN: MOVIE,#10000001B SETB IT0 MOV A,#7FH MOV R0,#1 LOOP: CJNER0,#0H,LEFT RL A AJMPDELAYS LEFT: RR A DELAYS:MOV P1,A ACALL DELAY ACALLDELAY ACALLDELAY ACALLDELAY ACALLDELAY AJMP LOOP DELAY: MOV R7,#82H DL1: MOV R6,#0FFH DL2: NOP DJNZ R6,DL2 DJNZR7,DL1 RET INT_0: CLR EX0 ACALL DELAY SETBEX0 CJNER0,#0H,SETR0_1; MOV R0,#1 RETI SETR0_1:MOV R0,#0H RETI END
0.jpg (97.93 KB, 下載次數: 37)
下載附件
2018-3-7 21:47 上傳
0.png (46.08 KB, 下載次數: 36)
下載附件
2018-3-7 21:47 上傳
問題:
1、 R0=1時,左移還是右移?R0什么時候等于0? 2、 MOV IE,#10000001B,定義了哪些位?作用? 3、 中斷服務程序主要完成什么任務? 4、 圖中開關的電位如何變化? 5、 IT0是哪個寄存器中的?作用是什么? 6、 R0在程序中的作用是什么? 7、 CJNE R0,#0H,SETR0-1 指令作用?R0為什么和0比較?
秒表
0.jpg (68.69 KB, 下載次數: 39)
下載附件
2018-3-7 21:48 上傳
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 0100H
MAIN: MOV TMOD,#00000001B
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R7,#0
MOV DPTR,#TAB
MOV R0,#0
SETB EA
SETB ET0
SETB TR0
LOOP:MOV A,R0
MOVC A,@A+DPTR
MOV P2,A
ACALL DELAY
AJMP LOOP
INT_T0:INC R7
CJNE R7,#10,RETURN
MOV R7,#0
INC R0
CJNE R0,#10,RETURN
MOV R0,#0
RETURN:MOV TH0,#3CH
MOV TL0,#0B0H
RETI
DELAY: MOV R2,#0FFH
DL: DJNZ R2,DL
RET
TAB:DB 40H,4FH,24H,30H,19H
DB 12H,02H,78H,00H,10H
END
1、 SETB EA 和SETB ET0兩條指令變成一條指令,如何編寫? 2、 如果秒表只顯示02468,在不改變表格的基礎上如何改? 3、 如果秒表是2秒進一,程序如何改? 4、 如果要顯示3,P2口的值? 5、 R7的作用是什么? 6、 R0的作用是什么? 7、 TMOD都設置了哪些位?這些位作用是什么?
0.png (11.71 KB, 下載次數: 39)
下載附件
2018-3-7 21:49 上傳
0.png (43.59 KB, 下載次數: 45)
下載附件
2018-3-7 21:50 上傳
全部資料51hei下載地址:
程序和圖.zip
(264.92 KB, 下載次數: 29)
2018-3-7 20:53 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
|