免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录 二LCD.C液晶驱动程序#includeREG51F.h#includeintrins.h#includeUSEH1.h#includelcd.h#includeHZcode.hbit busy_bit=1;/函数声明=void nop(void);bit CheckBusy(void); /状态检查/写显示数据/dat:显示数据void WriteByte(uchar dat);/向LCD发送命令/command :命令SendCommandToLCD(uchar command);/函数定义=void nop(void) _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();/状态检查bit CheckBusy(void) uchar state=0; P1=0xFF;/空读操作 RW=1; DI=0; EN=1; state=P1; EN=0; P1=0xFF;/再读才有效 RW=1; DI=0; EN=1; state=P1; EN=0; busy_bit=(bit)(state7); return(busy_bit);/写显示数据/dat:显示数据void WriteByte(uchar dat) while(CheckBusy(); DI=1; RW=0; LCD_P=dat; EN=1; EN=0;/*-*/向LCD发送命令/command :命令SendCommandToLCD(uchar command) while(CheckBusy(); RW=0; DI=0; LCD_P=command; EN=1; EN=0;/*-*/设定行地址(页)-X 0-7void SetLine(uchar line) line &= 0x07; / 0=line=7 line |= 0xb8; /1011 1xxx SendCommandToLCD(line);/设定列地址-Y 0-63void SetColumn(uchar column) column &= 0x3f; / 0=column=63 column |= 0x40; /01xx xxxx SendCommandToLCD(column);/设定显示开始行-XXvoid SetStartLine(uchar startline) /0-63 /startline &= 0x07; startline |= 0xc0; /1100 0000 SendCommandToLCD(startline);/开关显示void SetOnOff(uchar onoff) onoff|=0x3e; /0011 111x SendCommandToLCD(onoff);/*-*/选择屏幕/screen: 0-全屏,1-左屏,2-右屏void SelectScreen(uchar screen) /显示器:负有效 CS1: 0-右; CS2: 0-左 switch(screen) case 0: CS1=0;/全屏 nop(); CS2=0; nop(); break; case 1: CS1=1;/左屏 nop(); CS2=0; nop(); break; case 2: CS1=0;/右屏 nop(); CS2=1; nop(); break; default: break; /*-*/清屏/screen: 0-全屏,1-左屏,2-右void ClearScreen(uchar screen) uchar i,j; SelectScreen(screen); for(i=0;i8;i+) SetLine(i); for(j=0;j128) return; if(column64) SelectScreen(1); /如果列数64则从第一屏上开始写 SetLine(lin); SetColumn(column); for(i=0;i8;i+) if(column+i64) WriteByte(*(address+i); else SelectScreen(2); SetLine(lin); SetColumn(column-64+i); WriteByte(*(address+i); else SelectScreen(2); /否则从第二屏上开始写 column-=64; /防止越界 SetLine(lin); SetColumn(column); for(i=0;i8;i+) if(column+i7 | column127)return; address = &HZcodenum0; Show8x8(lin,column,address); Show8x8(lin,column+8,address+8); Show8x8(lin+1,column,address+16); Show8x8(lin+1,column+8,address+24);/*-*/void InitLCD(void) /初始化LCD uchar i=2000; /延时 while(i-); SetOnOff(1); /开显示 ClearScreen(1);/清屏 ClearScreen(2); SetStartLine(0); /开始行:0/*-*/*-*/显示图片/lin:行(0-7), column: 列(0-127)/high:高度, width:宽度(要为8的倍数)/address : 图片区首地址void ShowPicture(uchar lin, uchar column, uchar high, uchar width, uchar *address) uchar i, j; /if(column128) return; if(column64) for(j=0;jhigh;j+=8) SelectScreen(1); /如果列数64则从第一屏上开始写 SetLine(lin); SetColumn(column); for(i=0;i127) break; if(column+i64) WriteByte(*(address+i); else SelectScreen(2); SetLine(lin); SetColumn(column-64+i); WriteByte(*(address+i); lin+=1; address+=width; else column-=64; /防止越界 for(j=0;jhigh;j+=8) SelectScreen(2); /否则从第二屏上开始写 SetLine(lin); SetColumn(column); for(i=0;i64) break
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 22838.15-2025卷烟和滤棒物理性能的测定第15部分:卷烟通风的测定定义和测量原理
- 2025年西双版纳州勐海县保安员招聘考试题库附答案解析
- 2025年流行音乐产业链拓展可行性研究报告及总结分析
- 2025年一级注册建筑师之建筑经济、施工与设计业务管理能力检测试卷B卷附答案
- 2025年二级注册建筑师之法律法规经济与施工通关考试题库带答案解析
- 2025年企业级云安全服务合同协议
- 2025年新能源汽车共享模式探索项目可行性研究报告及总结分析
- 2025年流行病监测与应对系统可行性研究报告及总结分析
- 在工程开发商解除合同(3篇)
- 2025年虚拟现实技术在医疗训练中的应用可行性研究报告及总结分析
- 2025年郑州水务集团有限公司招聘80人备考公基题库带答案解析
- 2025重症5c考试真题及答案
- 电商代运营合同协议2025年条款
- 国网南瑞集团考试真题
- GB/T 17144-2021石油产品残炭的测定微量法
- GA/T 1348-2017信息安全技术桌面云系统安全技术要求
- 厦门站350T履带吊拆装方案
- 《新闻摄影教程(第五版)》第五章 新闻摄影的主题、题材
- 2022年西部计划协议书
- 医院护理品管圈成果汇报提高24小时出入量准确率完整版本PPT易修改
- 廉洁风险防控手册
评论
0/150
提交评论