<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          128X64 LCD接口51匯編程序

          作者: 時間:2012-10-16 來源:網(wǎng)絡(luò) 收藏

          ; 12864接口程序(MCS51模擬口線方式)
          ;**************************************************
          ;連線圖: *LCM---8031* *LCM---8031* *LCM------------8031* *LCM----------8031*
          ; *DB0---P1.0* *DB4---P1.4* *RS-------------P3.0* *CS1----------P3.4*
          ; *DB1---P1.1* *DB5---P1.5* *RW-------------P3.1* *CS2----------P3.5*
          ; *DB2---P1.2* *DB6---P1.6* *E--------------P3.3
          ; *DB3---P1.3* *DB7---P1.7* */RST-----------VDD (詳見說明書)
          ;注:8031的晶振頻率為12MHz
          ;2005年9月 馬良 測試通過 歡迎大家討論 QQ:8297327 13087664858
          ;*****************************************************
          XPOS EQU 20H ;列方向地址指針(用于LCDPOS子程序)
          YPOS EQU 21H ;行方向地址指針(用于LCDPOS子程序)
          RSPIN EQU P3.0
          RWPIN EQU P3.1 ;
          EPIN EQU P3.3 ;
          CS1PIN EQU P3.4 ;
          CS2PIN EQU P3.5 ;
          ORG 0000H
          JMP START
          START: MOV SP,#60H
          MAIN:
          CALL LCDRESET
          MOV A,#55H
          CALL LCDFILL
          MOV DPTR,#STRING1
          CALL PUTSTR
          CALL PUTSTR
          JMP MAIN
          DELAY400MS:
          MOV R0,#20 ;延時子程序(400MS)
          DL4_PA: MOV R1,#100
          DL4_PB: MOV R2,#100
          DJNZ R2,$
          DJNZ R1,DL4_PB
          DJNZ R0,DL4_PA
          RET
          DELAY:
          MOV R6,#2
          DLY_PA: MOV R5,#0
          DLY_PB: MOV R4,#0
          DJNZ R4,$
          DJNZ R5,DLY_PB
          DJNZ R6,DLY_PA
          RET
          GETSTRCHAR:
          GSC_PA:
          CLR A
          MOVC A,@A+DPTR
          INC DPTR
          MOV B,A
          INC A
          CLR C
          JZ GSC_LAX
          CLR A
          MOVC A,@A+DPTR
          INC DPTR
          SETB C
          GSC_LAX:
          RET
          PUTSTR:
          CALL DELAY
          CALL GETSTRCHAR
          PUSH DPL
          PUSH DPH
          JNC PSR_LAX
          JNB B.7,PSR_LBY
          ;CHINESE:
          CALL HZKPOS
          CALL PUTCHARDOT
          CALL PUTCHARDOT
          JMP PSR_LBX
          PSR_LBY:
          ;ENGLISH:
          CALL HZKPOS
          CALL PUTCHARDOT
          PSR_LBX:
          POP DPH
          POP DPL
          JMP PUTSTR
          PSR_LAX:POP DPH
          POP DPL
          RET
          PUTCHARDOT:
          MOV R7,#8
          PAC_PA:
          CLR A
          MOVC A,@A+DPTR
          CALL LCDWRITE
          INC YPOS
          INC DPTR
          CLR A
          MOVC A,@A+DPTR
          CALL LCDWRITE
          DEC YPOS
          INC DPTR
          CALL CUSORNEXT
          MOV A,XPOS
          JNZ PAC_LAX
          INC YPOS
          PAC_LAX:
          DJNZ R7,PAC_PA
          RET
          HZKPOS:
          MOV R2,#5
          HTP_PA:
          CLR C
          RLC A
          XCH A,B
          RLC A
          XCH A,B
          DJNZ R2,HTP_PA

          MOV DPTR,#HZKDOT
          ADD A,DPL
          MOV DPL,A
          MOV A,B
          ADDC A,DPH
          MOV DPH,A
          RET
          LCDFILL: ;LCD整屏顯示A的內(nèi)容
          MOV R7,A
          MOV YPOS,#0
          LFL_PB: MOV XPOS,#0
          LFL_PA: MOV A,R7
          CALL LCDWRITE ;定位并寫數(shù)據(jù)
          CALL CUSORNEXT
          MOV A,XPOS
          JNZ LFL_PA ;XPOS128則循環(huán)(128列)
          MOV A,YPOS
          JNZ LFL_PB ;YPOS8則循環(huán)(8頁)
          RET
          LCDWRITE: ;定位并寫數(shù)據(jù)子程序
          CALL LCDPOS ;內(nèi)部寫數(shù)指針定位
          CALL LCDWD ;寫數(shù)據(jù)
          RET
          CUSORNEXT:
          ANL YPOS,#7
          INC XPOS
          MOV A,XPOS
          JNB ACC.7,CNT_LAX
          MOV XPOS,#0
          INC YPOS
          MOV A,YPOS
          ANL A,#0F8H
          JZ CNT_LAX
          MOV YPOS,#0
          CNT_LAX:
          RET
          LCDPOS: ;內(nèi)部寫數(shù)指針定位子程序
          PUSH ACC
          MOV A,XPOS
          JB ACC.6,LPS_LAY
          MOV A,YPOS ;XPOS列方向小于64則對CS1操作
          ANL A,#07H
          ADD A,#0B8H
          CALL LCDWC1 ;設(shè)頁碼
          MOV A,XPOS
          ANL A,#3FH
          ORL A,#40H
          CALL LCDWC1 ;設(shè)列碼
          JMP LPS_LAX
          LPS_LAY:MOV A,YPOS ;XPOS列方向大于等于64則對CS2操作
          ANL A,#07H
          ADD A,#0B8H
          CALL LCDWC2 ;設(shè)頁碼
          MOV A,XPOS
          ANL A,#3FH
          ORL A,#40H
          CALL LCDWC2 ;設(shè)列碼
          LPS_LAX:POP ACC
          RET
          LCDWD: ;送數(shù)據(jù)子程序
          MOV B,A
          MOV A,XPOS
          JB ACC.6,LWD_LAY
          MOV A,B ;XPOS列方向小于64則對CS1操作
          CALL LCDWD1
          JMP LWD_LAX
          LWD_LAY:MOV A,B ;XPOS列方向大于等于64則對CS2操作
          CALL LCDWD2
          LWD_LAX:
          RET
          LCDRESET: ;LCD控制器復(fù)位
          MOV A,#3FH ;打開LCD顯示
          CALL LCDWC1
          CALL LCDWC2
          MOV A,#0C0H ;設(shè)顯示起始行
          CALL LCDWC1
          CALL LCDWC2
          RET
          LCDWC1: ;送片1控制字子程序
          CALL WAITIDLE1
          MOV P1,A
          CLR RSPIN ;RS=0 RW=0 CS1=1 E=高脈沖
          CLR RWPIN
          SETB CS1PIN
          SETB EPIN
          NOP
          CLR EPIN
          CLR CS1PIN
          RET
          LCDWC2: ;送片2控制字子程序
          CALL WAITIDLE2
          MOV P1,A
          CLR RSPIN ;RS=0 RW=0 CS2=1 E=高脈沖
          CLR RWPIN
          SETB CS2PIN
          SETB EPIN
          NOP
          CLR EPIN
          CLR CS2PIN
          RET
          LCDWD1: ;片1寫數(shù)據(jù)子程序
          CALL WAITIDLE1
          MOV P1,A
          SETB RSPIN ;RS=1 RW=0 CS1=1 E=高脈沖
          CLR RWPIN
          SETB CS1PIN
          SETB EPIN
          NOP
          CLR EPIN
          CLR CS1PIN
          RET
          LCDWD2: ;片2寫數(shù)據(jù)子程序
          CALL WAITIDLE2
          MOV P1,A
          SETB RSPIN ;RS=1 RW=0 CS2=1 E=高脈沖
          CLR RWPIN
          SETB CS2PIN
          SETB EPIN
          NOP
          CLR EPIN
          CLR CS2PIN
          RET
          LCDRD1: ;片1讀數(shù)據(jù)子程序
          CALL WAITIDLE1
          MOV P1,#0FFH
          SETB RSPIN ;RS=1 RW=1 CS1=1 E=高電平
          SETB RWPIN
          SETB CS1PIN
          SETB EPIN
          NOP
          MOV A,P1
          CLR EPIN
          CLR CS1PIN
          RET
          LCDRD2: ;片2讀數(shù)據(jù)子程序
          CALL WAITIDLE2
          MOV P1,#0FFH
          SETB RSPIN ;RS=1 RW=1 CS1=2 E=高電平
          SETB RWPIN
          SETB CS2PIN
          SETB EPIN
          NOP
          MOV A,P1
          CLR EPIN
          CLR CS2PIN
          RET
          WAITIDLE1:
          MOV P1,#0FFH
          CLR RSPIN ;RS=0 RW=1 CS1=1 E=高電平
          SETB RWPIN
          SETB CS1PIN
          SETB EPIN
          WT1_PA: NOP
          JB P1.7,WT1_PA
          CLR EPIN
          CLR CS1PIN
          RET
          WAITIDLE2:
          CLR RSPIN ;RS=0 RW=1 CS2=1 E=高電平
          SETB RWPIN
          SETB CS2PIN
          SETB EPIN
          WT2_PA: NOP
          JB P1.7,WT2_PA
          CLR EPIN
          CLR CS2PIN
          RET
          HZKDOT:
          ;(d3d0H)(有)(8000)
          DB 04H, 04H, 04H, 02H, 04H, 01H, 84H, 00H
          DB 0e4H,0ffH, 3cH, 09H, 27H, 09H, 24H, 09H
          DB 24H, 09H, 24H, 49H, 24H, 89H,0f4H, 7fH
          DB 24H, 00H, 06H, 00H, 04H, 00H, 00H, 00H
          ;(cfdeH)(限)(8001)
          DB 00H, 00H,0feH,0ffH, 02H, 08H, 22H, 10H
          DB 0daH, 08H, 06H, 07H, 00H, 00H,0feH,0ffH
          DB 92H, 42H, 92H, 24H, 92H, 08H, 92H, 14H
          DB 0ffH, 22H, 02H, 61H, 00H, 20H, 00H, 00H
          ;(b9abH)(公)(8002)
          DB 00H, 01H, 00H, 01H, 80H, 00H, 40H, 30H
          DB 30H, 28H, 0cH, 24H, 00H, 23H,0c0H, 20H
          DB 06H, 20H, 18H, 28H, 20H, 30H, 40H, 60H
          DB 80H, 00H, 80H, 01H, 80H, 00H, 00H, 00H
          ;(cbbeH)(司)(8003)
          DB 10H, 00H, 10H, 00H, 92H, 3fH, 92H, 10H
          DB 92H, 10H, 92H, 10H, 92H, 10H, 92H, 10H
          DB 0d2H, 3fH, 9aH, 00H, 12H, 40H, 02H, 80H
          DB 0ffH, 7fH, 02H, 00H, 00H, 00H, 00H, 00H
          STRING1: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH
          STRING2: DB 80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,80H, 00H, 80H, 01H, 80H, 02H, 80H, 03H,0ffH
          END



          關(guān)鍵詞: 128X64 LCD接口 51匯編程序

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();