12864LCD串行操作C程序_第1页
12864LCD串行操作C程序_第2页
12864LCD串行操作C程序_第3页
12864LCD串行操作C程序_第4页
12864LCD串行操作C程序_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、.12864lcd串行控制 c程序下面是一个最简单的 12864 液晶串行控制程序, 没什么花样,只是想帮助大家学习掌握控制一个串行的 12864 液晶的基本原理。无论是 12864 的并行操作还是串行操作, 12864 液晶与 12232 液晶的操作时序几乎完全一样,打家学习的时候可以参考一下 12232 的时序图(方便理解),郭天祥的 51 单片机 c语言教程 156 页中就讲到了 12232 液晶的使用例程。一、时序图1、 12232 时序图2、12864 时序图.二、液晶引脚对应图三、 12864 液晶与单片机接口(程序中psb 没接, rst接高电平, nc悬空).四、程序:#inc

2、lude#define uint unsigned int#define uchar unsigned charsbit cs=p26;/ 片选信号线,接12864 的 rs 端sbit sid=p25;/ 串行数据线,接12864 的 rw 端sbit sclk=p27;/ 串行时钟信号线,接12864 的 en 端/uchar a;uchar codeword= 我好喜欢你啊 ;/12864lcd显示内容/函数声明void lcd_init();/ 声明液晶初始化函数void write_com(uchar com);/ 声明 写入命令控制字节函数void write_date(uchar

3、 dat);/ 声明 写入数据控制字节函数void delayms(uint x);/ 声明延时函数/液晶初始化函数void lcd_init()delayms(10);write_com(0x30);/ 基本指令操作write_com(0x0c); / 显示开,关光标write_com(0x10);/ 设置地址计数器 ac 为 00h,并将游标移到开头原点位置 write_com(0x06);/ 游标及显示右移一位write_com(0x01);/ 清除液晶显示内容/向 12864 写入命令函数/*串行数据由三个字节构成,第一个为命令控制字节,第二个为由命令字节高四位低四位补零构成的字节,第

4、三个为由命令字节低四位左移四位低四位补零后构成的字节*/void write_com(uchar com)uchar i;uchar i_data;i_data=0xf8;/0xf8 是命令控制字节,它比表示写入的内容com 是一个命令cs=1;/ 写入之前令片选信号 cs 为 1(这是时序要求的) sclk=0;/ 写入之前令时钟信号 clk 为 1(这也是时序要求的) for(i=0;i8;i+)/ 写入命令控制字节.sid=(bit)(i_data&0x80);sclk=1;sclk=0;i_data=i_data1;i_data=com;i_data&=0xf0;for(i=0;i8;

5、i+)/写入命令的高四位sid=(bit)(i_data&0x80);/取得命令的最高位给液晶串行总线sclk=1;sclk=0; /每写一位sclk 都要有一个下降沿(时序要求)i_data=i_data1; / 命令字节左移一位(取命令的次高位给液晶串行总线)i_data=com;i_data=4;/ 命令字节左移4 位,即把低四位移到高四位for(i=0;i8;i+)/写入命令的低四位sid=(bit)(i_data&0x80);/取得命令字节移位后的最高位给液晶串行总线sclk=1;sclk=0;i_data=i_data1;/ 移位后命令字节左移一位(每一次移位前的次高位给液晶串行总

6、线)cs=0; /写入命令控制字节后令片选信号cs 为 0delayms(10);/向 12864 写入数据函数void write_date(uchar dat)uchar i;/ 第三个为由数据低四位左移四位后低四位补零构成的字节 uchar i_data;i_data=0xfa;/ (数据控制字节为0xfa )cs=1;sclk=0;for(i=0;i8;i+)/写入数据控制字节sid=(bit)(i_data&0x80);/ 取得数据控制字节的最高位给液晶串行总线 sclk=1;.sclk=0;/ 每写一位sclk 都要有一个下降沿(时序要求)i_data=i_data1;/ 数据控制

7、字节左移一位(取命令控制字节的次高位给液晶串行总线)i_data=dat;i_data&=0xf0;/ 取数据字节的高四位for(i=0;i8;i+)/写入数据的高四位sid=(bit)(i_data&0x80);/(以下跟写入命令函数的注释同理)sclk=1;sclk=0;i_data=i_data1;i_data=dat;i_data=4;for(i=0;i8;i+)/写入数据的低四位sid=(bit)(i_data&0x80);sclk=1;sclk=0;i_data=i_data0;j-)for(i=110;i0;i-);/主函数void main()uchar b;/定义计算写入显示内容数量的变量lc

温馨提示

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

评论

0/150

提交评论