|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
用洞洞焊的测试电路,LCD显示正常,然后焊在板子上,不是显示乱码了,要不就不显示。是不是LCD程序写的时序不对呢2 E0 m% n1 ` I3 g' {: f1 F6 j
PCB是烧录器5V升压12V,然后12V经7805降压给单片机供电,是不是有电磁干扰?洞洞板是直接烧录器供电。看PCB单片机引脚没有虚焊,排除焊接问题
2 a4 `8 y2 f1 v2 J. j% v' ^! g2 e" c8 t" F+ I/ k1 Z
( ^; Q8 ?) N4 Q, p
- void write_nibble_lcd(unsigned char Val) //使用的是4位数据传输
- {
- LCDEN = 1; //写入时序
- D0 = D1 = D2 = D3 = 0;
- if(Val & 0x01)
- D0 = 1;
- if(Val & 0x02)
- D1 = 1;
- if(Val & 0x04)
- D2 = 1;
- if(Val & 0x08)
- D3 = 1;
- LCDEN = 0; //使能清零
- }
- void write_lcd(unsigned char Val) //发送一个字符
- {
- write_nibble_lcd(Val >> 4);
- write_nibble_lcd(Val);
- delay_ms(1);
- }
- /******************************初始化LCD************************************/
- void lcd_init(void)
- {
- LCDRS = 0; //写入命令 0 选择发送命令 1 选择发送数据
- write_nibble_lcd(0x03);
- delay_ms(1);
- write_nibble_lcd(0x02);
- delay_ms(1);
- write_lcd(0x28); //在四位线下的初始化
- write_lcd(0x06); //光标右移,显示不移
- write_lcd(0x0E); //显示开,光标开,光标不闪烁
- write_lcd(0x01); //清屏
- }
- /*******************************写命令************************************/
- void write_com(u8 com)
- {
- LCDRS = 0;
- write_lcd(com);
- delay_ms(2);
- }
- /*******************************写数据***********************************/
- void write_data(u8 date)
- {
- LCDRS = 1; //写入数据 0 选择发送命令 1 选择发送数据
- write_lcd(date);
- delay_ms(2);# P+ R; }+ U% d
: @8 Z& q/ C, |& }( y% a4 G% q7 T, f* C- V C2 S3 u
! R) g7 ?9 N! a- S0 b. v: O& f! `
: W8 [. I1 a0 r9 _
$ ]1 x+ z0 H! ~3 X4 Q
$ ^1 K8 q9 _3 X$ k/ @/ t
- P3 {$ P: ~9 Z2 }2 [
' n) [: {' D% s
5 U- \6 X2 X# s0 `5 Q1 ^
% z2 ?+ | F, U: {8 F& } |
|