如何用单片机控制液晶显示器呀,怎么接线……

如何用单片机控制液晶显示器呀,怎么接线……,第1张

液晶显示器有字符型,如1602,这个液晶显示器目前是统一的,引脚和命令字都 是统一的。接线如下图所示

另一种是点阵型的,可以显示图形和汉字,用得比较多的是12864。但是,这种液晶显示器的型号很多,引脚和命令字都不统一。下图是一个仿真的实例。实物因不统一,就不好画了。

你用的是串口方式 而程序是并口方式,所以再怎么弄都不会显示出来 ;

我这里有串口方式的程序 今晚刚编好的 也测试了液晶能显示出来 你看看吧 把我的端口对应改一下就行 如果液晶再无法显示 那就是你硬件的问题了 比如PSB端口是否接了低电平

#include<reg52.h>

#include<intrins.h>

#define uint unsigned int

#define uchar unsigned char

sbit cs=P2^5 //片选端 高电平有效

sbit sid=P2^6 //数据线

sbit sclk=P2^7 //串行时钟信号 下降沿有效

uchar table[]="我是个小兵却乐天知命,在你的世界说鸟语,在我的世界对不起请说汉语"

uchar datecnt

void delayms(uint z)//单位延时一毫秒

{

uint x,y

for(x=zx>0x--)

for(y=110y>0y--)

}

void send_byte(uchar byte)//发送一个字节函数

{

uchar j

cs=1

for(j=0j<8j++)

{

sclk=0

byte=byte<<1

sid=CY

sclk=1

sclk=0

}

cs=0

}

void writecom_12864(uchar com)//写命令控制函数

{

uchar HDATA,LDATA

HDATA=com&0xf0

LDATA=((com<<4)&0xf0)

send_byte(0xf8)

send_byte(HDATA)

send_byte(LDATA)

}

void writedate_12864(uchar date)//写数据控制函数

{

uchar HDATA,LDATA

HDATA=date&0xf0

LDATA=((date<<4)&0xf0)

send_byte(0xfa)

send_byte(HDATA)

send_byte(LDATA)

}

void init_12864()//初始化12864

{

writecom_12864(0x30)

writecom_12864(0x30)

writecom_12864(0x0c)

writecom_12864(0x01)//清屏

writecom_12864(0x06)

}

void display_12864()

{

for(datecnt=0datecnt<64datecnt++)

{

if(datecnt==0) writecom_12864(0x80)

if(datecnt==16)writecom_12864(0x90)

if(datecnt==32)writecom_12864(0x88)

if(datecnt==48)writecom_12864(0x98)

writedate_12864(table[datecnt])

}

}

void main()

{

init_12864()

display_12864()

while(1)

}

段式液晶跟数码管差不多,唯一的区别就是液晶要使用交流信号驱动(直流信号就电解液晶液了)

一般采用64HZ方波信号

液晶消耗的电流极低(几uA),一般串联大电阻,电压范围在3.3-12V(对比度取决与电压)

普通单片机直接驱动回显得非常吃力因为需要±信号外还需要不同的电压信号,所以一般都选用带液晶驱动器的单片机、当然这样玩玩也是可以的。熟悉一下液晶的运行方式。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/6036295.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-12
下一篇2023-03-12

发表评论

登录后才能评论

评论列表(0条)

    保存