收藏 分享(赏)

12864LCD串行操作C程序.doc

上传人:HR专家 文档编号:11373647 上传时间:2020-04-07 格式:DOC 页数:6 大小:164KB
下载 相关 举报
12864LCD串行操作C程序.doc_第1页
第1页 / 共6页
12864LCD串行操作C程序.doc_第2页
第2页 / 共6页
12864LCD串行操作C程序.doc_第3页
第3页 / 共6页
12864LCD串行操作C程序.doc_第4页
第4页 / 共6页
12864LCD串行操作C程序.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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

2、#define uchar unsigned charsbit CS=P26;/片选信号线,接12864的RS端sbit SID=P25;/串行数据线,接12864的RW端sbit SCLK=P27;/串行时钟信号线,接12864的EN端/uchar a;uchar code word=我好喜欢你啊;/12864LCD显示内容/函数声明void lcd_init();/声明液晶初始化函数void write_com(uchar com);/声明写入命令控制字节函数void write_date(uchar dat);/声明写入数据控制字节函数void delayms(uint x);/声明延时

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

4、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;i+)/写入命令的高四位 SID=(bit)(i_data&0x80);/取得命令的最高位给液晶串行总线 SCLK=1

5、; 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; /移位后命令字节左移一位(每一次移位前的次高位给液晶串行总线)CS=0; /写入命令控制字节后令片选信号CS为0delayms(10);/向12864写入数据函数void wr

6、ite_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;/数据控制字节左移一位(取命令控制字节的次高位给液晶串行总线) i_data=dat;i_data&=0xf0;/取数据字节的高四位for(i=0;i

7、8;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;/定义计算写入显示内容数量的变量 lcd_init();/初始化液晶 write_com(0x90);/写入显示位置 for(b=0;b12;b+) /b要12是因为要显示6个中文 write_date(wordb); /写入要显示的内容 while(1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报