单片机技术实验 实验3-4

上传人:wt****50 文档编号:46454090 上传时间:2018-06-26 格式:PDF 页数:42 大小:2.82MB
返回 下载 相关 举报
单片机技术实验 实验3-4_第1页
第1页 / 共42页
单片机技术实验 实验3-4_第2页
第2页 / 共42页
单片机技术实验 实验3-4_第3页
第3页 / 共42页
单片机技术实验 实验3-4_第4页
第4页 / 共42页
单片机技术实验 实验3-4_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《单片机技术实验 实验3-4》由会员分享,可在线阅读,更多相关《单片机技术实验 实验3-4(42页珍藏版)》请在金锄头文库上搜索。

1、实验三实验三实验三实验三数据检索数据检索数据检索数据检索一、实验内容一、实验内容1:顺序检索:顺序检索定义:用待查关键字和表中各结点的关键字逐个比较,直到找 到关键字值相等的结点,即查找成功;或查完全表,而 未找到关键字相等的结点,即为查找失败。内容:输入一个定义:用待查关键字和表中各结点的关键字逐个比较,直到找 到关键字值相等的结点,即查找成功;或查完全表,而 未找到关键字相等的结点,即为查找失败。内容:输入一个ASCII码字符,要求按照输入的字符去执行相 应的处理程序。当命令字符为码字符,要求按照输入的字符去执行相 应的处理程序。当命令字符为“、“、“、“、 “、“六种不同情况时,分别跳到

2、对应处理程序的 入口地址六种不同情况时,分别跳到对应处理程序的 入口地址0660H、0670H、0680H、0690H、06A0H、 06B0H去执行,要求对应处理程序分别给去执行,要求对应处理程序分别给R2、R3、R4、 R5、R6、R7寄存器内容加。提示:命令字符放在寄存器内容加。提示:命令字符放在B寄存器中,即根据寄存器中,即根据B寄存器的不同内容 转到不同的入口地址去执行程序。寄存器的不同内容 转到不同的入口地址去执行程序。JMP A+DPTRCJNE A,B,NOF二、实验内容二、实验内容二、实验内容二、实验内容2 2:对分检索:对分检索:对分检索:对分检索定义:对分检索是按对分原则

3、取出数据与关键字进行比较,它要 求数据区已排好序。内容:假设内部定义:对分检索是按对分原则取出数据与关键字进行比较,它要 求数据区已排好序。内容:假设内部RAM 50H5AH存储单元中存放存储单元中存放11个按升序排列 的无符号数(见表个按升序排列 的无符号数(见表 10),按对分检索方法进行查找关 键字,若找到该数,则),按对分检索方法进行查找关 键字,若找到该数,则R2置置00H,否则置,否则置FFH,假设待检 索关键字存于寄存器中。例子:,假设待检 索关键字存于寄存器中。例子: 值:值:00H 11H 99H AAH 单元地址:单元地址:50H 51H 52H 53H54H55H 56H

4、 57H 58H 59H 5AH 检索次数:检索次数: 4 3 2 3 4 1 3 2 3 4 5例子: 值:例子: 值:00H 11H 99H AAH 单元地址:单元地址:50H 51H 52H 53H 54H55H 56H 57H 58H 59H 5AH 检索次数:检索次数: 4 3 2 3 4 1 3 2 3 4 5MOV A,R6 ADD A,R7 RRC A MOV R2,ACLR C SUBB A,R6 JZ downSUBB A,B JZ JNC KeilKeil C C系统概述系统概述系统概述系统概述Keil C51是德国是德国Keil Software公司出品的公司出品的51

5、系列兼容单片 机系列兼容单片 机C语言软件开发系统,与汇编相比,语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学 易用。语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学 易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调 试工具,全软件提供丰富的库函数和功能强大的集成开发调 试工具,全Windows界面。另外界面。另外Keil C51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易 理解。在开发大型软件时更能体现高级语言的优势。生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易 理解。在开发大型软件

