我试图将我的液晶屏(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连接:
// 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 line2)库代码2: lcd.c (源文件)包含与LCD相关的命令
3)主代码: main.c (源文件)
#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)
{
}
}发布于 2019-09-01 13:23:29
@AfricaOMM,
看起来您的代码可能基于此link中的代码。
因为您只发布了片断,所以不可能确定您试图处理的代码到底有多糟糕。
我在link找到的代码有Microchip的版权,但它的质量很差,有but,会导致几个问题。
从长远来看,你可以通过自己解决这个问题来受益。
我最好的建议是在连接到您的液晶模块的信号线上放置PIC16F1937,并在初始化代码运行时验证LED是否将每条线设置为正确的状态。
我怀疑你在连接时有错误,在代码中也有错误。
发布于 2019-09-03 21:34:22
问题解决了!
这个问题与库有关。Microchip提供的库中充满了故障,因此当执行命令时,PIC没有接收到它应该接收的信息,这就是为什么LCD显示随机字符的原因。
我建议你使用library developed by electrosome:我确认它是100%可操作的,感谢他们!
另一件事:为了解决对比度问题,理想情况下有必要将LCD的VO端口连接到电位器。
发布于 2019-12-26 04:48:36
当我们在LCD上发送消息时,它会显示有趣的字符或一些奇怪的符号,因为硬件需要一些时间来更新。您可以尝试在下面的代码行中给出一些睡眠time.after
LCDPutStr("test2"). Put above sleep time
LCD.sleep(5)它在我的案例中起作用了。它在我的案例中起作用了。
https://stackoverflow.com/questions/57679890
复制相似问题