已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验指导书 教学单位:计算机工程系 课程名称:单片机原理及接口技术 面向专业:计算机类各专业 电子科技大学中山学院 2008 年 9 月 目录目录 第第1章章 实验仪功能简介实验仪功能简介 1 1.1 实验仪模块分布图 1 1.2 功能模块简介 1 1.3 常用功能模块结构 3 1.3.1 A1区MON51仿真模块 3 1.3.2 D1区LED、拨动开关、键盘实验区 4 1.3.3 D4 区蜂鸣器实验区 4 1.3.4 C10 区步进电机实验区 4 1.3.5 B8 区直流电机实验区 5 1.4 仿真调试下载电路说明 5 1.4.1 DP-51PRO 下载工作方式 6 1.4.2 DP-51PRO 运行工作方式 6 第第2章章 DP-51PRO实验仪与实验仪与KeilC51软件的使用软件的使用 7 2.1 KeilC51简介 7 2.2 集成开发环境 7 2.3 工程(项目)的创建与处理 10 2.3.1 创建一个Keil C51工程 10 2.3.2 程序文件的编译(汇编)、连接 11 2.4 仿真调试功能的使用 12 2.4.1 调试状态的存贮器模型 12 2.4.2 仿真调试 12 2.5 脱机运行 17 第3章 实验部分 19 实验1 Keil 集成开发环境练习和编程调试 19 实验2 走马灯实验 23 实验 3 串口通信 27 实验4 并行模数转换 31 1 第1章 实验仪功能简介 1.1 实验仪模块分布图实验仪模块分布图 DP-51PRO 单片机综合仿真实验仪由多个相对独立的功能模块组成,每个功能模块都有一 个编号,如C3,D8。以下是各模块位置分布图。 1.2 功能模块简介功能模块简介 DP-51PRO 单片机综合仿真实验仪上每个功能模块的主要功能如下表所示。 2 表1.1 DP-51PRO 单片机综合仿真实验仪各功能模块简介 编号功能块名称功能说明 A1 MON51 仿真调试 运行模块 内带MON51 监控程序,支持与KEIL C51 联机仿真调试,支持 单步、断点、跟踪、运行等方式。调试完成可以直接运行,无 需仿真器和编程器。实现PHILIPS 单片机的64Kflash 的ISP下 载编程功能。另外,RS232 串口通讯实验也用这个功能块来进 行。 A2总线I/O 扩展区 主要功能是把单片机的各功能管脚引出来,方便用户选择使用 各个I/O 口或单片机总线。该扩展区还包含了一个74HC573 对 单片机的P0 口进行锁存,并扩展输出A0A7 总线地址。 A3 8155 扩展I/O 口实 验区 用于进行8155 I/O 口扩展实验,8155 包括256字节的静态 RAM、三个可编程选择工作方式的并行I/O 端口(2个8 位口、 一个6 位口) 、1 个14 位的可编程选择工作方式的减法计数 器。所以可以进行多种实验。 A4PARK1 用于扩展连接各种扩展PARK 模块,包括USB1.0、CAN- bus、USB2.0、以太网接口等(其中USB2.0 和以太网接口是选 配的扩展PARK 模块),来进行相关的实验。它只能扩展一个 PARK模块。 A5PARK2 功能同A4 区,DP-51PRO 单片机综合仿真实验仪可以同时在 A4 和A5 区分别扩展一个PARK 模块,同时进行两个PARK 模块的实验。比如A4 区扩展USB1.0,A5 区扩展CAN-bus,这 样用户就可以进行USB 转CAN-bus 的桥接实验了。 B1语音模块 该区有一个ZLG1420A 语音模块,还有麦克风和扬声器接口, 用户可以在上面进行语音实验。 B2 非接触式IC 卡读 卡模块 该区有一个ZLG500A 非接触式IC 卡读卡模块接口(ZLG500A 模块为选配件),和相关的天线接口(天线也是选配件),用 户可以利用该接口进行非接触式IC 卡的实验,在该区还有一个 时钟源电路和12 路分频输出接口。另外用户还可以选择在B1 和B2区的扩展孔上扩展一个CPLD 实验模块,CPLD 实验模块 包括有XILINX的XC95108模块和ALTERA的EPM7128模块两种 (均为选配件)以供用户选择,进行CPLD 的扩展实验。 B3LCD 模块 该区包含有一个LCD 液晶模块,用户可以选择12864 的点阵 图形液晶模块或者162 的点阵字符液晶模块 B4并行AD 实验区该区包含有一片ADC0809 8 位并行AD 转换器 B5PWM 输出实验区该区把用户提供的PWM 信号转换成电压输出区 B6并行DA 实验区该区包含有一片DAC0832 8 位并行DA 转换器 B7串行AD实验该区包含有一片TLC549 8 位串行AD 转换器 B8直流电机实验区该区包含有一个可调速的直流电机及其驱动电路 C1电源输出接口区 该区包含多个+5V、12V、+12V 电源接口,方便用户外接使 用 C2逻辑笔电路 该区是一个检查TTL 逻辑电平高低的逻辑笔,通过LED 显示 所检查电路的电平高低 C3 88 点阵LED模块 该区包含一个88 点阵LED 模块及其驱动电路 C4并转串实验区该区包含一片74LS165 并转串芯片 C5串转并实验区该区包含一片74LS164 串转并芯片 3 C6138 译码电路区该区包含一片74LS138 译码芯片 C7继电器实验区该区包含一个继电器及其驱动电路 C8555 实验区该区包含一片555 芯片及相关的电阻、电容接口电路 C9运放实验区该区包含一片LM324 芯片及相关的电阻、电容接口电路 C10步进电机实验区该区包含有一个步进电机及其驱动电路 D1I/O 实验区该区分别包含8 个独立的LED 发光二极管、拨动开关、按键 D2可调电阻区该区包含一个10K 欧姆和一个1K 欧姆的可调电阻 D3温度传感器区该区包含一片18B20 单总线(1-Wire)的数字温度传感器 D4蜂鸣器区该区包含一个交流蜂鸣器及其驱动电路 D5红外收发区该区包含一个红外发射管和一个带解码的红外接收器 D6RS485 实验区该区包含一片75176 芯片,用于RS485 的电平驱动和接收 D7I2C 实验区 该区包含一片24WC02 256 字节的EEPROM,一片PCF8563实时 时钟芯片及外围电路,一片ZLG7290 键盘LED 驱动芯片及8 段8 位数码管和16 个按键。 D8 接触式IC 卡实验 区 该区包含一个可连接SLE4442 卡的读卡头。 1.3 常用功能模块结构常用功能模块结构 1.3.1 A1区区MON51仿真模块仿真模块 该区除了下载仿真功能外,还包含了RS232 实验的功能。电路结构如下图所示。 短接A1 区的JP15 跳线组的1和2,3和4(出厂默认设置),就把单片机锁紧座的Rxd 和Txd 脚与RS232 电平转换芯片MAX232 连接起来了。如果用户想外接RS232 接口,可以 把短路器去掉,这时JP15 的1、3那边是连接到MAX232 芯片的,2、4那边是连接到单片机 锁紧座的。 A1 区的J76 可以通过40针排线与A2区的J79 相连,把单片机的功能管脚外引出去。 4 1.3.2 D1区区LED、拨动开关、键盘实验区、拨动开关、键盘实验区 D1 区有8个独立的LED 发光二极管、拨动开关和按键,电路结构见下图。 图中J52为共阳极LED 控制接口;J54为拨动开关输出接口,一端接地,另一端通过1K电 阻接工作电压;J53为按键输出接口,平时输出为高电平,按下时输出为低电平。 1.3.3 D4 区蜂鸣器实验区区蜂鸣器实验区 D4 区为蜂鸣器电路,具体结构如下图所示。其中,J8为控制信号输入端,当输入为0 时,没有声音输出,当输入为1时,蜂鸣器发声。 1.3.4 C10 区步进电机实验区区步进电机实验区 C10 区上面有一个四相步进电机及其驱动电路,具体结构如下图所示。 5 图中J42 为步进电机连接接口(出厂时已经连好),J41 为控制信号输入端,JP6 为电 源控制(使用前先短接,做完实验再断开)。 1.3.5 B8 区直流电机实验区区直流电机实验区 B8区上面有一个直流电机及其驱动电路。具体结构见下图。 图中JP18 是电源控制跳线(短接时使用该电路),J78 为控制端,当ZDJ_A的电平为 高,ZDJ_B 为低电平则电机正转,反之则电机反转,如果两端电平相同则电机不转。 1.4 仿真调试下载电路说明仿真调试下载电路说明 电路中相关的几个跳线及开关分别是: 开关MOD_SW1,用于切换LOAD 模式和RUN 模式,实际上就是切换引脚的高EA 低电平。 跳线FLASH_E,断开时(默认情况)用户可以把程序下载到FLASH 中,然后运行或 用MON51来调试。短接时表示不使用FLASH,这时用户可以在LOAD 模式下使用 PHILIPS公司支持ISP功能的单片机,进行ISP下载和运行,0-7FFFH 以内的XDATA 空间开放。 跳线SRAM_E,断开时(默认情况),用户可以使用32k的SRAM,地址为XDATA空间 8000HFFFFH。短接时表示不使用SRAM,0FFFFH 以内的XDATA空间开放。 6 1.4.1 DP-51PRO 下载工作方式(下载工作方式(LOAD) 把拨动开关MOD_SW1拨到LOAD一边就进入下载方式,当下载监控程序MON51和应用程 序时,要断开FLASH_E和SRAM_E,参见表1.2。 1.4.2 DP-51PRO 运行工作方式(运行工作方式(RUN) 把拨动开关MOD_SW1拨到RUN一边就进入运行方式,这时要求断开FLASH_E,当运行监 控程序时也要求断开SRAM_E,而当运行应用程序时可以根据需要确定断开或短接SRAM_E, 参见表1.2。 表1.2 下载与运行模式一览表 MOD_SW1FLASH_ESRAM_E开放的外部数据空间说明 *RUN断开断开0x00000x7FFF(32K) 用户可以使用MON51来调试程 序,也可以运行FLASH的程序 (可以使用SRAM) *RUN断开短接0x00000xFFFF(64K)运行FLASH 的程序 RUN短接断开 非法模式!,FLASH 不可用, SRAM 可用。因为EA=0 时单 片机运行外部程序而FLASH 又 被禁止了,所以非法。 RUN短接短接 非法模式!FLASH 不可用, SRAM 也不可用。因为EA=0 时单片机运行外部程序而FLASH 又被禁止了,所以非法。 *LOAD断开断开 这属于下载模式, 通过 DPFLASH 把程序下载到FLASH 中 LOAD断开短接 这属于下载模式,通过RS232把 程序下载到FLASH中,(虽然 SRAM被禁止,实际上是可用的。 不过如果MOD_SW1 切换到 RUN 时,SRAM 就不可用了, 所以不建议使用该模式) *LOAD短接断开0x00000x7FFF(32K) 这时,用户可以更换已经编有程 序的单片机或使用PHILISP 的 ISP 单片机。此时运行单片机的 程序(可以使用SRAM)。 *LOAD短接短接0x00000xFFFF(64K) 这时,用户可以更换已经编有程 序的单片机或使用PHILISP 的 ISP 单片机。此时运行单片机的 程序。 注意: 1. 带“*”的状态是建议可使用状态。 2. 如果要进行ISP 下载,要先把MOD_SW1 拨到LOAD 模式下,然后短接ISP跳线 (JP14)。下载完毕还要断开ISP 跳线(JP14)。 7 第第2章章 DP-51PRO实验仪与实验仪与Keil C51软件的使用软件的使用 DP-51PRO 单片机综合仿真实验仪向用户提供了丰富的外围器件和设备接口,可使用户快 速掌握单片机原理及其实用接口技术。同时,基于Keil C51 集成开发环境下的DP-51PRO 单片 机综合仿真实验仪具有硬件仿真的功能,用户可以在集成开发环境下学习编写、调试单片机程 序。通过学习,实验用户可以掌握运用单片机进行项目开发的过程、步骤和方法,积累一定的 调试方法、技巧。在学习使用DP-51PRO 单片机综合仿真实验仪前,用户有必要了解Keil C51 集成开发环境。 2.1 Keil C51简介简介 Keil C51 Vision2 集成开发环境是基于80C51内核的微处理器软件开发平台,内嵌多种符 合当前工业标准的开发工具,可以完成从工程建立到管理、编译、连接、软硬件仿真等完整的 开发流程。尤其C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加 灵活的控制选项,在开发大型项目时非常理想。以下是Keil C51集成开发环境的组成部分及主 要功能: Vision2 for Windows:是一个集成开发环境(IDE),它将项目管理、源代码编辑、 编译、连接、软硬件仿真调试等组合在一个功能强大的环境中; C51国际标准化C交叉编译器:从C源代码产生可重定位的目标代码文件; A51宏汇编器:从80C51汇编源代码产生可重定位的目标代码文件; BL51连接/定位器:连接由C51和A51产生的可重定位的目标代码文件,生成绝对目标 代码文件; LIB51库管理器:由目标代码文件生成连接器可以使用的库文件; OH51转换器:由绝对目标代码文件生成Intel HEX文件; RTX51实时操作系统:简化了复杂的实时应用软件项目的设计。 注:Vision2目前已升级到Vision3。 2.2 集成开发环境集成开发环境 安装Keil C51 软件后,点击桌面Keil C51 快捷图标即可进入如图2.1所示的集成开发环境, 各种调试工具、命令菜单都集成在此开发环境中。以下列出的是常用菜单项的主要功能及对应 的快捷键,工具栏上有常用菜单命令对应的工具按钮。 8 图2.1 Vision2 操作界面 (1) 文件菜单(File) File 菜单快捷键描述 NewCtrl+N创建一个新的源文件或文本文件 OpenCtrl+O打开已有的文件 Close关闭当前的文件 SaveCtrl+S保存当前的文件 Save as保存并重新命名当前的文件 PrintCtrl+P打印当前的文件 Print Preview打印预览 Exit退出Vision2,并提示保存文件 (2) 编辑菜单 (Edit) Edit 菜单快捷键描述 UndoCtrl+Z撤销上一次操作 RedoCtrl+Shift+Z重做上一次撤销的命令 CutCtrl+X将选中的文字剪切到剪贴板 CopyCtrl+C将选中的文字复制到剪贴板 PasteCtrl+V粘贴剪贴板的文字 FindCtrl+F在当前文件中查找文字 ReplaceCtrl+H替换特定的文字 9 Find in Files在几个文件中查找文字 (3) 视图菜单(View) View 菜单快捷键描述 Status Bar显示或隐藏状态栏 File Toolbar显示或隐藏文件工具栏 Build Toolbar显示或隐藏编译工具栏 Debug Toolbar显示或隐藏调试工具栏 Project Window显示或隐藏工程窗口 Output Window显示或隐藏输出窗口 Source Browser打开源(文件)浏览器窗口 Disassembly Window显示或隐藏反汇编窗口 Watch 使 P1 口翻转 ACALLDELAY SJMPMAIN DELAY:MOVR2,#5 DELAY2:MOVR3,#100 DELAY3:MOVR4,#100 DJNZR4,$ DJNZR3,DELAY3 DJNZR2,DELAY2 RET 11 END (5) 接下来再把LedFlash.asm源程序文件添加到LedFlash.V2工程中。在工程管理 窗口内,展开Target1,用鼠标右键单击Source Group1,执行快捷菜单中的Add files to Group Source Group1命令,出现“添加源程序文件”窗口,找到并选择 LedFlash.asm并单击Add按钮即可把已经编好的源程序文件LedFlash.asm添加到工 程中。可以将多个文件加到工程中(对LedFlash.V2只需要LedFlash.asm一个源程 序文件就够了),添加完以后,按Close结束。 2.3.2 程序文件的编译(汇编)、连接程序文件的编译(汇编)、连接 (1)工程选项的设置:用鼠标右键单击Target1,执行快捷菜单中的Options for Target Target 1命令,出现如图2.2所示的工程选项设置窗口,该窗口包含多组选 项。一般情况下只需设置部分组中的部分选项。 点击Output标签,选中其中的”Create Hex File”,系统将在编译(汇编)、连接进制程 序)。 图2.2 Keil C51工程选项设置窗口 还可根据需要对其它选项进行相应的设置。最后选“确定”退出。 (2)程序的编译(汇编)、连接 接下来就可以对程序进行编译(汇编)、连接处理了。执行Project菜单中的Build Target或Rebuild All Target Files命令可对程序进行编译(汇编)、连接、生成HEX文件等 一系列连续操作,可以在Build 输出窗口看到处理过程的相关信息。如果有错误发生,用户可 根据系统提示修改程序中的语法错误或环境设置方面存在的问题,直到完全正确(0 Error(s), 0 Warning(s))为止。到这里,一个没有语法错误的工程项目算是完成了。 但是,是否完全符合设计要求、是否含有潜在的BUG(逻辑错误),还是不敢肯定的。 一个符合要求的、好的工程项目(系统、文件或程序)是要经得起考验的。它往往还需要经软件 模拟、硬件仿真、现场系统调试等反复修改、更新的过程。有了DP-51PRO单片机综合仿真实 验仪这些繁复问题将会迎刃而解,无论是软件仿真还是软硬件的综合调试,这些繁复的工作都 可以轻松搞定,而且它所提供的功能强大的Keil C51调试分析软件和功能丰富的硬件资源,将 12 使您的开发倍感轻松。 2.4 仿真调试功能的使用仿真调试功能的使用 如果源程序比较简单,并且用户对程序非常有把握的话,就可以将上面由Build或Rebuild 命令生成的HEX文件用编程器(也叫烧录器、固化器)或下载电缆直接烧写到目标系统的单片 机中并通电运行了。 不过对于初学者,在程序量较大或程序运行中发现BUG的情况下,就要利用仿真器这样的 设备对程序进行仿真调试,直到发现问题所在。DP-51PRO实验仪既是一台多功能通用目标系 统机,又是一种与Keil C51配合使用的仿真器。其工作原理是让实验仪上的P87C52X2单片机 运行MON51监控程序,把用户的应用程序装载到外部SRAM中,利用Keil C51集成开发环境 所提供的调试命令对用户程序进行仿真调试。 2.4.1 调试状态的存贮器模型调试状态的存贮器模型 DP-51PRO实验仪处于调试状态时将执行MON51监控程序,与PC机上的Keil Vision2 集成开发环境配合对用户程序进行调试。在调试状态下(JP13中的SRAM_E和FLASH_E两个 跳线座不能短接),DP-51PRO实验仪的存贮器模型如图2.3所示。 图2.3 调试状态下存储空间分配图 注意:在调试状态下,用户的应用程序必须从SRAM的0x8000地址开始存放,中断入口 地址也要做相应的调整。另外,调试状态下,定时器T2、串行口UART已被 MON51监控程序所占用,用户不能再使用这些资源。 2.4.2 仿真调试仿真调试 DP-51PRO实验仪与Keil C51集成开发环境联机进行硬件仿真 (1)用配套的串口通信电缆将DP-51PRO实验仪和PC机的串口连接起来。 (2)打开实验仪的工作电源。 (3)将实验仪A1区SRAM_E和FLASH_E两个跳线座的短路器拔走(即不短接),把 MOD_SW1开关切换为LOAD模式,按一下RESET,实验仪即进入等待下载状态。 13 (4)下载MON51监控程序:在PC机上运行DPFlash下载软件,该软件的主操作界面如图2.4 所示。 图2.4 DPFlash编程界面 先要对实验仪型号、通信口、波特率、单片机晶振进行正确的设置。然后在主界面中点击 “芯片”中的“编程”命令,出现如图2.5所示的编程窗口,选择”其它编程选择”栏的”编程 MON51”选项,单击“编程”命令按钮即可自动把MON51.HEX监控程序下载到实验仪的 Flash中。若无异常,则提示编程正常结束,此时可关闭DPFlash软件。将A1区MOD_SW1开 关切换为RUN模式,按一下RESET,MON51程序就开始运行了,实验仪即进入调试状态。 图2.5 MON51编程界面 (5)调试选项的设置:用鼠标右键单击Target1,执行快捷菜单中的Options for Target Target 1命令,出现如图2.6所示的工程选项设置窗口。 14 图2.6 工程选项设置窗口 Target选项的设置:选项的设置: DP-51PRO实验仪处在调试状态时,MON51监控程序将占 用0000H7FFFH之间的程序存储单元,用户程序位于8000H-BFFFH之间的SRAM单元(off- chip Code memory 和 off-chip Xdata memory设置如图2.6); 源程序开头也要用ORG 伪指令进行相应的调整。 Debug调试模式的设置:调试模式的设置: 从图2.7可以看出,Vision2的两种工作模式分别是:Use Simulator(软件模拟)和 Use(硬件仿真)。 图2.7 Debug调试模式设置 第一种工作方式,选择其中第一种工作方式,选择其中Use Simlator选项,将选项,将Vision2调试器设置成软件模拟仿调试器设置成软件模拟仿 真真,它只能对程序的语法及其结构做一般性的分析,与硬件没有联系。在此模式下不需要实际 的目标硬件就可以模拟80C51微控制器的很多功能,在准备硬件之前就可以测试您的应用程序, 这是很有用的。 在纯软件模拟工作方式下,上述(1)(5)步均可省略,用户程序仍定位于0000H,源 程序的起始定位也不需变。 15 当然,因为是软件模拟调试,程序中对外设的访问就无法通过DP-51PRO实验仪来观察运 行效果,如灯亮、电机转等。但是Keil C51集成开发环境也提供了一个外设窗口来模拟外设动 作,对于简单的应用程序基本上也够用了。 第二种工作方式是:在图第二种工作方式是:在图2.7所示的所示的Debug调试模式设置窗口中,选择调试模式设置窗口中,选择use, 将将 Vision2调试器设置成硬件模拟仿真调试器设置成硬件模拟仿真。对于DP-51PRO单片机综合仿真实验仪的软硬系统联软硬系统联 合调试合调试而言,应该选择”Keil Monitor51 Driver”。 此后,即可将DP-51PRO实验仪与Keil C51集成开发环境进行联合仿真调试。 至于其它的选项用户可按默认值进行设置或不用设置,最后点击确定加以确认。 (6)设置完毕执行Rebuild all target files命令对项目文件进行重新编译(汇编)、 连接。正确无误后,就可以对程序进行仿真调试了。 (7)执行Debug菜单中的Start/Stop Debug Session命令可启动或停止用户程序的 调试,启动用户程序调试,即把用户程序下载到DP-51PRO单片机综合仿真实验仪的 SRAM中。调试界面如图2.8所示。 图2.8 调试界面 在调试过程中可交替采用连续、断点、单步在调试过程中可交替采用连续、断点、单步(step into)、宏单步、宏单步(step over)、 到光标所在行等运行方式,还可以复位到光标所在行等运行方式,还可以复位CPU,重新开始程序的调试。,重新开始程序的调试。 调试过程中还可通过变量窗口、内存窗口、寄存器窗口、外设窗口等(主菜单调试过程中还可通过变量窗口、内存窗口、寄存器窗口、外设窗口等(主菜单VIEW下点下点 击相应窗口栏)动态观察或设置有关的变量、内存单元、寄存器以及输入输出部件。击相应窗口栏)动态观察或设置有关的变量、内存单元、寄存器以及输入输出部件。同时,程 序中涉及到的外设接口操作也可以在实验仪的相应设备模块上反映出效果来。例如,在 LedFlash程序执行过程中,可以看到实验仪上与单片机P1口相连的8个发光管同时点亮一秒钟 再同时熄灭一秒钟,反复不断。 (8) 此时请注意:当调试C语言程序时,应在Keil C环境的Command输入框下执行g,main 命令;而调试的是汇编语言程序时,在Keil C环境的下执行g命令进入程序调试状态。这时程序 指针PC已指向第一命令语句AJMP MAIN处,并等待用户输入各种调试命令。Keil C51给出了 许多调试快捷图标和调试命令,为了使用户更好的使用这些命令,下面将介绍几种常用的调试 命令及方法。 16 断点 巧妙的设置一些断点,能够更好帮助用户分析程序的运行机制、程序中变量的变化状况, 提高工作效率。 Vision2可以用几种不同的方法定义断点,即使在程序代码编译前,您也可 以在编辑源程序的时候设置Execution Breaks,设断点前要从View菜单中选中File Toolbar 选项,让主窗口的顶部出现File Toolbar工具栏。 断点可以用以下的方法定义和修改: 1. 用File Toolbar按纽。在Editor或Disassembly窗口中的代码行点击断点按钮即可在该 设置断点。 2. 用快捷菜单的断点命令。在Editor或Disassembly窗口中的代码行点击鼠标右键在打 开的快捷菜单中选择Insert/Remove Breakpoint命令也同样可以在该行设置断点。 3. 在Output WindowCommand输入框,可以使用 Breakset、Breakkill、BreakEnable、Breaklist、Breakpoint命令来设置断点。 如果已经 在某行设置了断点,再次在此行设置断点将取消该断点,断点设置成功后,会在该行的行首出 现红颜色的断点标志。 复位CPU 用Debug菜单或工具栏的Reset CPU命令。在不改变程序的情况下,若想使程序重新开始 运行,这时执行此命令即可,执行此命令后程序指针返回到0000H地址单元,另外,一些内部 特殊功能寄存器在复位期间也将重新赋值,例如A将变为00H,DPTR为0000H,SP为 07H,I/O口变为0FFH。 单步跟踪(F11) 用Debug工具栏的Step或快捷命令StepInto命令按钮可以单步跟踪程序,每执行一次此 命令,程序将运行一条指令(以指令为基本执行单元),当前的指令用黄色箭头标出,每执行一 步箭头都会移动,已执行过的语句呈现绿色。单步跟踪在C语言环境调试下最小的运行单位是 一条C语句,如果一条C语句只对应一条汇编指令,则单步跟踪 一次可以运行C语句对应一条 汇编指令;如果一条C语句对应多条汇编指令,则一次单步跟踪要运行完对应的所有汇编指令。 在汇编语言调试下,可以跟踪到每一个汇编指令的执行。 单步运行(F10) 用Debug工具栏的Step Over或快捷命令Step Over按钮即可实现单步运行程序,此时 单步运行命令将把函数和函数调用当作一个实体来看待,因此单步运行是以语句(这一条语句不 管是单一命令行还是函数调用)为基本执行单元。 执行返回(Ctrl+F11) 在用单步跟踪命令跟踪到了子函数或子程序内部时,可以使用Debug菜单栏中的Step Out of Current Function或快捷命令按钮Step Out 即可实现程序的PC指针返回到调用此子 程序或函数的下一条语句。 执行到光标所在命令行(Ctrl+F10) 用工具栏或快捷菜单命令Run tol Cursor Line 即可执行此命令,使程序执行到光标所在 行,但不包括此行,其实质是把当前光标所在的行当作临时断点。 全速运行(F5) 用Debug工具栏的Go快捷命令Run命令按钮即可实现全速运行程序,当然若程序中已经 设置断点,程序将执行到断点处,并等待调试指令;若程序中没有设置任何断点,当Vision2 处于全速运行期间, Vision2不允许任何资源的查看,也不接受其它的命令。 将鼠标箭头移到一个变量上可以看到它们的值。 按钮可以启动/停止调试(Crtl+F5) (6) 由于Led_light程序使用了系统资源P1口,为了更好的观察这些资源的变化,用户可 以打开它们的观察窗口。点击菜单栏Peripherals选项,在打开的下拉菜单中选择I/O-Ports选 17 项中的Port 1命令,即可打开并行I/O口P1的观察窗口,如图2.9所示。 图2.9 P1口观察窗口 (7) 点击菜单栏的Debug选项,在弹出的下拉菜单中执行Step命令,观察项目窗口的特 殊功能寄存器区域,看看PC指针和堆栈指针的值有何变化。多次执行单步运行指令Step,注 意观察P1观察窗口和DP-51PRO单片机综合仿真实验仪上用逻辑笔检测P1口状态。最后选择 Go命令全速运行程序,此时DP-51PRO单片机综合仿真实验仪上看到P1.0、P1.1、P1.2电平 在变化,这不正是Led_Light实验例程所要实现的功能吗?,此时DP-51PRO单片机综合仿真 实验仪不就是一个仿真器样机了吗?在后续的调试实验中您将逐步感受到它的的妙用。 (8) 程序调试完毕可执行Debug菜单栏中的Start/Stop Debug Session命令停止调试 (当然您按一下DP-51PRO单片机综合仿真实验仪的复位按钮,即可较快地退出调试状态)。您 会了吗?即便还不太熟练,那也不要紧,在以后的章节中将有大量的实战练习。在学习过程中, 您千万不能偷懒,要一行一行地老老实实地将程序敲进去,逐行逐段地调试差错,只有这样您 才有可能慢慢地细心地体会到程序设计的思想。我们知道,单片机是一门实战性很强的学科。 即便您考试考了100分,如果没有大量的实战训练,您终究可能还是个“门外汉”,没有办法登 堂入室成为一名真正的单片机应用开发工程师,这是成千上万开发人员多年来积累的经验教训, 即使万事开头难,但是切记:良好的开端等于成功一半!所以不要在学习方法上失败,认真迈 好您的第一步。 2.5 脱机运行脱机运行 经过在Keil C51集成开发环境下的软件模拟、或是与DP-51PRO实验仪联机进行的硬件 仿真,用户程序中的错误和不足已基本上得到了纠正。但在实际的工作环境中它是否仍然符 合用户的要求呢?还需要将调试好的程序下载到样机并“脱机运行”才可以确定(单片机实 验系统脱离主机,独立运行)。 DP-51PRO 单片机综合仿真实验仪提供了丰富的外围器件和设备接口,可以作为用户的 通用实验样机,只需把调试、仿真过的程序所对应的HEX文件下载(编程、固化)到DP- 51PRO实验仪上的单片机程序存储器中,系统复位后由单片机在脱离计算机的情况下全速运 行用户程序,就可以检验用户程序的实际效果了。 以下是以下是DP-51PRO实验仪脱机运行用户程序的主要操作步骤:实验仪脱机运行用户程序的主要操作步骤: (1) 由于在运行状态下DP-51PRO单片机综合仿真实验仪是运行单片机内部程序存 储器中的程序,这样源程序文件必须从0000H单元开始存放,确认源程序文件的起始地址为 0000H(如仍为ORG 8000H则应改为ORG 0000H或是去掉ORG伪指令,因为源程序的默认 起始地址就是0000H); (2) 重新设置Keil C51 的编译环境,点击菜单栏上的Project 项,在弹出的下拉式 菜单中选择Option for target target 1命令,将出现如图2.10 所示的系统环境设置界面。 在第一栏Target 选项中把外部程序存储器空间起始地址改为:0000H。在第2 栏Output选 项中选中Create Hexe File,即表示在编译连接后自动生成目标文件(*.HEX)。而第三栏C51 18 选项中的中断入口地址向量改为:0000H,点击确定命令按钮加以确认。 图2.10 系统编译环境设置界面 (3) 用Build或Rebuild命令重新编译连接程序,生成所需的HEX文件; (4) 用串行电缆将DP-51PRO实验仪和PC机的串口连接起来,把实验仪上的 MOD_SW1切换为LOAD模式,按一下RESET,运行PC机上的DPFLASH软件,选“文件”栏, 将已形成的HEX文件装载到DPFLASH中,再选择“芯片”栏中的“编程”, 选择”其它编程 选择”栏的”编程文件区”选项,单击编程命令按钮即可自动把该十六进制文件下载到实验仪的 Flash中。 (5)把实验仪上的MOD_SW1切换为RUN模式,按一下RESET,DP-51PRO实验仪就开 始全速运行用户程序了。 19 第 3 章实验部分 实验一 Keil 集成开发环境练习和编程调试 实验名称:Keil 集成开发环境练习和编程调试 学时安排:4 学时 实验类别:综合性 实验要求:必做 一、实验目的和任务 1 熟悉Keil C51 集成开发环境的使用方法; 2 熟悉Keil C51 集成开发环境仿真条件下调试功能的使用; 3 学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。 二、实验原理介绍 Keil 集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在 计算机上直接进行汇编语言的编辑、连接和调试。 在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过 修改相关寄存器和存储器的内容来改变程序,再执行,来修改和验证程序。 三、实验设备介绍 1 IBM PC 机一台 四、实验内容和步骤 1 编写程序,完成内存中两个字节内容的交换。 建立工程文件。双击桌面的Keil 快捷图标,进入Keil 集成开发环境。点击工具栏的 Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新的Vision2工程,为工程取 一个名字,并选择将要使用的器件的型号(Philips公司的P80/87C52X2 CPU)。 编写程序,加入到刚才建立工程文件中。在File下采用New命令,建立新文件,送入程序 内容,并保存为ASM类型文件。在Project Windos窗口内,选中Source Group1后点击鼠标右键, 在弹出的快捷菜单中选择Add files to Group “Source Group1”(向工程中添加源程序文件)命令, 选择刚才创建单击Add命令即可把源程序文件添加到项目中。 ORG0000H LJMP MAIN ORG 0100H MAIN:MOV SP,#60H;SP=? MOV R0,#30H;R0=? MOV R1,#40H;R1=? MOV R0,#55H;(30H)=? MOV R1,#0AAH ;(40H)=? MOV A,R1;A=? XCH A,R0;A=? (30H)=? XCH A,R1;A=? (40H)=? MOV R0,#33H;(30H)=? ;下面是另一种方法 20 MOV R1,#44H;(40H)=? MOV A,R0;A=? PUSH ACC;SP=? (61H)=? MOV A,R1;A=? PUSH ACC;SP=?(62H)=? NOP POP ACC;SP=? A=? MOV R0,A;(30H)=? POP ACC;SP=? A=? MOV R1,A;(40H)=? NOP SJMP $ END 选择Project下的Rebuild all target files 对工程文件进行汇编和连接,如果出错,系统会提 示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示0 warnings,0 errors,表明程序没有语法错误,成功完成了汇编过程,就可以进行动态调试了。 选择Project下的Options for target Target1进行动态调试的参数设置,点击debug,再 点击 Use Simulator,最后点击完成。 对程序进行动态调试,学会查看和修改查看和修改相关寄存器(左边的register窗)、内部和外部存 储器的内容。常用的工具条上的命令有开始/暂停动态调试,单步执行或,执行到光 标处等。查看存储器内容的方式是在存储区(View/memory 窗)的地址栏内写上要查看的 初始地址就可以了。比如看内部存储器用D:0000H,程序存储器用C:0000H,外部存储器用 X:0000H。将每行程序执行后的结果写到该行程序的注释部分。 2 编写一个数据填充和数据块搬移程序。仿照实验内容和步骤1的过程,建立、编辑、汇 编、连接和动态调试程序,查看和验证数据区的内容是否正确。 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOVR0,#30H; R0指向30H单元 MOVR2,#16; R2作循环计数器 NEXT1:MOVR0,#*; 填充当前单元 INCR0; 指针下移一个单元 DJNZR2,NEXT1; 未填完16个单元,继续 ;以下程序将30H开始的16个字节内容送到100H开始的外部存储器中 MOVR1,#30H MOVDPTR,#0100H MOV R3,#10H NEXT2:MOVA,R1 MOVXDPTR,A INC R1 INC DPTR DJNZR3,NEXT2 SJMP$ END 21 3 编写一个多字节的算术运算程序。仿照实验内容和步骤1的过程,建立、编辑、汇编、 连接和动态调试程序,将运行结果写到程序的注释部分。 ORG 0000H LJMP MAIN ORG0100H MAIN:MOV SP,#60H MOV R1,#12H MOVR0,#34H;R1R0=? MOVR2,#21H MOVR3,#0EFH ;R3R2=? ;下面是加法运算 MOVA,R0 ADDA,R2; 低8位相加 MOVR4,A; MOVA,R1 ADDCA,R3; 高8位相加 MOVR5,A MOVA,#0 ADDCA,#0 MOVR6,A; R6存放进位 R6R5R4=? NOP ;以下是减法运算(建议此部分自己编写) CLR C MOV A,R2 SUBBA,R0 MOVR4,A MOVA,R3 SUBB A,R1 MOVR5,A MOVA,#00H SUBB A,#00H MOVR6,A;R6R5R4=? ;以下是乘法运算 NOP MOV A,R0 MOVB,R2 MULAB MOVR4,A MOVR5,B MOV A,R1 MOVB,R2 MUL AB ADDA,R5 MOVR5,A MOV A,B ADDCA,#00H 22 MOVR6,A NOP MOV A,R0 MOVB,R3 MULAB ADDA,R5 MOVR5,A MOVA,B ADDCA,R6 MOVR6,A MOV A,R1 MOVB,R3 MUL AB ADDA,R6 MOVR6,A MOV A,B ADDCA,#00H MOVR7,A;R7R6R5R4=? SJMP $ END 五、注意事项和要求 1、按照实验步骤学会建立工程文件、加入文件、编辑文件直至产生可执行文件的过程。 2、学习动态调试程序、单步运行程序并查看寄存器和存储器内容。学习动态调试程序、单步运行程序并查看寄存器和存储器内容。 六、作业及预习要求 1、总结程序建立、编辑、汇编、连接和调试过程,对所编写的三个程序作详细注释, 并标明程序执行后相关寄存器和存储器的内容。 2、查表操作实验:在程序中建一个平方表,查出R2中数据(不大于15)的平方并重新 存到R2中。(选做) 3、编主,子两程序。子程序名 AVERAGE,入口参数:内部 RAM 中 50H59H 十个单元 中的数(由主程序给出);出口参数:A,存放十个数的平均值。主程序负责给出十数,再把求 得的平均值转换为 ASCII 码,存在 70H 开始的单元以备送显。(选做) 七、参考书目 1陈明荧,8051 单片机基础教程,北京:科学出版社,2003.9. 2刘湘涛,江世明,单片机原理与应用,北京:电子工业出版社,2006.7. 3周立功,单片机实验与实践,北京:北京航空航天大学出版社,2004.8. 23 实验二 走马灯实验 实验名称:走马灯实验学时安排:4 学时 实验类别:综合性 实验要求:必做 一、实验目的和任务 1、学会DP-51PRO实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用I/O的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 二、实验原理介绍 走马灯实验是一个硬件实验,因此要求使用 DP-51PRO 单片机综合仿真实验仪进行硬件仿 真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿真仪, 下载监控程序,进行主机与实验箱联机仿真。 三、实验设备介绍 1、IBM PC 机一台; 2、DP-51PRO 单片机综合仿真实验仪一台。 四、实验内容和步骤 1 编写一段程序,用P1口作为控制端口,使D1区的LED 轮流点亮。原理图如下图。 图3-1 走马灯实验原理图 仿照实验一的过程,编写程序、汇编、连接、软件仿真,基本达到功能要求。 ORG0000H LJMPMAIN ORG0100H MAIN:MOVA,#0FEH;准备点亮第一只发光管 NEXT:MOVP1,A 24 ACALL DELAY RLA; 准备点亮下一只发光管 S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职业规划动画教程
- 就业指导帮扶行动指南
- 物业安全管理经验分享
- 糖尿病酮症酸中毒患者教育
- 新能源专业职业规划指南
- 2026年德州市第六人民医院派遣制精神卫生医师招聘(5人)笔试参考题库及答案解析
- 2026年浙江湖州学院高层次人才(教师)引进16人考试参考题库及答案解析
- 美国数理硕士就业
- 2026浙江杭州千岛湖畔致格文化发展有限公司招聘8人笔试备考题库及答案解析
- 安岳县公安局公开招聘警务辅助人员(22人)考试模拟试题及答案解析
- 《电子商务基础》课件-2.电子商务类别
- 电子元器件供应链合作协议
- 营养评估的临床应用
- 2024火力发电厂运煤设备抑尘技术规范第4部分:输送及转运设备抑尘
- 手术室操作规程与安全制度
- 《厂内专用机动车辆安全技术规程》TSG81-2022知识培训
- 《排球正面双手垫球 移动垫球》教案
- 装备维护员中级题库(292道)
- 建筑材料教学课件06建筑砂浆
- 高中英语2024届高考应用文常见亮眼句型(共十八类)
- ISO 15609-1 2019 金属材料焊接工艺规程和评定-焊接工艺规程-电弧焊(中文版)
评论
0/150
提交评论