6、时更能体现高级语言的优势。一、一、KeilKeil集成开发环境使用入门集成开发环境使用入门1. 双击“Keil uVision3”,进 入KeilC的IDE2. 点击“工 程”“新 建”“新建工 程”3. 工程默认扩展名.uv2;保存工程的文件夹保存工程的文件夹也可以新 建文件夹也可以新 建文件夹工程名工程名4. 通过滚动条,选择生产厂商、目标CPU;点开Intel资料库目录,选择8032AH5. 复制复制标准8051启动代码到工程和添加启动代码到 工程?到工程和添加启动代码到 工程? 选择选择“否否”按钮; 如果你使用汇编语言,又不需要初始化按钮; 如果你使用汇编语言,又不需要初始化51内存

7、,选择内存,选择“否否” 如果你使用如果你使用C语言,需要初始化内存,硬件设计时添加了 扩展内存,要精心调整启动代码参数;语言,需要初始化内存,硬件设计时添加了 扩展内存,要精心调整启动代码参数;6. 新建工程后,新建工程后,“Project Workspace”中没有文件中没有文件 Keil IDE支持混合语言编程 可以分别建立汇编语言、支持混合语言编程 可以分别建立汇编语言、C语言代码组以及文档组等 鼠标两次点击可以修改语言代码组以及文档组等 鼠标两次点击可以修改“目标目标1”和和“源代码组源代码组1”名称名称7.添加源文件添加源文件 鼠标选中鼠标选中“源代码组源代码组1” 鼠标右击 选鼠

8、标右击 选“添加文件到组添加文件到组源代码组源代码组1”选择文件夹和文件类型 汇编语言源文件的扩展名:选择文件夹和文件类型 汇编语言源文件的扩展名:.asm选中选中“1.asm”,点击,点击“Add”按钮按钮? ?打开汇编源文件打开汇编源文件8. 8. 目标设置选项目标设置选项为目标工程设置选项为目标工程设置选项 选中选中“目标目标1” 鼠标右键 点击鼠标右键 点击“为目标为目标目标目标1设置 选项设置 选项”目标选项卡:目标选项卡:输出选项卡:输出选项卡:调试选项卡:调试选项卡:软件仿真时 的设置软件仿真时 的设置硬件仿真时 的设置硬件仿真时 的设置如果有硬件仿真器:如果有硬件仿真器:见下页

