购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 用实例了解单片机应用系统的开发过程

1.2.1 明确控制要求并选择合适型号的单片机

1.明确控制要求

在开发单片机应用系统时,先要明确需要实现的控制功能,单片机硬件和软件开发都需围绕着要实现的控制功能进行。如果要实现的控制功能比较多,可一条一条列出来;若要实现的控制功能比较复杂,则需分析控制功能及控制过程,并明确表述出来(如控制的先后顺序、同时进行几项控制等),这样在进行单片机软、硬件开发时才会目标明确。

本节以开发一个用按键控制一只发光二极管(LED)亮灭的项目为例来介绍单片机应用系统的软、硬件的开发过程,其控制要求是:当按下按键时,发光二极管亮;松开按键时,发光二极管熄灭。

2.选择合适型号的单片机

明确单片机应用系统要实现的控制功能后,再选择单片机的种类和型号。不同种类和型号的单片机结构和功能有所不同,软、硬件开发也有区别。

在选择单片机型号时,一般应注意以下几点:

①选择自己熟悉的单片机。不同系列的单片机内部硬件结构和软件指令或多或少有些不同,而选择自己熟悉的单片机可以提高开发效率,缩短开发时间。

②在功能够用的情况下,考虑性价比。有些型号的单片机功能强大,但相应的价格也较高,而选择单片机型号时功能足够即可,不要盲目选用功能强大的单片机。

目前市面上使用广泛的为51单片机,其中宏晶公司(STC)的51系列单片机最为常见,编写的程序可以在线写入单片机,无须专门的编程器,并且可反复擦写单片机内部的程序。

1.2.2 设计单片机电路原理图

明确控制要求并选择合适型号的单片机后,接下来就是设计单片机电路,即给单片机添加工作条件电路、输入部件和输入电路、输出部件与输出电路等。如图1-5所示是设计好的用一个按键控制一只发光二极管亮灭的单片机电路原理图,该电路采用了STC89C51型单片机。

单片机是一种集成电路,普通的集成电路只需提供电源即可使其内部电路开始工作,而要让单片机的内部电路正常工作,除了需提供电源,还需提供时钟信号和复位信号。而提供这三者的电路称为单片机的工作条件电路。

STC89C51单片机的工作电源为5V,电压允许范围为3.8~5.5V。5V电源的正极接到单片机的正电源引脚(VCC、40脚),负极接到单片机的负电源引脚(VSS、20脚)。晶振X、电容C2、C3与单片机时钟引脚(XTAL2-18脚、XTAL1-19脚)内部的电路组成时钟振荡电路,用于产生12MHz时钟信号给单片机的内部电路,从而让内部电路有条不紊地按节拍工作。C1、R1构成单片机复位电路,在接通电源的瞬间,C1还未充电,C1两端电压为0V,R1两端电压为5V,5V电压为高电平,它作为复位信号经复位引脚(RST、9脚)送入单片机,对内部电路进行复位,使内部电路全部进入初始状态。随着电源对C1开始充电,C1两端电压迅速上升,R1两端电压则迅速下降,当C1两端电压达到5V时充电结束,此时R1两端电压为0V(低电平),单片机的RST引脚变为低电平,结束对单片机内部电路的复位,内部电路开始工作。如果单片机的RST引脚始终为高电平,则表示内部电路始终处于初始状态,无法工作。

img

图1-5 用一个按键控制一只发光二极管亮灭的单片机电路原理图

按键S闭合时,单片机的P1.2脚(3脚)通过S接地(电源负极),P1.2脚输入为低电平,内部电路在检测到该引脚电平后执行程序,即让P0.3脚(36脚)输出低电平(0V),发光二极管VD导通,有电流流过VD(电流途径是:5V电源正极→R2→VD→单片机的P0.3脚→内部电路→单片机的VSS引脚→电源负极),VD点亮;按键S松开时,单片机的P1.2脚(3脚)变为高电平(5V),内部电路在检测到该引脚电平后执行程序,即让P0.3脚(36脚)输出高电平,发光二极管VD截止(即VD不导通),VD熄灭。

1.2.3 制作单片机电路

按控制要求设计好单片机电路原理图后,还要依据电路原理图将实际的单片机电路制作出来。制作单片机电路有两种方法:一种是先用电路板设计软件(如Protel99SE软件)设计出与电路原理图相对应的PCB图(印制电路板图),再交给PCB板厂生产出相应的PCB电路板,然后将单片机及有关元件安装、焊接在电路板上即可;另一种是使用万能电路板,先将单片机及有关元件安装、焊接在电路板上,再按电路原理图的连接关系用导线或焊锡将单片机及元件连接起来。前一种方法适合大批量生产的场合,后一种方法适合少量制作实验的场合,这里使用万能电路板来制作单片机电路。

