12864串口驱动程序(郭天祥)_第1页
12864串口驱动程序(郭天祥)_第2页
12864串口驱动程序(郭天祥)_第3页
12864串口驱动程序(郭天祥)_第4页
12864串口驱动程序(郭天祥)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、'*标题PIC-ST2学习板演示程序文件名LCD12864-1建立日期2010.01.28修改日期2010.05.15版本V1.0作者simomli*-12864LCD-1*功能描述:LCD12864C液晶串口方式显示字符,只用到三根数据线*【版权】Copyright(C) 2009-2019 All Rights Reserved*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!*/#i nclude <pic1687x.h>#in clude <htc.h>#i nclude <pic.h>#defi ne uint8 un sig n

2、ed char#defi ne uin t16 un sig ned int#defi ne readbusy 0xFC/ 读忙指令#defi ne readdata 0xFE读数据指令#defi ne writecom0xF8/ 写命令指令#defi ne writedata 0xFA写数据指令_CONFIG(WDTDIS & LVPDIS & HS & PWRTDIS & BORDIS);/设置配置位WDTDIS:disable watchdog timerLVPDIS:low voltage program ming disabled/HS:high sp

3、eed crystal/res on atorPWRTDIS:disable power up timerBORDIS:disable brow n out reset#defi ne CS RE0使能线#defi neSIDRE1数据线,*#defi neSCLKRE2/ 时钟线*/const ui nt8 tab = "欢迎光临”"宁理电子”"求是创新”"nin glielectro nic""Microchip 学习板” "12864LCD演示程序”"taobao:simomli ""竭诚

4、为你服务"/*声明函数 */void DelayUS(ui nt8 delay);/ 微妙延时void DelayMS(ui nt16 delay);/ 毫秒延时void Read_LCD_Busy(void);/ 查忙void Write_LCD_Comd(ui nt8 commo nd);/LCD 写指令void Write_LCD_Data(uint8 Data);/LCD 写数据void Init_12864LCD(void);/12864LCD初始化void Write_LCD_Li ne(ui nt8 addr,ui nt8 in dex);/ 写行uin t8 Read

5、_LCD_Data(void);/* 函数名:DelayUS(uint8 delay)*函数功能:微秒延时for 20MHZ*入口参数:delay*返 回:无*/ void DelayUS(ui nt8 delay) while(-delay);/* 函数名:DelayMS(uint16 delay)*函数功能:毫秒延时for 20MHZ*入口参数:delay*返 回:无*/void DelayMS(ui nt16 delay) ui nt16 i;for(;delay>0;delay_) for(i=0;i<453;i+);/* 函数名:Read_LCD_Data(void)*函

6、数功能:液晶读数据*入口参数:无*返 回:temp*/ uint8 Read_LCD_Data(void) uint8 i,temp,temp1; TRISE1 = 1;CS = 1;SCLK = 0; for(i=0;i<8;i+)temp <<= 1; SCLK = 1; if(RE1) SCLK = 0;temp &= OxFO;/SID 口设置为输入使能时钟线无效/读取高4位数据temp |= 0x01;时钟有效数据为1时钟无效保存咼4位for(i=0;i<8;i+)temp1 <<= 1;SCLK = 1;if(RE1)temp1 |= 0

7、x01;SCLK = 0;tempi &= OxFO;保存低 4 为temp = temp | (tempi >> 4); /保存 8 位数据CS = 0;TRISE1 = 0;return (temp);/返回 8 位数据/* 函数名:Write_LCD_Comd(ui nt8 commo nd)*函数功能:写指令* 入口参数 :commond 指令*返 回:无*/ void Write_LCD_Comd(ui nt8 commo nd)uin t8 i,temp;CS = 1;/ 使能SCLK = 0;for(i=0;i<8;i+)写 8 位指令if(commo

8、nd & 0x80)RE1 = 1;elseRE1 = 0;SCLK = 1;com mond <<= 1;SCLK = 0;CS = 0; /* 函数名:Write_LCD_Data(uint8 Data)*函数功能:写数据*入口参数:Data数据*返 回:无*void Write_LCD_Data(ui nt8 Data)uin t8 i,temp;temp = Data & OxFO;取待写数据高 4位CS = 1;SCLK = 0;for(i=0;i<8;i+)/写高 4 位+低 4 位 0000if(temp & 0x80)RE1 = 1;e

9、lseRE1 = 0;SCLK = 1;temp <<= 1;SCLK = 0;temp = Data & 0x0F;取待写数据低四位for(i=0;i<8;i+)写低位数据if(temp & 0x08)RE1 = 1;elseRE1 = 0;SCLK = 1;temp <<= 1;SCLK = 0;CS = 0;/* 函数名:Read_LCD_Busy(void)*函数功能:读液晶忙通道数据*入口参数:无'*/void Read_LCD_Busy(void)uint8 temp;while(1)Write_LCD_Comd(readbus

10、y);/ 写读忙指令temp = Read_LCD_Data(); 读忙数据 if(temp & 0x80) != 0x80)/不忙,则跳出,忙,则继续查询忙状态break;/* 函数名:Init_LCD()*函数功能:初始化12864LCD*入口参数:无*返 回:无*/void In it_12864LCD(void)Read_LCD_Busy();读忙Write_LCD_Comd(writecom);写 写指令,指示接下来写的是指令Write_LCD_Data(0x30);写基本功能指令DelayMS(1);Read_LCD_Busy();Write_LCD_Comd(writec

11、om);写 写指令,指示接下来写的是指令Write_LCD_Data(OxOc);/ 显示开DelayMS(1);Read_LCD_Busy();Write_LCD_Comd(writecom);写 写指令,指示接下来写的是指令Write_LCD_Data(0x01);/ 清除显示DelayMS(15);Read_LCD_Busy();Write_LCD_Comd(writecom);写 写指令,指示接下来写的是指令Write_LCD_Data(0x06);/ 进入设定点DelayMS(1);* 函数名:Write_LCD_Line(uint8 addr,uint8 index)*函数功能:写

12、行字符*入口参数:addr起始地址,index数组表下标*返 回:无*/void Write_LCD_Li ne(ui nt8 addr,ui nt8 in dex)ui nt8 i;Read_LCD_Busy();读忙Write_LCD_Comd(writecom);写 写指令,指示接下来写的是指令Write_LCD_Data(addr);/ 写地址for(i=0;i<16;i+)循环 16 次Read_LCD_Busy();读忙Write_LCD_Comd(writedata);/写 写数据指令,指示接下来写的是数据Write_LCD_Data(tabi ndex+);/ 写数据*函数名函数功能入口参数返 回mia n()LCD显示字符 无无 *void mai n()ADCON1=0x87;/设置PORTE为普通IO 口TRISD =0x00;/设置PORTD为输出TRISE =0x00;/设置PORTE为输出In it_12864LCD();初始化12864LCDwhile(1)Write_LCD_Li ne(0x80,0x00);Write_LCD_Li ne(0x9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论