电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
12864液晶无法正常显示数字(汉字、字符串都正常) msp430
已解决
73482
个问题
已帮助
5993
位优秀工程师
12864液晶无法正常显示数字(汉字、字符串都正常) msp430
凌寒2009
2014-11-23
浏览量:1566
#include
#define uchar unsigned char
#define SCLK1 P5OUT |=BIT7 //时钟拉高
#define SCLK0 P5OUT &=~BIT7 //时钟拉低
#define SID1 P5OUT |=BIT6 //数据端置1
#define SID0 P5OUT &=~BIT6 //数据端清零
#define CS1 P5OUT |=BIT5 //片选高电平
#define CS0 P5OUT &=~BIT5 //片选低电平
#define PSB P5OUT &=~BIT0 //串口端拉低 设置串行模式
#define CPU_F ((double)8000000) //外部高频晶振8MHZ
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
void portinit()
{
P5SEL=0; //P5口为普通I/O口
P5DIR |=BIT0+BIT1+BIT5+BIT6+BIT7; //设置P5口操作液晶串口的位为输出
}
void wr_lcd(uchar com,uchar data)
{
uchar i,j;
CS1; //CS片选高电平有效,选中12864
for(i=0;i<5;i++)
{
SCLK1;
SCLK0;
}
SID0; //写操作
SCLK1; //时钟拉高
SCLK0; //时钟拉低
if(com==0)
{
SID1; //写数据
SCLK1; //时钟拉高
SCLK0; //时钟拉低
}
else
{
SID0; //写指令
SCLK1; //时钟拉高
SCLK0; //时钟拉低
}
SID0; //最后一个控制位为零
SCLK1; //时钟拉高
SCLK0; //时钟拉低
for(j=0;j<2;j++)
{
for(i=0;i<4;i++) //写数据高四位
{
if(data&0x80) //如果数据位为1
SID1; //则数据位置1
else //否则
SID0; //清零
SCLK1; //时钟拉高
SCLK0; //时钟拉低
data=data<<1;
}
SID0;
for(i=0;i<4;i++) //四个时钟脉冲
{
SCLK1; //时钟拉高
SCLK0; //时钟拉低
}
}
CS0;
SID1;
}
void lcdinit()
{
P5OUT |=BIT1; //是RST为高电平,此为液晶的正常电平状态,拉低会一直复位
PSB; //液晶串口方式
//SCLK0; //可有可无
wr_lcd(1,0x30); //8位基本指令设置
delay_ms(0.2);
wr_lcd(1,0x30); //8位基本指令设置
delay_ms(0.1);
wr_lcd(1,0x0c); //开显示,关光标
delay_ms(0.2);
wr_lcd(1,0x01); //清屏,地址指针指向00H
delay_ms(12);
wr_lcd(1,0x06); //设定光标的移动方向
}
void display(uchar addr,uchar *data)
{
wr_lcd(1,addr);
while(*data != \' \')
{
wr_lcd(0,*data);
data++;
}
}
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out reset
portinit();
lcdinit();
uchar a[5];
uchar temp_0=1;
uchar temp_1=1;
uchar temp_3=1;
a[0]=temp_0;
a[1]=temp_1;
a[2]=\'.\';
a[3]=temp_3;
a[4]=\'V\';
display(0x80,"当前电压为");
display(0x93,a);
}
}
为什么 temp_1 temp_2 temp_3 的数值显示不正常呢
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
barrettzxn
要显示的数字+0x30就ok了,很明显的!
发布于
2014-11-25
举报
评论 0
0
0
其他答案
数量:
4
王奕
数字要转成对应的ASCII吧,你给所有的数字 加上一个0x30可能就好了,测试一下
发布于
2014-11-24
举报
评论 0
0
0
刘佳文
是有字库还是无字库?数字也需要取摸的
发布于
2014-11-24
举报
评论 0
0
0
马超飞燕
谢谢分享顶一个
发布于
2015-01-02
举报
评论 0
0
0
b626317a95b5ada9
45
发布于
2018-12-03
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
12864液晶无法正常显示数字(汉字、字符串都正常) msp430
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: