《单片机技术与应用实验指导书.doc》由会员分享,可在线阅读,更多相关《单片机技术与应用实验指导书.doc(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、自动化专业单片机技术与应用实验指导书黄伟 周又丁 编2006年12月19日目次实验装置说明1实验1 Keil C51集成开发环境的使用练习11实验2 基于Keil C51集成开发环境的仿真与调试22实验3 电子琴实验30实验4 88LED扫描输出实验34实验5 RS232串行通信实验38实验6 数字温度传感器实验42实验7 单总线和I2C结合实现数字温度计实验49 实验装置说明一、 (系统)概述单片机技术与应用实验系统是由一台DP-51PRO单片机综合仿真实验仪、一台PC计算机和Keil C51集成开发环境所组成,它可作为自动化专业本科、专科、高职的单片机实验教学装置,也可作为教师、研究生和科
2、研人员对单片机技术进行实验和研发的平台。(本试验系统)我们以单片机实验与实践一书为基础,结合自动化专业实验教学的需要,编制了本实验指导书,旨在培养学生的单片机应用开发能力,加深学生对单片机的认识,促进学生对理论知识的理解和掌握。二、 DP-51PRO单片机综合仿真实验仪简介DP-51PRO单片机综合仿真实验仪的电路布局如图1所示。图1 DP-51PRO单片机综合仿真实验仪从图1中可以看到,DP-51PRO单片机综合仿真实验仪分为多个功能块,各个功能块之间相对独立。DP-51PRO单片机综合仿真实验仪的工作方式分为LOAD模式和RUN模式两种,每种模式又可因8051的型号、开关、跳线的组合不同,
3、分为几种不同情形。一般在DP-51PRO单片机综合仿真实验仪上使用的单片机的型号有两种:厂家提供的已在掩膜ROM中编程 的P87C52X2 和具有ISP功能的P89C60X2、P89CC51RD2等。开关MOD_SW1,用于切换LOAD模式和RUN模式,实际上是切换8051的/EA控制引脚的高低电平。跳线FLASH_E,在使用FLASH时是断开的(默认情况下),这时,用户可以使用32KB的FLASH,其地址空间为0000H7FFFH。跳线SRAM_E,在使用SRAM时是断开的(默认情况下),这时用户可以使用32KB的SRAM,其地址为XDATA空间8000HFFFFH。当MOD_SW1拨至RU
4、N时,/EA引脚处于低电平,8051从片外程序存储器开始执行程序。此时,如果在DP-51PRO的FLASH中的是已经下载了的用户程序,在DP-51PRO开机时,8051运行的即是已下载到FLASH中的用户程序(FLASH_E断开),这是不需要连PC机的脱机运行。如果DP-51PRO的FLASH中存放是已经下载了的MON51程序,在DP-51PRO开机时,8051运行的即是FLASH中的MON51程序(FLASH_E断开)。此时,可以在PC机上运行Keil,选择KEIL MONITOR 51来硬件模拟仿真调试用户程序。这是需要PC机与DP-51PRO联机进行的调试,这也是我们计划的多数实验在DP
5、-51PRO上所采用的实验方法。(参见单片机实验与实践一书2.5节P.29-38)当MOD_SW1拨至LOAD时,/EA引脚处于高电平,8051从片内程序存储器开始执行程序。如果DP-51PRO上的安装的单片是P87C52X2,在DP-51PRO开机时P87C52X2执行的是其内部掩膜ROM中的监控程序。此时用户可通过在PC机上运行周立功公司的DPFLASH软件,下载用户程序或MON51程序到DP-51PRO上的FLASH芯片中(FLASH_E断开)。(参见单片机实验与实践一书2.6节P.38-40)。如果DP-51PRO上的安装的单片是P89C60X2等含片内FLASH的,在DP-51PRO
6、开机时, P89C60X2等单片机可运行P89C60X2等单片机内部的FLASH中用户已写入的程序(条件是ISP断开, FLASH_E短接);也可运行P89C60X2单片机内部的BOOT ROM中的ISP引导程序(条件是ISP短接, FLASH_E短接),而此时用户可通过在PC机上运行周立功公司的ZLGISP软件,下载用户程序到P89C60X2等单片机内部的FLASH中,实现在系统编程。(参见单片机实验与实践一书2.7节P.41-47)。三、 Keil C51 uVision2集成开发环境Keil C51 uV2集成开发环境是基于80C51内核的微处理器软件开发平台,内嵌多种符合工业标准的开发
7、工具,可完成从工程建立到管理、编译、链接、目标代码生成、软件仿真、硬件仿真等完整的开发流程。Keil C51集成开发环境的主要功能有: (1) uVision2 for Windows 将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;(2) C51国际标准化C交叉编译器,从C源代码产生可重定位的目标模块;(3) A51宏编辑器从80C51汇编源代码产生可重定位的目标模块;(4) BL51链接器/定位器组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;(5) LIB51库管理器从目标模块生成链接器可以使用的库文件;(6) OH51目标文件至HEX格式的转换器从绝对目标
8、模块生成Intel Hex文件;(7) RTX-51实时操作系统简化了复杂的实时应用软件项目的设计。在已安装Keil C51集成开发环境的计算机桌面上,有一个Keil uVision2的快捷图标,图2 Keil uVision2快捷图标双击之后,进入集成开发环境,图3 uVision2操作界面在该集成开发环境中,可以通过各种编辑器操作、工程维护、开发工具选项设置、程序调试、窗体选择和操作、在线帮助等各种菜单、工具栏按钮和快捷键来执行uVision2命令。各种操作菜单和命令如下:表1 文件菜单和文件命令表2 编辑菜单和编辑器命令可以按下Shift键和相应的光标键来选择文字,用Ctrl+将光标移到
9、下一个单词,用Ctrl+Shift+选中从光标位置到下一个单词开始前的文字,还可以如表3,用鼠标选择文字。表3 选择文本命令表4 视图菜单表5 工程菜单和工程命令表6 调试菜单和调试命令表7 外围器件菜单表8 工具菜单表9 软件版本控制系统菜单表10 视窗菜单表11 帮助菜单四、 实验要求及安全操作规程1、 实验前的准备实验前应复习教材中有关章节,查阅单片机实验与实践等辅助教学资料,认真研读实验指导书,了解各实验项目的目的、内容、方法、步骤,明确实验过程中应注意的问题,并按实验项目准备记录。 各实验项目涉及的教材内容为:(1) 实验1 Keil C51集成开发环境的使用练习;(2) 实验2 基
10、于Keil C51集成开发环境的仿真与调试;(3) 实验5 电子琴实验;(涉及教材中“MCS-51的指令系统”、“MCS-51汇编语言程序设计”、“MCS-51的定时器/计数器”、“MCS-51与键盘、显示器、拨盘、打印机的接口设计”、“MCS-51的串行通信技术及其他扩展接口”、 “MCS-51的中断系统”六个章节的内容)(4) 实验10 88LED扫描输出实验;(涉及教材中“MCS-51的指令系统”、“MCS-51汇编语言程序设计”、“MCS-51扩展I/O接口的设计”、“ MCS-51与键盘、显示器、拨盘、打印机的接口设计”四个章节的内容)(5) 实验14 RS232串口通信实验;(涉及
11、教材中“MCS-51的指令系统”、“MCS-51汇编语言程序设计”、“MCS-51的串行口” 、“MCS-51的中断系统”四个章节的内容)(6) 实验19数字温度传感器实验;(涉及教材中“MCS-51的指令系统”、“MCS-51汇编语言程序设计”、“MCS-51单片机扩展存储器的设计”、 “MCS-51的串行口” 、“MCS-51的中断系统”五个章节的内容)(7) 实验20单总线和I2C总线结合实现数字温度计实验;(涉及教材中“MCS-51的指令系统”、“MCS-51汇编语言程序设计”、“MCS-51单片机扩展存储器的设计”、 “MCS-51的串行口” 、“MCS-51的中断系统”五个章节的内
12、容)2、 实验安全操作规程(1) 实验之前确保电源开关处于“关”的位置;(2) 接线或拆线必须在切断电源的情况下进行,接线时注意电源极性,经严格检查,并经指导老师确认后,方可接通电源;(3) 实验过程中,需要小心操作设备的连接组件,避免损坏设备和装置;(4) 实验完毕,需关闭电源,拆除连接,并经指导老师确认后,方可离开。实验1 Keil C51集成开发环境的使用_软件模拟一、 实验目的熟悉Keil C51集成开发环境的使用,掌握软件模拟调试的方法。二、 实验设备 PC计算机1台 基于Windows的Keil-uV2调试软件三、 实验内容1、 按已有源程序,用Keil C51创建并软件模拟调试一
13、个应用程序;2、用Keil C51创建和调试一段把片内RAM50H59H单元写入FFH的程序。四、 实验原理1、 创建Keil C51应用程序的方法。创建一个新的Keil C51应用程序,可以遵照以下步骤来完成:l 新建一个工程项目文件;l 为工程选择目标器件;l 为工程项目设置软硬件调试环境;l 创建源程序文件并输入程序代码;l 保存创建的源程序项目文件;l 把源程序文件添加到项目中。下面按照单片机实验与实践所举的例子,创建一个新的工程文件Led_light.uV2。(1) 双击桌面的Keil C51快捷图标,进入图4的Keil C51 uVision2集成开发环境。图4 Keil C51集
14、成开发界面(2) 在工具栏的Project下拉菜单中选择NewProject命令,建立一个新的uVision2工程,图5 新建工程项目下拉菜单在以下图6 新建工程项目文件保存对话框中,为工程取一个名称,工程名应便于记忆且文件名不长;选择工程存放的路径,建议为每个工程单独建立一个目录,将工程中需要的所有文件都放在这个目录中;选择工程目录D:示范程序Led_light和输入项目名Led_light后,单击“保存”按钮返回。图6 新建工程项目对话窗口(3) 在工程建立完毕后,会立即弹出器件选择窗口,如图7。器件选择的目的是告诉uVision2使用的80C51是哪个公司的哪个型号,以便uVision2
15、可以根据选择进行SFR的预定义,在软硬件仿真中提供易于操作的外设浮动窗口。图7 器件选择窗口如果在选择完目标器件后想重新改变目标器件,可以选择工具栏中的Project选项,在弹出的下拉菜单中选择Select Device for Target Target 1命令,如图8所示,可再回到上一个图7重新进行选择。图8 器件选择命令下拉菜单(4) 通过以上三步,建立了一个空白的工程项目文件,并为工程选好了目标器件,但项目中没有程序文件,需要建立新的程序文件。选择工具栏中的File选项,在弹出的下拉菜单中选择New命令,创建新的程序文件,如图9所示。图9 新建源程序下拉菜单在这时,会弹出一个新文件窗口
16、Text1。如图10所示。图10 源程序编辑窗口(5) 在Text1的源程序编辑框内输入自己的源程序Led_light.asm的内容,在这个窗口中,uVision2允许进行输入、删除、选择、拷贝、粘贴等操作。(6) 输入完毕后,选择工具栏的File选项,在弹出的下拉菜单中选择“保存”命令来保存源程序文件。在弹出的保存源程序画面中需要输入源程序的文件名Led_light.asm。需要注意汇编程序的后缀扩展名为.asm,C程序的后缀扩展名为.c,Keil C51两种语言都支持。(7) 将源程序Led_light.asm添加到Led_light.uV2工程中,构成完整的工程项目。在Project W
17、indows窗口内,选中Source Group1后右击鼠标,选择Add files to Group Source Group1命令,如图11所示。向工程中添加源文件,图11 添加源程序快捷菜单 在添加源程序文件窗口中,选择已创建编辑的源程序文件Led_light.asm,单击Add命令按钮,即可将源程序文件添加到项目中,如图12所示。需要注意文件类型默认是C程序,如果添加的是汇编程序,需要改变文件类型为Asm Source File (*.a* ; *.src),再选择汇编程序文件。图12 添加源程序文件窗口2、 编译、链接和模拟调试应用程序的方法。(1) 对目标硬件环境进行配置通过选择工
18、具栏中的Project选项,在弹出的下拉菜单中选择Option for Target ”Target1”命令,为目标设置(工具)选项,如图13所示。图13 调试环境设置命令下拉菜单(此图疑有误)之后,会出现以下图14所示的目标的存储器等调试环境设置窗口。图14 Keil C51调试环境设置窗口单击Output标签,会出现输出选项窗口。在打开的选项窗口中选中Create Executable、Debuge Information和 Browse Information选项。选中Create Hex File选项时,编译时系统将自动生成目标代码文件*.HEX。单击Debug标签,会出现调试模式选择
19、窗口,在此窗口中可以设置不同的调试模式。如图15所示。图15 Debug设置窗口uVision2的两种调试模式分别为Use Simulator(软件模拟)和Use(硬件仿真)。Use Simulator是将uVision2调试器设置成软件模拟模式,不需要实际的目标硬件就可以模拟80C51的很多功能。这使得在准备好硬件之前就可以测试自己的应用程序,是很有用的。Use选项有高级GDI驱动(TKS仿真器)和Keil Monitor-51驱动等,选择后者时可以使Keil uVision2通过Keil Monitor-51驱动与用户程序接口,实现不用仿真器也能在目标硬件系统上仿真调试。(2)对应用程序进
20、行编译、链接在工具栏Project选项中选择Build Target命令,即可对源程序文件进行编译、链接,如图16。图16 编译命令菜单也可以选择用Rebuild All Target Files命令对所有的工程文件进行重新编译、链接。此时会在Output Windows信息输出窗口输出一些相关信息。如图17所示。图17 输出提示信息其中,第2行assembling Led_light.asm表示正在编译Led_light.asm源程序,第3行linking表示正在链接工程项目文件,第5行Creating hex file from “Led_light”说明已生成目标文件Led_light.
21、hex,最后1行说明Led_light.uV2项目在编译过程中无错误和警告,编译链接成功。(3)模拟调试应用程序 在工具栏Debug选项中选择Start / Stop Debug Session命令,即可开始或结束对编译、链接成功后的应用程序的模拟调试(在Option for Target ”Target1”的Debug中,选择了Use Simulator)。在开始模拟调试之后,可使用“调试工具栏”中的各种工具按钮进行调试,也可通过打开工具栏View选项中的相关窗口观察应用程序的运行结果。五、 实验步骤1、检查Keil C51是否正确安装;检查各实验设备是否可正常地使用;开机;2、按照实验原理
22、的内容,在Keil C51集成开发环境中,新建一个工程项目文件;3、为所建立的工程选择一个目标器件;4、创建新的源程序文件并输入以下程序代码;5、保存所创建的源程序文件;6、把源程序文件添加到工程项目中;7、为工程项目设置软件模拟(仿真)调试环境;8、对程序进行编译、链接,生成HEX文件,并根据提示信息进行排错、修改。9、软件模拟调试。六、 实验要求1、 在实验报告中简述创建一个新的Keil C51应用程序的步骤。2、在实验报告中列出实验内容2中模拟调试通过的程序。七、 思考题1、 试写一条把片内RAM50H59H单元清0的程序。2、 试写一条把片内RAM50H59H单元写入01H的程序。实验
23、2 Keil C51集成开发环境的使用_硬件仿真一、 实验目的1、 掌握DP-51PRO单片机仿真实验仪与PC联机使用的操作方法;2、 进一步熟悉Keil C51集成开发环境的使用,掌握创建和硬件仿真调试Keil C51应用程序的方法。二、 实验设备 PC计算机1台 DP-51PRO单片机综合仿真实验仪1台 基于Windows的Keil-uV2调试软件三、实验内容1、用P1口作输出控制8位LED的亮灭(图23),采用已有源程序,学习并练习用Keil C51创建和硬件仿真调试应用程序;2、采用与内容1相同的电路,编写一段向P1口每隔半秒左右依次循环写入立即数00FFH的源程序,练习用Keil C
24、51创建和硬件仿真调试该应用程序;四、实验原理调试仿真功能是指DP-51PRO单片机综合仿真实验仪运行单片机P87C52X2内部的MON51监控程序,把应用程序装载到外部SRAM中,运用Keil C51集成开发环境所提供的所有调试命令来调试应用程序或仿真应用系统。1、 进入调试状态在A1区,把JP13中的SRAM_E和FLASH_E两个跳线座的短路器拔走,把MON_SW1开关拨到LOAD模式,P87C52X2插到DP-51PRO单片机综合仿真实验仪的U13锁紧座上,ISP跳线JP14跳开,短接JP15的1、2两个跳线(TXD、RXD),然后按下复位按键“RESET”,DP-51PRO单片机综合
25、仿真实验仪进入下载状态。用串行通信线连接PC和DP-51PRO单片机综合仿真实验仪,在PC上双击DPFlash下载软件的快捷图标,进入DPFlash下载的操作界面,在“型号”的下拉菜单中选择DP-51PRO,选择适当的通信口,另外,该界面中有一个“串口调试器”,可用它进行串口调试。在主界面中单击“编程”按钮,会出现一个编程窗口,在该窗口中选择“其他编程选择”选项区中的“编程MON51”,再单击该窗口中的“编程”按钮,即可自动地将MON51.HEX监控程序下载到DP-51PRO单片机综合仿真实验仪的Flash中,若无异常,将提示“编程正常结束”,关闭该窗口,退出DPFlash软件。把A1区的MO
26、N_SW1开关拨到RUN模式,然后按复位键,开始运行MON51程序,DP-51PRO单片机综合仿真实验仪进入调试状态。2、 调试状态的存储器模型在调试状态下(JP13中的SRAM_E和FLASH_E两个跳线座不能短接),DP-51PRO单片机综合仿真实验仪的存储器模型如图所示。在调试状态下,用户的应用程序必须从SRAM的0X8000地址开始存放,中断矢量也应从相应得地址单元转移到从0X8000开始的相应单元。 注意:调试状态下,定时器T2、串行口UART已被“MON51监控程序”所占用,用户不能再使用这些资源。图18 调试状态下存储器空间分配图3、 软件调试环境设置(1) 在Keil C51的
27、集成环境中,选择ProjectOption for target target 1,进入调试环境设置界面。(2) Target选项的设置。在DP-51PRO单片机综合仿真实验仪上进行的仿真、调试,由于MON51监控程序已经占用了从0000H到7FFFH地址单元的程序存储空间,因此,用户的应用程序必须从8000H地址单元开始存放,即用户应设置OffChip Code Memory栏内的Eprom选项,按照图18所给出的存储器空间分配,程序代码的起始地址为“0X8000H”,存储空间大小为“0X4000H”;同理设置数据存储空间的起始地址和存储空间大小。图19 Target的设置(3) C51选项
28、的设置见图20。图20 C51的属性设置(4) Debug环境的设置。如果选择了Use Simulator软件模拟仿真,只能对程序的语法及其结构做一般性分析,本实验要选择硬件模拟仿真。选中Use,在下拉菜单中选择Keil Monitor-51 Driver(如果有TKS仿真器,可以选择TKStudy Emulator),图21 Debug调试环境设置其右边的Setting按钮可以提供一个串口通信设置环境,可以灵活地设置串行通信的端口和波特率,由于DP-51PRO单片机综合仿真实验仪是与计算机通信,所以其通信协议、波特率都必须一致,且为9600bps。(5) 其他选项,用户可按默认值进行设置或不
29、设置,最后按“确定”按钮加以确认。4、 用户程序的调整在DP-51PRO单片机综合仿真实验仪调试时,用户的程序代码是从8000H单元开始存放的,因此,用户程序中定义程序块存放的伪指令“ORG 0000H”应改为“ORG 8000H”, 伪指令“ORG 0100H”应改为“ORG 8100H”。如果调试的是C语言源程序,则还需要在工程项目中添加Startup.a51系统配置文件,用来定义数据段、程序段和堆栈段的大小及其起始地址、RAM的初始化、程序重新定位、初始化启动代码等。用户必须把“CSEG AT 0”代码改为“CSEG AT 8000H”,中断矢量地址也应跳转到相应的高端地址单元,例如外部
30、中断0的入口地址0003H应该是8003H。5、 观察窗口的开启如果在调试界面中没有看到变量观察窗口,可以选择ViewWatch & Call Stack Window,打开变量观察窗口,同法可以打开其他相关窗口。6、 调试状态的进入当调试C语言程序时,应在Keil C51环境的Command输入框下执行“g, main”命令;而当调试汇编语言程序时,在Keil C环境下执行g命令进入程序调试状态,这时,程序指针PC指向第一条命令语句“AJMP MAIN”,并等待用户输入各种调试命令。以下是一些常用的命令和方法。断点巧妙设置一些断点,能够更好地帮助用户分析程序的运行机制、程序中变量的 变化状况
31、,提高工作效率。uVision2可以用几种不同的方法定义断点,即使在程序代码编译前,也可以在编辑源程序时设置Execution Breaks。设置断点前要从View菜单中选中File Toolbar选项,让主窗口的顶部出现File Toolbar工具栏。断点可以用以下方法定义和修改:l 用File Toolbar按钮。在Editor或Disassembly窗口中的代码行单击断点按钮即可在该处设置断点;l 用快捷菜单的断点命令。在Editor或Disassembly窗口中的代码行右击鼠标,在打开的快捷菜单中选择Insert/Remove Breakpoint命令同样也可在该处设置断点;l 在Ou
32、tput Window Command输入框中,可以使用Breakset、Breakkill、BreakEnable、Breaklist、Breakpoint命令来设置断点。如果已经在某行设置了断点,再次在此行设置断点将取消该断点。断点设置成功后,会在该行的行首出现红颜色的断点标志。复位CPU用Debug菜单或工具栏的Reset CPU命令复位CPU。在不改变程序的情况下,若想使程序重新开始运行,执行此命令即可。执行此命令后,程序指针指向0000H地址单元。另外,一些内部特殊功能寄存器在复位期间也将重新赋值。例如,A将变为00H,DPTR变为0000H,SP变为07H,I/O口变为0FFH。单
33、步跟踪(F11)用Debug工具栏的Step或快捷命令StepInto命令按钮可以单步跟踪程序。每执行一次此命令,程序将运行一条指令(以指令为基本执行单元)。当前的指令用黄色箭头标出,每执行一步箭头都会移动,已执行过的语句呈现绿色。单步跟踪在C语言环境调试下最小的运行单位是一条C语句。如果一条C语句只对应一条汇编指令,则单步跟踪一次可以运行一条汇编指令;如果一条C语句对应多条汇编指令,则一次单步跟踪要运行完对应的所有汇编指令,在汇编语言调试下,可以跟踪到每一个汇编指令的执行。单步运行(F10)用Debug工具栏的Step Over或快捷命令Step Over命令按钮,即可实现单步运行程序,此时
34、单步运行命令将把函数和函数调用当作揖个实体来看待,因此,单步运行是以该语句(该语句不管事单一命令行还是函数调用)为基本执行单元。执行返回(Ctrl+F11) 在用单步跟踪命令跟踪到子函数或子程序内部时,可以使用Debug菜单栏中的 Step Out of Current Function或快捷命令按钮Step Out,即可实现程序的PC指针返回到调用此子程序或函数的下一条语句。执行到光标所在命令行(Ctrl+F10)用工具栏或快捷菜单命令Run tol Cursor Line即可执行此命令,使程序执行到光标所在行,但不包括此行。其实质是把当前光标所在的行当作临时断点。全速执行(F5)用Debu
35、g工具栏的Go快捷命令Run命令按钮即可实现全速运行程序。当然若程序中已经设置断点,程序将执行到断点处,并等待调试指令;若程序中没有设置任何断点,在uVision2处于全速运行期间,uVision2不允许任何资源的查看,也不接受其他命令。将鼠标箭头移到一个变量上可以看到它们的值。按钮可以启动/停止调试(Crtl+F5)7、 如果程序使用了系统资源P1口,用户可以打开P1口的观察窗口来观察资源的变化,选择PeripheralsI/O-PortsPort 1命令,即可打开并行I/O口P1的观察窗口,如下图所示。图22 P1口观察窗口8、 选择DebugStep命令,观察项目窗口的特殊功能寄存器区域
36、,查看PC指针和堆栈指针的值如何变化。多次执行单步运行指令Step,注意观察P1观察窗口,在DP-51PRO综合仿真实验仪上用逻辑笔检测P1口状态。最后选择Go命令全速运行程序。9、 程序调试完毕,可运行DegbugStart/Stop Debug Session命令,停止调试,也可以按一下DP-51PRO综合仿真实验仪上的复位按钮,较快地退出调试状态。五、实验步骤(1) 用40针排线把DP-51PRO单片机综合仿真实验仪上的A1区J76接口与A2区的J79接口相连,再把A2区的J61接口与 D1区的J52接口相连,构成如下电路图23 实验的电路原理图(2) 开机,接通DP-51PRO单片机综
37、合仿真实验仪电源;(3) 按照原理中的第1部分内容所述,设置好跳线;(4) 使用DPFlash软件下载MON51监控程序到实验仪;(5) 关闭DPFlash软件,把DP-51PRO单片机综合仿真实验仪A1区的工作模式选择开关(MOD_SW1)切换到RUN处,然后按下复位键(RST),MON51监控程序开始运行,DP-51PRO单片机综合仿真实验仪进入调试状态;(6) 使用Keil C51集成开发环境建立工程、编辑和编译下列程序;(7) 按照实验原理中所介绍的软件调试环境设置方法进行设置;(8) 执行ProjiectRebuild all target files命令,对工程项目文件进行重新编译
38、、链接,出现“编译正确、链接成功”,否则,需要修改错误,再重新编译、链接;(9) 选择DebugStart/Stop Debug Session调试命令,把用户应用程序下载到DP-51PRO单片机仿真实验仪的SRAM中;(10) 按照原理中介绍的方法进行仿真调试(如果用户在退出仿真调试模式后想再次进入仿真调试,可以按一下A1区的复位键),打开系统资源P1的观察窗口;(11) 选择DebugStep命令,可以进行单步调试,也可以设置断点,进行调试,还可以选择Go命令全速运行程序,进行调试,观察D1区的LED的亮灭是由用户程序来控制;(12) 调试完毕后,可执行DebugStart/Stop De
39、bug Session调试命令,停止调试状态,也可按DP-51PRO单片机仿真实验仪的复位按钮,退出调试状态。六、实验要求1、 在实验报告中列出实验内容2中硬件仿真调试通过的程序;2、 填写实验报告。(1) 按照实验报告所要求的统一格式,填写实验报告;(2) 在实验原理栏中给出实验电路图和程序清单(含必要的分析和注释);(3) 在实验总结栏中给出实验结果和得到的结论。七 、 思考题1、 如何仿真和调试C51程序?实验3 电子琴实验一、 实验目的1、 了解计算机发声原理。2、 熟悉定时器的工作原理、设定方法、及其中断服务程序的编程方法。3、 熟悉键盘输入扫描电路的工作原理及其编程方法。二、 实验
40、设备 PC计算机1台 DP-51PRO单片机综合仿真实验仪1台 基于Windows的Keil-uV2调试软件三、 实验原理电子琴的发音是通过单片机对蜂鸣器的输出控制来实现。蜂鸣器是通过单片机的1根口线,经驱动电路,驱动蜂鸣器发声。在蜂鸣器发声过程中,单片机输出信号的方波频率变化,将产生不同的音调。控制蜂鸣器发出不同音调的单片机输出方波信号,将通过单片机的内部定时器来控制其方波变化的频率,选择定时器0工作在方式1条件下,通过为定时器的设置不同的初始值,产生不同的定时中断,从而形成不同频率的蜂鸣器驱动方波信号。单片机内部定时器产生中断后,程序将涉及到中断的调用和中断服务程序,定时器0(T0)中断的
41、入口地址在800BH处,中断服务程序中,将对定时器重新装载初值,以便产生方波。键盘的接口采用独立式键盘工作电路,对于按键的识别采用查询方式,通过P1口的不同电平状态检测,完成对键盘输入的识别。本实验通过对以上各部分的综合,首先初始化堆栈指针,设定P1口为输入模式,定时器0工作在方式1,打开定时器中断,然后对TR0清零,关闭定时器,并将在以后用TR0来完成对定时器工作与否的控制。通过对键盘扫描,判断是否有键输入,如果有键输入,则判断是哪个键输入,并将对应一组的值送入30H和31H,跳转到开定时器子程序,对TR0置位,打开定时器,等待定时器中断的产生。一旦有定时器中断产生,程序将通过中断入口地址,
42、调用中断服务程序,一方面给定时器重新赋初值,另一方面改变P3.3口的输出电平信号,从而产生方波信号,该方波信号的频率不同,将使蜂鸣器产生不同的音调。所以,不同键盘输入对应给定时器所赋的初值不同,使蜂鸣器对应发出的音调也就不同。四、 实验内容1、 实验前准备(1) 检查Keil C51是否正确安装;(2) 检查DP-51PRO单片机综合仿真实验仪与计算机之间的通信电缆连接;(3) 检查各实验设备是否可正常地使用。2、 实验内容和步骤(1) 用导线将A2区J58接口P3.3(INT1)和D4区的J8接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连,如下图图24 实验的电路原理图(
43、2) 开机,接通DP-51PRO单片机综合仿真实验仪电源;(3) 制作有7个按键的电子琴,使得能用实验仪上的按键K1K7,通过P1口输入,控制P3.3口的输出,输出7种音阶标称频率的方波,使D4区的蜂鸣器发出不同的音阶。编写按键的动态键盘扫描程序,根据不同音阶的频率编写蜂鸣器的音阶控制程序,完成电子琴的程序设计,参考程序如下(4) 调试已编写好的程序,然后用键盘演奏一段音乐;(5) 试着扩展一个按键K8,使电子琴能弹出:1(DOU)的高8度。五、 实验要求1、 填写实验报告(1) 按照实验报告所要求的统一格式,填写实验报告;(2) 说明程序中的定时器控制字各位的作用;(3) 说明将P1口设定为输入的方法;(4) 说明定时器0的中断服务程序得以执行的条件及其作用。六、 思考题1、 结合实验仪上的硬件,设计一个可以任意选曲播放的电子音乐盒;实验4 88LED扫描输出实验一、 实验目的1、 掌握用单片机I/O口进行LED点阵的扫描显示。2、 掌握利用单片机进行串并转换的方法。二、 实验设备 PC计算机1台 DP-51PRO单片机综合仿真实验仪1台 基于Windows的Keil-uV2调试软件三、 实验原理本实验将完成一个88LED扫描输出实验,该LED是由一个88的点阵信号组成,要想
限制150内