




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/* * *Module:lcd1602_drv.h *Function:lcd1602显示屏驱动程序和中间接口 *Author:槐之林 * *Version: 2016-05-29 * */#ifndef _lcd1602_drv_h_#define _lcd1602_drv_h_#ifndef NULL #define NULL (void *) 0L)#endiftypedef unsigned char uchar;typedef unsigned int uint;/LCD1602显示IO#define LCD_DATA P0sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EP = P22;#include app_common.h#define LCD_CLEAR 1#define LCD_NORMER 2#define LCD_CURSOR_BLINK 3/对外接口bit Lcd_bz(); /忙时判断,1表示忙void Lcd_cmd(uchar cmd); /写指令 void Lcd_ctrl(uchar L, uchar C, uchar CC);/控制函数void Lcd_pos(uchar x,uchar y); /定位void Lcd_ch(uchar ch); /写数据,单个字符并显示void Lcd_str(uchar *str, uint len); /写入字符串并显示(用到Lcd_ch()函数)void Lcd_num(int num); /显示整数void Lcd_init();void Lcd_flo(float s,uint n); /浮点显示,n=8; #endif/* * *Module:lcd1602_drv.c *Function:lcd1602显示屏驱动程序和中间接口 *Author:槐之林 * *Version: 2016-05-29 * */#include #include #include #include lcd1602_drv.h/*函数名: bit Lcd_bz()功能 : 测试是否为忙时,返回1为忙,0为闲说明 : */bit Lcd_bz() /判是否为忙时bit result;LCD_RS=0;LCD_RW=1;LCD_EP=1;delay_us(5);result=(bit)(LCD_DATA&0x80);LCD_EP=0;return result;/*函数名: void Lcd_cmd(uchar cmd)功能 : 写指令:cmd说明 : 指令库: 清屏函数: 0X01; 1.64ms 光标归位: 0X02; 1.64ms 模式设置: DB2=1 DB1=I/D DB0=S; I/D=0-写入数据后,光标左移; I/D=1-写入数据后,光标右移; S=0-写入数据后,显示屏不移动; S=1-写入数据后,显示屏右移1; 显示开关控制: DB3=1 DB2=D DB1=C DB0=B; D=0 显示功能关 D=1 显示功能开 C=0 无光标 C=1 有光标 B=0 光标无闪烁 B=1 光标闪烁 设置光标/屏移动方向指令: DB4=1 DB3=S/C DB2=R/L DB1=x DB0=x; S/C R/L 对应指令 0 0 光标左移一格,AC减一 0 1 光标右移一格,AC加一 1 0 显示器上所有字符左移一格,光标不动 1 1 显示器上所有字符右移一格,光标不动 功能设置: 0X38 16*2显示,5*7点阵,8位数据*/void Lcd_cmd(uchar cmd)while(Lcd_bz();LCD_RS=0;LCD_RW=0; LCD_EP=0;delay_us(5);LCD_DATA=cmd;delay_us(5);LCD_EP=1;delay_us(5);LCD_EP=0; delay_us(5);/控制函数,比如清屏/L/C表示行/列(12)/(116)/CC表示控制指令,指令在.h文件中定义/有些指令没有用于参数C和L,可以赋值为0void Lcd_ctrl(uchar L, uchar C, uchar CC)switch(CC)case LCD_CLEAR:Lcd_cmd(0x01);delay_ms(3);break;case LCD_CURSOR_BLINK:Lcd_pos(L, C);Lcd_cmd(0x0F);break;case LCD_NORMER:Lcd_cmd(0x0C);Lcd_cmd(0x06);Lcd_cmd(0x01);break;default: break;/*函数名: void Lcd_pos(uchar pos)功能 : 定位说明 : x表示第x行(116) y表示第y列(12)*/void Lcd_pos(uchar x,uchar y) y=y-1; if (x=1) Lcd_cmd(0x80+y);/表示第一行,位置y处 else if(x=2) Lcd_cmd(0x80 + 0x40 + y);/表示第二行,位置y处 /*函数名:void Lcd_dat(uchar dat)功能 :写数据,显示单个字符说明 :直接写入单个字符,如c*/void Lcd_ch(uchar ch)while(Lcd_bz();LCD_RS=1;LCD_RW=0; LCD_EP=0;LCD_DATA=ch;delay_us(5);LCD_EP=1;delay_us(5);LCD_EP=0; delay_ms(1); /必须有/*函数名:void Lcd_str(uchar *str, uint len)功能 :写数据,显示字符串说明 :str 为字符串首地址,左对齐 , len字串长度*/void Lcd_str(uchar *str,uint len)uint i=0;uchar *s=str;while(len0)Lcd_ch(*(s+i);i+;len-;/*函数名:void Lcd_num(int num)功能 :写数据,显示正整数,从右往左,低位到高位显示,注意定位时应在最左边开始说明 :num 显示数字, DIS_MAX_LEN 显示最大长度,负号-也表示一位*/#define DIS_MAX_LEN 6void Lcd_num(int num)uchar i, dat_bufDIS_MAX_LEN = 0x00;if(num 0)dat_bufi = (num%10)+0;num = num/10;i = i-1;i = 1;while(dat_bufi = 0)i+;if(dat_buf0 = -)dat_bufi-1 = -;i = i-1;Lcd_str(dat_buf+i, DIS_MAX_LEN-i);/*函数名:void Lcd_flo2(float s,uint n)功能:浮点数显示说明:严格按有效位 n显示,n=8*/void Lcd_flo(float s,uint n) uint i=0,k=0;if(s0) Lcd_ch(-); s=-1*s;/判断正负do /获得整数位位数 i s=s/10; i+;while(uint)s!=0);for(k=0;kk) s=s*10; Lcd_ch(uint)s+0);s=s-(uint)s;elseif(i=n) Lcd_ch(0x20);else Lcd_ch(.); i=99; /只要保证ik 执行上面的if() 语句/*函数名:void Lcd_init()功能 :初始化说明 :无*/voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国开形成性考核《人体解剖生理学》形考任务(2)试题及答案
- 2025年护理学教育试题及答案
- 井下采矿工适应性考核试卷及答案
- 2025年初级会计职称理论考试170题(含答案)
- 2025年必考的主管护师试题及答案
- 会计英语案例试题及答案
- 制冷工协作考核试卷及答案
- 电极丝制造工基础考核试卷及答案
- 陶瓷压制成型工入职考核试卷及答案
- 2025年自然领域常识题库及答案
- ISO 22000-2018食品质量管理体系-食品链中各类组织的要求(2023-雷泽佳译)
- 卡巴斯基应急响应指南
- 理财规划大赛优秀作品范例(一)
- 2023年四川能投筠连电力招聘笔试参考题库附带答案详解
- 护理管理组织结构与设计
- 静配中心清洁消毒考核试题
- 一级烟草专卖管理师理论考试题库(含答案)
- 小学数学《分数除法》50道应用题包含答案
- 碳捕集、利用与封存技术课件
- 化工试生产总结报告
- 复句与单句的辨析课件
评论
0/150
提交评论