微处理器试验指导书前六个试验_第1页
微处理器试验指导书前六个试验_第2页
微处理器试验指导书前六个试验_第3页
微处理器试验指导书前六个试验_第4页
微处理器试验指导书前六个试验_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验指导书教学单位:电子信息学院课程名称:微处理器实验电子科技大学中山学院2014 年 8 月目录第 1 章 ZSC-1 单片机实验箱简介 . 11.1 主要特点 . 11.2 系统组成 . 11.3 实验项目 . 31.4 技术性能 . 41.5 调试下载说明 . 4第 2 章 Keil C51 软件的使用 . 52.1 集成开发环境简介 . 52.2 工程(项目)的创建与处理 . 52.3 脱机运行 . 8第 3 章 实验部分 . 9实验一 集成开发环境的熟悉与程序设计练习 . 9实验二 程序设计实验 . 16实验三 并口输入 /输出实验 . 23实验四 中断与定时 / 计数器实验 . 2

2、0实验五 串口实验 . 23实验六 音乐门铃设计 . 261第 1 章 ZSC-1 单片机实验箱简介1.1 主要特点ZSC-1 单片机实验箱是由电子科技大学中山学院研发的单片机教学实验与应用开发平台,除 满足单片机原理与接口技术等相关课程的实验教学需要外,还可用于课程设计、电子竞赛培训、 创新训练、毕业设计等实践环节的项目开发。该实验箱结构先进,外设丰富,通信能力强,扩展 性好,能使学生快速熟悉单片机及常用外设的工作原理,掌握典型单片机系统的设计流程,提高应用开发能力,有效培养工程素质。ZSC-1 单片机实验箱的主要特点包括:1、结构先进:设置 4 个以不同单片机为核心的实验分区,每个单片机既

3、可独立工作,控制分 区内各种外设,也可通过串行总线与其它单片机通信,实现信息交换。另设一个公用外设区, 包括多种串行芯片/模块,由 4 个单片机通过串行总线分时访问。2、外设丰富:配置多种人机设备、传感器件、执行设备、通信设备、存储设备并支持外部扩展,其中 TFT LCD、TTS 语音合成器、ZigBee 模块、陀螺仪/加速度传感器、非接触式 RFID 读 卡器等新型外设均为标配,提高了实验项目的交互性和趣味性。3、 外部通信能力强:提供 RS232、RS485、USB、红外等多种通信接口,4 个单片机均可利 用这些接口与 PC 机等设备进行通信,实现程序下载、数据上传等功能。4、 扩展性好:

4、单片机多个并行及串行10 口通过排针引出,用于外部扩展设备的连接。5、可靠性高:每个实验区设有独立的电源开关和稳压电路,确保一个实验区的断电或故障 不会影响其它实验区的正常工作。6、 实验项目丰富:支持不少于 50 个基础性、综合性和设计性实验项目。7、 开发效率高:提供设备驱动API、二级 BootLoader、上位 IAP 编程软件,大幅提高单片机 系统开发效率。1.2 系统组成ZSC-1 实验箱由 4 个实验分区、公用外设区、外部通信区、串行总线、电源电路组成,如图 1-1 所示。每个实验分区包括一个单片机以及多种由单片机直接控制的外设,公用外设区包括多 种可由 4 个单片机分时共享的串

5、行芯片 /模块,外部通信区提供 RS232、RS485、USB、红外等多 种通信接口,串行总线用于各实验分区、公用外设区、外部通信区之间的通信。2图 1-1 ZSC-1 实验箱的总体结构表 1-1 为 4 个实验分区以及公用外设区的外设清单。1#与 2#实验分区均采用 80C51 内核的STC12C5A60S2 单片机(只是封装不同),且配置外设较多。3#实验分区采用 AVR 内核的RS232RS485USB红外红外3ATmega32, 4#实验分区采用基于 80C51 内核并内置 IEEE 802.15.4 无线收发器的 CC2530。表 1-1 ZSC-1实验箱外设清单1#实验分区(STC

6、12C5A60S2)人机设备发光二极管无源蜂鸣器独立按键行列键盘LED 数码管LED 点阵管16*2 字符 LCD 显示器执行设备直流电机步进电机传感器DS18B20 温度传感器电位器2#实验分区(STC12C5A60S2)人机设备发光二极管无源蜂鸣器独立按键传感器DHT11 温湿度传感器电位器通信设备n RF24L01+射频收发器存储设备8MB 串行 Flash 存储器RC522 RFID 读卡器3#实验分区(ATmega32)人机设备发光二极管无源蜂鸣器独立按键传感器 :电位器4#实验分区(CC2530)人机设备发光二极管无源蜂鸣器独立按键传感器 :电位器公用外设区异步串行外设MzTH24

7、 TFT LCD 显示器SYN6288 TTS 语音合成器2I C 外设AT24C64 串行 EEPROMPCF8563T 实时钟PCF8591 串行 AD/DAMPU6050 陀螺仪/加速度传感器图 1-2 为 ZSC-1 实验箱的 PCB 布局图。各功能分区、主要元器件、1#单片机引脚、扩展排针引脚的名称均有丝印标注,1 个总电源开关和 4 个分电源开关集中安排在位于上方的电源区,程序下载口( RS232/USB)设在左上方外部通信区。4图 1-2 ZSC-1 实验箱 PCB 布局图13 实验项目一、基础性实验1、并口实验;2、串口实验;3、定时/计数器实验;4、外部中断实验;5、A/D

