第一单片机

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 699|回复: 1

关于现代单片机LCD驱动使用心得!

[复制链接]
发表于 2017-7-1 11:16:00 | 显示全部楼层 |阅读模式
本帖最后由 arry34 于 2017-7-1 11:19 编辑

本人也是刚刚学习现代单片机,刚开始LCD驱动并不成功,经过几天的实验和摸索,基本实现了LCD驱动,现在把个人的一些程序做法分享给大家。
有关寄存器配置:
(1)I/O口配置:把与LCD相关的I/O配置为输出口output,并且在I/O功能选择为SEG或COM功能
(2)将P4口(即偏置电压VLC0-VLC3)设置为输入口input,I/O功能设置为VLC0-VLC3功能,如果是采用外部的电阻设置偏置电压,建议使用60K以上的电阻
(3)设置WT寄存器,这个寄存器主要为COM口扫描提供时间基准。设置的关键的点在于,要根据设置的参数,计算出Flcd的频率
//Fx=1M;个人设置,仅做参考
WTDR=0x81;                                
WTCR=0x83;

(4)LCD寄存器配置:
//个人设置,仅做参考
LCDCRH = 0x10;          //COM0-COM3(P37-P34),输出在COM4-COM7(P33-P30)上,因为我使用的现代单片机封装没有P37-P34,故将COM0-COM3配置到COM4-COM7上
LCDCRL = 0x0F;          //1/4Duty(COM0-COM4)  1/3Bias(偏置电压),
LCDCCR = 0x0F;          //LCD对比度,即亮暗程度
LCDCCR|= 0x80;        //使能LCD
LCDCRH|= 0x01;   //显示LCD


(5)LCD驱动:
1)驱动原理:如下图,COM口按照我们设定好的扫描基准,从COM0-COM7开始自动扫描,即我们设置好WT(COM的扫描参数),COM就自动开始工作,不在需要我们去驱动或者设定COM口。
微信截图_20170701105823.png
2)点亮或熄灭原理:比如:在COM0有效时,SEG0要被点亮,则SEG0的bit0要置1即。SEG0=0x01;
在COM1有效时,SEG0要被熄灭,则SEG0的bit1要置0即。SEG0&=0xFD;,其他的以此类推。
再比如,我的设置为1/4Duty(使用COM0-COM3) 现在SEG0在COM0时点亮,COM1时熄灭,COM2时熄灭,COM3时点亮。       SEG1在COM0时熄灭,COM1时熄灭,COM2时点亮,COM3时点亮。
则SEG0=0x09;SEG1=0x0C;
定义通信协议参数:
unsigned char xdata SEG26  _at_ 0x001A;
unsigned char xdata SEG25  _at_ 0x0019;
unsigned char xdata SEG24  _at_ 0x0018;        
unsigned char xdata SEG23  _at_ 0x0017;
unsigned char xdata SEG22  _at_ 0x0016;
unsigned char xdata SEG21  _at_ 0x0015;
unsigned char xdata SEG20  _at_ 0x0014;
unsigned char xdata SEG19  _at_ 0x0013;
unsigned char xdata SEG18  _at_ 0x0012;
unsigned char xdata SEG17  _at_ 0x0011;
unsigned char xdata SEG16  _at_ 0x0010;
unsigned char xdata SEG15  _at_ 0x000F;
unsigned char xdata SEG14  _at_ 0x000E;
unsigned char xdata SEG13  _at_ 0x000D;
unsigned char xdata SEG12  _at_ 0x000C;
unsigned char xdata SEG11  _at_ 0x000B;
unsigned char xdata SEG10  _at_ 0x000A;
unsigned char xdata SEG09  _at_ 0x0009;
unsigned char xdata SEG08  _at_ 0x0008;
unsigned char xdata SEG07  _at_ 0x0007;
unsigned char xdata SEG06  _at_ 0x0006;
unsigned char xdata SEG05  _at_ 0x0005;
unsigned char xdata SEG04  _at_ 0x0004;
unsigned char xdata SEG03  _at_ 0x0003;
unsigned char xdata SEG02  _at_ 0x0002;
unsigned char xdata SEG01  _at_ 0x0001;
unsigned char xdata SEG00  _at_ 0x0000;



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|第一单片机 ( 粤ICP备15013562号-1 )

GMT+8, 2018-4-26 23:29 , Processed in 0.092168 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表