如图1-6所示是一个按键控制一只发光二极管亮灭的单片机电路元件和万能电路板(又称洞洞板)。在安装单片机电路时,需要从正面将元件引脚插入电路板的圆孔,在背面将引脚焊接好。由于万能电路板的各圆孔间是断开的,故还需要按电路原理图,用焊锡或导线将有关元件的引脚连接起来。为了方便连接,可在单片机两列引脚旁安装两排20脚的单排针,安装时将单片机各引脚与各自对应的排针脚焊接在一起即可,暂时不用的单片机引脚可不焊接。制作完成的单片机电路如图1-7所示。

img

图1-6 一个按键控制一只发光二极管亮灭的单片机电路元件和万能电路板

img

图1-7 制作完成的单片机电路

1.2.4 用Keil 软件编写单片机控制程序

单片机是一种由软件驱动的芯片,要让它进行某些控制就必须为其编写相应的控制程序。Keil μVision2是一款常用的51单片机编程软件,在该软件中可以使用汇编语言或C语言编写单片机程序。Keil μVision2的安装和使用会在后面的章节详细说明,下面只对利用该软件编程进行简略介绍。

1.编写程序

在计算机桌面上执行“开始”→“程序”→“Keil μVision2”,如图1-8所示,打开Keil μVision2软件,如图1-9所示。在该软件中先新建一个项目“一个按键控制一只LED亮灭.Uv2”,再在该项目中新建一个“一个按键控制一只LED亮灭.c”文件,如图1-10所示;然后在该文件中用C语言编写单片机控制程序(采用英文半角输入),如图1-11所示;最后单击工具栏上的 (编译)按钮,将当前C语言程序转换成单片机能识别的程序,在软件窗口下方出现编译信息,如图1-12所示,如果出现“0 Error(s),0 Warning(s)”,则表示程序编译通过。

img

图1-8 在计算机桌面上执行“开始→程序→Keil μVision2”

img

图1-9 打开Keil μVision2软件

img

图1-10 新建一个项目并在该项目中新建一个“一个按键控制一只LED亮灭.c”文件

img

图1-11 在“一个按键控制一只LED亮灭.c”文件中用C语言编写单片机程序

img

图1-12 单击编译按钮将C语言程序转换成单片机可识别的程序

C语言程序文件(.c)被编译后会得到一个十六进制程序文件(.hex),如图1-13所示,利用专门的下载软件将该十六进制程序文件写入单片机即可让单片机工作并产生相应的控制。

img

图1-13 C语言程序文件被编译后就得到一个可写入单片机的十六进制程序文件

2.程序说明

对“一个按键控制一只LED亮灭.c”文件的C语言程序说明如图1-14所示。在程序中,如果将“LED=KEY”改成“LED=!KEY”,即让LED(P0.3端口)的电平与KEY(P1.2端口)的反电平相同,则当按键按下时P1.2端口为低电平,P0.3端口为高电平,LED灯不亮。如果将程序中的“while(1)”改成“while(0)”,则while函数大括号内的语句“LED=KEY”不会执行,即未将LED(P0.3端口)的电平与KEY(P1.2端口)对应起来,操作按键无法控制LED灯的亮灭。

img

图1-14 “一个按键控制一只LED亮灭.c”文件的C语言程序说明

1.2.5 计算机、单片机和下载(烧录)器的连接

1.计算机与下载(烧录)器的连接

计算机需要通过下载器(又称烧录器)将程序写入单片机。如图1-15所示是一种常用的USB转TTL的下载器及连接线。

img

图1-15 USB转TTL的下载器及连接线

在将下载器连接到计算机前,需要先在计算机中安装下载器的驱动程序,再将下载器插入计算机的USB接口,计算机才能识别并与下载器建立联系。下载器驱动程序的安装如图1-16所示。

img

图1-16 安装下载器的驱动程序

驱动程序安装完成后,将下载器的USB插入计算机的USB接口,计算机即可识别出下载器。在计算机的“设备管理器”中查看下载器与计算机的连接情况:在计算机桌面上右击“我的电脑”,在弹出的菜单中单击“设备管理器”,如图1-17所示,弹出“设备管理器”窗口,展开其中的“端口(COM和LPT)”项,可以看出下载器的连接端口为COM3。COM3端口是一个模拟端口,记下该端口序号以便下载程序时选用。

