小知識點補充72
1、當MCS-51引腳ALE有效時表示從P0口穩定地送出了低8位地址
2、MCS-51的堆棧是軟件填寫堆 棧指針臨時在片內 數據存儲器內開闢的
區域
3、MCS-51 系統中,當PSEN爲低電平信號有效時,表示 CPU 要從外部程
序存儲器讀取信息
4、MCS-51 有 4 組工作寄存器,它 們的地址範圍是 00H~1FH
5、MCS-51 片內 20H~2FH範圍內的數據存儲器,既可以字節尋址又可
以 位 尋址
6、PSW 中 RS1 RS0=10 時,R2 的地址 爲 12H
7、單片機系統復位後,( PSW)=00H ,因此片內 RAM 寄存區的當前寄存器是第 0 組,8 個寄存器的單元地址 爲 00H ~ 07H
8、上電覆位後,PC 值爲 0000H
9、1個機器週期 = 12 個振盪週期= 6 個時鐘週期
LCD1602液晶顯示屏介紹:見下鏈接
LCD1602介紹
題68
使用LCD1602顯示兩行任意可視字符,電路連接圖如下圖。
程序源碼:
RS BIT P2.0
RW BIT P2.1
E BIT P2.2
ORG 0000H
MOV P0,#01H
ACALL ENABLE
MOV P0,#38H
ACALL ENABLE
MOV P0,#0FH
ACALL ENABLE
MOV P0,#06H
ACALL ENABLE
MOV P0,#80H
ACALL ENABLE
MOV DPTR,#TAB1
CALL WRITE1
MOV P0,#0C0H
CALL ENABLE
MOV DPTR,#TAB2
CALL WRITE1
SJMP $
ENABLE:
CLR RS
CLR RW
CLR E
ACALL DELAY
SETB E
RET
WRITE1:
MOV R7,#00H
L1:
MOV A,R7
MOVC A,@A+DPTR
CALL WRITE2
INC R7
CJNE R7,#10H,L1
RET
WRITE2:
MOV P0,A
SETB RS
CLR RW
CLR E
CALL DELAY
SETB E
RET
DELAY:
MOV R5,#250
DEL1:
MOV R4,#250
DEL2:
DJNZ R4,$
DJNZ R5,DEL1
RET
;Welcome to myBlog
TAB1: DB 57H,65H,6CH,63H,6FH,6DH,65H,74H,6FH,6DH,79H,42H,6CH,6FH,67H,4CH
;Like follow,collect
TAB2: DB 69H,6BH,65H,46H,6FH,6CH,6CH,6FH,77H,43H,6FH,6CH,6CH,65H,63H,74H
END
仿真圖:
題69
Count the number of “30H” out of 10 numbers starting from 50H, and store the result in the external RAM address 1111H.
程序源碼:
;統計從50H開始的10個數中“30H”的個數,並將結果存入外部RAM地址爲1111H中
RESULT EQU 1111H
SADDR EQU 50H
ORG 0000H
MOV 50H,#30H
MOV 51H,#30H
MOV 52H,#32H
MOV 53H,#30H
MOV 54H,#30H
MOV 55H,#40H
MOV 56H,#45H
MOV 57H,#30H
MOV 58H,#30H
MOV 59H,#0FFH
;FOR TESTING
MOV B,#00H
MOV R0,#SADDR
MOV R1,#11H
MOV R7,#0AH
LOOP:
MOV A,@R0
CJNE A,#30H,L1
INC B
L1:
INC R0
DJNZ R7,LOOP
XCH A,B
MOV P2,#11H
MOVX @R1,A
SJMP $
END
題70
設內部RAM40H和41H地址單元中存有任意數,編程對兩個單元進行加減運算,(40H爲被加數和被減數),然後分別用P0口顯示加法和P2口減法運算結果(P0、P2口分別接有8盞燈),P1.0和P1.1分別表示進位結果(有進位或借位點亮對應LED)
備註:理論轉化爲實踐
電路圖:
程序源碼:
ADDDAT EQU P0
SUBDAT EQU P2
FLAGADD BIT P1.0
FLAGSUB BIT P1.1
ORG 0000H
CLR C
SETB FLAGADD
SETB FLAGSUB
CLR A
MOV A,40H
ADDC A,41H
MOV ADDDAT,A
JC L3
L1:
MOV A,40H
SUBB A,41H
MOV SUBDAT,A
JC L2
AJMP HALT
L3:
CLR FLAGADD
CLR C
AJMP L1
L2:
CLR FLAGSUB
HALT:
SJMP $
END
仿真圖:當(40H)=51H,(41H)=66H時
仿真圖:當(40H)=0DDH,(41H)=52H時