3252|7

24

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

5529驱动1602程序,1602没有显示 [复制链接]

D0~7所有引脚都需要接5529 板子吗?
程序如下  #include
#include "lcd1602.h"
        int max=0,min=4095;//储存adc采样的值
        unsigned long b=100;
int main(void) {

WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
LcdReset();
LcdWriteCommand(0x85);
while(1){
{
delayms(245);
LcdWriteCommand(0x01);
xszm(1,0,"Max:");
xsfd(1,4,max*3.3/4095);
max=0;
xszm(2,0,"Min:");
xsfd(2,4,min*3.3/4095);
min=4095;
xszm(2,9,"Hz");
xssz(2,11,b);
b=0;

}
}







#ifndef LCD1602_H_
#define LCD1602_H_
#include
#define uchar unsigned char
#define uint unsigned int
#define CPU_F ((double)25000000)
#define delayus(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delayms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define delays(x) __delay_cycles((long)(CPU_F*(double)x/1.0))
/**************宏定义***************/
#define DataDir P4DIR
#define DataPort P4OUT //使用P4第四位
#define CtrlDir P2DIR
/*
#define LCD_Con_DIR P6DIR
#define LCD_Con_OUT P6OUT
#define Init_LCD_Con        LCD_Con_DIR|=BIT5+BIT6+BIT7
*/
#define CLR_RS P2OUT&=~BIT5; //RS = P2.5
#define SET_RS P2OUT|=BIT5;
#define CLR_EN P2OUT&=~BIT4; //EN = P2.4
#define SET_EN P2OUT|=BIT4;
#define CLR_RW P2OUT&=~BIT0; //RW = P2.0
#define SET_RW P2OUT|=BIT0;



void PlaceCom(uchar cmd)
{
DataDir &=0XF0;
DataPort&=0XF0;
DataPort|=cmd>>4;
DataDir |=0X0F;
}
void LcdWriteCommand(uchar cmd)
{
CLR_EN;
CLR_RS;
PlaceCom(cmd);
delayms(1);
SET_EN;
delayms(1);
CLR_EN;
cmd=cmd<<4; // 发送低四位
PlaceCom(cmd);
delayms(1);
SET_EN;
delayms(1);
CLR_EN;
}
void LcdWriteData( uchar data )
{
CLR_EN;
SET_RS;
PlaceCom(data);
delayms(1);
SET_EN;
delayms(1);
CLR_EN;
PlaceCom(data << 4); //写入低四位
delayms(1);
SET_EN;
delayms(1);
CLR_EN;
}
void LcdReset(void)
{
CtrlDir |= BIT4+BIT5+BIT0; //控制线端口设为输出状态
DataDir = 0xF0; //数据端口设为输出状态
LcdWriteCommand(0x33); //规定的复位操作
delayms(5);
LcdWriteCommand(0x32);
delayms(5);
LcdWriteCommand(0x28);
delayms(5);
LcdWriteCommand(0x28); //显示模式设置
LcdWriteCommand(0x08); //显示关闭
LcdWriteCommand(0x01); //显示清屏
LcdWriteCommand(0x06); //写字符时整体不移动
LcdWriteCommand(0x0c); //显示开,不开游标,不闪烁
}
void LocateXY(uchar y,uchar x) //x列 y行
{
uchar temp;
temp = x;
if(y==2) temp += 0x40; //如果在第2行
temp += 0x80;
LcdWriteCommand(temp);
}
void Disp1Char(uchar x,uchar y,char data )
{
LocateXY(x,y);
LcdWriteData(data);
}
void DispNChar(uchar x,uchar y, uchar n,uchar *ptr)
{
uchar i;
for (i=0;i {
Disp1Char(x++,y,ptr[i]);
if (x == 0x0f)
{
x = 0;
y ^= 1;
}
}
}
void xssz(char x,char y,unsigned int long a)
{
char buf[13],i=0;
LocateXY(x,y);
sprintf(buf, "%d\n",a);
while(buf[i+1])
LcdWriteData(buf[i++]);
}
void xsfd(uchar x,uchar y,double a)
{
xssz(x,y,a);
Disp1Char(x,y+1,'.');
xssz(x,y+2,((int)(a*10))%10);
xssz(x,y+3,((int)(a*100))%10);
}
void xszm(uchar x,uchar y,char *a)
{
char i=0;
LocateXY(x,y);
while(a[i])
{
LcdWriteData(a[i++]);
}
}
#endif /* LCD1602_H_ */



最新回复

看液晶的数据手册吧,1602的驱动用的什么芯片,信号时序、初始化代码都有提供的  详情 回复 发表于 2016-11-4 09:40
 
点赞 关注

回复
举报

855

帖子

5

TA的资源

一粒金砂(高级)

沙发
 
1602有4位和8位模式,建议仔细读一下它的DataSheet
 
个人签名作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
 

回复

1059

帖子

1

TA的资源

版主

板凳
 
如果程序确定没问题,调节一下背光试试
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

4
 
人民币的幻想 发表于 2016-10-31 14:31
1602有4位和8位模式,建议仔细读一下它的DataSheet

那需不需要给时钟

点评

80并口是不需要MCU提供时钟的,仔细按照1602的数据手册的时序建议做肯定就可以了  详情 回复 发表于 2016-10-31 15:31
 
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

5
 
qwerghf 发表于 2016-10-31 14:41
如果程序确定没问题,调节一下背光试试

背光有的   就是没显示
 
 
 

回复

855

帖子

5

TA的资源

一粒金砂(高级)

6
 
45645645 发表于 2016-10-31 15:24
那需不需要给时钟

80并口是不需要MCU提供时钟的,仔细按照1602的数据手册的时序建议做肯定就可以了
 
个人签名作为一个菜逼,干货并没有多少。唯一会的就是水,所以回帖水分大。望见谅!
 
 

回复

24

帖子

0

TA的资源

一粒金砂(中级)

7
 
我初始化了#define DataDir P4DIR
#define DataPort P4OUT //使用P4第四位
#define CtrlDir P2DIR
/*
#define LCD_Con_DIR P6DIR
#define LCD_Con_OUT P6OUT
#define Init_LCD_Con        LCD_Con_DIR|=BIT5+BIT6+BIT7
*/
#define CLR_RS P2OUT&=~BIT5; //RS = P2.5
#define SET_RS P2OUT|=BIT5;
#define CLR_EN P2OUT&=~BIT4; //EN = P2.4
#define SET_EN P2OUT|=BIT4;
#define CLR_RW P2OUT&=~BIT0; //RW = P2.0
#define SET_RW P2OUT|=BIT0;
那是不是接线的时候只要结初始化的就可以了  ,那D0接了430 剩下的悬空可以吗
 
 
 

回复

30

帖子

1

TA的资源

一粒金砂(中级)

8
 
看液晶的数据手册吧,1602的驱动用的什么芯片,信号时序、初始化代码都有提供的
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表