zycstc 发表于 2019-10-19 12:54 求51大神 http://www.51hei.com/bbs/dpj-171595-1.html (出处: 单片机论坛) 大佬看这个悬赏贴,程序全部贴上了,,谢谢 |
来51学习2 发表于 2019-10-19 12:40 大佬,我重新加上了,重新又发了个悬赏帖,望解答下求51大神 http://www.51hei.com/bbs/dpj-171595-1.html (出处: 单片机论坛) |
#include <reg52.h> #define LCD1602_DB P0 sbit LCD1602_RS = P1^0; sbit LCD1602_RW = P1^1; sbit LCD1602_E = P1^5; /*???????????*/ void LcdWaitReady() { unsigned char sta; LCD1602_DB = 0xFF; LCD1602_RS = 0; LCD1602_RW = 1; do{ LCD1602_E = 1; sta = LCD1602_DB; //??????? LCD1602_E = 0; }while(sta & 0x80); //Bit7????1?????????????????????????0?? } /*??LCD1602???д??????????cmd-??д?????????*/ void LcdWriteCmd(unsigned char cmd) { LcdWaitReady(); LCD1602_RS = 0; LCD1602_RW = 0; LCD1602_DB = cmd; LCD1602_E = 1; LCD1602_E = 0; } /*??LCD1602???д???????????dat-??д???????*/ void LcdWriteDat(unsigned char dat) { LcdWaitReady(); LCD1602_RS = 1; LCD1602_RW = 0; LCD1602_DB = dat; LCD1602_E = 1; LCD1602_E = 0; } /*???????RAM?????????????λ?????x,y??-????????????????*/ void LcdSetCursor(unsigned char x, unsigned char y) { unsigned char addr; if (y == 0) addr = 0x00 + x; else addr = 0x40 + x; LcdWriteCmd(addr | 0x80); } /*???????????????????x,y??-????????????????str-????????*/ void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str) { LcdSetCursor(x, y); while (*str != '\0') { LcdWriteDat(*str++); } } /*?????1602???*/ void InitLcd1602() { LcdWriteCmd(0x38); LcdWriteCmd(0x0C); LcdWriteCmd(0x06); LcdWriteCmd(0x01); } |
要先确定是不是LCD1602的程序问题 |
1、没有看到你写的液晶驱动程序 2、没有看到你写的AD转换程序 3、没有看到有按键定义 |