8、转换实验;6、 D/A 转换实验;7、看门狗实验。二、综合性实验1、数码管显示实验;2、行列键盘扫描实验;3、直流电机实验;4、步进电机实验;5、字 符型 LCD显示实验;6、LED 点阵显示实验;7、TFT LCD 显示实验;8、TTS 语音实验;9、l2C 接口实验;10、SPI接口实验;11、RS485 实验;12、无线数传实验;13、红外通信实验;14、 多机通信实验;15、RFID 实验;16、陀螺仪与加速度传感器实验三、设计性实验1、多功能电子钟设计;2、音乐门铃设计;3、数字温度计设计;4、温湿度测试仪设计;5、 数字记录仪设计;6、交通灯设计;7、门禁系统设计;&多通道

9、遥控系统设计;9、信号发生器 设计;10、数字频sildMi电子科技大学中山学院电子科技大学中山学院cc-LnoJCC1rEHLJAJLIAJrR-. 品H胡二常o凸 3iHH!rtHUiura innisaeunU3电克卩kL3R UTFT-LCD单片机教学实验与应用幵单片机教学实验与应用幵&V4tQ2014-03IE.需丢曙齧艦常鬻他!5pua 9 BUOOOQOQOOOOQOOOOOOOOQOQOOoooooooooooooooo00080000008000OOOQQ0OO5率计设计;11、电子密码锁设计;12、简易游艺机设计;13、ZigBee 无线传感 器网络设计;14、小型

10、物联网设计;15、高速公路自动收费系统设计; 16、智能小区管理系统设计; 17、倒车避障系统设计1.4 技术性能电气参数:输入电压 AC 220 10% 50Hz,输出功率20W 机械参数:采用铝合金箱体,外形尺寸400mM 280mM 120mm使用环境:温度-10C+40C,相对湿度 V 85%,海拔 v 4000m1.5 调试下载说明用 USB 电缆连接实验箱和 PC 机,运行 PC 机上的 STC_ISP.exe,进行程序下载。具体步骤 如下:1、 在 STC_ISP 主界面选择 MCU 型号为 STC12C5A60S2,打开实验中生成的 HEX 格式程 序文件,选择相应串口,设置最

11、高波特率为38400bps;2、 将实验箱电源电路中的总电源开关拨到左侧位置,使主电源接通,将MCU1 电源开关 拨到下方位置,使 1#单片机断电;3、 点击 STC_ISP 主界面中的下载按钮, 约等待 5s,待系统提示 请给 MCU 上电”时再将 MCU1 电源开关拨到上方位置,使 1#单片机通电,开始下载程序,数秒后下载结束,写入单片机Flash存储器中的程序自动开始运行。6第 2 章 Keil C51 软件的使用Keil C51 集成开发环境是基于 80C51 内核的微处理器软件开发平台,用户可以在集成开发环 境下学习编写、调试单片机程序。通过学习,实验用户可以掌握运用单片机进行项目开

12、发的过程、 步骤和方法,积累一定的调试方法、技巧。2.1 集成开发环境简介安装 Keil C51 软件后,点击桌面 Keil C51 快捷图标即可进入如图 2.1 所示的集成开发环境, 各种调试工具、命令菜单都集成在此开发环境中。以下列出的是常用菜单项的主要功能及对应的快捷键,工具栏上有常用菜单命令对应的工具按钮。関1矯前口血| t*.U u rs *LX iMyHi!LDHktaPJXLJSITFtjfh Redphiirjlf Tglt $VC翌1rH*guv曲IpRunnin-g with CodsLimt ?KLoad *C s xMJserisxsii ByaDMMlktop IM1

13、1凉出彳誰砲二ASM ASSIGt BrcakDisablfl:BreikEnahla BrukK.i 11图 2.1 操作界面2.2 工程(项目)的创建与处理2.2.12.2.1 创建一个 KeilKeil C51C51 工程(项目)在 Keil C51 集成开发环境下使用 Project (工程,也叫项目)来管理程序包含的所有文件模块, 包括源程序(C 程序,汇编程序)文件、头文件甚至说明性的技术文档。对于刚刚使用 Keil C51 的用户来讲,一般可以按照下面的步骤来创建一个Keil C51 工程(项目)。1、 双击桌面的 Keil C51 快捷图标,进入 Keil C51 集成开发环境

14、。2、执行 Project 菜单中的 New Project 命令,新建一个工程。在工程保存对话框中为工程取一个名字(这里以 LedFlash. V3 为例),工程名应能反映其功能且名字不宜太长(最好不超过8 个西文字符),每个工程最好单独建一个目录(文件夹)。3、 接下来会立即弹出一个器件选择窗口。器件选择的目的是告诉最终使用的51 芯片是哪一家公司的哪一种型号。因为不同型号的 51 芯片其内部资源不完全相同,可以根据所选器件进行SFR 的预定义,在软硬件仿真过程中可提供相应的外设浮动窗口等。4、到现在用户已经建立了一个空的工程项目,并为工程选择好了目标器件,但是这个工程里没有任何程序文件。

