LCD1602-51单片机汇编程序.docVIP

  • 5
  • 0
  • 约2.42千字
  • 约 3页
  • 2020-12-17 发布于浙江
  • 举报
1602汇编程序,51单片机汇编程序,仅需修改引脚定义即可。晶振大小12M,程序测试完全正确。内部包含写数据、写命令(包括读忙和不读忙)、初始化等子函数。调用时先给LCD_DAT赋值,给出需要写入的数据或命令,然后调用。 ;端口引脚定义区 LCD_RS BIT P2.4 ;1602数据命令选择端口 LCD_RW BIT P2.5 ;1602读写选择端口 LCD_EN BIT P2.6 ;1602使能端口 LCD_DATA EQU P0 ;1602数据端口 ;变量声明区 ALL_FLAG EQU 20H ;标志位 LCD_FLAG EQU ALL_FLAG.7 ;1602读忙标志位 LCD_DAT EQU 30H ;1602数据命令字 DELAYED EQU 31H ;延时字 /***************************************** 1602读命令函数,高位存至LCD_LAG中 *****************************************/ LCD_R_DATA: MOV LCD_DATA,#0FFH LCD_BUSY: CLR LCD_RS SETB LCD_RW NOP SETB LCD_EN NOP MOV Acc,LCD_DATA MOV C,Acc.7 MOV LCD_FLAG,C CLR LCD_EN NOP JB LCD_FLAG,LCD_BUSY RET /***************************************** 1602写数据函数,数据存在LCD_DAT *****************************************/ LCD_W_DATA: LCALL LCD_R_DATA SETB LCD_RS CLR LCD_RW NOP MOV LCD_DATA,LCD_DAT SETB LCD_EN NOP CLR LCD_EN RET /***************************************** 1602写命令函数,命令存在LCD_DAT,检测忙信号 *****************************************/ LCD_W_CMD: LCALL LCD_R_DATA CLR LCD_RS CLR LCD_RW NOP MOV LCD_DATA,LCD_DAT SETB LCD_EN NOP CLR LCD_EN RET /***************************************** 1602写命令函数,命令存在LCD_DAT,不检测忙信号 *****************************************/ LCD_CMD: CLR LCD_RS CLR LCD_RW NOP MOV LCD_DATA,LCD_DAT SETB LCD_EN NOP CLR LCD_EN RET /***************************************** 1602初始化函数 *****************************************/ LCD_INIT: MOV DELAYED,#30 LCALL DELAY_MS MOV LCD_DAT,#38H LCALL LCD_CMD MOV DELAYED,#10 LCALL DELAY_MS MOV LCD_DAT,#38H LCALL LCD_CMD MOV DELAYED,#10 LCALL DELAY_MS MOV LCD_DAT,#38H LCALL LCD_CMD MOV DELAYED,#10 LCALL DELAY_MS MOV LCD_DAT,#038H LCALL LCD_W_CMD MOV LCD_DAT,#08H LCALL LCD_W_CMD MOV LCD_DAT,#01H LCALL LCD_W_CMD MOV LCD_DAT,#06H LCALL LCD_W_CMD MOV LCD_DAT,#0CH

文档评论(0)

1亿VIP精品文档

相关文档