hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 260|回复: 4

LCD12864求助

[复制链接]

535

主题

535

帖子

1629

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1629
发表于 2023-9-25 16:42:19 | 显示全部楼层 |阅读模式
各位大侠帮忙看看,为什么LCD无法显示,谢谢!

程序如下:
#include<AVR/io.h>
#define uchar unsigned char
#define LCMdata PORTClcd接线图

#define Data_DDR        DDRC                 //数据口方向寄存器
#define Busy 0x80

#define  E_set        PORTG|=_BV(PG1)    //液晶使能
#define  E_clear      PORTG&=~_BV(PG1)
#define  RW_set       PORTG|=_BV(PG0)    //液晶读写
#define  RW_clear     PORTG&=~_BV(PG0)
#define  RS_set       PORTD|=_BV(PD7)    //液晶数据
#define  RS_clear     PORTD&=~_BV(PD7)   //液晶指令
#define  RST_clear          PORTF &= ~(1 << PF3)            //RST置低
#define  RST_set           PORTF |= (1 << PF3)            //RST置高
#define PSB_clear          PORTE &= ~(1 << PE2)                 //PSB置低,串口方式
#define PSB_set            PORTE |= (1 << PE2)                  //PSB置高,并口方式

void Display_String(uchar line,uchar *string);
void Wr_Data(uchar wrdata); //写数据
void Wr_Command(uchar wrcommand,uchar busyc); //写指令
void RDbf(void);//读忙状态
void Lcm_Init(void);//液晶初始化
void Delay5Ms(void);//延时5ms
void system_init(void);

uchar  string_1[] = {"欢迎"};
uchar  string_2[] = {"进入!"};
uchar  string_3[] = {"12345678"};

void main(void)
{
        system_init();
        Lcm_Init();
        Display_String(1,string_1);
        Display_String(2,string_3);
        Display_String(3,string_2);
        Display_String(4,string_3);
        while(1);
}

void Display_String(uchar line,uchar *string)//显示字符串
{
        uchar addr,i;
        if(line==1)
        addr=0x80;
        else if(line==2)
        addr=0x90;
        else if(line==3)
        addr=0x88;
        else if(line==4)
        addr=0x98;
        Wr_Command(addr,1);
        for(i=0;i<16;i++)
        {
                Wr_Data(*string++);
        }
}

void Wr_Data(uchar wrdata) //写数据
{
        RDbf();
        RS_set;
        RW_clear;
        E_set;
        LCMdata=wrdata;
        E_clear;
}

void Wr_Command(uchar wrcommand,uchar busyc) //写指令
{
        if(busyc)
        RDbf();
        RS_clear;
        RW_clear;
        E_set;
        LCMdata=wrcommand;
        E_set;
}

void RDbf(void) //读忙状态
{
        while(1)
        {
                RS_clear;
                RW_set;
                E_clear;
                LCMdata=0xFF;
                E_set;
                if((LCMdata&Busy)==0)
                break;
        }
}

void Lcm_Init(void)
{
        Delay5Ms();
        RST_set;
        RST_clear;
        RST_set;
        Wr_Command(0x30,0);
        Delay5Ms();
        Wr_Command(0x30,0); //2次显示模式设置,不用判忙
        Delay5Ms();
        Wr_Command(0x0C,1); //开显示及光标设置
        Delay5Ms();
        Wr_Command(0x01,1); //显示清屏
        Delay5Ms();
        Delay5Ms();
        Wr_Command(0x06,1); //显示光标移动设置
        Delay5Ms();
}

void Delay5Ms(void) //延时5ms
{
        unsigned int TempCyc=5552;
        while(TempCyc--);
}

//*************************************************************************
//                        初始化子程序
//*************************************************************************
void system_init()
{

        LCMdata = 0xFF;                                        //电平设置
        Data_DDR = 0xFF;                                    //方向输出
        PORTF = 0xFF;                       //电平设置
        DDRF = 0xFF;                        //方向输出
        PORTE=0xFF;                         //PSB对应于PE2
        DDRE=0xFF;


        PSB_set;                                                   //液晶并口方式
        RST_set;                                                   //复位脚RST置高
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

205

帖子

49

积分

新手上路

Rank: 1

积分
49
发表于 2023-9-25 16:42:26 | 显示全部楼层
LCD硬件接口引脚19、20应该接VCC和GND,你那网络标号好像错行了!
回复

使用道具 举报

0

主题

177

帖子

31

积分

新手上路

Rank: 1

积分
31
发表于 2023-9-25 16:43:25 | 显示全部楼层
是接的vcc跟GND
回复

使用道具 举报

0

主题

190

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-9-25 16:43:53 | 显示全部楼层
要是LCD点不亮,就是那的问题,你再在原理图里看看吧!
回复

使用道具 举报

0

主题

179

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-9-25 16:44:43 | 显示全部楼层
看看延时够不够,AVR速度比较快
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-9-29 11:32 , Processed in 0.065537 second(s), 22 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表