15、下面先用Keil C51 集成开发环境自带的编辑器创建一个源程序文件。执行File菜单中的 New 命令,会出现名为 Text1 的新文件窗口(如果多次执行New 命令则会出现 Text2 ,Text3 等多个新文件窗口)。在此窗口中输入自己的源程序并保存为LedFlash.asm。以下是LedFlash.asm 源程序清单:話話-J O?)4? F瞄i理扫雪厂!士壽场产Btfa d ipI KdJflwoorLOXHI矽目或MlTThb二DsdX IWIT”rajwtf SMCTPJIPM-KIT 3林林氛氛TmOt?GmfflKL.I000000 咏隰总专0100HSP3朋DHRO.33O

16、HRQ,#55H逸R1,UOAAHA,0R1b片1n*x fl;SP=?:R0=?-Rl=?(30H)=?;(40H)=?:A=?$bniul.iQn(1:p.WWOT W U9C71QNUMD:0 x3D:00 00 DO 00 00 000000 00 00 00D:Dz3D:DO DODQonOD00 DaoaooaDO DO DOD:0 x4A;00 00 DO 00 0000 0D 00 00oa00 00 00D:Dx57iDO DODOonODanaoaoaoaoaDO DOA_丹nn nri II i iIIi i i i * *i3dr.il |430h7DELAY:MOVR

17、2,#5DELAY2:MOVR3,#100DELAY3:MOVR4,#100DJNZR4,$DJNZR3,DELAY3DJNZR2,DELAY2RETEND5、接下来再把 LedFlash.asm 源程序文件添加到 LedFlash. Vp 工程中。在工程管理窗口内,展开Targetl,用鼠标右键单击 Source Groupl,执行快捷菜单中的 Add files to Group Source Goupl 令,出现添加源程序文件”窗口,找到并选择 LedFlash.asm 并单击 Add 按钮即可把已经编好的源程序文件 LedFlash.asm 添加到工程中。可以将多个文件加到工程中(对

18、LedFlash. V3 只需要LedFlash.asm 一个源程序文件就够了),添加完以后,按Close 结束。2.2.22.2.2 程序文件的编译(汇编)、连接1、工程选项的设置:用鼠标右键单击Target1,执行快捷菜单中的 Options for Target T 命 get 1 令,出现如图 2.2 所示的工程选项设置窗口,该窗口包含多组选项。一般情况下只需设置部分组中的部分选项。点击 Output 标签,选中其中的Create Hex File”,系统将在编译(汇编)、连接进制程序)。图 2.2 Keil C51 工程选项设置窗口还可根据需要对其它选项进行相应的设置。最后选确定”退

