- 51单片机C语言编程一学就会
- 何应俊
- 3623字
- 2020-11-27 17:50:16
1.3 搭建51单片机开发环境
对于初学者来说,一个完备的开发环境可以使入门变得更加轻松。51单片机的开发环境包括硬件开发系统和软件编程环境,两者缺一不可,其他单片机也是这样。
1.3.1 硬件开发系统
一般的程序员只需关注软件开发环境和程序代码,因为其代码运行在通用的计算机系统中。而单片机开发人员不仅要关心代码,还要设计硬件电路。因为单片机的程序是运行在一个独立的单片机系统(由单片机和相应的外围电路构成,控制功能不同,则相应的外围电路也就不同),而不是运行在通用的计算机中。
1.自行搭建单片机硬件系统
根据需要实现的控制功能,绘制原理图,再根据原理图准备元器件,在万能板(又叫面包板)上用导线将元器件连接(焊接)成完整的电路,这就是自行搭建的单片机硬件系统。注意,单片机不宜直接焊接在电路板上,而是先在电路板上焊上插座,再将单片机插入插座,这样可方便地拆装单片机。例如,控制15个彩灯流水点亮的自行搭建的硬件系统如图1-9所示。
图1-9 自行搭建的单片机硬件系统示例
对于自行搭建的单片机硬件系统,由于没有设置下载(烧写)程序的电路,所以需将单片机插入编程器中,将在电脑上编好的代码下载(烧写)到单片机的程序存储器(ROM)中,再将单片机插入硬件系统中的单片机专用插座。然后就可以通电调试。单片机编程器价格低廉,一般不超过20元,在电子市场和淘宝网上很容易购到。某51单片机编程器如图1-10所示。
2.单片机开发(实验)板
单片机开发板上有多种功能的硬件(见图1-11),通过插接线(见图1-12)可将硬件连接成不同的电路,实现不同的控制功能。值得说明一下:利用一种小巧的转接板,可以将51单片机的开发板用于其他单片机(如AVR、STM32等)的开发实验,非常方便。某51转AVR的转接板如图1-13所示。同样,开发板和转接板在电子市场或淘宝网也很容易买到,价格低廉。
图1-10 51单片机下载器示例
图1-11 单片机开发(实验)板示例
图1-12 插接线
图1-13 51转AVR转接板
实验板带ISP下载接口、USB下载接口、串行下载接口,并有相应的下载线(下载器)。下载线一端的插头接在实验板上相应的接口上,另一端接在计算机的USB输出接口或串口上,在计算机上编写的程序代码通过下载软件下载到实验板上的单片机中。USB-ISP下载线如图1-14所示。串行下载线如图1-15所示。
图1-14 USB-ISP下载线
图1-15 串行下载线
ISP下载的意思是在线编程,即不需将单片机从系统中卸下,可直接对系统中的单片机进行编程(即“烧入程序”)。USB下载、串口下载现在也都可以实现在线编程。
1.3.2 搭建软件开发环境(Keil μVision)
有了硬件开发环境,还需要一个友好的软件开发环境。Keil μVision系列软件是最为经典的单片机软件集成开发环境(编译器),支持汇编语言、C语言以及C语言和汇编语言的混合编程,能将用汇编语言或者C语言编写的程序代码自动转化为“.bin”文件或者“.hex”文件格式,这两种格式的文件是单片机能够识别的,可用专用的下载软件下载到单片机的ROM内。默认情况下,转化为“.hex”文件。
目前常用的版本有Keil μVision2、Keil μVision3、Keil μVision4,其下载、安装和使用方法相同。高版本的软件功能更齐全、更友好。
这些软件可以在网络上下载,本书所附的视频资料中也含有该软件。安装方法和其他办公软件的安装基本相同,不再赘述。
1.3.3 Keil μVision4的最基本应用——第一个C51工程
1.启动Keil μVision4
双击桌面上Keil μVision4的图标,启动Keil μVision4编译器,界面如图1-16所示。
注:菜单栏中各个菜单的子菜单也有很多。各个子菜单的作用需在具体的应用中逐步掌握,这里不作介绍。同样,各个工具栏中的工具的作用也宜在应用中掌握。
2.创建一个工程
以点亮一个发光二极管(LED)为例。
(1)在菜单栏用鼠标左键依次单击【Project】(工程)→【New μVision Project】(新工程),如图1-17所示。
(2)在弹出建立新工程的选择框,给工程命名、选择存储位置(这里我们存储在桌面的单片机项目文件夹中),单击【保存】,如图1-18所示。保存之后弹出选择芯片的对话框,如图1-19所示。
图1-16 Keil μVision4编译器
图1-17 创建一个新工程
图1-18 给新工程命名、选择存储位置
(3)在弹出的选择芯片对话框(见图1-19)中,假设我们现在使用的是Atmel公司的AT89C52,所以就应单击Atmel左边的“+”,在展开的项目中单击“AT89C52”,再单击【OK】,弹出“询问是否将系统自带的初始化文件添加到你的工程”的对话框,如图1-20所示,选择【是】或【否】都可以。这时在图1-16所示的主界面的左边的“Project”面板(即项目管理窗口)会显示出新建的工程。此时工程建立完毕。
图1-19 选择芯片对话框
图1-20 弹出的询问窗口
如果没有显示出“Project”面板,则可单击工具栏中的图标“”的下三角符,再单击“Project”(见图1-21),则“Project”面板会显示出来,如图1-22所示。
图1-21 打开“Project”面板
(4)新建源程序文件(即用来编写程序的文件)。
1)单击【File】→【New】或单击快捷图标,在软件编辑窗口会出现一个文本编辑窗口,如图1-23所示。
图1-22 “Project”面板的显示
图1-23 新建源程序文件
此时不必急于输入内容(输入也不会出错)。单击(或使用Ctrl+5)保存该文件,默认情况是该文件与工程文件保存在同一个文件夹里,一般不需改变。注意:给源文件命名时,一定要加上扩展名“.c”,以表明它是一个C语言程序文件。若是汇编语言程序,则应加扩展名“.a”或“.asm”,如图1-24所示。
2)将源程序文件添加到工程中。在“Project”面板中,用鼠标右击【Source Group1】→左键单击【Add Files to Group‘Source Group1’】(见图1-25),在弹出的对话框(见图1-24)中,选择工程保存的目标文件夹(注:本例的工程文件存储在桌面的“单片机项目”文件夹中),双击打开,再选择源程序文件,单击【Add】,如图1-26所示。此时,“Project”面板中会出现刚才添加的源程序文件。若没有,则点击“+”号展开后就能看见。若没有“+”号,则说明添加源程序文件不成功。
3.设置发布选项
选中生成“.hex”文件选项,这样在Keil编译器对源程序文件进行编译时才能产生扩展名为“.hex”的文件,这是“烧入单片机的”的源文件。方法是:依次单击【Project】→【Options for‘Target1’】或单击快捷图标,弹出目标选项对话框。再选择“Output”(注:意为输出)标签,勾选“Great HEXFile”(即建立“HEX”文件)、单击【OK】即可,如图1-27所示。
4.编写、编译源程序(代码)
(1)按图1-28所示输入点亮一个LED的代码(首先不管为什么要这样写)。
点亮一个LED的代码解释见表1-2。
图1-24 文件的保存
图1-25 将源程序文件添加到工程中
图1-26 【Add】窗口
图1-27 勾选创建HEX文件选项
图1-28 编写源程序代码
表1-2 点亮一个LED的代码解释
(续)
(2)编译。以上输入的程序需要通过编译,生成调试和可以烧写到单片机内部的文件中(“.hex”文件)。编译的方法是单击工具栏上的或,编译进程在信息窗口会出现一些提示,显示错误和警告信息。若编译后显示“0 Error”(意为0错误),“0 Warning”(意为0警告),说明编译成功,如图1-29所示。
图1-29 对输入的程序进行编译
注意:编译时,编译器只是进行了一些语法检测,并不能查出程序中的所有错误。编译有错误,则不能生成“.hex”文件,则需要根据提示进行语法检查。若编译成功,则能生成“.hex”文件,但是也不能说明程序就一定能按我们的设想去运行。这就需将程序“烧写”到单片机,启动单片机和实际外围电路,或者在实验开发板上去验证,看能否按设计的思路去运行。若不能正常运行,则需修改程序、重新编译。编译成功后,在工程保存的那个文件夹中会生成“.hex”文件,该文件最后要写入单片机程序存储器内部,单片机就是根据该文件的内容进行控制工作的。
5.将程序代码下载(即所谓“烧写”)进单片机的程序存储器中
下载程序的方法很简单。不同的单片机用的下载软件不一样,均可以在网上下载,可根据下载工具所附带的说明来将生成的“.hex”文件下载到单片机内。下面以应用很广的STC单片机为例说明下载的基本方法。
首先,用串口下载器将开发板的串口与计算机的串口相连。将下载软件STC_ISP解压、安装,再双击快捷方式STC_ISP(见图1-30),打开下载工具界面,如图1-31所示,接着按照图1-31所示界面上的步骤进行操作。下面详细介绍。
图1-30 STC_ISP快捷方式
图1-31 STC下载工具界面
步骤1:选择芯片(即选择单片机的型号)。
单击小三角“”,弹出各种芯片型号,再选择与自己使用的单片机相同的型号(见图1-31)。
步骤2:打开程序文件(即打开“.hex”文件)。
单击“”,弹出打开程序文件(“.hex”或“.bin”)对话框,如图1-32所示。
图1-32 打开程序文件(“.hex”或“.bin”)对话框
在图1-30中,在保存工程的那个文件夹(本例中我们保存在桌面/单片机项目中),选中、打开“.hex”文件,界面如图1-33所示。
图1-33 打开、载入“.hex”文件后的界面
图1-34 单片机程序下载
步骤3:选择串行下载端口和下载波特率。
由于本章我们使用的是串口下载器,下载器连接在哪个端口就选用相应的串口,我们接在“COM1”口,所以就要选择“COM1”。关于波特率,一般可选中等数值。
步骤4:下载程序代码至单片机。
单击“”,开始下载,界面如图1-34所示。再开启目标板(即单片机实验板)的电源,程序“烧入”单片机中。
复习题
1.STC89C52单片机有哪些I/O口?
2.画出单片机的最小系统图。
3.怎样搭建单片机的软件开发环境?
4.叙述编译程序的方法。
5.对STC单片机怎样下载程序?
6.ISP是什么意思?
7.常用的单片机有哪些类型?
8.上网查询资料,掌握用USB-ISP下载器下载程序的方法。