標(biāo)題: 51匯編 1602液晶顯示 [打印本頁(yè)]

作者: 電子愛(ài)好者life    時(shí)間: 2015-5-31 11:12
標(biāo)題: 51匯編 1602液晶顯示
ORG 0000H
LJMP MAIN
ORG 0010H
    RS BIT P2.0
    RW BIT P2.1
    EN BIT P2.2
MAIN: ;主函數(shù)
     LCALL INIT ;初始化
  B1:MOV R3,#00H
     MOV R4,#00H
     MOV R0,#80H
     LCALL WRITE_COM
  B2:MOV DPTR,#TABLE0
     MOV A,R3
     MOVC A,@A+DPTR
     MOV R1,A
     LCALL WRITE_DATE
     ;延時(shí)5毫秒
     MOV R2,#05H
  A5:LCALL DELAY_MS
     DJNZ R2,A5
     INC R3
     CJNE R3,#09H,B2  ;TABLE0中只有9個(gè)字符
  B3:MOV R0,#0C0H
     LCALL WRITE_COM
  B4:MOV DPTR,#TABLE1
     MOV A,R4
     MOVC A,@A+DPTR
     MOV R1,A
     LCALL WRITE_DATE
     ;延時(shí)5毫秒
     MOV R2,#05H
  A6:LCALL DELAY_MS
     DJNZ R2,A6
     INC R4           ;r4++
     CJNE R4,#10H,B4  ;TABLE1中有16個(gè)字符
     SJMP B1
;1602寫(xiě)命令
WRITE_COM:
          CLR RS
          CLR RW
          CLR EN
          MOV P0,R0
          MOV R2,#05H
      A1: LCALL DELAY_MS
          DJNZ R2,A1
          SETB EN
          MOV R2,#05H
      A2: LCALL DELAY_MS
          DJNZ R2,A2
          CLR EN
          RET
;1602寫(xiě)數(shù)據(jù)
WRITE_DATE:
           SETB RS
           CLR RW
           CLR EN
           MOV P0,R1
           MOV R2,#05H
       A3: LCALL DELAY_MS
           DJNZ R2,A1
           SETB EN
           MOV R2,#05H
       A4: LCALL DELAY_MS
           DJNZ R2,A2
           CLR EN
           RET
;1602初始化
INIT:
     CLR EN
     MOV R0,#38H
     LCALL WRITE_COM
     MOV R0,#0CH
     LCALL WRITE_COM
     MOV R0,#06H
     LCALL WRITE_COM
     MOV R0,#01H
     LCALL WRITE_COM
     RET

;/**************************************************************
;函數(shù)名稱:DELAY_MS
;函數(shù)功能:1毫秒延時(shí)
;**************************************************************/
DELAY_MS:
         MOV R7,#1
     D3: MOV R6,#250
     D4: NOP
         NOP
         DJNZ R6,D4
         DJNZ R7,D3
         RET

TABLE0:DB "12345678:"
TABLE1:DB "87654321"
END



作者: amchina    時(shí)間: 2015-5-31 23:48
感謝樓主,用心了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1