img

图1-17 查看下载器与计算机的连接端口

2.下载器与单片机的连接

USB转TTL的下载器一般有5个引脚,分别是3.3V电源引脚、5V电源引脚、TXD(发送数据)引脚、RXD(接收数据)引脚和GND(接地)引脚。

下载器与STC89C51单片机的连接如图1-18所示,从图中可以看出,除了两者的电源正、负引脚要连接起来外,下载器的TXD(发送数据)引脚与STC89C51单片机的RXD(接收数据)引脚(10脚,与P3.0为同一个引脚)、下载器的RXD引脚与STC89C51单片机的TXD引脚(11脚,与P3.1为同一个引脚)也要连接起来。下载器与其他型号的STC-51单片机的连接与此基本相同,只是对应的单片机引脚序号可能不同。

img

图1-18 下载器与STC89C51单片机的连接

1.2.6 用烧录软件将程序写入单片机

1.将计算机、下载器与单片机连接起来

在将计算机中编写并编译好的程序下载到单片机前,必须先将计算机、下载器与单片机连接起来,如图1-19所示,然后在计算机中打开STC-ISP烧录软件,用该软件将程序写入单片机。

img

图1-19 计算机、下载器与单片机的连接

2.打开烧录软件将程序写入单片机

STC-ISP烧录软件只能将程序写入STC系列单片机,它分为安装版本和非安装版本,非安装版本使用更为方便。如图1-20所示是STC-ISP烧录软件的非安装版本,双击“STC_ISP_V483.exe”文件,打开STC-ISP烧录软件。用STC-ISP烧录软件将程序写入单片机的操作如图1-21所示。需要注意的是,单击软件中的“Download/下载”按钮后,计算机会反复往单片机发送数据,但单片机不会接收该数据,这时需要切断单片机的电源,几秒后再接通电源,单片机重新上电后会检测到计算机发送过来的数据,将该数据接收下来并存到内部的程序存储器中,从而完成程序的写入。

img

图1-20 非安装版本的STC-ISP烧录软件

img

图1-20 非安装版本的STC-ISP烧录软件(续)

img

图1-21 用STC-ISP烧录软件将程序写入单片机的操作

img

图1-21 用STC-ISP烧录软件将程序写入单片机的操作(续)

1.2.7 单片机的供电与测试

程序写入单片机后,可通过给单片机通电,测试其能否实现控制要求,如若不能,需要检查是单片机硬件电路的问题,还是程序的问题,并解决这些问题。

1.用下载器为单片机供电

在给单片机供电时,如果单片机的电路简单、消耗电流少,可让下载器(需与计算机的USB接口连接)为单片机提供5V或3.3V电源,如图1-22所示。

img

图1-22 利用下载器(需与计算机的USB接口连接)为单片机提供电源

2.用USB电源适配器为单片机供电

如果单片机的电路消耗电流大,则需要使用专门的5V电源为其供电。如图1-23所示是一种常见的USB电源适配器及数据线制作示意图。该数据线的一端为标准USB接口,另一端为Micro USB接口。在Micro USB接口附近将数据线剪断,可看见4根不同颜色的线,分别是“红—电源线(VCC,5V+)”“黑—地线(GND,5V-)”“绿—数据正(DATA+)”“白—数据负(DATA-)”,先将绿、白线剪短不用,红、黑线剥掉绝缘层露出铜芯线,再将红、黑线分别接到单片机电路的电源正、负端,如图1-24所示。USB电源适配器可以将220V交流电压转换成5V直流电压。如果单片机想要的供电不是5V而是3.3V,则可在5V电源线上串接3只整流二极管,由于每只整流二极管的电压降为0.5~0.6V,故可得到3.2~3.5V的电压,如图1-25所示。

img

图1-23 USB电源适配器与电源线制作

img

图1-24 将正、负电源线接到单片机电路的电源正、负端

img

图1-25 利用3只整流二极管可将5V电压降低成3.3V左右的电压

用USB电源适配器给单片机电路供电并进行测试,如图1-26所示。

img

图1-26 用USB电源适配器给单片机电路供电并进行测试 5dduMfnkKwT8VNYwozqU2UZcXaq8aW1vkYZlp/MMAwW+w5fOGDvdbRCQx5SJG1VI

点击中间区域
呼出菜单
上一章
目录
下一章
×