版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、任务任务1控制控制1只发光二极管闪烁显示只发光二极管闪烁显示搭建单片机控制一只发光二极管闪烁显示的电路,在Keil Vision4集成开发环境中新建一个Keil工程,将给定的控制发光二极管闪烁显示程序添加到Keil工程中,编译生成单片机可执行的hex文件,然后用STC-ISP-6.63工具软件将hex文件下载至单片机应用系统中,观察发光二极管的显示效果。【任务要求】【任务要求】【相关知识】【相关知识】完成本任务所需要的知识主要有单片机的引脚功能、单片机的存储组织结构、C51程序的特点、Keil4和STC-ISP-6.63等开发工具的使用方法等。其中,Keil4和STC-ISP-6.63等开发工
2、具的使用将在任务实施中介绍。单片机的引脚功能单片机的引脚功能1脚脚20脚脚21脚脚40脚脚图图1-1 STC89C51外型外型MCS-51单片机有许多产品,不同产品的单片机其内核相同。STC89C51是MCS-51单片机的一个品种,它有DIP-40、PLCC-44、TQFP-44等几种封装形式。其中DIP-40封装形式的单片机的外型如图左所示。双向双向8位并行端口位并行端口P3双向双向8位并行端口位并行端口P2双向双向8位并行端口位并行端口P1 程序存储器选择控制端。该脚接高电平,系统从片内程序存储器中开始执行程序。该脚接地,系统从片外程序存储器中开始执行程序STC89C51引脚配置引脚配置V
3、CC5V电源脚 外部程序存储器读选通信号输出引脚ALE地址锁存控制信号输出引脚EAPSENRST复位信号输入端,用于外接复位电路XTAL2内部振荡电路的输出端XTAL1内部振荡电路的输入端GND接地引脚双向双向8位并行端口位并行端口P0振荡器:外接晶振和微调电容构成单片机的时钟电路,用来产生单片机内部各部件同步工作的时钟信号。 并行端口:MCS-51单片机有4个8位并行输入/输出端口(P0、P1、P2、P3),可以实现数据的并行输入/输出。单片机是在单一芯片上构成的微型计算机,MCS-51单片机的内部结构示意图如下图单片机的内部结构单片机的内部结构中断系统:MCS-51单片机有5个中断源,2个
4、来自外部,3个来自内部,具有2级中断优先级。串行端口:MCS-51单片机有一个全双工的串行口,可以实现单片机与其他计算机之间进行串行数据通信,也可以作为同步移位器使用,用于扩展外部输入/输出端口。单片机是在单一芯片上构成的微型计算机,MCS-51单片机的内部结构示意图如下图单片机的内部结构单片机的内部结构特殊功能寄存器:用于设置单片机内部电路的运行方式,记录单片机的运行状态程序存储器:保存用户程序和用户表格数据。片内数据存储器:存放运算的中间结果。定时/计数器:MCS-51单片机内部有2个16位的定时/计数器,用于产生各种时标间隔或者记录外部事件的数量CPU:中央处理器,是单片机的核心,由运算
5、器和控制器组成。单片机的存储组织结构单片机的存储组织结构MCS-51单片机有单片机有4个个存储空间存储空间:(4个存储空间有不同的功能)片内数据存储器(片内RAM)特殊功能寄存器(SFR)扩展数据存储器(扩展RAM)程序存储器(ROM)单片机的存储组织结构单片机的存储组织结构片内RAM标准的MCS-51单片机片内RAM只有128字节,其地址范围为0 x000 x7f,增强型的MCS-51单片机的片内RAM有256字节,地址范围为0 x000 x ff,MCS-51单片机的片内RAM的结构如下图所示。地址0 x000 x1f的区域为工作寄存器组区。这32个字节单元分为4组,每组8个字节,称为一个
6、工作寄存器组,如下图所示。任何时刻CPU都只能使用其中的某一组工作寄存器。CPU正在使用的工作寄存器组称为当前工作寄存器组,依次用R0、R1、R7表示,主要用来传递参数或者临时存放数据。地址0 x200 x2f的区域为位地址区,共16个字节,在C51中称这一区域为bdata 区,其特点是,每个字节都分配有一个位地址,共128位,每一位都可以单独访问,从0 x20单元的最低位到0 x2f的最高位各位的位地址依次为0 x00、0 x010 x7f.如下图所示。Bdata区常用作位变量的存储器。地址0 x300 x7f的区域为数据缓冲区1,用来存放运算过程中的中间值。地址0 x800 xff的区域为
7、数据缓冲区2,也是用来存放运算过程中的中间值。单片机的存储组织结构单片机的存储组织结构标准的MCS-51单片机有21个SFR,不连续地分配在0 x800 xff地址区中,用来设置单片机内部电路的运行方式,记录单片机的运行状态,以及实现I/O端口的读写操作。21个SFR的地址分配及其功能如下表所示。符号符号地址地址功能功能P0P00 x800 x80P0P0口映射口映射SFR。对。对P0读读/写,可实现对写,可实现对P0端口的输入端口的输入/输出操作输出操作SPSP0 x810 x81CPUCPU内部的堆栈指针寄存器的映射特殊功能寄存器内部的堆栈指针寄存器的映射特殊功能寄存器DPLDPL0 x8
8、20 x82数据指针寄存器数据指针寄存器DPTR的低字节映射特殊功能寄存器的低字节映射特殊功能寄存器DPHDPH0 x830 x83数据指针寄存器数据指针寄存器DPTR的高字节映射特殊功能寄存器的高字节映射特殊功能寄存器PCONPCON0 x870 x87电源控制寄存器电源控制寄存器(2)特殊特殊功能寄存器功能寄存器(SFR)符号符号地址地址功能功能TCONTCON0 x880 x88定时定时/计数器的控制寄存器计数器的控制寄存器TMODTMOD0 x890 x89定时定时/计数器的模式控制寄存器计数器的模式控制寄存器TL0TL00 x8a0 x8a定时定时/计数器计数器T0的计数器低字节的计
9、数器低字节TL1TL10 x8b0 x8b定时定时/计数器计数器T1的计数器低字节的计数器低字节TH0TH00 x8c0 x8c定时定时/计数器计数器T0的计数器高字节的计数器高字节TH1TH10 x8d0 x8d定时定时/计数器计数器T1的计数器高字节的计数器高字节P1P10 x900 x90P1P1口映射口映射SFR。对。对P1读读/写,可实现对写,可实现对P1端口的输入端口的输入/输出操作输出操作SCONSCON0 x980 x98串行端口控制寄存器串行端口控制寄存器SBUFSBUF0 x990 x99串行端口数据缓冲器串行端口数据缓冲器P2P20 xa00 xa0P2P2口映射口映射S
10、FR。对。对P2读读/写,可实现对写,可实现对P2端口的输入端口的输入/输出操作输出操作IEIE0 xa80 xa8中断允许控制寄存器中断允许控制寄存器P3P30 xb00 xb0P3P3口映射口映射SFR。对。对P3读读/写,可实现对写,可实现对P3端口的输入端口的输入/输出操作输出操作IPIP0 xb80 xb8中断优先级控制寄存器中断优先级控制寄存器PSWPSW0 xd00 xd0程序状态字寄存器,用来记录程序运行的状态程序状态字寄存器,用来记录程序运行的状态ACCACC0 xe00 xe0累加器累加器A的映射特殊功能寄存器的映射特殊功能寄存器B B0 xf00 xf0B B寄存器的映射
11、特殊功能寄存器寄存器的映射特殊功能寄存器(3)扩展数据存储器扩展数据存储器也叫外部数据存储器,用来存放运算过程中的中间值,通过在单片机外部扩展RAM芯片来实现。MCS-51单片机具有16根地址线,单片机外部最多可以扩展64KB的外部数据存储器,地址范围为0 x00000 xffff。在C51中,扩展数据存储器叫做xdata区,其中高8位地址相同的256字节的区域为pdata区。单片机的存储组织结构单片机的存储组织结构(4)程序存储器(ROM)共64KB的空间,地址范围为0 x00000 xffff,通过外接ROM芯片来实现,用来存放用户程序和用户表格数据,C51中称程序存储器为code区。现代
12、的MCS-51单片机内部一般都集成有一定数量的程序存储器,片内的程序存储器位于从0 x0000开始的地址低端。例如STC89C51单片机内就集成有4KB的程序存储器,地址范围为0 x00000 x0fff,其程序存储器的结构如下图所示,图中阴影部分为CPU实际访问的程序存储器。 单片机的存储组织结构单片机的存储组织结构(4)程序存储器(ROM) =0( 引脚接地)时,CPU只访问片外扩展程序存储器,所有的程序和用户表格数据必须固化在片外扩展的程序存储器中。EAEA =1( 引脚接高电平)时,CPU在访问0 x00000 x0fff范围内的程序存储器时,访问片内程序存储器而不访问片外的程序存储器
13、,地址范围超过1F0XFF后CPU自动访问片外程序存储器EAEA单片机的最小系统单片机的最小系统单片机的最小系统是指保证单片机能独立工作所必须要的外部电路,包括时钟电路、复位电路、存储器电路和电源电路。时钟电路时钟电路时钟电路用来产生时钟脉冲信号,单片机缺少了时钟信号就无法工作。单片机的内部有一个高增益的放大电路,XTAL1是放大电路的输入端,XTAL2是放大器的输出端,XTAL1、XTLAL2引脚间接上晶振Y后就构成了自激振荡电路,它所产生的脉冲信号的频率就是晶振的固有频率。 MCS-51单片机常用的时钟电路如下图所示。图中晶振Y起反馈选频作用,它的频率的高低决定了单片机运行速度的快慢。单片
14、机系统中通常选用6MHz或者12MHz的晶振,如果系统中使用了串行通信,一般选择11.0592MHz的晶振。电容C1、C2为振荡微调电容,可以加快起振,同时起到稳定频率和微调振荡频率的作用。实际应用中,C1、C2的容量相等,一般取5pF30pF。在装配电路时,为了减少寄生电容,保证电路可靠工作,要求晶振Y和电容C1、C2要尽可能地安装在XTAL1、XTAL2引脚的附近。时钟电路时钟电路在单片机应用中,常涉及与时钟有关的概念有时钟周期和机器周期,它们是单片机内部计算其他时间的基本单位。时钟周期(Tosc):又称为振荡周期,即时钟信号的周期。若晶振的频率为fosc,则Tosc=1/fosc。机器周
15、期(MC):CPU完成一个基本操作所需要的时间。标准的MCS-51单片机的一个机器周期包括12个振荡周期。即MC=12/fosc。复位电路复位电路复位电路的作用是,为单片机产生复位信号,保证单片机上电后从一个确定的状态开始工作。MCS-51单片机的复位条件是,时钟信号建立后,RST引脚上加上至少2个机器周期的高电平。常用的复位电路如下图所示。复位电路复位电路图a是上电复位电路,由RC充电电路构成。上电时,电源通过电阻R1对电容C1充电,由于电容两端电压不能突变,RST端为高电平。过一段时间后,电容两端电荷充满,电容等效为开路,RST端为低电平。由此可见,RST端的高电平持续时间取决于RC电路的
16、充电时间常数,合理选择C1和R1就可以实现上电复位。上电后,振荡电路起振要经历一个振荡建立时间,不同频率的振荡器,振荡建立时间不同,因此系统中所使用的晶振的频率不同,上电复位电路的参数不同。通常要求上电时RST复位高电平能持续10ms以上,R1、C1的取值一般为:C1=1030F,R1=1K10K。晶振频率为6MHz时,可取C1=22F,R1=1 K晶振频率为12MHz时,可取C1=10F,R1=8.2 K图b是常用的按键复位电路,图中C1、R1为上电复位电路,S、R2构成开关复位电路。单片机正常工作时,按下按键S,C1两端电荷经R2迅速放电,S断开后,由C1、R1及电源将完成对单片机的复位操
17、作。在上述电路中,R2的取值一般为0200,C1、R1按上电复位电路的设计而取值。复位电路的作用非常重要,能否成功复位关系到单片机系统能否正常运行的问题。如果振荡电路正常而单片机系统不能正常运行,其主要原因是单片机没有完成复位操作。这时可以适当地调整上电复位电路的阻容值,增加其充电时间常数来解决问题。单片机复位后, 21个特殊功能寄存器将回复到初始状态,复位不改变片内RAM的内容。复位后特殊功能寄存器的初始状态如表1-3所示。表1-3MCS-51单片机复位后特殊功能寄存器的初始状态特殊功能寄存器初始状态特殊功能寄存器初始状态A0 x00TMOD0 x00B0 x00TCON0 x00PSW0
18、x00TH00 x00SP0 x07TL00 x00DPL0 x00TH10 x00DPH0 x00TL10 x00P0P30 xffSBUF不定IPxxx00000BSCON0 x00IE0 xx00000BPCON0 x00【说明】表中x表示该位为随机状态PSW=0 x00,表明复位后单片机使用第0组工作寄存器组SP=0 x07,表明堆栈指针指向片内RAM 0 x07单元,0 x07以后的单元为堆栈区,第一个压入堆栈的数据存放在片内RAM 0 x08单元中。现代的MCS-51单片机片内除了有片内RAM外,一般还集成有一定容量的程序存储器,有些单片机片内还集成有一定容量的扩展RAM,在这类单
19、片机的外部接上时钟电路、复位电路,将其VCC和GND引脚分别接上+5V电源和地,然后将 引脚接高电平就构成了单片机的最小系统,以STC89C51单片机为例,STC89C51单片机的最小系统电路如下图所示。最小系统电路最小系统电路EAC51程序的特点程序的特点#include/包含51寄存器头文件(reg51.h)sbitled=P10;/led引脚定义voiddelay(void);/函数说明voidmain(void)/主函数while(1)/while循环(永远为真,死循环)/循环体开始led=led;/发光二级管的显示状态取反delay();/延时500ms/循环体结束/主函数结束voi
20、ddelay(void)/delay子函数,返回值为空unsignedlongi;/定义长整形变量ifor(i=0;i12500;i+);/for循环,循环体为空,耗时/delay函数结束任务任务1中,用中,用P1.0口线控制口线控制1只发光二极管闪烁显示的程序如下只发光二极管闪烁显示的程序如下:从上述程序可以看出,C51程序有如下特点:C51程序由一个main函数和若干个其他函数组成。函数是C51程序的基本单位。C51程序中有且只有一个main函数,main函数可以放在程序中任意位置,无论main函数放在何处,C51程序总是从main函数开始执行的。其他函数根据程序的需要可以为0个也可以是多
21、个,其他函数可以放在程序中的任意位置。C51程序中,语句由分号(;)结尾,分号是语句的组成部分。函数是由若干条语句组成的。一条语句可以分多行写书,一行内也可以书写多条语句。C51程序中的注释有“/注释”和“/*注释*/”两种形式。其中“/注释”为单行注释,“/”表示注释开始,在本行内,“/”后面的内容为注释的内容。“/*注释*/”可以对多行注释,“/*”为注释的开始,“*/”为注释的结束,“/*”和“*/”之间的内容为注释内容。C51程序中大小写字母有别,标点符号要用半角方式录入。【任务实施】【任务实施】1、搭建电路搭建电路电路图根据任务要求,我们选用P1.0口线(单片机的1脚线)作为发光二极
22、管的控制口,则实现本任务要求的硬件电路如下图所示。1、搭建电路搭建电路由图可看出,任务1的硬件电路是在单片机最小系统的基础上再加上发光二极管控制电路而构成的。在MFSC-2实验平台上,用单芯扁平线将J3的P10脚与J9的D0脚相接,就构成了上述电路。元器件清单元器件清单元元件件规格规格元元件件规格规格元元件件规格规格C1C130pF30pF瓷片电瓷片电容容R1R18.2K8.2K普通普通电阻电阻D1D13红色发光二红色发光二极管极管C2C230pF30pF瓷片电瓷片电容容R2R21K1K普通电普通电阻阻U1U1STC89C51RCSTC89C51RC单单片机片机C3C31010F/16VF/1
23、6V电电解电容解电容Y1Y111.0592MH11.0592MHz z晶振晶振任务任务1元件清单元件清单2、安装安装USB转串口的驱动程序转串口的驱动程序安装USB驱动的操作步骤如下:(1)从本书附件资料中找到USB转串口驱动程序CH341SER.exe,然后双击驱动程序文件图标“”,打开如下图所示的驱动安装对话框。(2)在“驱动安装”对话框的“选择INF文件”下拉列表框中选择“CH341SER.INF”列表项,然后单击“安装”按钮,系统就开始执行安装程序,驱动程序安装结束后会自动弹出如下图所示的驱动安装成功提示框。【说明】USB转串口的驱动程序仅需安装一次,如果系统中已经安装了USB转串口的
24、驱动程序,请跳过此步。本例中所用的驱动程序为CH340的驱动程序,如果用户使用的USB转串口通信线是其他芯片构成的,请参照上述方法安装其对应的驱动程序。查看查看USB口映射的串口号口映射的串口号查看串口号的操作方法如下:(1)将含有CH340芯片的USB转串口通信线插入计算机的某个USB口中。(2)在桌面上右击“我的电脑”图标,在弹出的快捷菜单中单击“属性”菜单命令,打开如右图所示的“系统属性”对话框。(3)在“系统属性”对话框中单击“硬件”选项卡标签,然后在“硬件”选项卡中单击“设备管理器”按钮,打开如下图所示的“设备管理器”窗口。(4)在“设备管理器”窗口中单击“端口”左边的“+”号,展开
25、“端口”项,“端口”项下面会出“USB-SERIAL CH340”项(参考图1-16)。该项右边的COMX就是当前USB口所映射的串口号,例如图中所表示的是当前的USB口所映射的串口号为COM3,后续计算机通过该USB口向单片机下载程序或者调试单片机应用程序时,选择串口编号时就应该选择COM3。【说明】本书配套的实训平台上板载了CH340芯片,如果用户选用的是本书配套的实训平台,则只需用普通的USB线将实训平台与计算机相连即可,如果用户的实训平台是自己搭建的,则需按本书任务14中所介绍的方法制USB转串口的通信线。上述观察映射串口号的方法是在Windows XP环境中进行的,如果用户计算机使用
26、的是其他操作系统,请参照上述方法进行操作。不同的USB所映射的串口号不同,在实验中更换了USB口则需按上述方法查看其所映射的串行口。4、在在keil中添加中添加STC单片机单片机STC单片机是宏晶公司生产的新型51单片机,不在keil所罗列的51单片机之列,用keil集成开发环境开发STC单片机应用程序时需要在keil中添加STC单片机。在keil中添加STC单片机的操作方法如下:安装好keil Vision4,并记下安装目录。从宏晶公司网站上下载STC单片机的ISP下载编程烧录软件STC_ISP_6.63。宏晶公司的网址为http:/www.STCMCU.com。双击STC_ISP软件图标“
27、”,打开如下图所示的“STC-ISP”窗口。1单击左移右移按钮2单击标签名3单击按钮在“STC-ISP”窗口中单击右上角的左移“”或者右移“ ”按钮,使窗口中出现“keil仿真设置”标签,然后单击“keil仿真设置”标签名,使“keil仿真设置”标签成为当前标签。在“keil仿真设置”标签中单击“添加MCU型号到keil中”按钮,打开如下图所示的“浏览文件夹”对话框。 图1-18 浏览文件夹对话框图1-19 添加成功提示【说明】在keil中添加STC单片机的实质是在keil安装目录中添加“stc.cdb”文件以及“STC89C5xRC.h”、“STC12C5410AD.h”、“STC12C5A
28、60S2.h” 、“STC15F104E.h” 、“STC15F2K60S2.h”等几个定义特殊功能寄存器的头文件。安装好keil集成开发软件后,仅需向keil中添加一次STC单片机,以后使用keil集成开发软件时就不必再添加STC单片机了。5、建立建立keil工程工程用C51开发单片机应用程序一般是在Keil集成开发环境中进行的,需要先建立一个Keil工程,然后配置Keil工程,利用Keil的调试工具调试好应用程序,最后将调试好的程序编译并生成单片机可直接运行的16进制文件(hex文件)。以Keil Vision4为例,建立Keil工程的操作步骤如下:建立工程文件在D盘新建一个名为EX01文
29、件夹,用来保存工程中相关文件。双击桌面上的“Keil Vision4”快捷图标“ ”,打开如下图所示的Keil Vision4窗口。输出窗口Project标签显示工程的结构工程管理窗口Function标签显示工程中的函数Books标签显示CPU的附加说明文件工具图标按钮Templates标签显示常用结构模板状态栏单击菜单栏上的“project”“new project”菜单,打开如下图所示的新建工程对话框在此处输入工程名单击此按钮选择文件夹此区域为文件列表框,用于显示文件夹中的文件在此处选择工程类型在新建工程对话框中单击“保存在”下拉列表框,从中选择保存工程文件的文件夹“D:EX01”(第1步
30、中新建的文件夹),在“文件名(N)”文本框中输入工程文件名“ex01”(无扩展名),在“保存类型”下拉列表框中选择“Project Files (*.uvproj)”列表项,然后单击“保存”按钮,系统会出现如下图所示的选择CPU数据库文件对话框。在选择CPU数据库对话框的下拉列表框中选择“STC MCU Database”列表项,然后单击“OK”按钮,打开如下图所示的选择单片机对话框。单击此处选择STC89C52RC单片机单片机类型单片机的性能介绍在选择单片机对话框中单击“STC”前面的“+”号,将“STC”单片机展开,然后单击“STC89C52RC”,选择本例实践中所用的单片机,然后再单击“
31、OK”按钮,打开如下图所示的添加启动代码询问框,此时可根据个人的爱好进行选择。本例中,我们不用系统提供的启动程序代码,需要单击“否”按钮。新建新建C51程序文件程序文件单击菜单栏上的“File” “New”菜单或者单击工具栏上的新建文件图标按钮“ ”,这时Keil Vision4集成开发环境的右边会出现文本编辑窗口,窗口标签上会显示当前新建文件的文件名“Text1*”,如下图所示。 文本编辑窗口当前编辑的文件单击工具栏上的保存文件图标按钮“ ”或者单击菜单栏上的“File”“Save”菜单,系统会弹出保存文件对话框,在“文件名”文本框中输入文件名“ex01.c”,然后单击“保存”按钮。这里的“
32、ex01.c”是本例的程序文件,其扩展名为C,表示是C51程序文件。【说明】用keil新建文件时,keil默认的文件名为texti*(i=1、2、),此时文本编辑窗口上的标签显示的是默认的文件名,保存文件后,文本编辑窗口上的标签显示的是保存后的文件名。C51程序文件实际上是一个文本文件,可以用任何文本编辑器新建和编辑。在程序代码中,“/”后面的内容为语句的注释部分。本例中,这一部分可以暂不录入。“/”是C语言程序的注释符。程序中的标点符号必须在半角状态录入。例如“;”(半角状态下的分号)不能录入成“;”(全角状态下的分号)。如果事先已建立了C51程序文件,则跳过此步直接进入第3步。在文本编辑窗
33、口中录入我们在C51程序的特点中所介绍的任务1程序代码。在Keil工程中添加程序文件在项目管理窗口中单击“target 1”前面的“”号,然后用鼠标右键单击“Source Group 1”,在弹出来的快捷菜单中单击“Add File to GroupSource Group 1”,如下图所示。在上图所示的添加文件对话框中,“查找范围”下拉列表框内显示的是工程文件所在目录“EX01”,“查找范围”下面的列表框是文件列表框,显示的是指定目录中的指定类型的所有文件。单击“文件类型”下拉列表框,从中选择“C Source file(*.c)”(C语言源程序文件),此时文件列表框中将显示EX01目录中所
34、有C语言源程序文件,单击刚才所建立的程序文件“ex01.c”,再单击“Add”按钮。此时,源程序文件就添加至Keil工程中了。这时系统将会弹出如下图所示的添加文件对话框。【说明】程序文件添加后,在Keil Vision4集成开发环境的工程管理窗口中,“Source Group 1”前面将出现一个“”号,单击“”号可看到“Source Group 1”下面会出现所添加的文件“ex01.c”,表示程序文件已经添加成功。但图1-27的对话框仍保持不变,此时应单击“Close”按钮关闭对话框,如果在对话框中再次单击“Add”按钮,则会出现如下图所示的警告提示。 配置工程配置工程配置工程包括设置工程中所
35、使用的晶振频率、输出文件的种类及其形式、变量分配的空间等。配置工程的方法如下:用鼠标右键单击工程管理窗口中的“Target 1”,在弹出的快捷菜单中单击“Option for Target Target 1”菜单项,如下图所示。这时系统会出现如下图所示的“Option for Target Target 1”对话框。晶振的频率是否选用片内程序存储器是否选用片内扩展RAM默认状态下变量分配的存储空间程序代码的大小选择操作系统片 外 扩 展RAM的起始地 址 及 大小片 外 扩 展程 序 存 储器 的 起 始地 址 及 大小Option for Target Target 1对话框非常复杂,共有1
36、1个页面,包括对工程的方方面面的设置,在大多数情况下用户只需对其中的少数项进行设置。单击target标签,系统会显示target页面,如图1-30所示。Target页面用来设置单片机的晶振频率、变量的存储空间分配等,各项的含义如下:“xtal”文本框:设置单片机所用晶振的频率,用于模拟调试时确定程序执行的时间,一般设置成实际硬件所使用的晶振频率。默认值为所选单片机可用的最高振荡频率。“Memory model”下拉列表框:设置默认状态下变量分配的存储空间。它有三个选项,各选项的含义如下表所示Memory model的选项选项注释含义Small小 型 模式所有变量都定义在data区内(片内RAM
37、 0 x000 x7f区域)Compact紧 凑 模式变量可以使用一页扩展RAM区域(pdata区)。Large大 型 模式变量可使用64KB的扩展RAM(xdata区)。“Code Rom Size”下拉列表框:设置程序代码的大小。有三个选项,其含义如下表所示。Code Rom Size的选项选项注释含义Small小型模式所有程序使用低2KB程序存储器空间。Compact紧凑模式单个函数的代码量不能超过2KB,整个程序可以使用64KB空间。Large大型模式可以使用全部64KB程序存储空间。“Operating system”下拉列表框:选择操作系统。它有三个选项,通常情况下选择None(无
38、操作系统)。“Use On-chip ROM”多选钮:是否选用片内程序存储器。此选项与代码生成无关。“Use On-chip XRAM”多选钮:是否选用片内扩展RAM。STC89C51单片机片内集成有256B的扩展RAM,此选项与代码生成无关。“Off-chip Code memory”框架:设置片外扩展程序存储器的起始地址和大小。“Off-chip Xdata memory”框架:设置片外扩展RAM的起始地址和大小。 单击Output标签,显示如下图所示的Output页面。Output页面用来设置输出文件的形式,除了“Create HEX File”多选钮外,其他各项一般采用其默认值。勾选“
39、Create HEX File”多选钮,则对源程序编译、连接后Keil会创建一个HEX文件,即生成可下载至单片机内可执行的十六进制文件。默认时该项没选中,如果要将程序下载至单片机中做硬件实验,则必须勾选此项。单击Listing标签,显示如下图所示的Listing页面。Listing页面用来对列表文件进行详细设置。其中常用的是“C Compiler Listing”下面的“Assembly Code”选项,选中此项,则可以在列表文件中生成C语言源程序所对应的汇编程序代码,其他选项选一般选用系统的默认值。单击C51标签,显示如下图所示的C51页面。C51页面设置用于控制Keil的C51编译器的编译
40、过程。其中常用的设置项是“Code Optimization”框中的几项,其他项一般采用默认设置。“Level”下拉列表框:编译时的优化等级。共有9个优化等级,一般选用默认的第8级,如果编译中出现一些问题,可以降低优化级别试一试。“Emphasis”下拉列表框:编译的优先方式。共有三个选项:Favor size:代码量优先,即生成的代码量最少。Favor speed:速度优先,即生成的代码运行速度最快。default:系统缺省项。默认值是第二项,通常情况下就选默认项Favor speed。“Dont use absolute register accesses”多选钮:R0R7是否用绝对地址访
41、问。用C51开发单片机应用程序时,R0R7一般不采用绝对地址访问,需要勾选此项。单击Debug标签,显示如图1-34所示的Debug页面。Debug页面用于设置程序的调式方式,如果选用软件模拟调试,该页一般采用默认设置。如果选用的是硬件仿真调试,需要进行如下设置:图1-34 Debug页面先单击“Use”单选钮,选择硬件仿真,然后单击“Use”右边的下拉列表框,从中选择“STC Monitor-51 Driver”列表项,再单击“Setting”按钮,打开如下图所示的设置仿真器对话框。选择串口选择波特率在右图设置仿真器对话框中,单击“COM Port”下拉列表框,从中选择单片机与计算机相连的串
42、行口。单击“Baudrate”下拉列表框,从中选择单片机与计算机通信的波特率。单击“OK”按钮就完成了仿真器设置。【说明】在STC单片机中,以字符“IAP”开头的单片机除了具备与其型号相对应单片机的全部功能外,还具备硬件仿真功能,例如IAP15F2K60S2单片机与STC15F2K60S2相对应,IAP15F2K60S2单片机除了具备STC15F2K60S2的全部功能外,还具备硬件仿真功能,可以作硬件仿真器使用,STC Monitor-51 Driver是这类单片机作硬件仿真器使用时的仿真驱动程序,如果用户使用的是其他仿真器,可以参考上述操作选择对应的仿真驱动程序。编译、连接编译、连接配置好工
43、程后就可以进行编译、连接了,以便生成单片机可以直接执行的16进制文件(HEX文件)。编译、连接的方法是,单击菜单栏上的“Project”“Build target”菜单。这时,Keil集成开发环境下面的输出窗口中就会显示连接的结果,如图1-36所示。如果源程序中存在语法上的错误,输出窗口中将会有错误报告出现,双击错误报告行,可以定位到出错的位置。对源程序反复修改后最终会得到如下图所示的结果。从右图可以看出,连接后Keil生成了一个Hex文件(提示为Creating hex file from ”ex01”),该文件是单片机可直接执行的文件,位于Keil工程目录中,如果在图1-31的Output
44、页面中设置了输出文件目录,则该文件位于所设置的目录中。提示生成了Hex文件错误数报告【说明】Project菜单中有三个与编译、连接有关的子菜单,它们的含义如下:“Build target”:对当前工程进行连接,如果文件已修改,则先进行编译再进行连接并产生目标代码。“Rebuild all target files”:对当前工程中所有文件重新编译后再连接,并产生目标代码。“Translate”:只对源程序进行编译,不进行连接,不产生目标代码。除了菜单外,Keil的工具栏中还提供了编译、连接工具图标,如下图所示。这些图标按钮与对应的菜单命令的功能一致。输出窗口中显示错误数为0时,只表明源程序无语法
45、上的错误,并不能代表源程序无逻辑上的错误。调试程序调试程序调试程序的目的是为了查找程序中的逻辑错误。在Keil Vision4中调试程序的方法是,跟踪程序的运行,查看程序运行的结果。如果结果与理论值不符,表明程序存在逻辑错误,再逐条运行程序中的相关语句,找出产生错误的语句,并修改程序,直至程序运行的结果正确。在调试的过程中需要在程序中设置断点,采取全速运行、单步运行、过程单步等多种运行方式反复运行程,在程序运行的过程中观察相关变量的值。用Keil Vision4调试程序的步骤如下: 进入调试状态。编译连接程序后,单击菜单栏上的 “Debug”“Start/Stop Debug Session”
46、子菜单项或者单击工具栏上的开始/停止调试图标按钮“ ”,这时Keil Vision4会进入调试状态,如下图所示。在调试状态下,Keil Vision4的窗口将会发生一系列的变化。其中,Debug菜单中的“Go”、“Step”、“Step Over”等几个灰色不可执行的子菜单项将变成黑色可执行状态。Keil Vision4的工具栏中会出现许多调试工具图标按钮,这些调试工具图标按钮的功能与Debug菜单中的菜单项相对应。【说明】“开始/停止调试”命令具有开关特性,在调试状态下单击开始/停止调试图标按钮“ ” Keil Vision4将退出调试状态而进入编辑状态。显示显示“Registers”窗口窗
47、口。“Registers”窗口的功能是显示单片机内部的主要寄存器以及这些寄存器的当前值。显示“Registers”窗口的操作方法是,单击菜单栏上的“View” “Registers Window”菜单命令或者单击调试工具栏上的显示寄存器窗口图标按钮“ ”。显示观察窗口。显示观察窗口。观察窗口包括Locals、Watch 1和Watch 2三个观察窗口。其中Locals窗口用来显示当前执行函数中的变量值,Watch1窗口和Watch2的功能相同,用来显示指定变量的当前值。显示Locals窗口的方法是,单击菜单栏上的“View”“Watch Window” “Locals”菜单命令或者在调试工具栏
48、上单击观察窗口图标按钮“ ”右边的下拉箭头“ ”,在弹出的快捷菜单中单击“Locals”菜单命令。Locals窗口如下图所示。在上图中,当前执行的函数是delay,Local窗口中显示的是单片机在执行到箭头所指行时,delay函数中各变量的值。Registers窗口中显示的是当前单片机中各寄存器的值,其中sec显示的是程序执行到当前行时所用的时间,此时间与用户在下图中所设置的晶振频率有关。显示Watch 1窗口的方法是,单击菜单栏上的“View”“Watch Window” “Watch1”菜单命令或者在调试工具栏上单击观察窗口图标按钮“”右边的下拉箭头“ ”,”在弹出的快捷菜单中单击“Wat
49、ch 1”菜单命令。Watch 1窗口如右图所示。在Watch 1窗口中被显示的变量必须由用户指定,可以是本地变量,也可是全局变量。指定观察变量的方法是,在Watch 1窗口中双击“double-click or F2 to edit”使窗口的字符呈蓝底白字的反向显示,再输入所要观察的变量名,然后单击窗口中的空白处。显示Watch 2窗口的方法与显示Watch1窗口的方法相同,它们的用法也相同,在此不再赘述了。【说明】在调试程序的过程中,可以修改Local、Watch1、Watch2窗口中所观察的变量值。修改变量值的方法是,用双击Value列中的待修改变量的值,使显示值显蓝底白字的反向显示,再
50、输入数值。Local、Watch1、Watch2窗口中的值的显示形式可以设置成16进制(Hex)、10进制(Decimal)两种形式,其设置方法是,用鼠标右键单击变量值,在弹出的快捷菜单中单击“Number Base” “Hex”或者“Number Base” “Decimal”菜单命令。单击“Hex”命令后变量值以16进制的格式显示,单击“Decimal”命令后变量值以10进制的格式显示。显示显示Call Stack窗口。窗口。Call Stack窗口的功能是显示当前执行函数的调用层次关系。显示Call Stack窗口的方法是,单击菜单栏上的“View”“Call Stack Window”
51、菜单命令或者单击调试工具栏上的调用栈窗口图标按钮“”。Call Stack窗口如下图所示。Call Stack窗口有Callee和Caller2列,左边列(Callee列)显示的是被调用函数,右边列(Caller列)显示的是主调函数,000行显示的是当前被调函数的调用关系,001行显示的是调用000行函数的主调函数的调用关系,依此类推。在左图中,Call Stack窗口显示的是单片机执行delay函数时的函数调用情况。第000行显示的是delay函数的调用情况,左边列显示的含义是被调函数为ex01.c文件中的delay函数,右边显示的含义是当前调用delay函数的主调函数是ex01.c文件中的main函数,并且调用函数的程序行是第9行。第001行显示的是main函数的调用情况,左边显示的含义是,被调函数是ex01.c文件中的main函数,右边显示的含义是,main函数是在code区的0 x0000地址处被调用的。【说明】除了前面介绍的几个常用的显示窗口外,keil Vision4中还有Memory Windows、Function Win
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度创新办公园区草坪设计与生态友好合同
- 三农村土地综合整治指南
- 家具购销合同协议书
- 知识产权与法务管理作业指导书
- 仪器仪表与自动化设备行业作业指导书
- 游戏策划设计作业指导书
- 医美股份转让协议合同
- 藕塘承包合同样本
- 地质勘察合同付款条件
- 2025年雅安货车丛业资格证考试题
- 服装厂安全生产培训
- 城市隧道工程施工质量验收规范
- 2025年湖南高速铁路职业技术学院高职单招高职单招英语2016-2024年参考题库含答案解析
- 五 100以内的笔算加、减法2.笔算减法 第1课时 笔算减法课件2024-2025人教版一年级数学下册
- 2025江苏太仓水务集团招聘18人高频重点提升(共500题)附带答案详解
- 2024-2025学年人教新版高二(上)英语寒假作业(五)
- Q∕GDW 12118.3-2021 人工智能平台架构及技术要求 第3部分:样本库格式
- 客户的分级管理培训(共60页).ppt
- 广东省义务教育阶段学生转学转出申请表(样本)
- 如何成为一个优秀的生产经理
- 国经贸企[1996]895号(城镇集体所有制企业、单位清产核资产权界定暂行办法)
评论
0/150
提交评论