




已阅读5页,还剩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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新时代下的医院管理模式探索医防融合
- 智能调度决策支持-第2篇-洞察及研究
- 云南交通运输职业学院《现代食品营养学》2023-2024学年第一学期期末试卷
- 风险协同管控机制-洞察及研究
- 安徽国际商务职业学院《中日语言对比》2023-2024学年第一学期期末试卷
- 重庆邮电大学《色彩学》2023-2024学年第一学期期末试卷
- 安徽汽车职业技术学院《商务体育(1)》2023-2024学年第一学期期末试卷
- 2025年制造业数字化转型背景下数据治理策略与实践分析报告
- 2025年制造业节能减排技术与政策分析报告
- 2025年制造业供应链数字化协同管理对产业链协同效应的实证研究报告
- 2025年全国统一高考数学试卷(全国一卷)含答案
- (高清版)DZT 0432-2023 煤炭与煤层气矿产综合勘查规范
- 画册设计制作报价单
- DBJ∕T13-354-2021 既有房屋结构安全隐患排查技术标准
- 铁路危险货物运输及货物安检查危技术业务考核题库
- 某市印染纺织公司清洁生产审核报告全文
- 维修电工高级技师论文(6篇推荐范文)
- 人民币教具正反面完美打印版
- 人力资源服务收费标准
- 黄自元楷书间架结构九十二法
- 小学年级组长工作总结二年级
评论
0/150
提交评论