ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:20.31KB ,
资源ID:12380399      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12380399.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机.docx

1、单片机单片机实验 1 汇编语言程序设计实验- 存储器块清零或赋值专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1 熟悉存储器的读写方法,熟悉 51 汇编语言结构。2 熟悉循环结构程序的编写。3 熟悉编程环境和程序的调试。二实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H 开始的 100 个字节内容清零或全部赋值为 33H。三实验仪器微机、VW,WAVE600编0程环境软件,(单片机实验箱)仿真器- 仿真器设置 - Lab6000/Lab6000 通用微控制器 MCS

2、5实验 伟福软件模拟器四实验步骤1 文件不要用中文名称保存时不要用中文路径(目录) ,不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。2 查看存储器菜单使用:窗口 -数据窗口-XDATA 观察存储器内容3 查看 SFR:窗口-CPU 窗口 查看 CPU 寄存器 SFR4 单步执行:执行 -单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。5 利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。编译器默认设置:程序框图参考程序:Block equ 4000hmov dptr

3、, #Block ; 起始地址mov r0, #10 ; 清 10 个字节 mov a, #33h ;Loop:movx dptr, ainc dptr ; 指向下一个地址djnz r0, Loop ; 记数减一ljmp $end五实验结果(截图)单步运行SFR 窗口最终结果单片机实验 2 存储块移动专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1 熟悉 51 汇编语言程序结构。2 熟悉循环结构程序的编写,进一步熟悉指令系统。3 熟悉编程环境和程序的调试。二实验内容将指定源地址 (3000H)和长度

4、(10 字节)的存储块移动到目的地址 (3050H)。三实验仪器微机、VW&WAVE60软00件,(单片机实验箱)注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。程序流程图源程序org 1000hmov r6, #10 ;首位字节内容mov r0, #30h ;r0r1 用于存放源地址 3000hmov r1, #00hmov r2, #30h ;r2r3 用于存放目的地址 3050hmov r3, #50hmov r7, #10 ;定义字节长度Loop:mov dph, r0 ;使 DPTR 指向源地址mov dpl, r1mov a, r6; ;将 R6 单元中的值转移到 dp

5、tr 指向的单元movx dptr,amov r6, a ;数据保护movx a, dptr ;数据转移mov dph, r2mov dpl, r3movx dptr, a ;inc r1 ;源地址增 1inc r3 ;目的地址增 1djnz r7, Loop ;字节长度减 1,不等于 0,跳转到 Loopljmp $ ;单步循环end四实验结果(截图)单片机实验 3 数据排序专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1 了解数据排序的常用算法,掌握冒泡算法。2 进一步熟悉编程环境和调试方法。3

6、 熟悉汇编程序设计。二实验内容将 50H 开始的 10 个随机数按从小到大的顺序排列。三实验仪器 微机、WAVE6000 编程环境四实验步骤由于上电后数据都一样,所以需要手动修改 50H 后 10个数据(要排序的数)如(6,2,4,9,3,7,1,5,8,0)方法是:窗口 -数据窗口 -DATA 找到 50H 开始的 10 个 2 位 16 进制数,双击,修改其数值,之后编译(下载),单步执行,查看排序执行过程源程序:org 1000hSize equ 10 ; 数据个数Array equ 50h ; 数据起始地址Change equ 0 ; 交换标志Sort:mov r0, #Arraymo

7、v r7, #Size-1clr Change ;清除交换标志Goon:mov a, r0mov r2, ainc r0mov B, r0cjne a, B, NotEqual ;比较累加器 A、B,不相等跳转到 NotEqualsjmp NextNotEqual:jc Next ; 前小后大, 不交换setb Change ; 前大后小, 置交换标志;排序是否结束标志 ?xch a, r0 ; 交换dec r0 ; 地址减 1xch a, r0inc r0 ; 地址加 1Next:djnz r7, Goon ; 数据个数减 1 不等于 0,跳转 Goonjb Change, Sort ; 交

8、换标志为 1,跳转 Sortljmp $ ; 单步循环end五实验结果(截图)排序前单步运行排序后单片机实验 4 P1 口输入输出实验专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1熟悉 P1 口的功能。2熟悉延时子程序或定时中断程序的编写和使用。3初步熟悉单片机软硬件设计方法。二实验内容(两内容分开做)硬件实验需要连接硬件仿真器,连接方式如下:菜单: 仿真器/ 仿真器设置:选择仿真器 / 选择仿真头 / LAB8000/ LAB6000 通用微控制器 / MCS51实验1P1口做输出口接八只发光二

