论文部分内容阅读
摘要:介绍了单片机在开发应用领域,如果遇到芯片引脚紧张情况下,如何用尽量少的引脚驱动LCD等外设的方法,并与传统驱动方法优劣做了对比,结果表明用这两套方法能确实解决一些嵌入式应用系统I/O引脚资源紧张的情况下驱动LCD的问题,最后比较了两套方案的优缺点。两种方法在一些应用领域确实能够使得嵌入式芯片的资源得到充分合理应用。
关键词:单片机 LCD 电容 74LS164
中图分类号:TM53 文献标识码:A 文章编号:
0 引言
液晶显示器LCD(Liquid Crystal Display)在实际嵌入式开发应用中极其广泛,常见的LCD显示器,以1602为例,通常要占用单片机I/O引脚多达16个之多,如果本身系统I/O资源不多了,或者使用的MCU本身I/O少,但是遇到又要驱动LCD,针对上述问题,提出了用任意2个I/O口驱动LCD的方法。
1 利用电容充放电性质驱动LCD方法
第一套方案思路:该方案的思想是利用电容的记忆效应,把并行的数据转为串行输出。这个是利用电容的记忆特性来做的。也就是充放电。当电容里面没有电的时候,就相当于短路。这个时候自然是0了如果你想要他变成1,那么就给他充一段时间的电,给他充电的这个IO拉高,等到充好了。然后你再置0,这个时候就有两只不同的状态了。因为电容充完电后要变成0的话有一个放电过程。而你在他的电还没放完的时候就将数据写入LCD这样就行了。
图1-1 利用电容充放电性质驱动LCD
为了使得数据传输的可靠性,相邻的两个bit数据间隔,RC时间常数相差要求比较大,设定为20-22倍左右,差距越大,可靠性就越高。事实上, 12倍的间隔,仍能使得该系统能正常工作,但考虑到阻容的误差和温漂,以及电磁干扰等因素,选取了22倍间隔。太长的等比间隔,会带来了数据传送速度很慢的问题,若RC参数不当,传送一字节数据延时较大,连续发送多个字节时,通讯线将会忙不过来,必须等待。为解决此问题,可以考虑开辟发送缓冲区,来暂时存放待显示的数据,并用定时器中断来完成自动发送。此方法的缺点是,IO口是省了,却带来几十字节的内存开销,还要占用一个定时器。
比较实用的方案,多用一个IO,实际中可以改成3个IO控制,基本达到了正常的显示速度。这样放宽了对RC时间常数的选择,传送速度和普通的驱动方式相当。
图1-2 改进的利用电容充放电性质驱动LCD
2 用74LS164扩展并口到达驱动LCD的方法
第2套方案思路:用两个IO端口驱动74LS164扩展成并口,达到扩充单片机I/O引脚的目的,进而驱动LCD。
只用两个IO端口驅动74LS164扩展成并口驱动LCD1602。164是串入并出的8位移位寄存器,可以用来扩展并口。此时又有2种方法,一个是利用单片机的串行口,另一个是用一般的IO口。
串行口方式0为移位寄存器输入输出方式以扩展IO口。这里只作为输出使用。数据从RTX串行输出,TXD输出移位脉冲(注意这2个引脚的使用,和其它工作方式不同)。当一个数据写入串行口发送缓冲器时(SBUF),串行口即将8位数据以fosc/12的固定波特率从RXD引脚输出,低位在先。发完8位数据置“1”中断标志位TI。
图1-3 74LS164扩展并口驱动LCD
3 结束语
用传统方法让单片机驱动液晶,稳定可靠,但是比较浪费I/O引脚资源。上述第一套方案节约单片机引脚,节约硬件成本;上述第二套方案也节约了单片机引脚,但是增加了硬件成本。两套方案编程时难易有所不同,在实际开发中若遇I/O引脚资源紧张的情况下,又要求带LCD显示,上面两套方案提供了2种不同的解决思路。
【参考文献】
[1]范志新, 液晶器件工艺基础[M].北京:北京邮电大学出版社,2000
[2]鲍健,丁湘琳,孙力,等.用单片机直接驱动液晶显示器[J].量子电子学报,2005,48:650-652.
[3]李维缇,郭强.液晶显示应用技术[M].北京:电子工业出版社,2000.
[4]杨虹,王刚,唐志勇,等.TFT液晶显示屏驱动方法的研究[ J].微电子学,2000,301:39-42.
关键词:单片机 LCD 电容 74LS164
中图分类号:TM53 文献标识码:A 文章编号:
0 引言
液晶显示器LCD(Liquid Crystal Display)在实际嵌入式开发应用中极其广泛,常见的LCD显示器,以1602为例,通常要占用单片机I/O引脚多达16个之多,如果本身系统I/O资源不多了,或者使用的MCU本身I/O少,但是遇到又要驱动LCD,针对上述问题,提出了用任意2个I/O口驱动LCD的方法。
1 利用电容充放电性质驱动LCD方法
第一套方案思路:该方案的思想是利用电容的记忆效应,把并行的数据转为串行输出。这个是利用电容的记忆特性来做的。也就是充放电。当电容里面没有电的时候,就相当于短路。这个时候自然是0了如果你想要他变成1,那么就给他充一段时间的电,给他充电的这个IO拉高,等到充好了。然后你再置0,这个时候就有两只不同的状态了。因为电容充完电后要变成0的话有一个放电过程。而你在他的电还没放完的时候就将数据写入LCD这样就行了。
图1-1 利用电容充放电性质驱动LCD
为了使得数据传输的可靠性,相邻的两个bit数据间隔,RC时间常数相差要求比较大,设定为20-22倍左右,差距越大,可靠性就越高。事实上, 12倍的间隔,仍能使得该系统能正常工作,但考虑到阻容的误差和温漂,以及电磁干扰等因素,选取了22倍间隔。太长的等比间隔,会带来了数据传送速度很慢的问题,若RC参数不当,传送一字节数据延时较大,连续发送多个字节时,通讯线将会忙不过来,必须等待。为解决此问题,可以考虑开辟发送缓冲区,来暂时存放待显示的数据,并用定时器中断来完成自动发送。此方法的缺点是,IO口是省了,却带来几十字节的内存开销,还要占用一个定时器。
比较实用的方案,多用一个IO,实际中可以改成3个IO控制,基本达到了正常的显示速度。这样放宽了对RC时间常数的选择,传送速度和普通的驱动方式相当。
图1-2 改进的利用电容充放电性质驱动LCD
2 用74LS164扩展并口到达驱动LCD的方法
第2套方案思路:用两个IO端口驱动74LS164扩展成并口,达到扩充单片机I/O引脚的目的,进而驱动LCD。
只用两个IO端口驅动74LS164扩展成并口驱动LCD1602。164是串入并出的8位移位寄存器,可以用来扩展并口。此时又有2种方法,一个是利用单片机的串行口,另一个是用一般的IO口。
串行口方式0为移位寄存器输入输出方式以扩展IO口。这里只作为输出使用。数据从RTX串行输出,TXD输出移位脉冲(注意这2个引脚的使用,和其它工作方式不同)。当一个数据写入串行口发送缓冲器时(SBUF),串行口即将8位数据以fosc/12的固定波特率从RXD引脚输出,低位在先。发完8位数据置“1”中断标志位TI。
图1-3 74LS164扩展并口驱动LCD
3 结束语
用传统方法让单片机驱动液晶,稳定可靠,但是比较浪费I/O引脚资源。上述第一套方案节约单片机引脚,节约硬件成本;上述第二套方案也节约了单片机引脚,但是增加了硬件成本。两套方案编程时难易有所不同,在实际开发中若遇I/O引脚资源紧张的情况下,又要求带LCD显示,上面两套方案提供了2种不同的解决思路。
【参考文献】
[1]范志新, 液晶器件工艺基础[M].北京:北京邮电大学出版社,2000
[2]鲍健,丁湘琳,孙力,等.用单片机直接驱动液晶显示器[J].量子电子学报,2005,48:650-652.
[3]李维缇,郭强.液晶显示应用技术[M].北京:电子工业出版社,2000.
[4]杨虹,王刚,唐志勇,等.TFT液晶显示屏驱动方法的研究[ J].微电子学,2000,301:39-42.