1、首先先去下载取模软件,下载完成点击打开取模软件。
2、在菜单栏点击模式然后选择图形模式。
3、现在就可以点击打开图片文件,要注意的是取模之前要把图片转换为bmp格式,选择图片点击打开进行添加。
4、现在点击选项,进行参数设置。
5、根据下图进行设置字模格式,设置完成点击确定。
6、点击下面的生成字模就可以获得代码了,点击将代码复制到程序,就可以了。
问题有多种,一、对比度是否调好(即是否有硬件问题)
二、void
WriteData(uchar
Data)
{
EN=0/*使能端*/
RS=1/*根据时序图拉低,选择写指令*/
RW=0/*根据时序图拉低,选择写模式*/
P0=Data/*命令数据准备*/
delay(0)
此处延时(省略判忙)
EN=1/*使能端跳变*/
EN=0/*使能端再次跳变*/
}
三、确认你的初始化没有问题
四、你的模块是否带字库
五、
我推测你这个程序最可能出现的问题v
void
display(uchar
show[])
{
delay(1)
WriteData()
}
此处未写任何数据
如有不明白Q
451526010
用这个吧。我以前用的#include <reg52.h>
#include<intrins.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
//8bit数据接入IO口
#define Part P0 //P0接8位数据线
//控制数据端
sbit LCD_RS=P3^2//定义12864液晶RS端,寄存器选择信号 H:数据寄存器 L:指令寄存器
sbit LCD_RW=P1^1//定义12864液晶RW端,读/写信号 H:读 L:写
sbit LCD_EN=P1^2//定义12864液晶LCDEN端, 片选信号 下降沿触发,锁存数据
//sbit LCD_PSB=P3^2//定义12864液晶PSB端, H:并行 L:串行
sbit LCD_RST=P3^6//定义12864液晶RST端, H:不复位 L:复位
sbit AD_ST=P1^6//定义AD
sbit AD_OE=P3^7
sbit AD_A=P1^3
sbit AD_B=P1^4
sbit AD_C=P1^5
sbit AD_EOC=P1^7
sfr T2MOD=0XC9
uchar code dis1[]={"转速"}
uchar code dis2[]={"加速度x方向"}
uchar code dis3[]={"加速度y方向"}
uchar code dis4[]={"加速度z方向"}
uchar code Text[]={"欢迎大家观看"}
uint i
uchar code dat[]
int jishu
int sudu1
int sudu2
int maichong1
int maichong2
//毫秒延时函数
void delayms(uint x) //nms的延时
{
uint i
while(x--)
{
for(i=0i<125i++)
{}
}
}
void delay(uint xms)
{
uint i,j
for(j=0i<xmsj++)
for(i=0i<110i++)
}
//LCD忙检测函数
bit lcd_busy()
{
bit result
LCD_RS=0
LCD_RW=1
LCD_EN= 1
result=(bit)(Part &0x80)
LCD_EN=0
return result
}
//液晶写命令函数
void lcd_write_cmd(uchar com)
{
while(lcd_busy())
LCD_RS=0//选择指令寄存器
LCD_RW=0//写
LCD_EN=0
Part=com//指令值赋给P0口
delay(5)
LCD_EN=1
delay(5)
LCD_EN=0
}
//液晶写一个字符数据函数
void lcd_write_dat(uchar date)
{
while(lcd_busy())
LCD_RS=1//选择数据寄存器
LCD_RW=0//写
LCD_EN=0
P0=date//数据值赋给P0口
delay(5)
LCD_EN=1
delay(5)
LCD_EN=0
}
//液晶写一个字符串函数
void lcd_write_string(uchar *str)
{
while(*str!='\0') //未结束
{
lcd_write_dat(*str++)
delay(5)
}
}
//液晶显示位置函数
void lcd_pos(uchar x,uchar y) //从第X行的第Y位置开始显示
{
uchar pos
if(x==1) //第一行
{x=0x80}
else if(x==2) //第二行
{x=0x90}
else if(x==3) //第三行
{x=0x88}
else if(x==4) //第四行
{x=0x98}
pos=x+y-1//首地址为0X80
lcd_write_cmd(pos)
}
//液晶初始化函数
void lcd_init()
{
// LCD_PSB=1//并行方式
LCD_RST=1//不复位
lcd_write_cmd(0x30)
delay(5)
lcd_write_cmd(0x0c)//开显示,不显示光标
delay(5)
lcd_write_cmd(0x06)//写一个字符后地址指针自动加1
delay(5)
lcd_write_cmd(0x01)//清屏
delay(5)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)