9、极管,编写程序,使发光二极管循环亮灭。实验箱的发光二级管 LED 是高电平点亮,低电平灭。2P1.0,P1.1 作输入口接两个拨动开关, P1.2,P1.3 作输出口,接两个发光二极管。编写程序读取开关状态,将此状态在发光二极管上显示出来。三实验仪器微机,WAVE800编0 程环境、实验箱注意: 当 P1 口用作输入口时,必须先对它置 ”1”。编程时应注意 P1.0,P1.1 作为输入时应先置 1,才能正确读入值。流程图:实验(1)源程序:org 1000hLoop:mov a,#01h ; P1 口初值mov r2,#8 ; I/O 口循环个数output:mov P1,a ;P1 口输出r

10、l a ;累加器 A 左移一位call Delay ;调用延时子程序djnz r2,Output ;R2 减 1,不等于 0 跳转到 Outputljmp Loop ;循环点亮 P1口Delay: ;延时子程序mov r6,#200 ;2*125*200*12/12000000=50msDelayLoop1:mov r7,#125DelayLoop2:djnz r7,delayLoop2djnz r6,delayLoop1retend实验(2)源程序:org 1000hkey0 equ P1.0 ;位定义key1 equ P1.1led0 equ P1.2led1 equ P1.3SETB k

11、ey0 ; 读引脚,向对应位写 1SETB key1LOOP:mov C, key0 ; cpu 读 key0 状态mov led0,C ; key0 状态写入 led0mov C, key1mov led1,CLJMP LOOP ; 跳回 LOOPend四实验现象实验一:与 P1 口连接的八个 LED 灯一次循环点亮,即为八位流水灯;实验二:当开关处于闭合状态时,对应的 LED 灯被点亮,开关断开, LED 灯熄灭。实验五 计数器实验专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1 熟悉计数器的使

12、用方法。2 熟悉计数器的硬件电路连接。3 熟悉计数器的软件设计。二实验内容硬件实验需要连接硬件仿真器,连接方式如下:菜单: 仿真器/ 仿真器设置:选择仿真器 选择仿真头LAB8000/LAB6000通用微控制器 MCS51 实验8031内部定时计数器 0,按计数器模式和工作方式 1 工作,对 P3.4(计数器 0 计数脉冲输入 T0)引脚进行计数。将其计数数值按二进制数用 P1口驱动LED 灯显示出来。 本程序显示的数值为计数器的第 28位。说明:本实验中,内部计数器起计数器作用。外部事件计数脉冲有 P3.4 引入定时器 T0。单片机在每个机器周期采样一次输入脉冲,因此单片机至少需要两个机器周

13、期才能检测到一次跳变。 这就要求被采样电平至少保持一个完整的机器周期,以保证在变化之前就被采样。同时,这就决定了输入波形的频率不能超过机器周期频率。三实验仪器微机、WAVE600编0 程环境,伟福 6000实验箱注意:P3.4 接单次脉冲实验箱的单次脉冲(高电平,低电平)接口如下图中间位置:绿色按钮为脉冲产生按钮:程序流程图:源程序:ORG 0000HLJMP MAINORG 1000HMAIN:MOV R7,#7 ;TH0 左移 7 位MOV TMOD, #05H ; 定时器 0,方式 1MOV TH0, #0 ; 初值 0000hMOV TL0, #0MOV P1,#0 ;P1 复位SET

14、B TR0 ; 开启计数器 0LOOP:MOV R1,#0FEHMOV R2,#01HMOV A,R1 ; TL0&FEH, 获得 TL0高七位 ,存放在 R1ANL A,TL0RRC A ;MOV R1,AMOV A,R2 ; TL0&01H, 获得 TH0最低位 ,加上 R1存放在 R3ANL A,TH0LOOP1:RL A ; 左移七次DJNZ R7,LOOP1ADD A,R1MOV R3,AMOV P1,R3 ; P1 口显示 TH0.0+TL0.7_0.1 共八位LJMP LOOPEND四实验现象本实验程序设计的显示 16 位 DPTR 数据中的 28 位,并用 LED 显示其二进制

