单片机实验指导书(汇编_第1页
单片机实验指导书(汇编_第2页
单片机实验指导书(汇编_第3页
单片机实验指导书(汇编_第4页
单片机实验指导书(汇编_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一 单片机认识实验 一、实验目的:1、掌握WAVE6000软件的使用 2、熟悉MCS-51系列单片机的指令系统。 二、实验仪器: PC机(WAVE6000软件) 三、实验内容: 在PC机上使用WAVE6000软件,分别输入下面两段程序并调试执行 程序1 MOV 30H,#40H MOV R0,#30H MOV A,R0 MOV R1,A MOV DPTR,#1000H MOVX DPTR,A 程序2 MOV A,60H XCH A,70H MOV 60H,A 四、实验步骤 1、启动WAVE6000软件 2、输入练习程序 3、保存程序 4、汇编源程序 5、程序执行前的检查 6、运行,调试程序

2、 单步法运行程序 断点法运行程序 连续法运行程序 8、检查运行结果 五、实验结果 程序1 地址运行前内容运行后内容 30H 1000H 程序2 地址运行前内容运行后内容 60H 70H 实验二 顺序结构程序的调试 一、实验目的:1、掌握顺序结构程序设计 2、掌握WAVE软件调试程序的方法 二、实验内容: 编写下列程序并调试: 1、将片内RAM的70H单元的内容拆开,高4位送71H单元低4位,低4位送 72H单元的低4位,71H、72H单元高4位清零。 2、将工作寄存器R2中数据的高4位和R3中的低4位拼成一个数,并将该 数存入30H单元。 三、实验程序框图 程序1流程图 程序2流程图 三、实验

3、步骤: 程序1 启动WAVE软件,新建一个文件,保存并取名为LX1.ASM。 输入源程序1,正确进行机器汇编 打开窗口菜单,选择数据窗口,检查70H、7lH和72H单元中的内容, 并记录在下表左半边 用全速执行命令开始执行程序 检查7lH和72H单元中的内容,并记录在下表的右半边 开始 70H 单元内容送 A (A) 中高低 4 位交换 屏蔽高 4 位后送 71H 70H 单元内容送 A 屏蔽高 4 位后送 72H 结束 开始 截取 R2 中的高 4 位 截取 R3 中的低 4 位 合并数据 结束 修改执行前70H、7lH和72H单元中的内容,重复执行-步骤,并记 录程序执行后表格中的数据。

4、程序2 新建一个文件,保存并取名为LX2.ASM。 输入源程序2,正确进行机器汇编 打开窗口菜单,选择数据窗口,检查R2、R3和30H单元中的内容,并 记录在下表左半边的格子中 用全速执行命令开始执行程序 检查30H单元中的内容,并记录在下表的右半边格子中 修改执行前R2、R3、30H单元中的内容,重复执行-步骤,并记录 程序执行后的数据。 (3)思考:如何用断点方法调试本程序。 执行前的单元内容执行后的单元内容 70H71H72H71H72H 执行前单元内容执行后单元内容 R2R330H30H 实验三实验三 分支和循环结构程序的调试分支和循环结构程序的调试 一、实验目的:1、掌握分支和循环结

5、构程序的设计 2、进一步掌握WAVE软件调试程序的方法 二、实验内容: 编写下列程序并调试: 1、设a数已存放在累加器A中, b数已存放在寄存器B中,计算下式,并 将结果y送入片内RAM的30H单元。 a+b (b0) Y= a-b (b0) 2、将片内30H-3FH单元的内容清零。 3、从片内RAM的20H单元开始,有30个带符号数据,统计出正数的个数, 并将结果存到35H单元中。 三、实验程序框图 程序1流程图 程序2流程图 开始 a-ba+b 结束 b0? 30H结果 Y N 开始 R0#30H R2#30 结束 R2-1=0? (R0) )0 R0+1 N Y 四、实验步骤: 程序1

6、启动WAVE软件,新建一个文件,保存并取名为LX3.ASM。 输入源程序1,正确进行机器汇编 打开窗口菜单,选择数据窗口,检查A、B和30H单元中的内容,并记 录在下表左半边 用全速执行命令开始执行程序 检查30H单元中的内容,并记录在下表的右半边 修改执行前A、B中的内容,重复执行-步骤,并记录表格中执行后 的数据。 程序2 新建一个文件,保存并取名为LX4.ASM。 输入源程序2,正确进行机器汇编 打开窗口菜单,选择数据窗口,检查30H-3FH单元中的内容,如果是 零值,将它们修改为非零值。 用全速执行命令开始执行程序 检查30H-3F单元中的内容,是否全为零。 修改执行前30H-3F单元

7、中的内容,重复执行-步骤,重新检查30H- 3F单元中的内容。 程序3 启动WAVE软件,新建一个文件,保存并取名为LX5.ASM。 输入源程序3,正确进行机器汇编 打开窗口菜单,选择数据窗口,检查35H、20H-3DH单元中的内容,并 记录在下表左半边 用全速执行命令开始执行程序 检查35H单元中的内容,并记录在下表的右半边 执行前的内容执行后的内容 20H-3DH35H35H 执行前的单元内容执行后的单元内容 AB30H30H 修改执行前20H-3DH中的内容,重复执行-步骤,并记录执行后的 数据。 实验四 并行 IO 口的应用 一、实验目的:1、掌握并行IO口的应用技术 2、掌握软硬联调

8、的方法 二、实验内容: 用单片机的P1口控制8个按键,P2口控制8个发光二极管,当检测到P1.0上 的键按下时,P2.0上的灯亮; 当检测到P1.1上的键按下时, P2.0P2.1上的灯亮; 当检测到P1.2上的键按下时,P2.0P2.2上的灯亮;以此类推。当检测到P1.7上 的键按下时,8个灯全亮。并可反复循环检测按键与点亮相应的灯。 三、画出硬件原理 四、实验程序框图 五、实验源程序 实验五 外部中断(急救车与交通灯) 一、实验要求 本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向 交通信号灯全红,以便让急救车通过。设急救车通过路口时间为 10 秒,急救车通过后, 交

9、通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。 南北方向红灯绿灯 5S黄灯闪烁 9 次 东西方向绿灯 5S黄灯闪烁 9 次红灯 二、实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 三、实验电路及连线 1k 470 470 20P 20P GND 4.7u GND +5V XTAL 1 19 XTAL 2 18 RESET 9 INT0 12 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 MCS-51 SR SG ER EY EG SY 470 470 470 470 +5V 10K

10、 +5V K GND o o o o o o 四、实验框图 开始 开外中断 初始状态东西 南北都是红灯 状态 1 南北红灯, 东西绿灯 状态 2 南北红灯, 东西绿灯闪转黄灯, 状态 3 南北绿灯, 东西红灯 状态 4 南北绿灯闪 转黄灯,东西红灯 外部中断入口 保护现场 东西,南北都亮红灯 延时 10 秒 恢复现场 中断返回 五、程序清单五、程序清单 SR EQU P1.0 ; 南北红灯 SY EQU P1.1 ; 南北黄灯 SG EQU P1.2 ; 南北绿灯 ER EQU P1.3 ; 东西红灯 EY EQU P1.4 ; 东西黄灯 EG EQU P1.5 ; 东西绿灯 ORG 0000

11、H LJMP START ORG 0003H LJMP JTDINT0 START: MOV SP, #70H MOV TCON, #01H ; DOWN EDGE IT0 MOV IE, #81H ; ENABLE EA, EX0 SETB SR ; 南北, 东西均红灯 CLR SY CLR SG SETB ER CLR EY CLR EG LOOP: SETB SR ; 南北红灯, 东西绿灯 CLR SY CLR SG CLR ER CLR EY SETB EG MOV A, #20 LCALL DELAY SETB SR ; 南北红灯, 东西黄灯闪 CLR SY CLR SG CLR E

12、R CLR EY CLR EG CLR C MOV R7, #9 LOOP1: MOV EY, C MOV A, #1 LCALL DELAY CPL C DJNZ R7, LOOP1 CLR SR ; 南北绿灯, 东西红灯 CLR SY SETB SG SETB ER CLR EY CLR EG MOV A, #20 LCALL DELAY CLR SR ; 东西红灯, 南北黄灯闪 CLR SY CLR SG SETB ER CLR EY CLR EG CLR C MOV R7, #9 LOOP2: MOV SY, C MOV A, #1 LCALL DELAY CPL C DJNZ R7,

13、 LOOP2 LJMP LOOP JTDINT0:CLR EA MOV B,P1 PUSH ACC SETB EA 自己补充自己补充 CLR EA POP ACC MOV P1,B SETB EA RETI DELAY: ; 延时0.25秒子程序,晶振6MHZ . 自己补充自己补充 RET END 实验六 定时器/计数器 一、实验目的:1、掌握Lab6000实验仪联机调试操作或PROTEUS软件 2、掌握单片机定时器/计数器的使用和编程方法 3、进一步掌握中断处理过程的编程,对发光二极管实 现定时顺序控制 二、实验仪器: Lab6000实验仪或PROTEUS,PC机(WAVE6000软件),通

14、讯电缆, 导线 三、实验内容: 利用单片机内部的定时器/计数器,产生5秒中断一次。P1口分别 接8个发光二极管。要求编写程序模拟一时序控制装置,开机后第5秒 L1、L2亮;第10秒L3、L4亮;第15秒L5、L6亮;第20秒L7、L8亮; 第25秒L1、L2、L3、L4亮;第30秒L5、L6、L7、L8亮;第35秒8个发 光二极管全灭;第40秒8个发光二极管全亮。以后又从头开始,一直 循环下去。 四、实验原理 单片机内部定时器/计数器用作定时器时,是对机器周期的计 数,每个机器周期的长度是12个振荡周期,因为实验仪晶振是 12MHZ,所以最长延时时间为65ms左右。下列程序用定时器/计数器 0

15、工作于方式1的定时器方式,达到0.05溢出中断一次;定时器/计 数器1工作于方式1的计数器方式,它设定为计数100次,而每次定 时器/计数器0时间到、溢出时,将发给它一个计数脉冲。这样,两 个定时器/计数器串接使用的结果0.05*100=5s,可得到5s延时。 五、实验步骤: 1.画硬件原理图 2.编写程序,并在WAVE6000软件环境中输入程序并编译 3.调试并运行程序,观察灯亮的次序是否符合实习内容的要求 六、实验程序框图 开始 初始化 端口、堆栈、查表指针 5 秒定时标志 清零 设置 T0 定时方式 1 设置 T1 计数方式 1 置 T0 定时 50 毫秒初值 置 T1 计数 100 次

16、初值 启动 T0、T1 开中断 判 5 秒定时到? 关中断 查表、点灯 修改查表指针 判满 8 次? 表指针归零 N Y Y N 主程序框图T0 中断程序框图 开始 重置 T0 50 毫秒定时初 值 中断返回 判 T1 计满? N Y P3.0 输出计数脉冲 重置 T1 计数 100 次初 值 5 秒定时标志置 1 清 TF1 七、参考程序 ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 001BH RETI ORG 0030H MAIN: MOV P1,#0FFH MOV R3,#00H MOV SP,#53H START: CLR 00H 自己补充 H

温馨提示

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

评论

0/150

提交评论