⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd显示实验.txt

📁 用汇编语言实现LCD显示功能 采用的是TRULY公司的MSC-G12232DYEW-7N型号液晶显示器
💻 TXT
字号:
MASTERI     EQU  200H  ;左液晶的地址口
MASTERD     EQU  202H  ;左液晶的数据口
SLAVEI      EQU  210H  ;右液晶的地址口
SLAVED      EQU  212H  ;右液晶的数据口
EQU  0AFH   ;点亮LCD
LCDOFF      EQU  0AEH   ;灭LCD
STATICOFF   EQU  0A4H
STARTLINE   EQU  0C0H   ;0~31
STARTCOL    EQU  00H    ;0~79
STARTPAGE   EQU  0B8H   ;0~3
READMODIOFF EQU  0EEH
DUTY        EQU  0A9H
CODE        SEGMENT
ASSUME      CS:CODE,DS:CODE
START:
         PUSH   CS
         POP    DS   
         NOP                 
         NOP
         MOV    SI,4000H        ;临时存放液晶地址口的变量
         MOV    DI,4100H        ;临时存放液晶数据口的变量
         CALL   INITLCD         ;初始化LCD
         CALL   CLEARLCD        ;清LCD
         LEA    BX,CCTAB        ;置显示常数表起始位置
         MOV    [SI],MASTERI    ;写左液晶
         MOV    [DI],MASTERD
         MOV    AH,STARTCOL+29  ;置起始列
         MOV    CH,STARTPAGE    ;置起始页
         CALL   WRITEHZ         ;写“欢”字
         MOV    AH,STARTCOL+45
         MOV    CH,STARTPAGE
         CALL   WRITEHZ         ;写“迎”字
         MOV    [SI],SLAVEI
         MOV    [DI],SLAVED
         MOV    AH,STARTCOL
         MOV    CH,STARTPAGE
         CALL   WRITEHZ         ;写“使”字
         MOV    [SI],SLAVEI
         MOV    [DI],SLAVED
         MOV    AH,STARTCOL+16
         MOV    CH,STARTPAGE
         CALL   WRITEHZ         ;写“用”字
         MOV    [SI],MASTERI    ;在左液晶写"A"
         MOV    [DI],MASTERD
         MOV    AH,STARTCOL     
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+8   ;写"E"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+16  ;写"D"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+24  ;写"K"  
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+32  ;写"_"   
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+38  ;写"T"   
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+46  ;写"5"   
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+54  ;写"9"   
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    [SI],SLAVEI     ;在右液晶上显示
         MOV    [DI],SLAVED
         MOV    AH,STARTCOL     ;写"8"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEA
         MOV    AH,STARTCOL+8   ;写"实"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEHZ
         MOV    AH,STARTCOL+24  ;写"验"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEHZ
         MOV    AH,STARTCOL+40  ;写"仪"
         MOV    CH,STARTPAGE+2 
         CALL   WRITEHZ     
         JMP    $  
INITLCD  PROC   NEAR            ;初始化LCD子程序
         MOV    DX,MASTERI
         MOV    AL,LCDON
         OUT    DX,AL
         MOV    AL,STARTLINE
         OUT    DX,AL
         MOV    AL,STARTPAGE
         OUT    DX,AL
         MOV    DX,SLAVEI
         MOV    AL,LCDON
         OUT    DX,AL
         MOV    AL,STARTLINE
         OUT    DX,AL
         MOV    AL,STARTPAGE
         OUT    DX,AL
         RET
INITLCD  ENDP
CLEARLCD  PROC   NEAR    ;清零子程序   
          MOV    CH,02H  ;分别清除左右液晶
WRITE_M_S: 
          CALL   WRITELCDCMD1
          MOV    BL,00   ;分0-3页写
WRITEPAGE:
          CALL   WRITELCDCMD2
          MOV    BH,00   ;分61列写
WRITELINE:
          MOV    AL,STARTCOL
          CALL   WRITELCDDATA
          INC    BH
          CMP    BH,61                    
          JLE    WRITELINE
          INC    BL
          CMP    BL,04
          JL     WRITEPAGE
          DEC    CH
          CMP    CH,0
          JNE    WRITE_M_S
          RET
CLEARLCD  ENDP  
WRITELCDCMD1   PROC   NEAR   
          CMP   CH,01
          JNE   MASTER1
          MOV   DX,SLAVEI
          CALL  AA
          JMP   EXIT1
MASTER1:
          MOV   DX,MASTERI
          CALL  AA   
EXIT1:    RET                
WRITELCDCMD1  ENDP      
AA        PROC   NEAR
          MOV    AL,STARTPAGE
          OUT    DX,AL
          MOV    AL,STARTLINE
          OUT    DX,AL
          RET
AA        ENDP    
WRITELCDCMD2  PROC NEAR
          CMP    BL,00
          JNE    LL1
          MOV    AL,STARTPAGE
          OUT    DX,AL
          JMP    EXIT2
LL1:
          CMP    BL,01
          JNE    LL2
          MOV    AL,0B9H
          OUT    DX,AL
          JMP    EXIT2
LL2:
          CMP    BL,02
          JNE    LL3
          MOV    AL,0BAH
          OUT    DX,AL
          JMP    EXIT2
LL3:
          MOV    AL,0BBH
          OUT    DX,AL