19、出。2、程序的编译(汇编)、连接接下来就可以对程序进行编译(汇编)、连接处理了。执行Project 菜单中的 Build Target 或Rebuild All Target Files 命令可对程序进行编译(汇编)、连接、生成 HEX 文件等一系列连续操作,可以在 Build 输出窗口看到处理过程的相关信息。如果有错误发生,用户可根据系统提示修改程序中的语法错误或环境设置方面存在的问题,直到完全正确(0 Error(s),0 Warning(s)为止。到 这里,MAIN:XRLP1,#0FFHACALLDELAYSJMPMAIN使 P1 口翻转8一个没有语法错误的工程项目算是完成了。但是,是

20、否完全符合设计要求、是否含有潜在的BUG (逻辑错误),还是不敢肯定的。一个符合要求的、好的工程项目(系统、文件或程序)是要经得起考验的。它往往还需要经软件模拟、 硬件仿真、现场系统调试等反复修改、更新的过程。3、Debug 调试模式的设置:从图 2.3 可以看出,yVision3 的两种工作模式分别是:Use Simulator (软件模拟)和 Use (硬件仿真)。在实验中选择使用软件模拟方式。Options for Target Target 1VK10图 2.3 Debug 调试模式设置软件模拟工作方式选择其中UseUse SimlatorSimlator 选项,将Vision3 调试

21、器设置成软件模拟仿真,它只能对程序的语法及其结构做一般性的分析,与硬件没有联系。在此模式下不需要实际的目标硬件就可以模拟 80C51 微控制器的很多功能,在准备硬件之前就可以测试您的应用程序,这是很有 用的。在纯软件模拟工作方式下,用户程序仍定位于 0000H,源程序的起始定位也不需变。当然, 因为是软件模拟调试,程序中对外设的访问就无法观察运行效果,如灯亮、电机转等。但是KeilC51 集成开发环境也提供了一个外设窗口来模拟外设动作,对于简单的应用程序基本上也够用 了。在调试过程中可交替采用连续、断点、单步(step in to)、宏单步(step over)、至 U 光标所在行等运行方式,

22、还可以复位 CPU,重新开始程序的调试。断点巧妙的设置一些断点,能够更好帮助用户分析程序的运行机制、程序中变量的变化状况, 提高工作效率。Nision3 可以用几种不同的方法定义断点,即使在程序代码编译前,您也可以在编辑源程序的时候设置 Execution Breaks,设断点前要从 View 菜单中选中 File Toolbar 选项,让主 窗口的顶部出现 File Toolbar 工具栏。断点可以用以下的方法定义和修改:1. 用 File Toolbar 按纽。在 Editor 或 Disassembly 窗口中的代码行点击断点按钮即可在该设置断 点。2. 用快捷菜单的断点命令。在 Edi

23、tor 或 Disassembly 窗口中的代码行点击鼠标右键在打开的快捷菜单中选择 Insert/Remove Breakpoint 命令也同样可以在该行设置断点。3. 在 Output Win dow Comma nd 输入框,可以使用 Breakset、Breakkill、BreakE nable、Breaklist、Breakpo int 命令来设置断点。如果已经在某行设置了断点,再次在此行设置断点将取消该断点,断点设置成功后,会在该行的行首出现红颜色的断点标志。9 复位 CPU用 Debug 菜单或工具栏的 Reset CPU 命令。在不改变程序的情况下,若想使程序重新开始运 行,这

24、时执行此命令即可,执行此命令后程序指针返回到0000H 地址单元,另外,一些内部特殊功能寄存器在复位期间也将重新赋值,例如A 将变为 00H,DPTR 为 0000H,SP 为 07H,I/O 口变为OFFH。 单步跟踪(F11)用 Debug 工具栏的 Step 或快捷命令 Step Into 命令按钮可以单步跟踪程序,每执行一次此命令, 程序将运行一条指令(以指令为基本执行单元),当前的指令用黄色箭头标出,每执行一步箭头都 会移动,已执行过的语句呈现绿色。单步跟踪在 C 语言环境调试下最小的运行单位是一条C 语句,如果一条 C 语句只对应一条汇编指令,则单步跟踪 一次可以运行 C 语句对应

25、一条汇编指令;如果一条 C 语句对应多条汇编指令,则一次单步跟踪要运行完对应的所有汇编指令。在汇编语言调试 下,可以跟踪到每一个汇编指令的执行。单步运行(F10)用 Debug 工具栏的 Step Over 或快捷命令 Step Over 按钮即可实现单步运行程序, 此时单步运行命令将把函数和函数调用当作一个实体来看待,因此单步运行是以语句(这一条语句不管是单一命令行还是函数调用)为基本执行单元。*执行返回(Ctrl+F11)在用单步跟踪命令跟踪到了子函数或子程序内部时,可以使用Debug 菜单栏中的 Step Out ofCurrent Function 或快捷命令按钮 Step Out 即

26、可实现程序的 PC 指针返回到调用此子程序或函数的 下一条语句。执行到光标所在命令行(Ctrl+F10)用工具栏或快捷菜单命令 Run tol Cursor Line 即可执行此命令,使程序执行到光标所在行, 但不包括此行,其实质是把当前光标所在的行当作临时断点。全速运行(F5)用 Debug 工具栏的 Go 快捷命令 Run 命令按钮即可实现全速运行程序,当然若程序中已经设置断点,程序将执行到断点处,并等待调试指令。按钮可以启动/停止调试(Crtl+F5)2.3 脱机运行经过在 Keil C51 集成开发环境下的软件模拟、或是实验仪联机进行的硬件仿真,用户程序 中的错误和不足已基本上得到了纠

27、正。但在实际的工作环境中它是否仍然符合用户的要求呢?还需要将调试好的程序下载到样机并脱机运行”才可以确定(单片机实验系统脱离主机,独立运行)。在下载程序前首先需要确定Keil C51 软件的编译环境:1、 点击菜单栏上的 Project 项,在弹出的下拉式菜单中选择 Option for target命令 et1在 Output 选项中选中 Create Hex File,即表示在编译连接后自动生成目标文件(*.HEX),点击确定命令按钮加以确认。2、 用 Build 或 Rebuild 命令重新编译连接程序,生成所需的 HEX 文件。3、 按照 1.5 的方法将 HEX 文件下载到实验箱中。

28、10第 3 章实验部分实验一集成开发环境的熟悉与指令练习 实验名称:集成开发环境的熟悉与指令练习 实验类别:验证性学时安排:4 学时实验要求:必做一、实验目的和任务1 熟悉 Keil C51 集成开发环境的使用方法;2 熟悉 Keil C51 集成开发环境仿真条件下调试功能的使用;3 学会程序存储器、寄存器、片上存储器、片外存储器内容的查看和修改。二、实验原理介绍Keil 集成开发环境为我们提供了强大的学习、调试和开发工具。我们可以利用这套工具在 计算机上直接进行汇编语言的编辑、连接和调试。在程序调试时,可以通过查看相关寄存器和存储器内容来判断程序的执行是否正确,通过修改相关寄存器和存储器的内

29、容来改变程序,再执行,来修改和验证程序。三、实验设备PC 机一台四、实验内容和步骤1、编写程序,完成内存中两个字节内容的交换。1)建立工程文件。双击桌面的 Keil 快捷图标,进入 Keil 集成开发环境。点击工具栏的 Project选项,在弹出的下拉菜单中选择New Project 命令,建立一个新的工程,为工程取一个名字,并选择将要使用的器件的型号(ATMEL 公司的 AT89C51 CPU)。注意:由于实验箱 MCU1MCU1 所用的 STCSTC 单片机是新发展的芯片,一般情况下载KeilKeil 设备库没有STCSTC 系列单片机,在编译 STCSTC 系列单片机应用程序时,可选其他

