微机接口实验_第1页
微机接口实验_第2页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、微机与接口实验正式版单片机 IO 口控制实验座位号:01 学号:10300290023 指导教师:实验时间:周一下午:1 实验目的熟悉 MCS-51 的 I/O 结构。利用单片机的 P1 口作 I/O 口,使用户学会利用 P1 口作为输入和输出口。掌握 MCS-51 的中断机制。2 实验设备PC 机 一台51PROC 单片机综合仿真实验仪 一台3 实验内容1、编写程序,用 P1.0P1.2 口连 LED,查询拨盘开关 SW1 的状态来控制 LED 的亮和灭(P1.7 口接 SW1)。2、编写程序,用 P1.0P1.2 口连LED ,用按键开关KEY1 作为外部中断输入制 LED 的亮和灭。(每

2、按一次按键 LED 状态取反一次)0 控4 实验步骤用导线把A2 区的 J61 接口的 P1.0P1.2 与D1 区的 J52 接口的 LED1LED3 相连 ,另外 A2 区的 J61 接口的 P1.7 与D1 区 J54 的 SW1 相连。编写 P1.7(SW1)控制 LED 的程序,并调试运行。将 P3.2 与 D1 区 J53 的KEY1 相连.编写 P3.2(KEY1)中断服务控制 LED 的程序,并调试运行。5 Pro原理图(见附页)6 程序流程图主程序流程图中断程序流程图开始等待中断中断返回中断允许恢复现场将P1.0P1.2 取反设置中断控制寄存器保护现场初始化中断7 源程序1.

3、8000HLJMP Main8100H;硬仿Main:JB P1.7,SETLED CLRLED:;开关为开,跳转至SETLED;清零CLR CLR CLR SJMPSETLED:SETB SETB SETB SJMP;ENDP1.0 P1.1 P1.2Main;点亮P1.0 P1.1 P1.2Main2.8000HLJMP Main8003H;硬仿LJMP0;跳转至中断服务程序8100HMain:CLR P1.0 CLR P1.1 CLR P1.2BEGIN1:JB P3.2, BEGIN1 SETB TR0SETB IT0 SETB EX0 SETB EASJMP $;清零初始化;等待中断

4、进入;为 T0 启动做准备;指定;开放0 为下降沿触发方式0 的中断;开放 CPU 的中断;等待中断8200H0:CPL;中断程序;取反P1.0CPL CPL RETI;ENDP1.1P1.2;中断返回8 实验在 keil 环境下编译程序,调试至无差错。将 A2 区与 J61 区的连线连好,后将程序下载到单片机后进行硬件仿真、程序顺利运行,实现了预期的功能,随着开关 S0 的状态变化, L1、L2、L3 三台LED 灯会被点亮或者熄灭。在 keil 环境下编译程序,调试至无差错。将 A2 区与 J61 区的连线连好,后将序到单片机后进行硬件仿真,此时多次出现报错:在 0000H 和 0100H

5、 已无地址空间,检查程序并无错误,后重新编译程序后顺利运行,实现了预期的功能,每次按下 KEY1 键,L1、L2、L3 三台 LED 灯的状态随之改变。9 实验分析1.本次实验进行的相对顺利,实现了预期的功能。通过实验加深了对 IO 口和外部中断尤其是0 的理解。进一步理解了中断服务程序的结构。完整的过程包括了保护现场、处理中断、恢复现场、中断返回。认识到 RETI 在返回 PC 的同时还起到了清除中断服务标志的作用。2.SJMP LJMP AJMP JMP 的区别每条指令均以改变程序计数器 PC(Program Counter)中的内容为(1)长转移指令(Long Jump)(64KB 范围

6、内转移指令)。LJMP addr16; PC addr16长转移指令的功能是:把指令码中的目标地址 addr16 装入程序计数器 PC,使机器执行下一条指令时无条件转移到 addr16 处执行程序,不影响任何标志。由于 addr16 是一个 16位二进制地址(地址范围为 0000H移的指令。FH),因此长转移指令一条可以在 64KB 范围内转(2)绝对转移指令(Absolute Jump)(2KB 范围内的转移指令)AJMP addr11; PC PC+2 , PC10-0 addr11绝对转移指令是一条双字节双周期指令,绝对转移指令执行时分为两步:第一步是取指令操作,程序计数器 PC 中内容

7、被加 1 两次;第二步是把 PC 加 2 后的高 5 为地址 PC15PC11 和指令代码中低 11 位目标转移地址:PC15PC11a10a9a8a7a6a5a4a3a2a1a0其中,a10a0 的地址范围是全“0”全“1”。因此,绝对转移指令可以在 2KB 范围内向前或向后跳转。(3)短转移指令(Short Jump)(-126+129 范围内的转移指令)SJMP rel; PC PC+2 , PC PC+rel短转移指令的功能是先使程序计数器 PC 加 1 两次(即:取出指令码),然后把加 2 后的地址和 rel 相加作为目标转移地址。目标转移地址=源地址+2+rel(4)变址寻址转移指令(只能在 256 个器单元内转移)JMP TR; PCTR这是一条单字节双周期无条件转移指令。综上:跳转的地址如果在 256B 内可用 SJMP,在 256B2K 内可用 AJMPLJMP。在2K-64K 内只可用 LJMP。所以如果不确定最好就用 LJMP。实验出现分析:在程序软仿编译通过之后,将地址改为 8000H, 进行硬仿,但是此时仍然出现报错:在0000H 和 0100H 已无地址空间。通过实验发现:尽管已经改了地址,在硬仿进行之前,一定要重新再编译一次,否则可能起作用的还是之前没改地址的程序。相比预习改进的地方:1.不需要大段大

温馨提示

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

评论

0/150

提交评论