LCD12864怎么实现任意位置显示字符或汉字

LCD12864怎么实现任意位置显示字符或汉字,第1张

1.大小可调

字库里的字符大小应该是固定的,你要是实现大小可调就要用到字模提取软件,把字符转换为像素点。

2. 任意位置显示

#include<reg52.h> //包含单片机寄存器的头文件

sbit RS=P2^2 //寄存器选择位,将RS位定义为P2.2引脚

sbit RW=P2^3 //读写选择位,将RW位定义为P2.3引脚

sbit EN=P2^4//使能信号位,将E位定义为P2.4引脚

unsigned char table[]=" 你好 "

unsigned char code digit[ ]={"0123456789"}//定义字符数组显示数字

void read_busy()//读忙标志

{

RS=0

RW=1

EN=1

while(P0 &0x80)

EN=0

}

void delay(unsigned int i)//延时函数

{

while(--i)

}

void Write_LCD_command(unsigned char value) //写命令函数

{

read_busy() //每次读写前都要惊醒“忙”判断

RS=0

RW=0

delay(200)

EN=1 //EN从1---0锁存有效数据

P0=value

delay(200)

EN=0

}

void Write_LCD_data(unsigned char value)//写数据函数

{

read_busy() //每次读写前都要惊醒“忙”判断

RS=1

RW=0

delay(200)

EN=1 //EN从1---0锁存有效数据

P0=value

delay(200)

EN=0

}

void init_LCD()//LCD12864初始化

{

delay(4000)

Write_LCD_command(0x30)//8位数据格式,基本指令显示

delay(100) //延时时间

Write_LCD_command(0x30)//8位数据格式,基本指令显示

delay(37)

Write_LCD_command(0x0C)//开显示、关闭光标

delay(100)

Write_LCD_command(0x01)//清屏指令

delay(10000) //延时

Write_LCD_command(0x06)//设置显示点:指针自加1

}

//*************************************************

//以上是我测温程序的显示驱动部分,下面给你实现任意位置显示的程序

//*************************************************

void main()

{

unsigned int num

init_LCD()//LCD12864初始化

while(1)

{

for(num=0num<4num++)//2个汉字

{

Write_LCD_command(0x90)//根据需要改变数值从而实现不同位置显示,看看12864的手册就知道了

Write_LCD_data(table[num])

delay(10000)

}

}

}

1、我做过的是DS18B20+PIC单片机+数码管显示。

2、也做过单片机+热电偶+12864显示温度

3、最近要做的是,单片机+DS18B20+数码管显示+时间显示。

有按键,设置温度上限和下限,超过上限和下限,报警和继电器输出控制设备。

你就说了一个命题,是想要源程序,设计原理,还是想要成熟的产品,还是外包开发啊


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

原文地址: http://outofmemory.cn/yw/11535074.html

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

发表评论

登录后才能评论

评论列表(0条)

保存