5-1模块化编程以及5-2调试工具

发布于:2022-11-10 ⋅ 阅读:(387) ⋅ 点赞:(0)


记录学习单片机的过程
学习内容的视频链接:
江科大自化协:

51单片机入门教程-2020版,程序全程纯手打
代码以及相应课程的内容:
软件安装包、开发板资料、课件及程序源码百度网盘链接:https://pan.baidu.com/s/1vDTN2o8ffvczzNQGfyjHng 提取码:gdzf,链接里压缩包的解压密码:51 ,如果打不开请复制链接到浏览器再打开

使用到的设备以及软件

普中科技的嵌入式开发实验仪,keil uvision5,普中isp(用来程序下载),stc-isp(用来生成对应的需要的代码)

模块化编程

为什么要用模块化编程

传统化编程

传统的方式编程,所有的文件放入到main.c当中很容易导致,函数量过高,不利于开发者的理解,在调试等方面会有较大的影响.可移植性较弱
(就比如说给你一个一百行的代码和十行的代码,实现了同样的效果,但是你肯定会喜欢十行代码的编程)

模块化编程

模块化编程: 把各个模块的代码放在不同的.c文件里, 在.h文件里 提供外部可调用函数的声明, 其它.c文件想使用其中的代码时, 只 需要**#泣clude "XXX.h"文件即可。使用模块化编程可极大的提高代码 的可阅读性、可维护性、可移植性等**

注意事项

.c文件:函数、变量的定义(文本)
.h文件:可被外部调用的函数、变量的声明(目录)
任何自定义的变量、函数在调用前必须有定义或声明 (|同一个.c) 使用到的自定义函数的.c文件必须添加到工程参与编译
使用到的. h 文件必须要放在编译器可寻找到的地方 (工程文件夹根 目录、安装目录、自定义)

C预编译

预编译就是使用#加上一些总体函数都要使用到的值,对代码进行处理
预编译的其中一个作用就在于在编译之前可以尽可能地让需要预定义的内容进行一次的定义,防止进行重复操作

文件当中的<>和" "

**<>是程序自带," "**是我们自己写的文件
在这里插入图片描述

调试工具

在这里插入图片描述

使用LCD1602调试工具

这个函数的内容老师有对应的代码,大家可以到视频下面的链接进行下载,或者在我博客下方的拓展链接找到你需要的内容
在这里插入图片描述

代码

5-1主要是讲述了为什么要使用模块化的编程,5-2则是使用案例较多,所以在这里只是显示5-2当中主要的main函数的代码

#include <REGX51.H>
#include "LCD1602.h"
#include "Delay.h"

int Result=0;
	
void main()
{
	/*LCD_Init();
	LCD_ShowChar(1,1,'A');
	LCD_ShowString(1,3,"Hello world!");
	LCD_ShowNum(2,1,520,3);
	LCD_ShowSignedNum(2,4,-5,1);
	LCD_ShowHexNum(2,7,0xA8,2);
	LCD_ShowBinNum(2,8,0xAA,8);*/
	LCD_Init();
	/*Result=2*7;
	LCD_ShowNum(1,1,Result,3);*/
	while(1)
	{
		Result++;
		Delay(1000);
		LCD_ShowNum(1,1,Result,3);
	}
	
}

心得体会

大家在导入一个已有的文件时候一定要注意,保证你导入的函数文件是和main.c在同一个目录下的,比如将下载下来的LCD1602的代码的时候是放在同一个文件夹,但是文件夹和main.c函数是同一个目录的,即使在keilv5当中,我们仍然还是会存在编译错误的问题


网站公告

今日签到

点亮在社区的每一天
去签到