1602LCD的使用.doc_第1页
1602LCD的使用.doc_第2页
1602LCD的使用.doc_第3页
1602LCD的使用.doc_第4页
1602LCD的使用.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

载入中.载入中.载入中.日志更新载入中.最新评论载入中.留言板载入中.统计载入中.链接LCD1602(HD44780)汇编语言程序liu1234 发表于 2007-5-28 16:12:00 汇编语言我(刘玉宏写的),C51网上找的,汇编语言是4位数据宽度,c51是8位数据宽度;=;毕业设计;用RC振荡电路测量电阻R;振荡频率接到外部定时器T0;液晶显示采用JMC1602C-HD44780;键盘P2口独立式按键;C=1UF;R=200;RX=721500/F-100欧姆;RC振荡信号接T0(14)脚;按下key0(P20)键可以保持测量数据;作者:刘玉宏;=;HD44780 引脚连接;1 GND;2 VDD;3 V0-GND 对比度最亮;4 RS-P00 0写入指令,1写入数据;5 RW-GND 只写不读,各数据指令之间延时;6 EN-P01 下降沿写入指令;7 DB0;8 DB1;9 DB2;10 DB3;11 DB4-P04;12 DB5-P05;13 DB6-P06;14 DB7-P07;15 BL1;16 BL2;工作方式: 只写不读,中间延时,4位数据宽度;注:AT89S51使用12M晶振;作者:刘玉宏;=*/;-;LCD引脚定义LCM_RS EQU P0.0LCM_EN EQU P0.1LCM_DATA EQU P0F_INPUT_PIN EQU P1.1 ;频率输入脚LED EQU P3.4KEY0 EQU P2.0;作者:刘玉宏;.;变量定义RCAP_BUF0_H EQU 08HRCAP_BUF0_L EQU 09HRCAP_BUF1_H EQU 0AHRCAP_BUF1_L EQU 0BHFRQ_H EQU 0CHFRQ_L EQU 0DHDISBUF0 EQU 0EHDISBUF1 EQU 0FH;位定义FLAG EQU 20HRCAP_END_FG EQU FLAG.0RCAP_FULL_FG EQU FLAG.1CF_END_FG EQU FLAG.2;-T2CON DATA 0C8HRCAP2L DATA 0CAHRCAP2H DATA 0CBHTL2 DATA 0CCHTH2 DATA 0CDHTF2 BIT 0CFHEXF2 BIT 0CEHRCLK BIT 0CDHTCLK BIT 0CCHEXEN2 BIT 0CBHTR2 BIT 0CAHC_T2 BIT 0C9HCP_RL2 BIT 0C8H;作者:刘玉宏;以下是主程序开始 ORG 0000H AJMP START ;转主程序 ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH LJMP T1INT ORG 0023H RETI ORG 002BH RETI ;- ORG 0030HSTART: MOV SP,#60H;. CLR LCM_EN ;LCD_EN初始状态0 LCALL INIT_LCD ;初始化LCD MOV R5,#10 ;延时等待 LCALL DELAY ;. MOV A,#0 ;0行 MOV B,#0 ;0列 MOV DPTR,#TITLE ;字符串 LCALL LCD_PRN_STR ;显示字符串89c51 R TEST MOV A,#1 ;1行 MOV B,#0 ;0列 MOV DPTR,#R_INFO ;字符串 LCALL LCD_PRN_STR ;显示字符串 R= SJMP $;.;初始化LCD;功能设定指令;作者:刘玉宏; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /us ; 功能设定 0 0 0 0 1 DL N F X X 40 ;功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:; 位名 设置; DL 0=数据总线为4位 1=数据总线为8位; N 0=显示1行 1=显示2行; F 0=57点阵/每字符 1=510点阵/每字符;显示开关控制指令; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /us ;显示开关控制 0 0 0 0 0 0 1 D C B 40 ;功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下:; 位名 设置; D 0=显示功能关 1=显示功能开; C 0=无光标 1=有光标; B 0=光标闪烁 1=光标不闪烁;设定显示屏或光标移动方向指令; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /us ;设定显示屏或 0 0 0 0 0 1 S/C R/L X X 40 ;光标移动方向 ;功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:; S/C R/L 设定情况; 0 0 光标左移1格,且AC值减1; 0 1 光标右移1格,且AC值加1; 1 0 显示器上字符全部左移一格,但光标不动; 1 1 显示器上字符全部右移一格,但光标不动;清屏指令; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /ms ; 清屏 0 0 0 0 0 0 0 0 0 1 1.64 ;功能: 清除液晶显示器,即将DDRAM的内容全部填入空白的ASCII码20H; 光标归位,即将光标撤回液晶显示屏的左上方; 将地址计数器(AC)的值设为0。INIT_LCD: MOV LCM_DATA,#30H ;4位I/O初始化 LCALL EN ;写动作 MOV R5,#2 ;延时等待 LCALL DELAY ;作者:刘玉宏 MOV LCM_DATA,#30H ;4位I/O初始化 LCALL EN ;写动作 MOV R5,#2 ;延时等待 LCALL DELAY MOV LCM_DATA,#30H ;4位I/O初始化 LCALL EN ;写动作 MOV R5,#2 ;延时等待 LCALL DELAY ;作者:刘玉宏 MOV LCM_DATA,#20H ;4位I/O初始化 LCALL EN ;写动作 MOV R5,#2 ;延时等待 LCALL DELAY MOV A,#28H LCALL WCOM MOV R5,#1 ;延时等待;作者:刘玉宏 LCALL DELAY MOV A,#0CH LCALL WCOM MOV R5,#1 ;延时等待;作者:刘玉宏 LCALL DELAY MOV A,#01H ;显示清屏 LCALL WCOM MOV R5,#1 ;延时等待 LCALL DELAY RET;-;产生下降沿用于写命令;作者:刘玉宏EN: SETB LCM_EN LCALL DE CLR LCM_EN LCALL DE RET;-DE: MOV R7,#10 DJNZ R7,$ RET;-;写命令;参数传递A;作者:刘玉宏WCOM: PUSH B MOV B,A ;A暂存 ANL A,#0F0H ;清除低4位,保持LCD_EN为0 MOV LCM_DATA,A;写高4位 CLR LCM_RS ;写命令LCM_RS=0 LCALL EN ;写动作 MOV A,B ;取出保存的参数 RLC A RLC A RLC A RLC A ;4位方式先写高4位,再写低4位 ANL A,#0F0H ;清除低4位,保持LCD_EN为0 MOV LCM_DATA,A CLR LCM_RS ;写命令LCM_RS=0 LCALL EN ;写动作 POP B RET;作者:刘玉宏;-;-;写数据;参数传递AWDATA: PUSH B MOV B,A ;A暂存 ANL A,#0F0H ;清除低4位,保持LCD_EN为0 MOV LCM_DATA,A SETB LCM_RS ;写数据LCM_RS=1 LCALL EN ;写动作 MOV A,B ;取出保存的参数 RLC A RLC A RLC A RLC A ;4位方式先写高4位,再写低4位 ANL A,#0F0H ;清除低4位,保持LCD_EN为0 MOV LCM_DATA,A SETB LCM_RS ;写数据LCM_RS=1 LCALL EN ;写动作 POP B;作者:刘玉宏 RET;-;延时R5*10MSDELAY: MOV R6,#50D1: MOV R7,#100 DJNZ R7,$ DJNZ R6,D1 DJNZ R5,DELAY RET;-;在第0行指定位置显示字符;参数A显示字符的ascii码,B显示的位置LCDP0: PUSH ACC MOV A,B;设定DDRAM地址指令; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /us ;设定CGRAM 0 0 1 DDRAM的地址(7位) 40 ; 地址 ;功能:设定下一个要存入数据的CGRAM的地址。;DDRAM地址与显示位置的对应关系;作者:刘玉宏; ;00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH ; ;40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH ; ; ADD A,#80H ;第一行地址 LCALL WCOM POP ACC ;数据 LCALL WDATA RET;-;在第1行指定位置显示字符;参数A显示字符的ascii码,B显示的位置LCDP1: PUSH ACC MOV A,B;设定DDRAM地址指令; 指令编码 执行 ; 指令功能 时间 ; RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 /us ;设定CGRAM 0 0 1 DDRAM的地址(7位) 40 ; 地址 ;功能:设定下一个要存入数据的CGRAM的地址。;DDRAM地址与显示位置的对应关系; ;00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH ; ;40H 41H 42H 43H 44H 45H 46H 47H 48H 49H 4AH 4BH 4CH 4DH 4EH 4FH ; ; ADD A,#0C0H ;第二行地址 LCALL WCOM POP ACC ;数据 LCALL WDATA RET;-;在指定位置显示一行字符串(以0结尾),不检查是否超长,没有考虑空格覆盖以后的内容;参数A行,B列,DPTR字符串指针LCD_PRN_STR: CJNE A,#0,LINE2LINE1: MOV A,B ADD A,#80H ;第0行地址;作者:刘玉宏 LCALL WCOM LJMP FILLLINE2: MOV A,B ADD A,#0C0H ;第1行地址 LCALL WCOM LJMP FILLFILL: CLR A MOVC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论