为什么我在lcd12864模块中加进ds1302就不行了,搞不清楚程序哪儿出问题了

为什么我在lcd12864模块中加进ds1302就不行了,搞不清楚程序哪儿出问题了,第1张

请问是模块化编程吗?

如果是模块化编程的话你的问题可能两个,就我以前模块化编程时候遇到的问题解答。

第一个:你的NUM[]被多次初始化。解决办法是extern NUM[];

第二个:程序编写错误。

另外,附上我以前编写的DS1302和LCD1602的程序模块

这里是1302的h文件

#ifndef __DS1302_H__

#define __DS1302_H__

#include<reg52h>

#include"delayh"

extern uchar now_time[13];

sbit SCLK=P2^3; //位申明

sbit IO=P2^2;

sbit RST=P2^4;

void write_byte_to_ds1302(uchar dat); //写入一个字节

void write_date_to_ds1302(uchar add,uchar dat); //写入时间地址与数

extern uchar read_from_ds1302(uchar add); //读取地址

void init_ds1302(); //初始化时间

void read_clock(); //读取时间

void chang_to_bcd(); //BCD码转换为16进制数

//void display(); //数码管显示时间

#endif

下面是1602的h文件

#ifndef __LCD1602_H__

#define __LCD1602_H__

#include<reg52h>

#include"delayh"

#include"ds1302h"

#include"24C02h"

#include"18b20h"

sbit lcden=P2^7;

sbit lcdrw=P2^6;

sbit lcdrs=P2^5;

void write_com_to_1602(uchar com);

void write_data_to_1602(uchar date);

void init_1602();

void display_lcd1602();

#endif

这里是主程序模块

#include"delayh"

#include"24C02h"

#include"keyboardh"

#include"ds1302h"

#include"lcd1602h"

#include"beerh"

#include"18b20h"

void main()

{

time0_init();

init_24C02();

// init_ds1302();//初始化时间

init_1602();

while(1)

{

read_clock();

chang_to_bcd();

display_lcd1602();

check_beer((read_add_from_24C02(10))%3);

scanf_keyboard();

}

}

希望对你有用。

不一样,12864有20个脚,实际上有用的脚是18个,比1602多两脚,即PSB和PES,一个是设置串行、并行输入的,另一个是复位的。

在初始化把这两个设置了,指令啥的再改改就和1602差不多了

以上就是关于为什么我在lcd12864模块中加进ds1302就不行了,搞不清楚程序哪儿出问题了全部的内容,包括:为什么我在lcd12864模块中加进ds1302就不行了,搞不清楚程序哪儿出问题了、LCD1602和LCD12864液晶显示屏初始化程序一样吗有什么不同哪位大侠告诉我一下啊、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9347421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存