文档介绍:,0A3B2H,0CEBBH,0CEA2H,0BBFAH,H,0D1A7H,0CAB5H蚆DW0D1E9H,0CFB5H,0CDB3H,0D5FDH,0D4DAH,0D1DDH,0CABEH,0D6D0H羃HZ_ADRDB?;存放显示行起始端口地址莂艿DATAENDS膄螂codesegment蒂assumecs:code,ds:data蒆START:MOVAX,DATA袆MOVDS,AX蒁MOVDX,IO_ADDRESS薂ADDDX,3袇MOVAL,80H芄OUTDX,AL;8255初始化薄moval,0ffh蚁movdx,300H芈outdx,al肆CALLCLEAR;LCD清除芃;CALLFUNCUP;LCD功能设置螁LEABX,HZ_TAB虿MOVCH,2;显示第2行信息蒄CALLLCD_DISP肂LEABX,HZ_TAB螁MOVCH,3;显示第3行信息螆CALLLCD_DISP膆l1:jmpstart;l1袁袁CLEARPROC膇MOVAL,0CH蚃MOVDX,IO_ADDRESS袄OUTDX,AL;设置CLEAR命令羁CALLCMD_SETUP;启动LCD执行命令薇RET莅CLEARENDP蚂肁FUNCUPPROC羈;MOVAL,0fH;LCD功能设置命令螃;OUTDX,AL莁;CALLCMD_SETUP膁MOVAL,34H;LCD显示状态命令荿OUTDX,AL薅CALLCMD_SETUP蒄RET芁FUNCUPENDP薆芇LCD_DISPPROC膃LEABX,HZ_TAB芀CMPCH,2羇JZDISP_SEC蚅MOVBYTEPTRHZ_ADR,88H;第三行起始端口地址羂ADDBX,16;指向第二行信息莀JMPnext莈DISP_SEC:MOVBYTEPTRHZ_ADR,90H蒇next:movcl,8螁continue:pushcx蒀MOVAL,HZ_ADR蝿MOVDX,IO_ADDRESS袅OUTDX,AL螄CALLCMD_SETUP;设定DDRAM地址命令薀MOVAX,[BX]袆PUSHAX薆MOVAL,AH;先送汉字编码高位薃MOVDX,IO_ADDRESS蚀OUTDX,AL芆CALLDATA_SETUP;输出汉字编码高字节肄CALLDELAY;延迟莁POPAX螀MOVDX,IO_ADDRESS蚇OUTDX,AL螆CALLDATA_SETUP;输出汉字编码低字节莄CALLDELAY袀INCBX肈INCBX;修改显示内码缓冲区指针膄INCBYTEPTRHZ_ADR;L葿JNZCONTINUE羆RET袂LCD_DISPENDP罿蚆CMD_SETUPPROC莄MOVDX,IO_ADDRESS;指向8255端口控制端口蚁ADDDX,2聿NOP肇MOVAL,00000000B;PC1置0,pc0置0(LCDI端=0,W端=0)肆OUTDX,AL蚄calldelay腿NOP蒈MOVAL,00000100B;PC2置1(LCDE端=1)薄OUTDX,AL蒃NOP艿calldelay衿MOVAL,00000000B;PC2置0,(LCDE端置0)芅OUTDX,AL节calldelay荿芀RET螃CMD_SETUPENDP芄葿DATA_SETUPPROC莆MOVDX,IO_ADDRESS;指向8255控制端口蒅ADDDX,2肃MOVAL,00000001B;PC1置0,PC0=1(LCDI端=1)葿OUTDX,AL螇NOP膇calldelay螂MOVAL,00000101B;PC2置1(LCDE端=1)蕿OUTDX,AL膈NOP薅calldelay薁MOVAL,00000001B;PC2置0,(LCDE端=0)蚈OUTDX,AL袃NOP薁calldelay袈RET肂DATA_SETUPENDP羀聿DELAYPROC蚇pushcx膂pushdx莁MOVCX,0fffh螁x1:loopx1莆popdx蒆popcx螂RET艿DELAYENDP葿薆膃codeends羀endstart芈蚆薃莈羆螆/************************/蚀/*LCD汉字显示*/肀/************************/螅#include<>螆#include<>肁#include""薈#ment(lib,"")螈charlcd2[16]={0xa3,0xb3,0xa3,0xb2,0xce,0xbb,0xce,0xa2,0xbb,0xfa,0xbd,,0xd1,0xa7,0xca,0xb5};袅charlcd3[16]=