找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

新手学习1602 显示函数 然后这是网上找的程序 是有错误的 希望得到讨论一下

查看数: 2892 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-5-23 21:41

正文摘要:

#include "1602.h" #include "delay.h" #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define _NOP() _nop_() sbit RS = P2^4;   //定义端口 sbit RW = P ...

回复

ID:592807 发表于 2021-5-25 10:15
zhangyu111 发表于 2021-5-24 18:35
这一段话什么意思啊 ,我在.h 文件中看了声明函数 所有的声明函数都在.c中出现了 就是已经一对一了  所以 ...



        LcdReset();               //LCD1602初始化
        DelayMs(10);        
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,0,(unsigned char *)temp);//打印显示
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,1,(unsigned char *)temp);//打印显示
这些是函数声明吗?
不是声明你放文件开头还不注释,又不是函数内容。想干嘛?
ID:824490 发表于 2021-5-25 09:13
本帖最后由 名字不是重点 于 2021-5-25 09:14 编辑

void Test_display(){
        LcdReset();               //LCD1602初始化
        DelayMs(10);        
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,0,(unsigned char *)temp);//打印显示
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,1,(unsigned char *)temp);//打印显示
}
改成这样,再编译一下
ID:666991 发表于 2021-5-24 18:35
名字不是重点 发表于 2021-5-24 11:39
低级错误:

声明完了直接进入代码,连个函数的基本格式都没有??

这一段话什么意思啊 ,我在.h 文件中看了声明函数 所有的声明函数都在.c中出现了 就是已经一对一了  所以我就不知道这段代表啥了
ID:390416 发表于 2021-5-24 18:21
LCD1602显示℃ 这种自定义符号 http://www.51hei.com/bbs/dpj-200685-1.html
LCD1602液晶最新资料 说明了具体的时间要求 http://www.51hei.com/bbs/dpj-205768-1.html
ID:824490 发表于 2021-5-24 11:39
低级错误:

声明完了直接进入代码,连个函数的基本格式都没有??

#define CLR_RS (RS=0)
#define SET_RS (RS=1)        
#define CLR_RW (RW=0)        
#define SET_RW (RW=1)
#define CLR_EN (EN=0)
#define SET_EN (EN=1)        
//这里应该要有void  函数名()
//这里还要有“{"

        LcdReset();               //LCD1602初始化
        DelayMs(10);        
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,0,(unsigned char *)temp);//打印显示
        sprintf(temp,"1111111111111111");//更新显示
        DispStr(0,1,(unsigned char *)temp);//打印显示
//这里还要有”}"
/***********************************************
函数名称:DispStr
功    能:让液晶从某个位置起连续显示一个字符串
参    数:x--位置的列坐标
          y--位置的行坐标

再认真检查一下吧。
ID:824490 发表于 2021-5-24 11:32
compiling 1602.c...
1602.C(25): error C231: 'LcdReset': redefinition          ==>LcdReset重复定义
1602.C(26): error C141: syntax error near '10'            ==>语法错误,在字符‘10’附近
1602.C(26): error C231: '_DelayMs': redefinition         ==>_DelayMs重复定义
1602.C(27): error C141: syntax error near '<string>'  ==>语法错误,在字符‘<string>’附近
1602.C(28): error C141: syntax error near '0'            ==>语法错误


ID:666991 发表于 2021-5-24 10:54
npn 发表于 2021-5-24 09:55
main函数去哪了?

这个是1602.c main 没有贴出来  main函数没有问题
ID:666991 发表于 2021-5-24 10:52
名字不是重点 发表于 2021-5-24 00:34
认真检查代码中的符号:
 “;”
 “()”

应该不是这个问题 我复制来都特意编译过 没有问题的
ID:57657 发表于 2021-5-24 09:55
main函数去哪了?
ID:277550 发表于 2021-5-24 08:23
在lcd1602.h中,使用 #ifndef   #define 来防止重复加载
ID:189235 发表于 2021-5-24 08:21
ID:213173 发表于 2021-5-24 06:19
这段代码只是LCD1602的驱动模块,不一定有错误。其只能由主程序调用,不可以单独编译。只算是整个物体上的一个构件。
ID:824490 发表于 2021-5-24 00:34
认真检查代码中的符号:
 “;”
 “()”
   “,”
  “{}”
等等。。。
因为网上来的代码,编码变了,可能更改了全角/半角.

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

Powered by 单片机教程网

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