第19章-单片机应用系统设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第19章-单片机应用系统设计课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 19 单片机 应用 系统 设计 课件
- 资源描述:
-
1、第第19章章 单片机应用系统设计单片机应用系统设计19.1 软件编译与调试软件编译与调试 19.2 十字路口交通灯模拟控制器设计十字路口交通灯模拟控制器设计19.3 单片机与单片机与PC机的串口通讯设计机的串口通讯设计19.4 语音报站系统设计语音报站系统设计 19.1 软件编译与调试软件编译与调试 19.1.1 WAVE600 的使用的使用1建立新程序建立新程序1)选择菜单:文件)选择菜单:文件|新建文件,如新建文件,如图图19-1所示。所示。2)在出现的源程序窗口中输入所需编写的程序,如)在出现的源程序窗口中输入所需编写的程序,如图图19-2所示。所示。3)保存程序,选择菜单)保存程序,选
2、择菜单文件文件|保存文件保存文件,保存时文件名称,保存时文件名称必须带上后缀名必须带上后缀名“.ASM”,如,如图图19-3所示。所示。4)建立新项目,选择菜单)建立新项目,选择菜单:文件:文件|新建项目,如新建项目,如图图19-4所所示。示。5)在弹出的窗口中,加入模块文件,选择刚才保存的文件)在弹出的窗口中,加入模块文件,选择刚才保存的文件jtxhd.asm,如,如图图19-5所示。所示。下一页返回19.1 软件编译与调试软件编译与调试6)加入包含文件,若没有包含文件,则可按取消键,此处)加入包含文件,若没有包含文件,则可按取消键,此处按取消键。如按取消键。如图图19-6所示。所示。7)保
3、存项目。在保存项目对话框中输入项目名称,注意此)保存项目。在保存项目对话框中输入项目名称,注意此处无须添加后缀名,软件会自动将后缀名设成处无须添加后缀名,软件会自动将后缀名设成“.PRJ”。按。按保存键将项目存在与你的源程序相同的文件夹下。如保存键将项目存在与你的源程序相同的文件夹下。如图图19-7所示。所示。2调试程序调试程序1)仿真器设置,选择菜单:设置)仿真器设置,选择菜单:设置|仿真器设置,在弹出的仿真器设置,在弹出的“仿真器设置仿真器设置”对话框中,按对话框中,按图图19-8设置,选择设置,选择“使用伟使用伟福软件模拟器福软件模拟器”。点击。点击“好好”“”“好好”结束仿真器设置。结
4、束仿真器设置。上一页 下一页返回19.1 软件编译与调试软件编译与调试2)双击项目中)双击项目中JTXHD.ASM文件,选择菜单:项目文件,选择菜单:项目|编译,编译,出现编译信息见出现编译信息见图图19-9。3)点击,或按)点击,或按F8,程序单步执行。即按一次执行一条指令。程序单步执行。即按一次执行一条指令。其他执行方法见其他执行方法见图图19-10。4)在所需设置断点的指令上右键设置断点,如)在所需设置断点的指令上右键设置断点,如图图19-11所所示。设置断点的目的是使程序执行到该处,达到调试程序的示。设置断点的目的是使程序执行到该处,达到调试程序的目的。目的。5)查看结果,选择菜单:窗
5、口)查看结果,选择菜单:窗口|数据窗口数据窗口|DATA,如,如图图19-12、图图19-13,其他窗口见,其他窗口见图图19-14所示。所示。上一页 下一页返回19.1 软件编译与调试软件编译与调试19.1.2 Keil C的使用的使用1建立工程建立工程1)新建工程。点击)新建工程。点击Project菜单,选择弹出的下拉式菜单菜单,选择弹出的下拉式菜单中的中的New Project如如图图19-15。接着弹出一个名为。接着弹出一个名为“Create New Project”的对话框,如的对话框,如图图19-16,先选,先选择一个合适的文件夹准备来存放工程文件,如择一个合适的文件夹准备来存放工
6、程文件,如“C51”是新是新建的文件夹。在建的文件夹。在“文件名文件名”中输入您的第一个程序项目名称,中输入您的第一个程序项目名称,这里我们用这里我们用“test”,“保存保存”后的文件扩展名为后的文件扩展名为uv2,这,这是是KEIL uVision2项目文件扩展名。项目文件扩展名。2)选择单片机:)选择单片机:Keil C51 提示选择提示选择CPU 器件。在这里我器件。在这里我们选择们选择Atmel公司的公司的AT89S51。此时屏幕如。此时屏幕如图图19-17所示。所示。一个空的一个空的Keil C51 工程建立完毕。工程建立完毕。上一页 下一页返回19.1 软件编译与调试软件编译与调
7、试3)首先我们要在项目中创建新的程序文件或加入旧程序文)首先我们要在项目中创建新的程序文件或加入旧程序文件。点击件。点击图图19-18中中1的新建文件的快捷按钮,在的新建文件的快捷按钮,在2中出现中出现一个名为一个名为“Text n”(其中(其中n 表示序号)的文档,或通过菜表示序号)的文档,或通过菜单单File-New或快捷键或快捷键Ctrl+N来实现。来实现。点击图点击图19-18中的中的3保存新建的程序,也可以用菜单保存新建的程序,也可以用菜单File|Save或快捷键或快捷键Ctrl+S进行保存。因是新文件所以保进行保存。因是新文件所以保存时会弹出如存时会弹出如图图19-19的文件操作
8、窗口,我们把第一个汇编的文件操作窗口,我们把第一个汇编语言编写的程序命名为语言编写的程序命名为test1.asm,保存在项目所在的目录,保存在项目所在的目录中。注意:扩展名中。注意:扩展名“.asm”不可省略。不可省略。上一页 下一页返回19.1 软件编译与调试软件编译与调试4)添加源程序文件到工程中。现在,一个空的源程序文件)添加源程序文件到工程中。现在,一个空的源程序文件“test1.asm”已经建立,但是这个文件与刚才新建的工程已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。之间并没有什么内在联系。我们需要把它添加到工程中去。单击单击Keil C
9、51 软件左边项目工作窗口软件左边项目工作窗口“Target 1”上的上的“”,将其展开。然后右击,将其展开。然后右击“Source Group 1”文件夹,文件夹,会弹出如会弹出如图图19-20所示的选择菜单。单击其中的所示的选择菜单。单击其中的“Add Files to Group Source Group 1”项,将弹出如项,将弹出如图图19-21所示的对话框。所示的对话框。请在文件类型下拉列表中选择请在文件类型下拉列表中选择Asm source file源文件,再源文件,再选择刚刚保存的文件选择刚刚保存的文件“test1.asm”,按,按ADD按钮(请不要按钮(请不要多次点击多次点击“
10、Add”按钮),最后按按钮),最后按“Close”按钮,程序文件按钮,程序文件已加到项目中了。这时可以点击已加到项目中了。这时可以点击Source Group1文件夹图文件夹图标左边的标左边的“+”展开后查看。展开后查看。5)输入程序(略)输入程序(略)上一页 下一页返回19.1 软件编译与调试软件编译与调试6)单击)单击Keil C51 工具栏的工具栏的“”图标,弹出名为图标,弹出名为“Options for Target Target 1”的对话框。单击的对话框。单击“Output”标签页,选中标签页,选中“Create HEX File”项,然后项,然后“确定确定”。参见。参见图图19-
11、22。7)编译程序)编译程序图图19-23中中1、2、3都是编译按钮,不同是都是编译按钮,不同是1是用于编译单个文件;是用于编译单个文件;2是编译当前项目,如果先前编译过是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的;新编译的;3是重新编译,每点击一次均会再次编译链接一是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在次,不管程序是否有改动。在3右边的是停止编译按钮,只右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。有点击了前三个中的任一个,停止按钮才会生效。上一
12、页 下一页返回19.1 软件编译与调试软件编译与调试8)编译后的结果会生成)编译后的结果会生成Intel HEX 格式的程序文件格式的程序文件“test1.hex”,如,如图图19-24。该文件可以被专门的芯片烧。该文件可以被专门的芯片烧写工具(例如写工具(例如Top2004 编程器)载入并最终烧录到具体的编程器)载入并最终烧录到具体的芯片中。芯片安装到自己的电路板上,通电,就可以运行里芯片中。芯片安装到自己的电路板上,通电,就可以运行里面的程序了。面的程序了。2调试程序调试程序1)进入仿真状态)进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参如果程序编译通过,就可以仿真了。在
13、仿真之前,有一项参数最好配置一下,仍然按数最好配置一下,仍然按“”图标进入编译环境设置,如图标进入编译环境设置,如图图19-25,找到,找到“target”下的下的“Xtal(MHz)”项,填入项,填入合适的晶振频率,比如合适的晶振频率,比如12。最后点击。最后点击“确定确定”。进入仿真状。进入仿真状态很简单,直接点击工具栏红色的态很简单,直接点击工具栏红色的“”图标。图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试2)仿真窗口)仿真窗口(1)源程序窗口)源程序窗口Keil C51 调试界面的中间是源程序窗口。黄色箭头调试界面的中间是源程序窗口。黄色箭头“”所指为当前即将执行的代
14、码。以深灰色标记的程序行是可以所指为当前即将执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、空浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或行、标号或ROM 数据表。以绿色标记的程序行表示曾经执数据表。以绿色标记的程序行表示曾经执行过的代码。如行过的代码。如图图19-26所示。所示。上一页 下一页返回19.1 软件编译与调试软件编译与调试(2)寄存器窗口)寄存器窗口Keil C51 调试界面的左边是寄存器窗口。调试界面的左边是寄存器窗口
15、。8051 的工作寄的工作寄存器(存器(R0R7)和系统寄存器()和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。)都列出来了。Value 栏显示的是寄存器的当前数值。栏显示的是寄存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击景标记。单击psw 寄存器左边的寄存器左边的“”,展开后还可以看,展开后还可以看到其每一位的情况。到其每一位的情况。(3)汇编窗口)汇编窗口单击工具栏的单击工具栏的“”图标,源程序窗口会自动切换成汇编图标,源程序窗口会自动切换成汇编窗口。在汇编窗口里,我们可以看到每条指令
16、的存储地址和窗口。在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击编码等信息。再次单击“”,回到源程序窗口。,回到源程序窗口。上一页 下一页返回19.1 软件编译与调试软件编译与调试(4)存储器窗口)存储器窗口单击工具栏的单击工具栏的“”图标,将显示出存储器窗口。图标,将显示出存储器窗口。51 单片单片机的存储器分为多个不同的存储空间,如果要观察代码存储机的存储器分为多个不同的存储空间,如果要观察代码存储器,就在地址栏器,就在地址栏“Address:”内输入内输入“C:地址地址”,例如:,例如:C:0080H;如果要观察外部数据存储器,就输入;如果要观察外部数据存储器,就输入
17、“X:地地址址”;如果要观察内部数据存储器,则可以输入;如果要观察内部数据存储器,则可以输入“I:地址地址”。拖动存储器窗口右边的滚动条还可以观察输入地址附近的存拖动存储器窗口右边的滚动条还可以观察输入地址附近的存储单元。储单元。存储器窗口有存储器窗口有“Memory#1Memory#4”共共4 个观察个观察子窗,您可以用来分别观察代码存储器、内部数据存储器和子窗,您可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。外部数据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择单元,选择“Modify Memory
18、at”项,弹出修改对话项,弹出修改对话框,可以随意修改存储单元的内容。框,可以随意修改存储单元的内容。上一页 下一页返回19.1 软件编译与调试软件编译与调试(5)变量观察和堆栈窗口)变量观察和堆栈窗口单击工具栏的单击工具栏的“”图标,将显示变量观察和堆栈窗口图标,将显示变量观察和堆栈窗口(Watch&Call Stack Window)。在)。在Locals 标签页,标签页,会自动显示局部变量的名称和数值。在会自动显示局部变量的名称和数值。在C 语言程序的函数中,语言程序的函数中,每一对花括号每一对花括号“”内定义变量都是局部变量,能够自动显内定义变量都是局部变量,能够自动显示。示。在在“W
19、atch”标签页内,先用鼠标点击一次标签页内,先用鼠标点击一次“type F2 to edit”,再按功能键,再按功能键“F2”,输入所要观察的局部或全局变,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。量的名称,回车后就能显示出当前数值。在在“Call Stack”标签页内,可以实时地观察到堆栈的使用标签页内,可以实时地观察到堆栈的使用情况。情况。上一页 下一页返回19.1 软件编译与调试软件编译与调试3)程序的运行控制)程序的运行控制Keil C51 能够实现程序单步和全速运行,具体由工具栏上能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:的按钮来实现:(1)复位按
20、钮)复位按钮“”:单击此图标,能够使程序复位,程:单击此图标,能够使程序复位,程序将从地址序将从地址C:0000H 处执行。处执行。(2)全速运行)全速运行“”:单击此图标,能够使程序全速运行。:单击此图标,能够使程序全速运行。(3)停止运行)停止运行“”:该图标原来是灰色(不可操作),:该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。如果要停下来,则可以在进入全速运行状态后会变成红色。如果要停下来,则可以按此图标。按此图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试(4)单步进入)单步进入“”:按此图标可以实现程序的单步执行。:按此图标可以实现程序的单步执行。在遇
21、到函数调用时,会跟踪进入函数体。在遇到函数调用时,会跟踪进入函数体。(5)单步跳过)单步跳过“”:也是单步执行,但是遇到函数时,:也是单步执行,但是遇到函数时,视作视作“1 条指令条指令”来执行,不会跟踪进入。来执行,不会跟踪进入。(6)单步跳出单步跳出“”:在调试程序时,如果希望从某个函数:在调试程序时,如果希望从某个函数中提前返回,则可以按此图标。中提前返回,则可以按此图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试(7)执行到光标执行到光标“”:用鼠标单击某条可执行的代码:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然后按此图标,则程序开始全速(深灰色标记的程序行)。
22、然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。如果单击不执行,当遇到光标所在的行时,会自动停下来。如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到该行,可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,是不允许的,“”图标也会立即变成灰色,不让你操作。图标也会立即变成灰色,不让你操作。上一页 下一页返回19.1 软件编译与调试软件编译与调试(8)设置设置/清除断点清除断点“”:Keil C51 支持断点设置功能。支持断点设置功能。单击需要设置断点的行,再单击此图标,我们会看到该行被单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小
23、方块标记。当程序全速运行时遇到断点,便会一个红色的小方块标记。当程序全速运行时遇到断点,便会自动停下来。自动停下来。Keil C51 允许在同一个程序里设置多个断点。允许在同一个程序里设置多个断点。清除某个断点的方法是,将光标停在该行上,再按一次清除某个断点的方法是,将光标停在该行上,再按一次“”图标。另外一种设置图标。另外一种设置/清除断点的快捷方法是,用清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,您不妨试一试。鼠标在目标程序行的空白处双击,您不妨试一试。(9)清除所有断点清除所有断点“”:如果设置了多个断点,想一并清:如果设置了多个断点,想一并清除,则可以按此图标。除,则可以按此
24、图标。上一页 下一页返回19.1 软件编译与调试软件编译与调试4)外围设备访问)外围设备访问Keil C51 的一大特色是在仿真调试时支持对外围设备的访的一大特色是在仿真调试时支持对外围设备的访问。问。单击菜单单击菜单“Peripherals”,会弹出外围设备菜单。在,会弹出外围设备菜单。在Peripherals 菜单里列出了标准菜单里列出了标准51的外围设备(相对于的外围设备(相对于CPU 内核而言):中断、内核而言):中断、I/O 端口、串行口和定时器等。端口、串行口和定时器等。现在执行菜单现在执行菜单“Peripherals|I/O-Ports|Port 1”,弹出弹出P1 端口的界面见
25、端口的界面见图图19-27。在位。在位07 中,用中,用表示表示高电平,无高电平,无表示低电平。执行菜单表示低电平。执行菜单“Peripherals|Timer|Timer 0”,弹出定时器,弹出定时器T0的界面。参见的界面。参见图图19-28。上一页 下一页返回19.1 软件编译与调试软件编译与调试单击开启单击开启关闭调试模式按钮,我们使用关闭调试模式按钮,我们使用Peripherals菜单菜单选择选择I/O-PortsP1,打开,打开P1调试窗口,再按运行键,调试窗口,再按运行键,这时就可以看到这时就可以看到P1中不断循环状态,空为中不断循环状态,空为“0”,打钩为,打钩为“1”。如。如图
展开阅读全文