lcd1602显示程序头文件

上传人:简****9 文档编号:94980930 上传时间:2019-08-14 格式:DOC 页数:5 大小:37KB
返回 下载 相关 举报
lcd1602显示程序头文件_第1页
第1页 / 共5页
lcd1602显示程序头文件_第2页
第2页 / 共5页
lcd1602显示程序头文件_第3页
第3页 / 共5页
lcd1602显示程序头文件_第4页
第4页 / 共5页
lcd1602显示程序头文件_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《lcd1602显示程序头文件》由会员分享,可在线阅读,更多相关《lcd1602显示程序头文件(5页珍藏版)》请在金锄头文库上搜索。

1、LCD1602显示程序头文件51单片机的Proteus实验本文转载自小波电子工作室。C语言源代码/*摘 要: LCD1602显示程序头文件,到时在主程序里包含这个头文件后,就可以直接调用里面的函数了版 本: V1.0完成日期: 2008.5.5作 者: ZHOUSFE*修改日期: 版 本: */i nclude delay.h#define uchar unsigned char#define uint unsigned int#define Port P0 /数据端口/*定义端口*/sbit Rs = P10;sbit Rw = P11;sbit En = P12;/*定义LCD控制字*/清

2、屏及光标归位#define LCD_CLEAR 0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回左上角/显示开关控制指令#define LCD_SCREEN_ON 0x0C /显示开#define LCD_SCREEN_OFF 0x08 /显示关 #define LCD_CURSOR_ON 0x0A /显示光标#define LCD_CURSOR_OFF 0x08 /无光标 #define LCD_C_FLASH_ON 0x09 /光标闪动#define LCD_C_FLASH_OFF 0x08 /光标不闪动/进入模式设置指令#define LCD_AC_UP 0

3、x06 /新数据后光标右移#define LCD_AC_DOWN 0x04 /新数据后光标左移#define LCD_S_MOVE_ON 0x05 / 画面可平移#define LCD_S_MOVE_OFF 0x04 /画面不可平移/设定显示屏或光标移动方向指令#define LCD_C_LEFT 0x10 /光标左移1格,且AC值减1#define LCD_C_RIGHT 0x11 /光标右移1格,且AC值加1#define LCD_CHAR_LEFT 0x18 /显示器上字符全部左移一格,但光标不动#define LCD_CHAR_RIGHT 0x1C /显示器上字符全部右移一格,但光标不

4、动uchar code number10=0123456789;/*所有函数声明*/void LCD_init(void); void LCD_wdata(uchar wdata);void LCD_wcommand(uchar lcd_cmd,busy_f);void LCD_gotoxy(uchar x,uchar y);void Disp_char(uchar *str);void Disp_number(unsigned int num);uchar Rstatus(void);uchar LCD_rdata(void);/*函数名称:LCD_wcommand()功能描述:LCD写指令

5、入口参数:uchar lcd_cmd:命令字,uchar busy_f:忙检测标志位返回值:无*/void LCD_wcommand(uchar lcd_cmd,busy_f) if (busy_f) Rstatus(); /不忙才执行下个程序Port = lcd_cmd;Rs = 0;Rw = 0; En = 0;En = 0;En = 1; /*函数名称:LCD_wdata()功能描述:LCD写数据入口参数:uchar wdata:所写数据返回值:无*/void LCD_wdata(uchar wdata) Rstatus(); Port = wdata;Rs = 1;Rw = 0;En

6、= 0; /若晶振速度太高可以在这后加小的延时En = 0; /延时En = 1;/*函数名称:LCD_rdata()功能描述:LCD读数据入口参数:无返回值:所读数据*/uchar LCD_rdata(void) Rs = 1; Rw = 1;En = 0;En = 0;En = 1;return Port;/*函数名称:Rstatus()功能描述:LCD读忙状态入口参数:无返回值:若忙,则等待,不忙则返回Port */uchar Rstatus(void) Port = 0xFF; Rs = 0;Rw = 1;En = 0;En = 0;En = 1;while (Port & 0x80)

7、; /检测忙信号,不忙则退出等待return(Port);/*函数名称:LCD_init()功能描述:LCD初始化入口参数:无返回值:无*/void LCD_init(void) Port = 0;LCD_wcommand(0x38,0); /三次显示模式设置,不检测忙信号delay_ms(3); LCD_wcommand(0x38,0);delay_ms(3); LCD_wcommand(0x38,0);delay_ms(3); LCD_wcommand(0x38,1); /显示模式设置(0X38双行(5*7),0X34单行(5*10),0X30单行(5*7);开始要求每次检测忙信号LCD_

8、wcommand(0x08,1); /关闭显示LCD_wcommand(0x01,1); /显示清屏LCD_wcommand(0x06,1); / 显示光标移动设置LCD_wcommand(0x0C,1); / 显示开及光标设置/*函数名称:LCD_gotoxy()功能描述:定位到(x,y)位置入口参数:x为行(01),y为列(015) 返回值:无*/void LCD_gotoxy(uchar x, uchar y) x &= 0x1; /限制x不能大于1,y不能大于15y &= 0xF; if(!x) LCD_wcommand(0x80|y,1);else LCD_wcommand(0xC0

9、|y,1);/*函数名称:Disp_char()功能描述:显示字符或字符串入口参数:字符或字符串返回值:无*/void Disp_char(uchar *str)while(*str!=0)LCD_wdata(*str);str+;/*函数名称:Disp_number()功能描述:显示四数字入口参数:num:显示的数字 n:数字位数返回值:无*/void Disp_number(uint num,uchar n) uchar a; /个位 uchar b; /十位uchar c; /百位uchar d; /千位/ uchar e; /万位switch(n)case 1:LCD_wdata(nu

10、m);break;case 2:b=num/10;a=num%10;LCD_wdata(numbera);LCD_wdata(numberb);break;case 3:c=num/100;b=num%100/10;a=num%10;LCD_wdata(numbera);LCD_wdata(numberb);LCD_wdata(numberc);break;case 4:d=num/1000;c=num%1000/100;b=num%1000%100/10;a=num%10;LCD_wdata(numbera);LCD_wdata(numberb);LCD_wdata(numberc);LCD_wda

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号