30、厂家的5151 或 5252 系列单片机。2)编写程序,加入到刚才建立工程文件中。在File 下采用New 命令,建立新文件,送入程序内容,并保存为 ASM 类型文件。在 Project Windows 窗口内,选中 Source Group1 后点击鼠标右键, 在弹出的快捷菜单中选择 Add files to Group“ Source Group 向工程中添加源程序文件)命令,选择刚才创建单击 Add 命令即可把源程序文件添加到项目中。ORG0000HLJMPMAINORG0100HMOVR0,#30H;R0=?MOVR1,#40H;R1=?MOVR0,#55H;(30H)=?MOVR1,

31、#0AAH;(40H)=?MOVA,R1;A=?XCHA,R0;A=?(30H)=?XCHA,R1;A=?(40H)=?下面是另一种方法MOVR0,#33H;(30H)=?MOVR1,#44H;(40H)=?MOVA,R0;A=?MAIN:MOVSP,#60H;SP=?11PUSHACC;SP=?(61H)=?MOVA,R1;A=?PUSHACC;SP=?(62H)=?12NOPPOPACC;SP=?A=?MOVR0,A;(30H)=?POPACC;SP=?A=?MOVR1,A;(40H)=?NOPSJMP$END3) 选择 Project 下的 Rebuild all target file

32、s 对工程文件进行汇编和连接,如果出错,系统会提示出错并指出出错地方和出错类型,请按照提示返回程序进行修改,直到系统提示0 warni ngs,0errors,表明程序没有语法错误,成功完成了汇编过程,就可以进行动态调试了。4)选择 Project 下的 Options for target 进行 g 动态调试的参数设置,点击debug,再点击Use Simulator,最后点击完成。5)对程序进行动态调试,学会查看和修改相关寄存器 (左边的 register 窗) 、内部和外部存储器的内容。常用的工具条上的命令有开始/暂停动态调试、,单步执行 或片,执行到光标处 门等。查看存储器内容的方式是

33、在存储区(View/memory 窗)的地址栏内写上要查看的初始地址就可以了。比如看内部存储器用 D:0000H,程序存储器用 C:0000H,外部存储器用 X:0000H。 将每行程序执行后的结果写到该行程序的注释部分。2、编写一个数据填充和数据块搬移程序。仿照实验内容和步骤1 的过程,建立、编辑、汇编、连接和动态调试程序,查看和验证数据区的内容是否正确。ORG0000HLJMPMAINORG0100HMAIN:MOVR0,#30H:R0 指向 30H 单元MOVR2,#16:R2 作循环计数器NEXT1:MOVR0,#*:填充当前单兀INCR0:指针下移一个单元DJNZR2,NEXT1:未

34、填完 16 个单元,继续;以下程序将30H 开始的 16 个字节内容送到 100H 开始的外部存储器中MOVR1,#30HMOVDPTR,#0100HMOVR3,#10HNEXT2:MOVA,R1MOVXDPTR,AINCR1INCDPTRDJNZR3,NEXT2SJMP$END3、编写一个多字节的算术运算程序。仿照实验内容和步骤1 的过程,建立、编辑、汇编、连接和动态调试程序,将运行结果写到程序的注释部分。ORG 0000HLJMP MAIN13ORG 0100H14;以下是乘法运算 NOP MOV A,R0 MOV B,R2 MUL AB MOV R4,A MOV R5,B MOV A,R

35、1 MOV B,R2 MUL AB ADDA,R5 MOV R5,A MOV A,B ADDC A,#00H MOV R6,A NOP MOV A,R0 MOV B,R3 MUL AB ADD A,R5MOV R5,A MOV A,B ADDC A,R6 MOV R6,A MOV A,R1 MOV B,R3 MUL AB ADD A,R6 MOV R6,A MOVA,BADDC A,#00HMOV R7,A ;R7R6R5R4=?SJMP $END4、思考题:编写并运行程序,把两个字节的二进制数转换成对应的ASCIIASCII 码。五、注意事项和要求1、按照实验步骤学会建立工程文件、加入文件、

36、编辑文件直至产生可执行文件的过程。2、学习动态调试程序、单步运行程序并查看寄存器和存储器内容,标明程序执行后相关寄 存器和存储器内容。MAIN: MOVSP,#60HMOVR1,#12HMOVR0,#34HMOVR2,#21HMOVR3,#0EFH;下面是加法运算MOVA,R0ADDA,R2MOVR4,AMOVA,R1ADDCA,R3MOVR5,AMOVA,#0ADDCA,#0MOVR6,ANOP;R1R0=?;R3R2=?; 低 8 位相加J; 高 8 位相加; R6 存放进位 R6R5R4=?15实验二程序设计实验 实验名称: 程序设计实验 实验类别:验证性一、实验目的和任务1、 掌握分支

37、、循环结构程序以及子程序的设计方法。2、 进一步熟悉 Keil C51 集成开发环境。二、实验原理介绍在汇编语言程序设计中,普遍采用结构化程序设计方法。 因为任何复杂的程序都可由顺序结 构、分支结构及循环结构等构成。 每种结构只有一个入口和出口, 整个程序也只有一个入口和出 口。结构化程序设计的特点是程序的结构清晰、易于读写和验证、可靠性高。结构化程序设计的 基本方法有顺序结构、分支结构、循环结构、子程序。本实验在实验一的基础上,要求掌握分支、循环结构程序以及子程序的设计方法。三、实验设备PC 机一台四、实验内容和步骤1、分支程序:分支程序是根据要求无条件或有条件地改变程序执行流向。编写分支程

