![]() |
發布時間: 2019-10-19 11:45
正文摘要:Keil4編寫環境:A/D數模轉換和按鍵應用操作顯示到Lcd1602上,子程序Lcd1602.c,keyboard.c,I2C.c程序略,跪求主程序 程序要求實現:按上鍵查詢設定的電壓值上下限 ... |
zycstc 發表于 2019-10-19 12:54 求51大神 http://www.zg4o1577.cn/bbs/dpj-171595-1.html (出處: 單片機論壇) 大佬看這個懸賞貼,程序全部貼上了,,謝謝 |
來51學習2 發表于 2019-10-19 12:40 大佬,我重新加上了,重新又發了個懸賞帖,望解答下求51大神 http://www.zg4o1577.cn/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、沒有看到有按鍵定義 |