15、数值。 当外部按键按下两次后, LED 状态改变一次, 即按键次数每增加2,LED 对应的二进制数值加 1,故本实验最多能记录 512 次按键,此时 LED全亮。实验六 外部中断实验专业:_自动化 _ 班级: 自动 1405 姓名: 毛倩学号: 201423020526 完成日期: 2016-11-6 成绩评定:一实验目的1 熟悉外部中断的硬件电路,中断技术的基本使用方法。2 熟悉外部中断的软件设计。二实验内容硬件实验需要连接硬件仿真器 ,连接方式如下:菜单: 仿真器/ 仿真器设置:选择仿真器 选择仿真头LAB8000/ LAB6000通用微控制器 MCS51 实验利用实验箱上的单脉冲按键和发

16、光二极管,蜂鸣器,实现:用单次脉冲申请中断,在中断服务程序中对输出信号进行翻转 (每当输出一个单次脉冲时 (产生低电平一个脉冲),发光二极管( L0)亮灭变化一次),并使蜂鸣器响一段时间,修改相关参数使蜂鸣器响的时间改变。蜂鸣器是在哪里关闭的?三实验仪器微机、VW, WAVE600编0 程环境,实验箱连线:P1.0连接 L0;喇叭连接 P1.1INT0(P3.2)连接低电平单次脉冲。实验箱的单次脉冲(高电平,低电平)接口如下图中间位置:绿色按钮为脉冲产生按钮:注意中断服务程序( ISR)关键:1 保护进入中断时的现场,现场是指中断发生时各个寄存器,数据存储区的内容,为了能够继续完成没完成的工作

17、状态,在退出中断之前需恢复现场(还原在中断程序中修改的而在主程序用到的寄存器,存储器的内容) 。本例中保护CPU状态寄存器 PSW,R0,R1,等的内容。(例程中 R2没有被保护,它的值是不是被中断服务程序修改了,可以修改程序看看与保护后的结果的不同) 。2 中断重入的设置中断相关寄存器的设置:中断寄存器 IE, 中断触发方式的设置。4 中断程序和子程序的区别。中断程序不是程序调用的,中断发生时, CPU就执行相应中断服务程序, 每个中断对应固定的开始地址, 每个中断向量 8个字节空间。程序流程图:源程序:LED equ P1.0 ; 宏定义Speaker equ P1.1LEDBuf equ

18、 0ljmp StartORG 0003H ; 外部中断 0 入口地址 0003HLJMP INT0 ; 跳转外部中断 0 处理程序ORG 1000hINT0:push PSW ; 保护现场PUSH 1 ; R1进堆栈,采用直接寻址方式, 第 0 组 R1的地址为 1PUSH 0 ; R0进堆栈,采用直接寻址方式, 第 0 组 R0的地址为 0cpl LEDBuf ; 取反 LEDmov c, LEDBufmov LED, cMOV R2,#55H ;R2 没有进堆栈,中断程序中会改变其值mov R1, #250 ; 蜂鸣器开通时间(脉冲数)Loop: ; 调制蜂鸣器脉冲clr Speaker

19、 ; 关闭蜂鸣器call Delay ; 延时setb Speaker ; 开通蜂鸣器call Delay ; 延时DJNZ R1, Loop ;R1 不等于 0,跳转 LOOPPOP 0 ; R0 出堆栈,采用直接寻址方式POP 1 ; R1 出堆栈,采用直接寻址方式POP PSW ; 恢复现场Reti ; 中断返回Delay:mov r0, #250 ; 修改参数,蜂鸣器响时间长短不同djnz r0, $ ;$ 程序计数器 PC当前值RETStart:clr LEDBuf ;LEDBuf 清零clr LED ; 熄灭 LED灯mov TCON, #01h ; 外部中断 0 下降沿触发 (IT0=1)mov IE, #81h ; 打开外部中断允许位 (EX0)及总中断允许位 (EA)MOV R0,#99H ;R0 赋值MOV R1,#99H ;R0 赋值MOV R2,#99H ; 中断程序中 R2没有进栈保护,但值在中断程中被修改为 55H,执行一次中断程序后完其值被改变OFFSpeaker:clr Speaker ; 关蜂鸣器 在中断里面打开了,没有关闭ljmp OFFSpeaker四实验现象现象描述: 当绿色按钮按下后, 产生一个单脉冲, LED状态改变, 蜂鸣器响一次。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1