38、序主 要在于正确使用转移指令。设变量 x x 以补码形式存放在片内 RAMRAM 的 30H30H 单元中,变量 y y 与 x x 的关系如下式所示:xx 0y=20Hx=0 x 5x:0仿照实验一的过程,编写程序、汇编、连接和软件仿真。2、循环程序:循环程序一般包含四部分:初始化部分、循环处理部分、循环控制部分和循 环修改部分。下面分别介绍这四个组成部分。1)初始化部分:设置循环开始的初始值,为循环做准备。2)循环处理部分:循环程序中重复执行的内容。3)循环控制部分:判断是否结束循环。4)循环修改部分:修改循环参数,为执行下一次循环做准备。学时安排:4 学时实验要求:必做ORG0000HJ

39、MPMAINORG0100HMAIN:MOV30H,MOVA, 30HJZNEXT;x=0,转移ANLA, #80H;保留符号位JZED;x 0,转移MOVA, #05H;x 0,不转移ADDA, 30HMOV30H, ASJMPEDNEXT:MOV30H,#20HED:SJMPEND$取卓即(301 Q-A4 V16图 322 循环程序流程图设有一带符号的数组存放在内部RAMRAM 以 20H20H 为首址的连续单元中,数组长度为3030,要求找出其中的最大值,并将其存放到内部RAMRAM 的 1FH1FH 单元中。请自行填写循环程序写入数组并运行以下程序,观察结果。MAIN:MOVRO,

40、#20H ;置取数指针 RO 初值MOVB, #30;置循环计数器 B 初值MOVA, R0;第一个数送 ALOOP:INCRO;修改指针MOVR1, A;暂存XRLA, R0;两数符号相同?JBACC.7, LAT ;若相异,则转 LATMOVA, R1;若相同,则恢复 A 中原来值CLRC;C 清零SUBBA, R0 ;两数相减,以判断两者的大小JNBACC.7, AA ;若 A 中值为大,则转 AACXA:MOVA, R0;若 A 中值为小,则将大数送入 ASJMPBBLAT:XRLA, R0;恢复 A 中原值 MOV A, R1JNBACC.7, BB;若 A 中值为正 侧转 BBSJ

41、MPCXA若 A 中值为负,则转 CXAAA:MOVA, R1;恢复 A 中原值BB:DJNZB, LOOPMOV1FH, A;最大者送 1FH 单兀END3、子程序:同一个程序中,往往有许多地方都需要执行同一任务,这时可对这项任务独立编写, 形成一个子程序。在原来的主程序中需要执行该任务时,调用该子程序,执行完后又返回主程序,这就是子程序结构。在程序设计过程中,适当地使用子程序具有以下优点:171)不必重复编写同样的程序,提高了编码的效率。2)缩短了源程序和目标程序的长度,节省了程序存储器的空间。3)使程序模块化、通用化,便于阅读、交流和共享。4)便于分块调试。参数传递大致可分为以下几种方法

42、:1)传递数据:将数据通过工作寄存器 R0R7 和累加器来传送。即主程序和子程序在交接处, 通过工作寄存器或累加器存储要传递的参数。2)传送地址:数据存放在数据存储器中,参数传递时只通过R0、R1 或 DPTR 传递数据所存放的地址。3)通过堆栈传递参数:在调用之前,先把要传送的参数压入堆栈,进入子程序之后,再将 压入堆栈的参数弹出到工作寄存器或者其他内存单元。设 0 0、1 1、9 9 存放在内部 RAMRAM 的 20H20H 开始的存储区域内,对其进行平方运算,计算所得结 果存放在R3R3、R2R2 中。要求:平方运算编写成子程序 SORTSORT,主程序通过调用 SORTSORT 并求

43、和完成运 算。参数的传递用累加器。ORG0000HJMPMAINORG0100HMAIN:(此处自行填写程序:将 0909 存入内部 RAMRAM 的 20H20H 开始的存储区域内)TAB:DBDBEN:NOP0, 1, 4, 9, 1625, 36, 49, 64, 8118END五、注意事项和要求1 、程序建立和软件仿真,保证语法正确和关键程序段的正确;2、学习分支、循环结构程序以及子程序的设计方法。MOVR0, #20H ;置数据指针MOVR7, #10 ;置计数初值MOVR3, #0;结果单元清零MOVR2, #0CLRCMOVA, R0 ;取数ACALLSORT;调用求平方子程序A

44、DDA, R2;累加平方和MOVR2, AMOVA,R3ADDCA, #0; 加进位 CyMOVR3, AINCR0;修改指针DJNZR7, LOOP;未完,继续SJMPENMOVDPTR, #TAB ;进入子程序MOVCA, A+DPTRLOOP:SORT:RET19实验三并口输入/输出实验 实验名称:并口输入/输出实验 实验类别:验证性一、实验目的和任务1、 掌握 80C51 单片机程序的调试与下载方法。2、 掌握 80C51 单片机并口的工作原理及输入输出控制方法。二、实验原理介绍80C51 单片机包括 P0P3 共 4 个并口,除可作为普通 I/O 口使用外,P0 口还可用作 8 位数

