![单片机应用技术(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/88/32857088/b_32857088.jpg)
2.6 单片机常用开发工具
随着单片机开发技术的不断发展,从使用汇编语言开发到使用高级语言C开发,单片机的开发软件也在不断的发展。目前最流行的51系列单片机开发软件就是Keil μVision4。它既可用于汇编语言的开发,也可用于C语言的开发。当程序调试正确无误后,需要用专用的编程器将编译后的程序代码下载到51芯片中。而对AT89S51来说,只需用ISP 线进行下载即可。
2.6.1 Keil μVision4仿真调试软件包
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0055-0080.jpg?sign=1738819439-O2DEz5i2o5egrjNxvdrQptqZQB90CQzU-0-9fa2508bc697379b1ee7af6757647fff)
微课:keil C51软件使用
Keil μVision4是美国Keil Software公司出品的51系列兼容单片机软件开发系统。它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器在内的完整的开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。Keil μVision4的最大优点就是编译后生成的汇编代码效率非常高,很容易理解,因此Keil μVision4也成为开发人员使用C语言开发系统首选的工具软件。这里仅以汇编语言程序的开发过程为例,介绍Keil μVision4软件的使用方法。
1.Keil μVision4的安装与启动
Keil μVision4的安装只需要进入setup目录下,双击setup.exe程序进行安装,按照安装程序提示,输入相关内容,就可以自动完成安装过程了。安装完成后,双击桌面上的Keil μVision4图标,就可以进入Keil μVision4的界面了。如图2-17所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0055-0081.jpg?sign=1738819439-tJZssLWAAImZfWoqTWNFZHZ20dihd3aZ-0-5ae72de90e81a11ccfb085cb49ce2862)
图2-17 Keil μVision4的启动界面
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0055-0082.jpg?sign=1738819439-OtN5ZUcad3ut2Um2wpe0xXhPcV3ZCJGJ-0-0fd3288d0914fa395a68833bca2c87a7)
视频:keil软件使用—窗口的打开和关闭
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0055-0083.jpg?sign=1738819439-RoujgDhbxPZFS7FKEUnfMZI3Uvw2DTrb-0-184b436188884fc14c218ff2176c1724)
视频:文本字体和颜色的修改
在图2-17中,最上面的是标题栏,其下方的是Keil μVision4的菜单栏,菜单栏下方是工具栏。在工具栏下面,有三个窗口区,左边Project窗口是项目管理窗口,用于管理当前工程及各种项目文件;右边是Keil μVision4的工作区,用于编辑程序源代码。左下方Build Output窗口是Keil μVision4的输出信息窗口,用于显示编译的状态、错误和警告信息。
2.程序的编辑及参数设置
(1)新建源程序
选择菜单File下New命令,或者单击工具栏上的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编辑窗口,在该窗口中输入汇编语言源程序或C51程序。如图2-18所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0056-0085.jpg?sign=1738819439-hLiMAMExuy54LD85FfBoWwEq87h3VPOs-0-50bed1adc7e0fc720ab1f50062915577)
图2-18 新建源程序文件
保存该文件,并加上扩展名,如waterled.asm。汇编语言源程序一般用.asm为扩展名,C51源程序用.c为扩展名。
(2)新建工程文件
在项目开发中,并不是只有一个源程序就可以了,有些项目会由多个文件组成。为了管理和使用文件方便,也为了这个项目的参数设置(如选择合适的CPU,确定编译、汇编、连接的参数,指定调试的方式等),通常将参数设置和所需要的文件都放在一个工程中,使开发人员可以轻松地管理它们。
单击Project菜单下的New μVision Project命令,可以打开新建工程对话框,输入所需建立的工程文件名,如waterled (不需要扩展名),单击“保存”按钮。打开选择CPU 对话框,如图2-19所示。在这个对话框中选择Atmel公司的AT89S51芯片,单击“确定”按钮,工程文件就建好了。
(3)加载源程序文件
在项目管理窗口中,单击Target1前面的+号,展开下一层Source Group1,用鼠标右键单击Source Group1,在出现的快捷菜单中选择Add Files To Group‘Source Group1’ 命令,如图2-20所示。在对话框中,查找源程序文件,如waterled.asm,将其选定后,加入Source Group1。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0057-0086.jpg?sign=1738819439-Aoo0rd2aeHIMDFTnFizvaqGLj3zAaW0q-0-d23e552991400689daeeebb16c0c2878)
图2-19 选择CPU对话框
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0057-0087.jpg?sign=1738819439-OKoyCWyjQrBunVbWDLwiwoTtrrlRqrLg-0-0eba870cab48cb6f1ae83a2cfacc7074)
图2-20 通过右键快捷菜单加入源程序文件
返回到主界面后,可看到Source Group1前面出现了“+”号,单击“+”号,展开下一层后,可看到加入的源程序文件waterled.asm。双击该文件,可打开该程序文件。
(4)设置工程参数
在编译、调试前,还需要对工程进行详细的参数设置。
用鼠标右键单击项目管理窗口中的 Target1,在弹出的快捷菜单中选择 Options For Target‘Target1’ 命令,打开属性设置对话框。也可通过单击图标打开属性设置对话框,如图2-21所示。在属性对话框中,包括11个选项卡,这里仅介绍几个常用选项卡,其余的请参考相关书籍。
在Target选项卡中,Xtal用于设置硬件所用的晶振频率,可根据外部实际硬件电路晶振频率设置。Memory Model用于C51编译器对默认的存储器类型模式进行设置,有三个选项,Small是所有变量都在单片机的内部RAM中;Compact是可以使用256B 外部扩展 RAM,而 Large 则是可以使用全部外部扩展的 RAM。Code Rom Size用于设置ROM空间的使用情况,同样也有三个选项,Small是指程序存储空间为2 KB; Compact是指单个函数代码量不能超过2 KB,整个程序可以使用64 KB 空间;而Large则可以使用全部64 KB空间。
在Output选项卡中,Create HEX File用于生成提供给编程器写入的可执行代码文件,如果要进行编程器写入操作就必须选定该项。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0058-0089.jpg?sign=1738819439-QqUiTb5hPGhtHSKOddOGaRxuRPqVMCkQ-0-dff2b7545d865a2bdfa3f1711e166ba6)
图2-21 属性设置对话框
属性设置对话框中的其他页与C51编译选项、A51汇编选项、BL51连接器的连接选项的设置有关,这里就不一一介绍了。
3.编译及调试
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0058-0090.jpg?sign=1738819439-i5OOU9dpC5idEenGEG34WNWLgFOh1NTy-0-8c7198a0391c3f03cfc9c55bfc1c3c21)
视频:keil C51软件的使用—编译输出Hex文件
选择Project菜单下的Translate 命令,就可以对当前文件进行编译了。若选择Build Target命令,则会对当前工程进行连接,如果文件已修改,则会先对该文件进行编译。若选择Rebuild all target files命令,则将会对当前工程中的所有文件重新进行编译并连接。
以上3种编译连接操作也可通过编译连接工具栏完成,如图2-22 (a)所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0058-0091.jpg?sign=1738819439-J0iSnDf0ueRKUcBW5D6e4rzLMDUnaOgk-0-d824b9590c032a3fbced180d71f9912b)
图2-22 编译连接工具栏及信息窗口
(a)编译连接工具栏; (b)编译正确信息提示
编译连接过程中的信息将会出现在主界面下方的信息窗口中,如果源程序有语法错误,会有错误报告出现,双击可定位到出错行,若修改完成后,会在信息窗口出现如图2-22 (b)所示的信息。此时,可进入仿真调试工作。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0092.jpg?sign=1738819439-Q9skLLYj1LFrc5h3J1XbNLdjxzstBDUH-0-619dc1785f584b3a2e2403ca76c2482e)
视频:调试窗口简介
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0093.jpg?sign=1738819439-auEOQmFk65m3dicr0Moe9fERl5A0eryl-0-23568c29f285d81be8a194545463f007)
视频:存储器窗口
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0094.jpg?sign=1738819439-5JqmUJmEULxndLiGCQ580XT5e9DfjP9q-0-31f329d53cae5519fa56480bbb756369)
视频:工具栏打开与关闭
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0095.jpg?sign=1738819439-UxPVhUYat6T2gC4LAnaWucXUPTx17fOg-0-51c6dcb7ebbe281fc6ff142239127eae)
视频:单步调试
选择Debug菜单下的Start/Stop Debug Session命令,或单击工具栏上的图标,就可以进入调试状态了。此时,工具栏中会出现调试及运行工具栏,如图2-23 (a)所示。从左到右依次是:
:Reset (复位);
:Run (运行);
:Stop (停止);
:Step (单步);
:Step Over (不进子程序单步);
:Step Out (从子程序中退出单步);
:Run to Cursor Line (运行到光标所在行);
:Show Next Statement (显示当前程序计数器状态);
:命令窗口;
:反汇编窗口;
:符号窗口;
:寄存器窗口;
:调用堆栈窗口;
:观察窗口;
:存储器窗口;
:串行口窗口;
:逻辑分析窗口;
:指令跟踪窗口等命令。通过这些命令并观察相应的窗口状态就可以进行程序调试了。例如:在图2-23 (b)中,从左侧的项目管理窗口中的寄存器页可以观察到运行程序时各寄存器的状态改变。当再次单击工具栏上的“开始/停止调试”图标
,就可以退出调试状态。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0116.jpg?sign=1738819439-CDyQRSu7GBEAYN898jrlncaWQxOSk1aD-0-360a03a2aa066ce8a247ea8d73c14aed)
图2-23 调试工具栏及调试界面
(a)调试工具栏; (b)调试界面
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0117.jpg?sign=1738819439-PnGdRyOhsV6u4ZlTToc8cURU80f7g76C-0-f9695e09751620fde6458d01cf7f6238)
视频:断点调试
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0059-0118.jpg?sign=1738819439-6zYT6CdXxHbTQrFQryWrRiBzePrU2x9K-0-8699fceb80aab3cd581ff9cd2f5e07aa)
视频:连续运行调试
2.6.2 Proteus仿真软件
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0060-0119.jpg?sign=1738819439-ZEAI084IWjw2yuJ8Z9Ez64X2UKlUWm1j-0-346a71ed88511c020b3cd49f851e9d29)
微课:Proteus软件使用
Proteus软件是英国Labcenter公司开发的电路分析与实物仿真软件,是一种电子设计自动化软件,运行于Windows操作系统上,提供可仿真数字和模拟、交流和直流等数千种元器件及多种现实存在的虚拟仪器仪表,还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。它提供Schematic Drawing、SPICE仿真与PCB设计功能,可以仿真、分析(SPICE)各种模拟器件和集成电路,同时可以仿真51系列、AVR、PIC等单片机和LED发光二极管、键盘、电机、A/D及D/A等外围接口设备。它还提供软件调试功能,具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,同时支持第三方的软件编译和调试环境,如Keil μVision4等软件。下面以流水灯仿真为例介绍该软件的基本使用方法。
1.在Proteus仿真环境下画出流水灯电路图
打开Proteus ISIS 7 Professional,进入Proteus的原理图编辑界面,如图2-24所示。在此界面下,包括菜单栏、工具栏及多个窗口。其中,图形编辑区用于绘制电路原理图;工具箱中有各种常用工具,包括选择工具、拾取元器件工具、放置节点工具、标注工具、文本工具、终端工具、引脚工具、激励源工具、虚拟仪器工具等;对象选择器选择不同的工具箱图标按钮决定当前状态显示的内容,显示的内容包括元器件、终端、引脚、图形符号、图表等。
在绘制原理图之前,首先应选择所需的元器件。选择Library→Pick Device/Symbol,或单击图标,也可单击图2-25中的图标
打开元器件拾取对话框,如图2-26所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0060-0122.jpg?sign=1738819439-my4dckQdRZ8htPhZ2bsCmAeExY5sW1GU-0-9f2e4430f9bcdb257026936315bedd6d)
图2-24 Proteus的原理图编辑界面
以查找AT89S51单片机为例,在类列表中选择Microprocessor ICs类,并在子类列表中选择8051 Family子类,则在元器件列表区域出现期望的元器件,如图2-26所示。这里没有AT89S51,可以选AT89C51代替。流水灯硬件电路的其他元器件也可按相同的方法找到,流水灯硬件电路所需元器件,如表2-12所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0061-0123.jpg?sign=1738819439-Eu2WOXfpz5smV4XdbSN4fR48nJVgABR4-0-0cca3b8bb1dd61addd10de7220b1e846)
图2-25 拾取元器件按钮
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0061-0124.jpg?sign=1738819439-wiZRaucOnsPn4y9kWSUidFgnbuIJyZXJ-0-1296317c81b8ad1373f3b4c533afbea6)
图2-26 元器件拾取对话框
表2-12 流水灯元器件清单
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0061-0125.jpg?sign=1738819439-kYCP1kGHEywZSJajwJX05sl4qH44uAE9-0-1888da5891436f3e20dc5e9295782204)
用鼠标单击对象选择器中的某一元器件名,把鼠标指针移动到图形编辑区,单击鼠标左键,元器件即可被设置到编辑区中。将所有流水灯硬件电路所需元器件依次放置到图形编辑区,可利用鼠标右键快捷菜单对已放置的元器件位置进行调整,还可用鼠标右键双击元器件删除它,如图2-27所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0062-0127.jpg?sign=1738819439-VGMTv5VypeJoX07DubuwkJ5MYpCVux8m-0-4347915fc7a23d01d52c8ffbd7a5cf46)
图2-27 放置元器件并仿真
将所有元器件按图2-27连线,Proteus连线非常智能化,只需用鼠标左键单击编辑区元器件的一个端点,再用鼠标左键单击所需连接的另一个元器件的端点即可。
最后用鼠标左键双击每个元器件,通过元器件编辑对话框修改所有元器件参数,包括电容值、电阻值、元器件序号等,如图2-28所示。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0063-0128.jpg?sign=1738819439-WSHXwRXqzKoky7GkTSa38opSHYIBhje5-0-a6403ee6cfb64a1aa73223c334579233)
图2-28 编辑元器件对话框
将所有元器件接线完成后,存盘即可。
2.将流水灯编译后的.hex文件加入Proteus中,进行虚拟仿真
双击AT89C51 单片机芯片,可打开元器件编辑对话框,如图2-29 所示。在 Program File栏中,单击“打开”按钮,选取流水灯的hex文件。在Clock Frequency栏中设置时钟频率为12MHz,如图2-29所示。Proteus仿真运行时,时钟频率以单片机编辑对话框中设置的频率值为准,所以在Proteus ISIS界面中设计电路原理图时,可以略去单片机的时钟电路。另外,复位电路也可略去。
![](https://epubservercos.yuewen.com/ACC331/17640087607671206/epubprivate/OEBPS/Images/Figure-0063-0130.jpg?sign=1738819439-tgLqMDLyle4ZYTHb9GVgqV8eq8z2rZt6-0-f2113c8494f1ea2e20d769a570d20d97)
图2-29 加载目标代码文件
在Proteus仿真界面中的仿真工具栏中单击按钮,启动全速仿真,此时LED灯就会依次从上到下点亮,如图2-27所示。用鼠标单击仿真工具栏中的按钮
,即可停止仿真。