找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

为什么我的主函数这样写,在51单片机液晶上按上下键没有任何显示?

查看数: 2392 | 评论数: 5 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-10-19 11:45

正文摘要:

Keil4编写环境:A/D数模转换和按键应用操作显示到Lcd1602上,子程序Lcd1602.c,keyboard.c,I2C.c程序略,跪求主程序 程序要求实现:按上键查询设定的电压值上下限            ...

回复

ID:521078 发表于 2019-10-19 14:47
zycstc 发表于 2019-10-19 12:54
要先确定是不是LCD1602的程序问题

求51大神
http://www.51hei.com/bbs/dpj-171595-1.html
(出处: 单片机论坛)
大佬看这个悬赏贴,程序全部贴上了,,谢谢
ID:521078 发表于 2019-10-19 14:46
来51学习2 发表于 2019-10-19 12:40
1、没有看到你写的液晶驱动程序
2、没有看到你写的AD转换程序
3、没有看到有按键定义

大佬,我重新加上了,重新又发了个悬赏帖,望解答下求51大神
http://www.51hei.com/bbs/dpj-171595-1.html
(出处: 单片机论坛)
ID:521078 发表于 2019-10-19 14:37
#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); }
ID:626591 发表于 2019-10-19 12:54
要先确定是不是LCD1602的程序问题
ID:619594 发表于 2019-10-19 12:40
1、没有看到你写的液晶驱动程序
2、没有看到你写的AD转换程序
3、没有看到有按键定义

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表