45、 据总线口和低 8 位地址口,P2 可用作高 8 位地址口,P3.6、P3.7 可用作外部 RAM 或 I/O 接口的 读、写控制引脚,P3.0P3.5 可用作串口、外部中断、计数器的功能引脚。ZSC-1 实验箱包括 4 个单片机,其中 1#单片机(MCU1 )和 2#单片机(MCU2 )的型号都是STC12C5A60S2,只是封装不同。STC12C5A60S2 采用 80C51 内核,片内资源和性能较标准 80C51 单片机增强了许多。本课程的全部实验只用到MCU1。图 3-1 为本实验对应的硬件电路。P0 口用于控制发光管 L101L108,口线输出 0 (低电平)时,对应的发光管点亮,口

46、线输出1 (高电平)时,对应的发光管熄灭。P3 口的 4 根口线连接独立按键 KX0KX3,由于 P3 口内部上拉电阻的作用,按键松开时,对应的口线表现为 1 状态(高电平),按键按下时,对应的口线表现为0 状态(低电平)。注意:在做本实验时,须将拨码开关JUMP2JUMP2 置为接通状态(向左)。VccJUMP2L101470QW1L102470QW-弋L103470QW-&弋L104470QK=-L105470Q-nL106470QW- =-住L107470Q忖=-矗L108470Q图 3.3.1 并口输入输出实验电路三、实验设备1、 PC 机一台(已安装 Keil Vision、

47、STC_ISP 等软件);2、 ZSC-1 单片机实验箱一台。四、实验内容和步骤1 1、设计程序,控制发光管L101L108L101L108 以一定的时间间隔轮流点亮。1在 Keil 中编写源程序。参考程序如下(请将下划线部分补充完整)ORG0000HLJMPMAINORG0100HMAIN:MOVA, #11111110B;准备点亮第一只发光P3.2P0.0P3.4P0.1P3.5P0.2P3.7P0.3P0.4P0.5P0.6P0.7学时安排:4 学时实验要求:必做MCU1STC12C5A60S23938373635343332KX0120心心114-O O-KX215KX3,仃仃-0 0

48、-20NEXT:MOV,AACALL DELAY;软件延时 1s 左右21A;准备点亮下一只发光管SJMP NEXTDELAY:MOV R2,#200DELAY2: MOVR3,#200DELAY3: MOVR4,#100DJNZ R4,$DJNZ R3,DELAY3DJNZ R2,DELAY2RETEND2在 Keil 中创建工程,加入源程序文件,设置选项,进行汇编/编译、连接、转换处理,生成 HEX 格式的单片机程序文件。3用串行电缆连接实验箱和 PC 机各自的串行通信口, 并运行 PC 机上的 STC_ISP 程序,进行单片机程序下载。具体步骤如下:a. 在 STC_ISP 主界面选择

49、MCU 型号为 STC12C5A60S2,打开中生成的 HEX 格式程序文件,选择正确的串口号,设置最高波特率为38400bps;b. 将实验箱总电源开关拨到左侧位置,接通主电源,将MCU1 电源开关拨到下方位置,使 1#单片机断电;c. 点击 STC_ISP 主界面中的下载按钮,待系统提示请给 MCU 上电”时再将 MCU1 电源开关拨到上方位置,使 1#单片机通电,开始下载程序,数秒后下载结束,写入单片机 Flash 存储器中的程序自动开始运行。4观察程序运行结果,若 LED 显示效果与要求的效果不同,或者想试验其它效果,则须修改源程序,重新进行汇编 /编译、连接、转换处理,生成最新HEX

50、 文件,再按中介绍的步骤下载和运行最新程序。2 2、设计程序,通过查表操作,控制L101L108L101L108 逐个点亮,再逐个熄灭。参考程序如下(请将下划线部分补充完整):ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#;DPTR 指向表首单兀MOVA, #0;A 从 0 开始LEDTBL: DB11111110B,11111100B,11111000B,11110000B ;LED 控制表22DB11100000B,11000000B,10000000B,00000000BDB00000001B,00000011B,00000111B,00001111BDB0

51、0011111B,00111111B,01111111B,11111111BEND3 3、设计程序,利用按键 KX0KX3KX0KX3 分别控制发光管 L101L104L101L104 的亮灭,具体要求是:每按 一次按键,对应的发光管便翻转一次状态(由灭变亮或由亮变灭)。参考程序如下(请将下划线部分补充完整):KX0EQUP3.2;声明外设对应口线KX1EQUP3.4KX2EQUP3.5KX3EQUP3.7L101EQUPO.OL102EQUP0.1L103EQUP0.2L104EQUP0.3ORG0000HLJMPMAINORG0100HMAIN:NOPCHKKXO: JBKX0,CHKKX

52、1;KX0 未按下,则检测 KX1LCALL DELAY;软件延时 10ms 左右(按键消抖)JBKX0,CHKKX1;KX0 未按下,则检测 KX1L101;KX0 按下,则求反 L101KX0,;等待 KX0 松开SJMPMAIN;跳转到主程序开头(以下请自行编写)DELAY:MOVDELAY2: MOVDELAY3: MOVDJNZDJNZDJNZR2,DELAY2RETR2,#2R3,#200R4,#100R4,$R3,DELAY323END五、注意事项和要求1、注意程序的完整性、正确性和逻辑性,对出现的语法和逻辑错误要认真分析原因。2、必要时可利用 Keil 进行软件模拟调试。3、S

