字库里的字符大小应该是固定的,你要是实现大小可调就要用到字模提取软件,把字符转换为像素点。
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+数码管显示+时间显示。
有按键,设置温度上限和下限,超过上限和下限,报警和继电器输出控制设备。
你就说了一个命题,是想要源程序,设计原理,还是想要成熟的产品,还是外包开发啊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)