首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >LCD显示随机字符(MPLAB)

LCD显示随机字符(MPLAB)
EN

Stack Overflow用户
提问于 2019-08-28 01:50:25
回答 4查看 335关注 0票数 1

我试图将我的液晶屏(16x02QAPASS)连接到MPLAB上的PIC16F1937,但它显示的是随机字符(在本例中是中文字符、问号和斜杠),而不是字母数字。但是,所有PIN连接都已在库中声明,并已正确连接到PIC。我使用的是XC8编译器。

以下是连接:

VSS --> GND

VDD --> 5V

VO --> 680Ω电阻

EN --> RD1

RW --> RD6

RS --> RD0

LCD_D4 --> RD2

LCD_D5 --> RD3

LCD_D6 --> RD4

LCD_D7 --> RD5

阳极--> 5V

阴极--> GND

全局项目是一个传感器,它可以检测物体的距离,并在LCD上显示相同的距离。LCD不显示字符的事实影响了项目的其余部分,因为如果LCD失败,我无法设置数学计算。

1)库代码: lcd.h (头文件)这是Microchip为LCD库提供的代码,我添加了PIN-LCD连接:

代码语言:javascript
运行
复制
// single bit for selecting command register or data register 
#define instr 0 #define data 1

// These #defines create the pin connections to the LCD in case they 
are changed on a future demo board
#define LCD_PORT     PORTD
#define LCD_PWR      PORTDbits.RD7   // LCD power pin
#define LCD_EN       PORTDbits.RD1   // LCD enable
#define LCD_RW       PORTDbits.RD6   // LCD read/write line
#define LCD_RS       PORTDbits.RD0   
#define LCD_D4       PORTDbits.RD2
#define LCD_D5       PORTDbits.RD3
#define LCD_D6       PORTDbits.RD4
#define LCD_D7       PORTDbits.RD5

// LCD register select line

#define NB_LINES    2   // Number of display lines
#define NB_COL      16  // Number of 
characters per line

2)库代码2: lcd.c (源文件)包含与LCD相关的命令

3)主代码: main.c (源文件)

代码语言:javascript
运行
复制
#include "mcc_generated_files/mcc.h"
#include "lcd.h"
#define _XTAL_FREQ 4000000

 void main(void)
 {
 // initialize the device
 SYSTEM_Initialize();

 // initialize LCD
 LCD_Initialize();

LCDGoto(4, 1);           // go to column 4, row 1
LCDPutChar("test1");
LCDGoto(3, 2);           // go to column 3, row 2
LCDPutStr("test2");

while (1)
{

}
}
EN

回答 4

Stack Overflow用户

发布于 2019-09-01 13:23:29

@AfricaOMM,

看起来您的代码可能基于此link中的代码。

因为您只发布了片断,所以不可能确定您试图处理的代码到底有多糟糕。

我在link找到的代码有Microchip的版权,但它的质量很差,有but,会导致几个问题。

从长远来看,你可以通过自己解决这个问题来受益。

我最好的建议是在连接到您的液晶模块的信号线上放置PIC16F1937,并在初始化代码运行时验证LED是否将每条线设置为正确的状态。

我怀疑你在连接时有错误,在代码中也有错误。

票数 0
EN

Stack Overflow用户

发布于 2019-09-03 21:34:22

问题解决了!

这个问题与库有关。Microchip提供的库中充满了故障,因此当执行命令时,PIC没有接收到它应该接收的信息,这就是为什么LCD显示随机字符的原因。

我建议你使用library developed by electrosome:我确认它是100%可操作的,感谢他们!

另一件事:为了解决对比度问题,理想情况下有必要将LCD的VO端口连接到电位器。

票数 0
EN

Stack Overflow用户

发布于 2019-12-26 04:48:36

当我们在LCD上发送消息时,它会显示有趣的字符或一些奇怪的符号,因为硬件需要一些时间来更新。您可以尝试在下面的代码行中给出一些睡眠time.after

代码语言:javascript
运行
复制
LCDPutStr("test2").   Put above sleep time
LCD.sleep(5)

它在我的案例中起作用了。它在我的案例中起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57679890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档