EXIT2:
          RET
WRITELCDCMD2 ENDP      
WRITELCDDATA     PROC   NEAR  
          ADD    AL,BH
          OUT    DX,AL
          INC    DX
          INC    DX
          MOV    AL,00
          OUT    DX,AL
          DEC    DX
          DEC    DX
          RET
WRITELCDDATA  ENDP        
WRITEHZ     PROC   NEAR        ;写16*16点阵汉字子程序
		  MOV    DX,[SI]
		  MOV    AL,AH
          OUT    DX,AL
          MOV    AL,ch
          OUT    DX,AL       
          MOV    CL,16
          CALL   TEMP
          MOV    AL,ah
          OUT    DX,AL
          INC    CH
          MOV    AL,CH
          OUT    DX,AL
          MOV    CL,16          
          CALL   TEMP
          RET          
WRITEHZ  ENDP  
WRITEA     PROC   NEAR         ;写8*16点阵字符子程序
		  MOV    DX,[SI]
		  MOV    AL,AH
          OUT    DX,AL
          MOV    AL,ch
          OUT    DX,AL       
          MOV    CL,8
          CALL   TEMP
          MOV    AL,ah
          OUT    DX,AL
          INC    CH
          MOV    AL,CH
          OUT    DX,AL
          MOV    CL,8       
          CALL   TEMP
          RET          
WRITEA  ENDP  
TEMP      PROC   NEAR
 T_S:     MOV    AL,0          
          XLAT
          PUSH   DX
          CALL   DISP
          POP    DX
          INC    BX
          DEC    CL
          CMP    CL,0
          JNE    T_S    
          RET
TEMP  ENDP 
DISP      PROC  NEAR
		  MOV   DX,[DI]
 		  OUT   DX,AL
 		  RET
DISP  ENDP 		           
CCTAB:
        DB  004H,034H,0C4H,004H,0C4H,03CH,020H,010H,00FH,0E8H,008H,008H,028H,018H,000H,000H;欢
		DB  010H,008H,006H,001H,082H,08CH,040H,030H,00CH,003H,00CH,010H,060H,0C0H,040H,000H
		DB  040H,042H,044H,0C8H,000H,0FCH,004H,002H,002H,0FCH,004H,004H,004H,0FEH,004H,000H;迎
		DB  000H,040H,020H,01FH,020H,047H,042H,041H,040H,07FH,040H,042H,044H,063H,020H,000H  
        DB  040H,020H,0F0H,01CH,007H,0F2H,094H,094H,094H,0FFH,094H,094H,094H,0F4H,004H,000H;使
        DB  000H,000H,07FH,000H,040H,041H,022H,014H,00CH,013H,010H,030H,020H,061H,020H,000H
        DB  000H,000H,000H,0FEH,022H,022H,022H,022H,0FEH,022H,022H,022H,022H,0FEH,000H,000H;用
        DB  080H,040H,030H,00FH,002H,002H,002H,002H,0FFH,002H,002H,042H,082H,07FH,000H,000H
	    DB  000H,000H,0C0H,038H,0E0H,000H,000H,000H,020H,03CH,023H,002H,002H,027H,038H,020H;A
	    DB  008H,0F8H,088H,088H,0E8H,008H,010H,000H,020H,03FH,020H,020H,023H,020H,018H,000H;E	    
	    DB  008H,0F8H,008H,008H,008H,010H,0E0H,000H,020H,03FH,020H,020H,020H,010H,00FH,000H;D	    
        DB  008H,0F8H,088H,0C0H,028H,018H,008H,000H,020H,03FH,020H,001H,026H,038H,020H,000H;K
        DB  000H,000H,000H,000H,000H,000H,000H,000H,080H,080H,080H,080H,080H,080H,080H,080H;_
	    DB  018H,008H,008H,0F8H,008H,008H,018H,000H,000H,000H,020H,03FH,020H,000H,000H,000H;T
	    DB  000H,0F8H,008H,088H,088H,008H,008H,000H,000H,019H,021H,020H,020H,011H,00EH,000H;5
        DB  000H,0E0H,010H,008H,008H,010H,0E0H,000H,000H,000H,031H,022H,022H,011H,00FH,000H;9
        DB  000H,070H,088H,008H,008H,088H,070H,000H,000H,01CH,022H,021H,021H,022H,01CH,000H;8
        DB  000H,010H,00CH,004H,04CH,0B4H,094H,005H,0F6H,004H,004H,004H,014H,00CH,004H,000H;实
        DB  000H,082H,082H,042H,042H,023H,012H,00AH,007H,00AH,012H,0E2H,042H,002H,002H,000H
        DB  002H,0FAH,082H,082H,0FEH,080H,040H,060H,058H,046H,048H,050H,020H,020H,020H,000H;验
        DB  008H,008H,004H,024H,040H,03FH,022H,02CH,021H,02EH,020H,030H,02CH,023H,020H,000H
        DB  040H,020H,0F0H,00CH,003H,000H,038H,0C0H,001H,00EH,004H,0E0H,01CH,000H,000H,000H;仪
        DB  000H,000H,0FFH,000H,040H,040H,020H,010H,00BH,004H,00BH,010H,020H,060H,020H,000H
      
CODE  ENDS
END      START       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -