资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机原理与接口技术,(,C,语言版),第,1,章 单片机及其开发工具,1,为什么要开这门课?,微机的功能、应用通过外设,(I/O,、存储,),体现,接口实现:外设与微机间的信息交换,使外设按我们要求工作,需要开发新的硬件及驱动,CPU/OS/,总线结构发展导致接口技术的变革,2,第,1,章 单片机及其开发工具,目 录,1.1,单片机的基本概念,1.2 单片机的发展概况,1.3 单片机的特点及应用,1.4 常用单片机简介,1.5 单片机,程序,开发,软件,Keil C,简介,1.6 单片机系统,模拟软件,Proteus,简介,3,本章包括单片机概述和单片机开发工具两个部分内容。概述介绍了单片机的概念、发展概况、应用及特点,以及一些常用的单片机;开发工具介绍了程序开发软件,Keil C,,电路设计及仿真调试软件,Proteus,。,通过本章的学习:对单片机有一个基本的认识;基本掌握用,Keil C,和,Proteus,开发单片机程序,构建系统电路以及仿真调试的方法,为学好单片机打下基础。,第,1,章 单片机及其开发工具,4,1.1,单片机的基本概念,单片机:,将,CPU,、随机存储器、只读存储器、中断系统、定时器,/,计数器以及,I/O,接口电路等,,微型计算机的主要部件集成在一块芯片上,使其具有计算机的基本功能。,此就是,“,单片微型计算机,”,(,Single Chip Micro Computer,,,SCMC,或,SCM,),,简称为,“,单片微机,”,、或,“,单片机,”,。,微控制器概念:,芯片上除了具有微机的功能部件之外,还集成有外部设备,如,A/D,、,D/A,、,RTC,、,PWM,、,USB,、,Watchdog,等。,5,微处理器,存储器,外部设备,接口适配器,控制总线,数据总线,地址总线,图,1-1,微机系统的组成,1.1,单片机的基本概念,6,1.2,单片机的发展概况,主要内容,1.2.1,单片机的历史,1.2.1,单片机技术的发展,7,1.2.1,单片机的历史,一、,4,位单片机阶段,1971,年,Intel,公司首先开发出了第一片,4,位微处理器,4004,,主要用于家用电器、计算器、高级玩具中。,4004,的问世,既标志着微处理器的诞生,也标志着单片机、嵌入式系统的诞生,。,1975,年美国德克萨斯仪器公司(,TI,)推出,4,位单片机,TMS-1000,。,4,位单片机主要用于家用电器、电子玩具等。,8,1.2.1,单片机的历史,二、,8,位单片机阶段,1976,年,9,月,美国,Intel,公司首先推出了,MCS-48,系列,8,位单片机,其增强型便是,MCS-51,。,8,位单片机由于功能强大,被广泛用于工业控制、智能接口、仪器仪表等各个领域。,三、,16,位单片机阶段,1983,年,Intel,公司推出了,16,位单片机,MCS-96,系列。,16,位单片机可用于高速复杂的控制系统。,四、,32,位单片机,近几年,更高性能的,32,位单片机得到广泛的应用,典型的机型有,ARM,、,DSP,等系列。,9,1.2.2,单片机技术的发展,一、片内程序存储器的发展,单片机的程序存储器(,ROM,)经历了,ROMEPROME,2,PROMFLASH ROM,的发展,容量也由小变大。,二、看门狗定时器,单片机在运行时由于干扰等原因,可能会出现软件混乱。,看门狗电路就是用于在,CPU,运行出现程序混乱时,使系统恢复正常工作的一种方法。,10,1.2.2,单片机技术的发展,三、节电模式,在节电模式下,,CPU,和部分部件进入睡眠状态,但片内,RAM,和寄存器等部件保持工作状态,以达到节能的目的。,四、加强输入输出功能,某有些单片机具备大功率的输入,/,输出接口,,可直接驱动荧光显示器、,LCD,和,LED,。,还有一些,增加了接口或定时器,的数量,或者增加了新型的接口,如,IIC,、,SPI,等。,11,五、单片机制造工艺提高,半导体制作工艺的提高,使单片机的体积可以做的更小,时钟频率更高。可以集成更多的存储器和部件,降低产品的价格。,六、在线编程和调试技术,一些新型的单片机实现了在系统编程(,ISP,)和在应用编程(,IAP,)功能。,现在常使用的单片机都有该功能,如深圳宏晶公司的,STC,系列单片机。,1.2.2,单片机技术的发展,12,1.3,单片机的特点及应用,主要内容,1.3.1,单片机的特点,1.3.2,单片机的应用,13,一、,ROM,和,RAM,存储器区分使用,ROM,称为程序存储器,存放程序、固定常数及数据表格。,RAM,则为数据存储器,用作工作区及存放用户数据。,二、采用面向控制的指令系统,为满足控制的需要,单片机有更强的逻辑控制能力,特别是具有很强的位处理能力。,1.3.1,单片机的特点,14,三、,I/O,引脚通常多功能,由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了,引脚功能复用,的方法。引脚处于何种功能,可由指令来设置或由机器状态来区分。,四、单片机外部扩展能力强,在内部的各种功能部分不能满足应用需求时,均可在外部进行扩展(如,扩展,ROM,、,RAM,,,I/O,接口,定时器,/,计数器,中断控制器,等),与许多通用的微机接口芯片兼容,给应用系统设计带来极大的方便和灵活性。,1.3.1,单片机的特点,15,五、体积小、价格低,易于产品化,它能方便地组成各种智能化的控制设备和仪器,做到机电一体化。,六、,抗干扰、可靠性高,在各种恶劣的环境下都能可靠地工作,这是其它类型计算机无法比拟的。,七,、,易实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高,1.3.1,单片机的特点,16,单片机的应用范围十分广泛,主要的应用领域有:,工业控制,仪器仪表,计算机外部设备与智能接口,商用产品,家用电器,消费类电子产品,通讯设备和网络设备,儿童智能玩具,汽车、轮船、飞机等大型运输工具,交通控制设备,1.3.2,单片机的应用,17,单片机的应用(,2,),当前我国嵌入式系统的主要应用领域,客户分布:,主要在电信、医疗、汽车、安全、工业控制和消费类等行业。,产品分布:,主要在消费类电子、通信、医疗、安全等行业。其中在消费类电子领域占最大的市场份额。,发展重点:,移动多媒体、数字娱乐、手机终端、汽车电子、医疗成为嵌入式系统应用市场的发展重点。,18,1.4,常用单片机简介,主要内容,1.4.1 MCS-51,系列单片机,1.4.2 ATMEL89,系列单片机,1.4.3 STC,系列单片机,1.4.4,常见的其它系列单片机,19,1.4.1 MCS-51,系列单片机,MCS-51,系列单片机:,Intel,在,1980-1982,年陆续推出了指令系统完全相同、内部结构基本相同的,8031,、,8051,和,8751,等型号单片机,初步形成,MCS-51,系列,被奉为,“,工业控制单片机标准,”,。,8031,:片内无,ROM,8051,:片内有掩膜,PROM,8751,:,片内有紫外线擦除的,PROM,20,MCS-51,增强型单片机:,主要包括,89C52,、,89C54,、,89C58,、,89C516,等型号,,它们的区别主要是三个方面:一是片内,RAM,由,128B,增加到,256B,;,二是多一个定时器,/,计数器,;,三是片内,Flash ROM,由,4KB,分别,增加,到,了,8KB,、,16KB,、,32KB,和,64KB,。,不同厂家的产品可能还增加有其它外设或功能,但引脚和指令都是完全兼容的。,为了讨论方便起见,,我们将,89C51,(包括,8031,、,8051,、,8751,等),称为基本型,,,其他的型号称为增强型,。,1.4.1 MCS-51,系列单片机,21,1.4.2 ATMEL 89,系列单片机,Atmel,公司生产的,89,系列单片机是市场上比较具有代表性的,MCS-51,单片机。,一、,ATMEL89,系列单片机型号说明,AT89,系列单片机型号由三个部分组成,它们分别是,前缀、型号、后缀,,其格式如下:,AT89C,(,LV,、,S,),XXXX-XXXX,1,、前缀,前缀由字母“,AT”,组成,它表示该器件是,ATMEL,公司的产品。,22,1.4.2 ATMEL89,系列单片机,2,、型号,型号由“,89CXXXX”,或“,89LVXXXX”,或“,89SXXXX”,等表示。,“,9”,表示芯片内部含,Flash,存储器;,“,C”,表示是,CMOS,产品;,“,LV”,表示低电压产品;,“,S”,表示含可下载的,Flash,存储器。,“,XXXX”,为表示型号的数字,,如:,51,、,52,、,2051,、,8252,等。,23,3,、后缀,后缀由“,XXXX”,四个参数组成,与产品型号间用“,-”,号隔开。,后缀中第一个参数“,X”,表示速度,后缀中第二个参数“,X”,表示封装,后缀中第三个参数“,X”,表示温度范围,后缀中第四个参数“,X”,说明产品的处理情况,如,AT89S52-24PC,,后缀表示,24MHz,、塑料封装、商业级(,I,为工业级),1.4.2 ATMEL89,系列单片机,24,二、,AT89C51,单片机,AT89C51,单片机特点:,与,MCS-51,产品完全兼容;,具有,4K,字节的,Flash,内部程序存储器,可写,/,擦,1000,次;,全静态操作:,0Hz,24MHz,;,三级程序存储器加密;,128,字节内部,RAM,;,1.4.2 ATMEL89,系列单片机,25,32,根可编程,I/O,线;,2,个,16,位定时器,/,计数器;,6,个中断源;,可编程串行,UART,通道;,低功耗空闲和掉电方式。,CMOS,工艺,低功耗。,1.4.2 ATMEL89,系列单片机,26,三、,AT89S52,单片机,AT89S52,单片机特点:,与,MCS-51,产品兼容;,具有,8K,字节可在系统编程的,Flash,内部程序存储器,可写,/,擦,1000,次;,4.0V,5.5V,的工作电压范围;,全静态操作:,0Hz,24MHz,;,三级程序存储器加密;,256,字节内部,RAM,;,1.4.2 ATMEL89,系列单片机,27,全双工异步串行通信通道;,低功耗空闲和掉电方式;,通过中断中止掉电方式;,看门狗定时器;,两个数据指针。,1.4.2 ATMEL89,系列单片机,28,STC15L2K60S2,系列单片机特点如下:,1,个时钟,/,机器周期,增强型,8051,内核,速度比传统,8051,快,7,12,倍。,工作电压,3.8,5.5V,(,5V,单片机),/2.4,3.6V,(,3V,单片机)。,内部高精度,R/C,时钟,内部时钟从,535MHz,可选。,861K,字节片内,Flash,程序存储器,擦写次数,10,万次以上。,大容量,2048,字节片内,RAM,数据存储器。,通用,I/O,口,(42/38/30/26,个,),。,1.4.3 STC,系列单片机,29,ISP/IAP,(在系统可编程,/,在应用可编程),无需编程器,/,仿真器。,硬件看门狗。,先进的指令集结构,兼容普通,8051,指令集,有硬件乘法,/,除法指令。,6,个定时器,,2,个,16,位可重装载定时器,T0,和,T1,兼容普通,8051,的定时器,新增了一个,16,位的定时器,T2,,并可实现时钟输出,,3,路,CCP/PCA,可再实现,3,个定时器。,1.4.3 STC,系列单片机,30,高速,ADC,,,8,通道,10,位,速度可达,30,万次,/,秒。,3,路,PWM,还可当,3,路,D/A,使用。,双串口,/UART,,两个完全独立的高速异步串行通信端口,分时切换可当,5,组串口使用。,3,通道捕获,/,比较单元,(CCP/PCA/PWM),。,可彻底省掉外部昂贵复位电路,内部集成高可靠复位电路、,ISP,编程时,8,级复位门槛电压可选。,1.4.3 STC,系列单片机,31,1.4.4,常见的其它系列单片机,AVR,单片机,Motorola,单片机,MicroChip,单片机,Scenix,单片机,华邦单片机,32,1.5,单片机程序开发软件,Keil C,简介,主要内容,1.5.1 Keil C,集成开发工具简介,1.5.2 Keil C,操作方法,1.5.3 Keil C,程序开发方法,1.5.4 Keil C,调试运行方法,33,1.5,单片机系统的开发方法,Keil C,是德国,KEIL,公司开发的单片机,C,语言编译器,。其前身是,FRANKLIN C51,,功能相当强大。,Vision3,是一个,for Windows,的、集成化的单片机编程软件,,集成了文件编辑处理、项目管理、编译链接、软件模拟调试等多种功能,是强大的单片机程序开发工具。,无论是学习、还是开发,都是必须掌握的基本工具。,在后面的讨论中,对,Keil C,和,Vision3,两个术语不做严格的区分,,一般多称呼为,Keil C,,包含有,Vision3,集成开发环境之意。,34,1.5.1 Keil C,集成开发工具简介,1,、编译器和链接器,Keil C,的编译器和链接器包括,C51,、,A51,、,L51,和,BL51,。,C51,是,C,语言编译器,,其功能是将,C,源代码编译生成可重新定位的目标模块文件(,.OBJ,)。,A51,是汇编语言编译器,,其功能是将汇编源代码编译生成可重新定位的目标模块文件(,.OBJ,)。,L51,是链接,/,定位器,,其功能是将,.OBJ,文件与库文件链接,定位生成绝对目标文件。,35,1.5.1,Keil,C,集成工具简介,BL51,也是链接,/,定位器,,除了具有,L51,所有的功能之外,,(1),可以链接定位大于,64KB,的程序;,(2),具有代码域及域切换功能;,(3),可用于,RTX51,实时多任务操作系统。,2,、,LIB51,库管理器,LIB51,可以把,.OBJ,文件构建成目标库,(,.LIB,),这些库是按规定格式排列的目标模块,可在以后被链接器所使用。,36,1.5.1,Keil,C,集成工具简介,3,、模拟调试器,Keil C,有三个模拟调试器。,(,1,)软件模拟调试器,dScope51,1,)模拟程序运行与调试,,包括,C,、汇编、宏汇编程序;,2,)模拟,CPU,及其外围器件,,如串行口、定时器,/,计数器、,I/O,口等。,(,2,)硬件调试器,tScope51,tScope51,用于对硬件目标板进行调试。,(,3,)监视程序,Monitor51,通过串行口,,PC,机与目标板进行通信,利用,Monitor51,,在,PC,机上显示程序的运行情况,37,1.5.1,Keil C,的操作方法,Keil C,菜单项主要有:,文件(,File,)、编辑(,Edit,)、查看(,View,)、项目(,Project,)、调试(,Debug,)、闪存(,Flash,)、片内外设(,Peripherals,)、工具(,Tools,),等项。,我们知道,各工具都是相应菜单项的快捷操作按钮,,所以,下面只介绍各个菜单项,并指明对应的工具按钮。,下面仅介绍常用而不太熟悉的菜单项和按钮,。,38,Keil C,在编辑状态下的操作界面,(,6,个部分),信息输出窗口,项目管理器窗口,工具栏,菜单栏,编辑窗口,状态信息栏,39,1.5.1,Keil C,操作方法,1,文件(,File,)菜单,Device Database,:打开器件(单片机)库。,License Manament,:打开软件注册管理窗口。,2,编辑(,Edit,)菜单,1,),Indent Select Text,:选中内容向右缩一个制表符位,2,),Unindent Select Text,:选中的内容向左移动,3,),Toggle Bookmark,:在当前行放置书签,4,),Goto Next Bookmark,:将光标移到下一个书签,5,),Goto Previous Bookmark,:将光标移到上个书签,6,),Clear All Bookmark,:清除文件中所有的书签,1,2,3,4,5,6,7,8,9 10,40,1.5.1,Keil C,操作方法,3,查看(,View,)菜单,1,),Project Window,:,显示或隐藏项目管理窗口,2,),Output Window,:显示或隐藏输出窗口,3,),Source Browser,:打开源文件浏览器窗口,4,),Disassembly Window,:显示或隐藏反汇编窗口,5,),Watch&Call Stack Window,:观察和堆栈窗口,6,),Code Coverage Window,:显隐代码覆盖窗口,7,),Serial Window#1,:显隐串口据输入,/,输出窗口,8,),Memory Window,:显隐显示或隐藏存储器窗口,1,2,3,4,5,6,7,8,41,1.5.1,Keil C,操作方法,4,项目(,Project,)菜单,Import Vision1 Project,:导入,Vision,项目,Select Device for Target Target1,:,为当前项目,Target1,选择单片机,Remove Item,:从项目中删去选中的项,1,),Translate,:编译当前文件,2,),Build Target,:编译修改过的文件,3,),Rebuild all target files,:重新编译所有的文件,4,),Stop build,:停止编译,1,2,3,4,42,1.5.2 Keil C,操作方法,5,、调试(,Debug,)菜单,1,),Start/Stop Debugging,:启动,/,停止调试模式,2,),Run,:全速运行,3,),Step Running,:跟踪运行,4,),Step Over,of current function,:单步运行,5,),Step out of current function,:一步执行完当前函数并返回,6,),Run to Cursor line,:一步运行到当前光标处,7,),Stop Running,:停止运行,1,2,3,4,5 6 7,43,1.5.2 Keil C,操作方法,1,),Insert/Remove Breakpoint,:在当前行设置,/,清除断点,2,),Enable/Disable Breakpoint,:使能,/,禁止当前行的断点,3,),Disable All Breakpoints,:,禁止所有断点,4,),Kill All Breakpoints,:清除所有断点,5,),Show Next Statement,:显示下一条指令,1,2,3,4,5,44,1.5.2 Keil C,操作方法,6,、片内外设(,Peripheral,)菜单,1,),Reset CPU,:,复位,CPU,2,),Interrupt,:,设置,/,观察中断(触发方式、,优先级、使能、中断标志等),3,),I/O Ports,:,设置,/,观察各个并行,I/O,口,(,Port0,、,Port1,、,Port2,、,Port3,),4,),Serial,:设置,/,观察串行口,5,),Timer,:设置,/,观察各个定时器,/,计数器,6,),A/D Converter,:设置,/,观察,A/D,转换器,7,),D/A Converter,:设置,/,观察,D/A,转换器,45,1.5.3 Keil C,程序开发方法,本节我们以例,1-1,一个流水灯程序为例,介绍使用,Keil C,的项目开发过程。,例,1-1,流水灯电路如图,1-9,所示,对,89C52,单片机编程,使,P1,口输出控制,8,个发光二极管循环点亮,2,个左移做流水灯显示。,项目开发过程主要有以下步骤:,创建项目,创建文件,编写程序,编译项目,46,1.6.3,Proteus,原理图设计,举例,图,1-9,例,1-1,流水灯电路图,连线标号,电流探针,输出端口,输入端口,电压探针,连线标号,电平标示,47,1.5.3 Keil C,程序开发方法,在,Keil C,中,文件的管理采用的是项目,(也叫工程),方式,,而不是以前的单一文件方式。,工程管理器的功能:,对,C51,源程序、汇编源程序、头文件等文件统一管理;可以对文件进行分组。如右图所示。与,Windows,的资源管理器相似。,图,1-10 Keil C,的项目管理器,48,1.5.3 Keil C,程序开发方法,1,、创建项目,(,1,)创建项目,选择,Project,菜单下的,New Project,命令,,创建新工程,在对话框中设定新工程的位置,输入新工程名字保存即可。,(,2,)选择,CPU,在出现的为新工程选择,CPU,的界面,在“,data base”,栏下选择所使用的,CPU,。确定后,会弹出一“,Copy Standard 8051 Startup Code to Project Folder and Add File to Project”,信息,一般选择“否”即可。,49,1.5.3 Keil C,程序开发方法,2,、创建文件,(,1,)创建文件,选择,FileNew,命令,便打开一个新程序编辑窗口,然后选择,fileSave,命令,在弹出的保存文件对话窗口的文件名栏,输入,C,语言程序文件名“,lamp.c”,,点击保存按钮便完成文件的创建。,用相同方法,可以创建汇编语言文件和文本文件等。,50,1.5.3 Keil C,程序开发方法,(,2,)把文件加入到项目,加入的文件可以是,C,文件,也可以是汇编文件。加入程序文件的过程如下。,1,)在项目管理器窗口中展开,Target1,文件夹,,可以看到,Source Group1,。,2,)向,Source Group1,添加文件,。在,Source Group1,点击鼠标右键,会弹出一菜单,其中有一,“,Add Files to GroupSource Group1”,命令,点击后会弹出一对话框,选择需要加入的程序文件,,并且一次可以加入多个文件。如图,1-13,所示。,3,)移走项目:,在欲移走的文件上点击鼠标右键,会弹出一菜单,,执行其中的“,Remove File*”,命令,即可。,51,1.5.3 Keil C,程序开发方法,4,)对文件分组,:可以按功能对项目管理器中的文件分成组,如图,1-10,所示。,先使用图,1-13,中的“,Manage Components”,命令建立组,,然后用鼠标直接在组之间移动文件即可。,图,1-13,项目加入文件的操作方法,.,.,.,52,1.5.3 Keil C,程序开发方法,3,、编写程序,#include/,包含特殊功能寄存器的头文件,#include/,包含有循环移位函数的头文件,void delay10 xms(unsigned char x),/,延时,10 xms,函数,unsigned int i;/,设振荡频率为,12MHz,while(x-)/,延时,x,个,10ms,for(i=0;i830;i+);/,试验得出,830,void main(void),/,主函数,unsigned char,lamp=0 x03,;,while(1),P1=lamp;/,从,P1,口输出数据,lamp,lamp=_crol_(lamp,1);/,输出数据循环左移,1,位,delay10 xms(100);/,延时,1s,53,1.5.3 Keil C,程序开发方法,4,、项目的编译链接,设置输出,.hex,文件:,在,Target1,上点击鼠标右键,出现类似图,1-13,所示的菜单,点击执行“,Options for Target Target1”,命令,在弹出的会话界面选择“,Output”,标签,选中“,Create HEX File”,项即可,如图,1-14,所示(见下页)。,编译链接方法:,使用,Project,菜单下的,Build target,命令或,Rebuild all target Files,命令,,或者直接点击工具栏中对应的按钮。,编译链接结果:,若有错误则不能通过,并且会在信息窗口给出相应的错误信息。,编译链接通过后,会产生一,.hex,目标文件,。,54,1.5.3 Keil C,程序开发方法,在,Target1,上点击鼠标右键,出现类似图,1-10,所示的菜单,点击执行“,Options for Target Target1”,命令,在弹出的会话界面选择“,Output”,标签,选中“,Create HEX File”,即可,图,1-14,选择项目输出,.hex,文件的操作方法,55,1.5.4,Keil C,调试运行方法,这一部分介绍怎样对项目运行调试,怎样观察修改各部分的数据,怎样观察修改各片内外设的运行状态。,1,、使用不同运行方式进行调试,(,1,)进入调试状态,点击,Debug,菜单下的,Start/Stop Debug Session,命令或相应的按钮,,即可进入调试状态。调试状态下的操作界面如图,1-15,所示。,56,1.5.4,Keil C,调试运行方法,图,1-15 Keil C,在调试状态下的界面,程序窗口,存储器窗口,变量窗口,调试命令窗口,寄存器窗口,P1,口,57,1.5.4,Keil C,调试运行方法,(,2,)各种运行方式,5,种运行方式:,全速运行、跟踪运行、单步运行、跳出函数、运行到光标处,。命令分别对应为:,Run,、,Step,、,Step Over,、,Step out of current function,、,Run to Cursor line,。,如果用全速运行命令,Run,,可以使用,Stop Running,命令停止运行。,退出调试状态:,再次点击,Debug,菜单下的,Start/Stop Debug Session,命令或相应的按钮,。,58,1.5.4,Keil C,调试运行方法,2,、断点的设置与删除,方法,1,:,用鼠标双击,。在需要设置的行的最前面,双击鼠标左键,即可设置或清除断点。,方法,2,:,用命令或命令按钮,。先将光标移到需要设置的行,然后点击,Debug,菜单下的,Insert/Remove Breakpoint,命令或工具栏中的相应按钮,即可设置或清除断点。,另外还有断点禁用和全部清除命令及按钮,,也容易使用。,59,1.5.4,Keil C,调试运行方法,3,、寄存器的观察与修改,(,1,)显示寄存器窗口,寄存器窗口、在线帮助窗口和工程管理器是同一个窗口,,在工程管理器窗口下包含,3,个标签,即包含,3,个区域。,显示出寄存器窗口:,在调试状态下,点击,View,菜单下的,Project Window,命令或对应的按钮,,就会显示或隐藏工程管理器窗口,然后点击窗口下边的寄存器标签,即显示出寄存器窗口。,60,1.5.4,Keil C,调试运行方法,(,2,)寄存器的观察与修改,窗口中的寄存器分为,2,组:,通用寄存器和系统寄存器,。通用寄存器为,8,个工作寄存器,R0,R7,;系统寄存器包括寄存器,A,、,B,、,SP,、,PC,、,DPTR,、,PSW,、,states,、,sec,。,states,为运行的机器周期数,,sec,为运行的时间,。,两种修改寄存器,(,除了,sec,和,states,之外,),值的方式:,一是用鼠标直接点击左键进行修改;二是在图,1-15,所示的调试命令窗口直接输入寄存器的值,如输入“,A=0 x32”,,则寄存器,A,的值立即显示,32,。,61,1.5.4,Keil C,调试运行方法,4,、变量的观察与修改,(,1,)显示变量窗口,在调试状态下,点击,View,菜单,下的,Watch&Call Stack Window,命令,或对应的按钮,就会显示或隐藏变量窗口。,变量窗口包含有,4,个显示区,(标签),可以分别显示,局部变量,(,Locals,标签)、,指定变量,(,Watch#1,和,Watch#2,两个标签)、及,堆栈调用,(,Call Stack,标签)。,62,1.5.4,Keil C,调试运行方法,(,2,)变量的观察与修改,局部变量:,显示的是当前函数中的变量,,这些变量不用设置,自动出现在窗口中。,其它变量:,可以在,Watch#1,或,Watch#2,标签按,F2,输入变量名,。在程序运行中,可以观察这些变量的变化,也可以用鼠标点击修改它们的值。,观察变量更简单的方法:,在程序停止运行时,,,将光标放到要观察的变量上停大约,1,秒,就会出现对应变量的当前值,如,lamp=0 x18,。,63,1.5.4,Keil C,调试运行方法,5,、存储器的观察与修改,(,1,),显示存储器窗口,在调试状态下,,点击,View,菜单下的,Memory Window,命令或对应的按钮,,就会显示或隐藏存储器窗口。,存储器窗口包含,4,个标签,,即有,4,个显示区,分别是,Memory#1,、,、,Memory#4,。,(,2,)存储器的观察,在,4,个显示区上边的,“,Address”,栏输入不同类型的地址,可以观察不同的存储区域,。,64,1.5.4,Keil C,调试运行方法,1,)观察片内,RAM,直接寻址的,data,区:,在,Address,栏输入,D:xx,(,xx,为十六进制数),便显示从,xx,地址开始的数据。高,128,字节显示的是特殊功能寄存器的内容。,2,)观察片内,RAM,间接寻址的,idata,区:,在,Address,栏输入,I:xx,,便显示从,xx,地址开始,的数据。高,128,字节显示的也是数据区的内容。,3,)观察片外,RAM,的,xdata,区:,在,Address,栏输入,X:xxxx,,便显示从,xxxx,地址开始的数据。,4,)观察程序存储器,ROM code,区:,在,Address,栏输入,C:xxxx,,便显示从,xxxx,地址开始的程序代码。,65,1.5.4,Keil C,调试运行方法,(,3,),存储器中数据的修改,1,)程序存储器中的数据不能修改,2,)其它,3,个区域数据的修改方法:,用鼠标对准欲修改的单元,,点击鼠标右键,在弹出的菜单中有一“,Modify Memory at 0 x”,命令,执行该命令,,对又弹出的数据输入栏输入数据,然后用鼠标左键点击“,OK”,即可。,66,1.5.4,Keil C,调试运行方法,6,、片内外设的观察与设置,单击,Peripheral,菜单,可以选择某一种或几种外设进行观察、设置。,(,1,)中断系统的观察与设置,在调试状态下,,单击,Peripheral,Interrupt,命令,就,会显示或隐藏中断,系统窗口,如右图,所示。,67,1.5.4,Keil C,调试运行方法,(,2,)串行口的设置与观察,在调试状态下,,点击,View,菜单下的,Serial Window#1,或,Serial Window#2,命令或对应的按钮,,就会显示或隐藏串行口窗口。,串行口窗口提供了一个,调试串行口的界面,,从串行,口发送或接收的数据,都可,以在该窗口显示或输入,。,68,1.5.4,Keil C,调试运行方法,(,3,)并行,I/O,口的观察与设置,在调试状态下,单击,PeripheralI/O-Ports Port0/Port1/Port2/Port3,命令,可以选择一个多个,I/O,口进行观察或设置。,图,1-15,中的右上角显,示的是,P1,(,Port 1,)口的,观察窗口,显示的端口值,是,0 x0C,,是程序调试运行,截取界面时,P1,口的输出值。,69,1.5.4,Keil C,调试运行方法,定时器,0,状态窗口,在调试状态下,单击,PeripheralsTimerTimer0,命令,便会显示出定时器,/,计数器,0,设置与观察窗口,如右图所示。,用同样的方法可以观察、设置其它的定时器,/,计数器。运行状态。在第,6,章讲定时器,/,计数器。,(,4,),定时器,/,计数器的观察与设置,70,1.5.4,Keil C,调试运行方法,(,5,)状态的自动刷新,在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,可以启用,ViewPeriodic Window Update,命令,让,Keil C,自动周期刷新各个调试窗口。,71,1.6,单片机系统模拟软件,Proteus,简介,主要内容,1.6.1 Proteus ISIS,操作方法,1.6.2 Proteus ISIS,原理图设计方法,1.6.3 Proteus ISIS,原理图设计举例,1.6.4 Proteus ISIS,模拟方法,72,Proteus,简介,Proteus,是英国,Labcenter,公司开发的,运行于,Windows,操作系统之上的软硬件集成开发与模拟、调试运行软件。,Proteus,主要由,ISIS,和,ARES,两部分组成:,ISIS,用于原理图设计、软硬件系统交互模拟运行,ARES,用于印制电路板的设计,Proteus,的,ISIS,主要有三大功能:,电子电路原理图设计与性能分析功能,单片机、,ARM,程序开发功能,电路系统软硬件协同模拟功能,73,1.6.1,Proteus ISIS,操作方法,Proteus ISIS,的操作界面主要由,7,个部分组成,:菜单栏,标准工具栏、绘图工具栏,(也常在左侧),,器件旋转工具,预览窗口,对象选择窗口,电路设计区,,左下角是,模拟运行控制按钮,,下边是,状态信息栏,等。,下面介绍主要的菜单项,并指明对应的命令操作按钮。,菜单项主要有,:文件(,File,)、查看(,View,)、编辑(,Edit,)、工具(,Tools,)、设计(,Design,)、绘图(,Graph,)、器件库(,Library,),等,10,余项。,74,1.6.1,Proteus,操作方法,Proteus ISIS,的操作界面,状态信息栏,标准工具栏,电路设计窗口,绘图工具栏,仿真控制按钮,对象选择窗口,预览窗口,绘图工具栏,器 件,旋转按钮,菜单栏,75,1.6.1,Proteus,操作方法,1,、文件(,File,)菜单,Import Bitmap,:导入位图文件,Export Graphics,:导出电路(,.SEC,文件),1,),Import Section,:导入以前被导出的电路图文件,2,),Export Section,:导出全部电路或部分电路,3,),Set Area,:设置输出区域,1,2,3,76,1.6.1,Proteus,操作方法,2,、查看(,View,)菜单,1,),Redraw,:刷新编辑界面,2,),Grid,:显示或隐藏栅格,3,),Origin,:使能,/,禁止人工原点设置,4,),Pan,:以光标为中心显示,5,),Zoom In,:放大显示,6,),Zoom Out,:缩小显示,7,),Zoom All,:缩放到整张图显示,8,),Zoom to Area,:选择满屏显示的区域,Snap 0.1in,:设置器件放置间距为,100th,Toolbars.,:显示或隐藏工具栏各个部分,1,2,3,4 5 6 7 8,77,1.6.1,Proteus,操作方法,3,、编辑(,Edit,)菜单,Send to back,:把选中对象置于下面,Bring to front,:把选中对象置于上面,Tidy,:整理电路图,删除工作区之外,无用的器件和符号,1,),Block Copy,:对选中的块做复制,2,),Block Move,:,对选中的块做移动,3,),Block Rotate,:,对选中的块做旋转,4,),Block Delete,:,对选中的块做删除,1,2,3,4,78,1.
展开阅读全文