9、见下页硬件仿真器连接的目标系统设置:硬件仿真器连接的目标系统设置:9. 9. 代码调试代码调试1.编译按钮源代码窗源代码窗2.消息窗,显示编译结果,编译成功,可以开始调试;3.点击“调试”10. 10. 调试窗口调试窗口寄存器窗反汇编窗存储器窗寄 存 器 窗存储器窗反汇编窗寄 存 器 窗存储器窗反汇编窗寄存器窗寄存器窗寄存器窗寄存器窗显示、修改寄存器数值显示、修改寄存器数值 二次点击数值可以修改;二次点击数值可以修改; 显示堆栈指针及最大值; 显示显示堆栈指针及最大值; 显示DPTR、PC指针值 显示指令周期数(指针值 显示指令周期数(states) 显示执行时间() 显示执行时间(sec)

10、显示程序状态字() 显示程序状态字(psw)反汇编窗反汇编窗反汇编窗反汇编窗十六进制表示采用十六进制表示采用C 语言显示:语言显示: 0x0000地址表示地址表示 C:ROM区区 D:内部:内部RAM区区 X:外部:外部RAM区区源代码 反汇编结果源代码 反汇编结果地址列地址列机器码机器码存储器窗存储器窗存储器窗存储器窗采用十六进制表示:采用十六进制表示: 0x0000 地址表示地址表示 C:ROM区区 D:内部:内部RAM区区 X:外部:外部RAM区区 存储器窗分四个区 域:存储器窗分四个区 域:Memory 1 4,可以分 别在地址栏输入 不同地址;,可以分 别在地址栏输入 不同地址;打开

11、存储器窗打开存储器窗打开存储器窗打开存储器窗鼠标可以调整 窗口大小鼠标可以调整 窗口大小点击打开存储 器窗口点击打开存储 器窗口11. 11. 代码调试代码调试代码调试代码调试_ _单步单步单步单步跟踪跟踪单步单步跟踪运行这段程序跟踪运行这段程序运行到运行到15行行在存储器窗口地址栏输入在存储器窗口地址栏输入“D:0x00”检查检查30H、31H单元内容:单元内容:45H 46H单步执行到15行,在存储器地 址栏输入:X:0x2000 检查movx DPTR,A的执行结 果单步执行到15行,在存储器地址 栏输入:C:0x2000 检查movc A,A+DPTR的执行 结果 3CH12. 12.

12、 删除文件删除文件选中选中1.asm ,鼠标右键,鼠标右键删除文件删除文件1.asm添加添加2.asm实验四实验四实验四实验四模拟乒乓球比赛实验模拟乒乓球比赛实验模拟乒乓球比赛实验模拟乒乓球比赛实验一、实验目的:一、实验目的:1.掌握掌握P3口、口、P1口的简单使用。口的简单使用。2.学习延时程序的编写和使用。学习延时程序的编写和使用。 3.掌握子程序和循环、分支程序的使用方法。掌握子程序和循环、分支程序的使用方法。二、实验内容二、实验内容二、实验内容二、实验内容尽可能逼真的模拟击球游 戏,用尽可能逼真的模拟击球游 戏,用8只发光二极管的依次点 亮和熄灭代表球的运动轨迹。 再用两个按键只发光二

13、极管的依次点 亮和熄灭代表球的运动轨迹。 再用两个按键(K1,K2)模拟左右 两个球拍,按键按下代表模拟左右 两个球拍,按键按下代表“击 球击 球”。当。当“球球”运动到两端时(即 最左或最右发光二极管点亮 时),运动到两端时(即 最左或最右发光二极管点亮 时),“击球击球”有效。有效。“左拍左拍”(K1) 按下使发光二极管从左到右依 次点亮,按下使发光二极管从左到右依 次点亮,“右拍右拍”(K2)按下反之。 当对方未按下反之。 当对方未“接球接球”时,继续由发 球方时,继续由发 球方“发球发球”。K1 左左K2 右右要求:要求:要求:要求:? 点亮LED的移动的速度应 能调节,以 0.2s

14、0.5s 为好。点亮LED的移动的速度应 能调节,以 0.2s 0.5s 为好。 ? 若击中,则球向相反方向 移动;若未击中,则对方 得1分。若击中,则球向相反方向 移动;若未击中,则对方 得1分。 ? 左、右双方各用2位数码 管进行记分显示,左、右 双方每隔5次自动交换发 球权,左方首先拥有发球 权。左、右双方各用2位数码 管进行记分显示,左、右 双方每隔5次自动交换发 球权,左方首先拥有发球 权。K1 左左K2 右右三、实验接线三、实验接线三、实验接线根据原理图知:三、实验接线根据原理图知:将将8031的的P3.2插孔连到插孔连到K1插孔 将插孔 将8031的的P3.3插孔连到插孔连到K2

15、插孔 将插孔 将P1.0P1.7依次连到依次连到L1L8八 个发光二级管。八 个发光二级管。K1 左左K2 右右流程框图流程框图流程框图流程框图(供参考)(供参考)(供参考)(供参考)MOV A,R1 ADD A,#01H MOV R1,A ANL A,#0FH MOV 7DH,A MOV A,R1 SWAP A ANL A,#0FH MOV 7EH,ATT1:CJNE R3,#05,TT3TT3:LCALL ZFJNB P3.3,TT5TT2:TT5:JB p3.0,TT5TT4:TT6:左发左发左发左发: : ( (从左到右从左到右从左到右从左到右) )ZF:MOV A,#7FH ;从左从左右右 MOV R4,#08H LP1:RL A MOV P1,A MOV R5,#20H S4:LCALL DISP DJNZ R5,S4 DJNZ R4,LP1 MOV R5,#20H D4:LCALL DISP DJNZ R5,D4 RET超时判断超时判断超时判断超时判断: :MOV R4,#03H L2:JNB P

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号