单片机,LCD.C液晶驱动程序.docx

上传人:sk****8 文档编号:4215724 上传时间:2019-10-05 格式:DOCX 页数:10 大小:15.98KB
下载 相关 举报
单片机,LCD.C液晶驱动程序.docx_第1页
第1页 / 共10页
单片机,LCD.C液晶驱动程序.docx_第2页
第2页 / 共10页
单片机,LCD.C液晶驱动程序.docx_第3页
第3页 / 共10页
单片机,LCD.C液晶驱动程序.docx_第4页
第4页 / 共10页
单片机,LCD.C液晶驱动程序.docx_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、附录 二 LCD.C液晶驱动程序 #include“REG51F.h“ #include“intrins.h“ #include“USEH1.h“ #include“lcd.h“ #include“HZcode.h“ bit busy_bit=1; /函数声明= void nop(void); bit CheckBusy(void); /状态检查 /写显示数据 /dat:显示数据 void WriteByte(uchar dat); /向 LCD发送命令 /command :命令 SendCommandToLCD(uchar command); /函数定义= void nop(void) _n

2、op_(); _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 W

3、riteByte(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-7 void SetLine(uchar line) line / 0127)return; address = Show8x8(lin,column,address);

4、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:高度,

5、 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) WriteByt

6、e(*(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; if(column+i64) WriteByte(*(address+i); else SelectScreen(1); SetLine(lin); SetColumn(column-64+i); WriteByte(*(address+i); lin+=1; address+=width;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 自然科学

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。