最近闲下来,想利用单片机做一些小制作,于是把单片机相关的基础知识梳理一下,和志同道合的朋友分享交流,也同时供自己随时翻阅和不断积累。单片机制作不仅需要软件编写能力还需要硬件集成的动手操作能力,属于软硬件结合,对综合能力要求比较高。
完成一个单片机小制作一般需要经过如下几个关键步骤:
1、代码编写;2、代码编译;3、代码烧录;4、硬件设计集成。
分别讲讲这几个步骤的作用和使用工具软件:
1 代码编写
1.1理解
代码编写属于软件层面操作。代码编写应是最重要的一步,因为整个工程就是围绕编写的代码逻辑来运转的,相当于单片机大脑的思维过程。先学会编程语言的使用,然后不断精进。单片机开发,编写代码可以使用的语言有汇编、C语言、C++、Python等。汇编在学校的时候学过,现在基本上已经忘完了。目前个人用的是C语言,后两种还没有接触过。C语言被称为高级语言,因为和人类语言比较接近,易于理解和使用。C语言学习资源比较多,视频可以B站找找浙大翁凯老师的C语言程序设计。
1.2工具
C语言为例, C语言编写可以使用NOTEPAD++、VS CODE等软件。软件的下载安装网站上比较多,我这里就不赘述了。VS CODE在工作中使用的比较多,可以自动检查代码的错误,结合代码管理工具git进行使用,可以装插件,功能还是比较强大的。
1.3示例:
这里展示一个LED灯闪烁的实验。
notepad++打开,文件→新建一个文件夹,我复制了示例的代码,保存成.c的文件,即C source file,如图。使用其他编辑器保存成.c后缀的也可以。
源代码:
/**************************************************************************************
* LED闪烁的简单试验 *
* * *
***************************************************************************************/
#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器
void Delay10ms(unsigned int); //误差 0us
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
while(1)
{
P2 = 0x00; //置P0口为低电平
Delay10ms(50); //调用延时程序
P2 = 0xff; //置P0口为高电平
Delay10ms(50); // 调用延时程序
}
}
/*******************************************************************************
* 函 数 名 : Delay10ms
* 函数功能 : 延时函数,延时10ms
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a,b;
for(;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
2 代码编译
2.1理解:
对于计算机来说,这些C代码它是无法理解的,给机器输入这些它是听不懂的,所以也无法执行你的命令,故需要翻译一下,代码编译就是翻译的过程。把高级语言转换成计算机或者单片机能够识别的二进制代码,这样单片机就能按照指令进行一步一步的计算和操作了。代码编译就是一个方法问题,只要知道不同的编译软件怎么使用就行了。
2.2工具
代码编译这里使用的是KEIL软件。
2.3示例:
将.c文件编译成单片机能识别的hex文件。
1、创建项目
选择ATMEL下的AT89C51芯片
默认OK,这个还没明白是什么意思。
2 添加.c文件
选择添加.c文件
添加成功,双击可以看到文件内容,中文是乱码这个后边研究一下。
3 设置生成HEX文件
点击build
查看结果,生成了LED_Pro1名字的HEX文件,没有错误和警告就OK,有就需要修改重新编译。
在工程的文件夹里可以找到该HEX文件
3 代码烧录
3.1理解
代码烧录就是把生成的HEX文件导入到单片机,使之执行起来。
3.2工具
我这里使用的是普中的开发板,这个操作起来简便一些,一般可以在这个上边烧录好,然后放到自己的小实验上运行。
3.3示例
连接好电脑和开发板(先要安装CH340驱动)设置好点击下载,最后显示下载成功即可。
4硬件设计集成
4.1理解
设计单片机和其他外围硬件的连接方式,比如单片机控制一个小灯的闪烁,就需要将单片机的IO口和灯珠连接起来,当然这里还需要一些电源。有仿真软件比如Proteus也可以设计并测试自己的设计是否有效。但是在仿真软件上比较繁琐,设计不复杂一般就直接上实物,将单片机和外围元器件一起用导线连接起来,这就是硬件的集成。这个实验中直接用了开发板,就省略了集成的步骤。最后实验中能够看到小灯闪烁就达到了本次实验的目的。
因为是一些小实验基本就是动手连接电路了,这里就不再赘述。