模块化编程和LCD1602调试工具
5.1模块化编程
1.模块化编程
传统方式编程:所有的函数都放在main.c,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路。
模块化编程:把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其他.c文件想使用其中的代码时,只需要#include"XXX.h"文件即可。使用模块化编程可极大的提高代码的可阅读性,可维护性,可移植性等。
2.模块化编程注意事项
.c文件:函数,变量的定义
.h文件:可被外部调用的函数,变量的声明
任何自定义的变量,函数在调用前必须有定义或声明(同一个.c)
使用到的自定义函数的.c文件必须添加到工程参与编译
使用到的.h文件必须要放在编译器可寻找到的地方(工程文件根目录,安装目录,自定义)
3.C预编译
4.练习模块化编程
5.2LCD1602调试工具
1.LCD1602调试工具
2.原理图
5.3遇到的问题
1.字体调节
选用改字体可以避免中文注释乱码的情况
2.在目录工程中不显示.h文件
将文件类型改为All files
3.液晶屏没有显示数据
这个弄了好久,也没找到问题,后面再找时间看看。
后面问了客服解决了这个问题
(1)
(2)
(3)
5.4程序代码
准备:需要提前下载LCD1602的相关程序,下载网址:https://jiangxiekeji.com/download.html
51->课件及程序源码->程序源码->程序源码->LCD1602驱动代码
1.工程目录
2.Delay.c函数
void Delay(unsigned int xms) //@11.0592MHz
{
unsigned char data i, j;
while(xms--)
{
//_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
3.main函数
功能:在屏幕上显示数字,并以一秒的速度更换
#include <REGX52.H>
#include "LCD1602.h"
#include "Delay.h"
int Result=0;
void main()
{
LCD_Init();
// Result=1+1;
while(1)
{
Result++;
Delay(1000);
LCD_ShowNum(1,1,Result,3);
}
}
在LCD1602这里花了很多时间,因为我尝试了很多办法都找不出液晶屏不能正常显示的原因,幸好最后搞定了。从本节开始,明显感觉内容强度和难度都加大了,要及时复习才行。