53、TC12C5A60S2 采用了优化的内部时钟电路,程序运行速度可达传统 80C51 单片机的 8-12倍,因此软件延时子程序中循环变量的取值也增加了相应倍数。六、作业及预习要求1、 仔细分析各参考程序的结构和功能。2、 对程序 2 进行改进,添加更多 LED 显示花样。3、 对程序 3 进行改进,用按键控制多种 LED 显示花样的动态切换(选做)。24实验四中断与定时/计数器实验 实验名称:中断与定时/计数器实验 实验类别:验证性一、实验目的和任务1、理解和学会单片机外部中断的使用;2、学习单片机定时器/计数器的应用。二、实验原理介绍中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理

54、突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起突发事件的来源称为中断源,中 断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。51 类单片机至少包括 5 个中断源:INTOINTO :外部中断 0 0,由 P3.2P3.2 端口线引入,低电平或下跳沿引起。(本实验用)INT1 :外部中断 1,由 P3.3 端口线引入,低电平或下跳沿引起。TOTO :定时器/计数器 0 0 中断,由 TOTO 计满回零引起。(本实验用)T1 :定时器/计数器 I 中断,由 T1 计满回零引起。TI /RI :串行 I/O

55、中断,串行端口完成一帧字符发送/接收后引起。与实验三相同,图 3-1 为本实验对应的硬件电路。P0 口用于控制发光管 L101L108,口线输出 0 (低电平)时,对应的发光管点亮,口线输出1 (高电平)时,对应的发光管熄灭。P3 口的 4 根口线连接独立按键 KX0KX3,其中 KX0 对应外部中断 0,进行 KX0 按键动作的时候可 以触发外部中断。注意:在做本实验时,须将拨码开关JUMP2JUMP2 置为接通状态(向左)。三、实验设备1、PC 机一台(已安装 Keil Vision、STC_ISP 等软件);2、ZSC-1 单片机实验箱一台。四、实验内容和步骤1、编写一段程序,用 P0

56、口作为控制端口,使实验箱上的 LED 轮流点亮。用外部中断 0/KX0 控制走马灯的暂停/继续。ORG 0000HLJMP MAINORG 0003LJMP ZEX0 ORG 0100HMAIN:MOV SP,#60HSETB IT0SJMP $;延时子程序DELAY: MOVDELAY2:MOVDELAY3:MOVDJNZDJNZDJNZRET;外部中断 0 服务子程序ZEXO:PUSH ACC学时安排: 4学时 实验要求:必做R2,#3R3,#200R4,#200R4,$R3,DELAY3R2,DELAY225SETB RS0MOV R2,#2ACALLDELAY2CLRRS0JBP3.2

57、,EXITMOVA,R5XRLA,#0FFHMOVR5,AXRLP0,#0FFHEXIT:POPACCCLRIE0END观察实验结果,解释如何实现走马灯的暂停和继续。 比较电平触发和边沿触发时走马灯控制的难易程度。2、编写一段程序,用 P0 口作为控制端口,使实验箱的LED 轮流点亮。用定时/计数器 0 控制走马灯的闪烁速度。ORG0000HLJMPORGMAINLJMPZIT0ORG0100HMAIN: MOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVR6,MOVR7,:准备点亮第一只发光管SETBET0SETB EASETB TR0SJMP

58、$;定时中断 0 服务子程序ZIT0:DJNZR6,ZRETMOVA,R7MOV,ARLAMOVR7,AMOVR6,ZRET:MOVTH0,#3CHMOVTL0,#0B0HEND修改 R6=0 或 1 时,观察走马灯的速度快慢。ZRET:处没有重置初值时的走马灯的速度与ZRET 处有重置初值时的走马灯的速度的比较。R6=50 时,改变 TO 的初值,设为最大、最小时,比较走马灯的速度。 去掉 R6 的软件辅助延时,是否可以?速度怎样?26五、注意事项和要求1、程序建立和软件仿真,保证语法正确和关键程序段的正确;3、掌握外部中断和定时器的原理和应用;3、对三个走马灯程序作出注释,回答程序后面的问

59、题,并解释原因。27实验五串口实验 实验名称:串口实验 实验类别:验证性一、实验目的和任务1、 理解单片机的串口通信原理,学会单片机串行口的使用;2、 学会单片机串行口中断的使用。二、实验原理介绍串行通信是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信。串行接口通讯 实验是单片机和主机之间进行的通讯实验。图 5-1 为 ZSC-1 实验箱串口通信电路的硬件结构,该电路提供RS232、USB 两种接口,用于单片机与 PC 机之间的串行连接。CH340G 为 USB-UART 协议转换芯片,在驱动程序支持

60、下,CH340G可将 PC 机 USB 口映射为虚拟串口,其信号电平和数据格式与单片机串口兼容。MAX232A 为串口电平转换芯片,可实现PC 机 RS232 口与单片机串口之间的电平匹配。VccVcc1N5817图 3.5.1 串行通信电路三、实验设备1、 PC 机一台(已安装 Keil Vision、STC_ISP 等软件);2、ZSC-1 单片机实验箱一台。四、实验内容和步骤1 1、编写一段程序,利用单片机的串行口向PCPC 机发送字符串。1)编写程序,设置目标选项成功通过KEIL 系统的编辑、编译和部分程序的动态调试。ORG 0000HLJMP MAINORG 0050HDBWELCOME TO ZSC!O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论