欢迎来到专业的卓越文库网平台! 工作总结 工作计划 述职报告 心得体会 疫情防控 思想汇报 事迹材料 教案设计
当前位置:首页 > 范文大全 > 公文范文 > 正文

进一步了解外中断边沿触发与电平触发(完整)

时间:2022-06-09 16:20:02 来源:网友投稿

下面是小编为大家整理的进一步了解外中断边沿触发与电平触发(完整),供大家参考。

进一步了解外中断边沿触发与电平触发(完整)

 

 (1)中断实验 一、 实验目的和要求

 目的:熟练使用 Keil,Proteus 软件对程序进行调试,掌握单片机中断方式的输入/输出, 熟悉 MCS-51 单片机外部中断初始化编程方法及中断程序的调试方法。

 要求:掌握查询方式和中断方式的输入/输出程序设计及调试。通过实验熟悉中断处理的过 程以及 MCS-51 单片机转向中断子程序的方法,进一步了解外中断的边沿触发与电平触发 的区别及应用。

 二、 实验内容和原理(包括程序和硬件原理图)

 1、中断 程序:

 ORG

 0000H

 LJMP

 MAIN

 ORG

 0003H

 LJMP

 INTT0

 MAIN:

 MOV

 SP, #40H

 SETB

 IT0

 SETB

 EX0

 SETB

 EA

 MOV

 A,

 #0FEH

 LP:

  MOV

 P1,A

 RL

  A

 LCALL

 DLY

 SJMP

 LP

 INTT0:

 PUSH

 P1

 PUSH

 PSW

 SETB

 RS0

 MOV

 P1, #0FEH

 LCALL DLY

 POP

 PSW

 POP

 P1

 RETI

 DLY:

 MOV

 R6, #0FH

  DLY1:

 MOV

 R5, #0FFH

 DLY2:

 MOV

 R4, #0FFH

 DLY3:

 DJNZ

 R4, DLY3

 DJNZ R5, DLY2

 DJNZ

 R6, DLY1

 RET

 END 所用原件列表:

 单片机 AT89C51 开关 SW-SPDP 发光二极管 LED-BIBY 电阻 RES

 实验原理图:

 三、 主要仪器设备 Keil5、proteus8.4软件 四、 实验步骤 1、在 Keil uVision2 软件中输入程序并保存程序。

 2、编译程序,修改编辑错误,并生成.HEX 文件。

 3、使用 Protues 将图 4.1 绘制出来,加载.HEX 文件。

 4.、在 Keil,Protues 软件中做相应的设置,使得可以进行两个软件的联机调试。(*)

 5. 中断程序单独调试

 1)

 先调试 INT1 是否能正常中断,此时可将断点设在 0003H 处,从 0000H 单元开 始执行,搬动开关 SW1,产生中断信号,看程序是否能跳到 0003H 处,若不能 则中断有问题,检查中断初始化程序。

 2)

 若正确,将断点设在 RETI 处,设置 PC=0300H, (设置方式:在左侧的“regs” 窗口区中找到 PC 对应的值 0x0000,用鼠标左键慢双击 0x0000 即可修改该数 值)),设置 PC=0300H 程序从 0300H 开始执行到 RETI 处,打开 proteus 软件, 观察灯的亮灭状态是否与开关状态符合。

 6. 中断程序调试正常以后,选择单片机复位 PC=0000H,用全速执行程序并检查结果。

 执行的结果应为每改变一次开关(SW2~SW5)的状态,再按脉冲按钮 SW1 发一次中 断( INT1 产生一次负跳变),则 LED 的状态随开关的状态而改变(亮或灭)。

 五、 实验结果 1、 输入程序,并编译生成 hex 文件

  2、 使用 Proteus绘制图形并加载 hex 文件

 3、 运行图形结果为 中断开关每闭合一次,led灯会重新顺序执行

  (2)定时器实验 一、 实验目的和要求

 目的:学习掌握 MCS-51 单片机定时/计数器的基本用法,以及定时软件的设计方法。

 要求:通过实验进一步了解时间常数的计算方法,掌握定时器加软件计数实现长时间定时的处理方法,熟悉定时器的查询和中断两种方式的应用。

 二、 实验内容和原理(包括程序和硬件原理图)

 程序:

 1、 定时器查询方式定时:

 ORG

 0000H

 MOV

 TMOD, #01H

  ;设置 T0 工作方式

 MOV

 TL0, #0B0H MOV

 TH0, #3CH

 MOV

 R0, #10

 ;R0 计数初值

 SETB

 P1.7

 SETB TR0

 WAIT:

 JNB

 TF0, WAIT

 ;TF0=0,则 100ms 未到等待

 CLR

 TF0

 MOV

 TL0, #0B0H

  ;重赋初值

 MOV

 TH0, #3CH

 DJNZ

 R0, WAIT

 ;1s 未到,则等待

 MOV

 R0, #0AH

 CPL

 P1.7

  ;1s 到改变 LED 状态

 LJMP

 WAIT 2、 采用定时器中断方式定时:

 ORG

 0000H

 LJMP

 MAIN

 ORG

 000BH

 LJMP

 TINT0

 ORG

 0100H

 MAIN:

 MOV

 TMOD, #01H

 ;方式 1 定时

 MOV

 TL0, #0B0H

 ;定时器初值

 MOV

 TH0, #3CH

 MOV

 R0, #0AH

 ;R0 计数初值为 10

 SETB

 TR0

 ;启动定时器

 SETB

 ET0

  ;允许 T0 中断

 SETB

 EA

  ;CPU 开中断

 SJMP

 $

  TINT0:

 MOV

 TL0,#0B0H

 ;重赋初值

 MOV

 TH0,#3CH

 DJNZ

 R0, DON

  ;1s 钟未到转返回 CPL P1.7 ;1s 钟到改变 LED 状态

 MOV

 R0, #0AH

 ;重赋计数初值

 DON:

 RETI

 END

  所用元件列表:

 单片机 AT89C51 发光二极管 LED-BIBY 电阻 RES

 实验原理图:

  三、 主要仪器设备 Keil5、proteus8.4软件 四、 实验步骤 1、

  设晶振频率 fosc=6MHZ,则机器周期=2μ s,16 位定时器(方式 1 定时)的最长定时 时间为:(2 16-0)×2=131.072ms。本实验要求定时 1s, 只靠定时器定时是不能实现的,可采用定时器加计数器 的方法实现,如 T0 定时 100ms,再加一个 10 次的计数 器,则 100ms×10=1000ms=1s,即可实现 1s 定时。

 T0 定时 100ms 初值的计算如下:

 (2 16-X)2×10-6=100×10-3

 X=15536D=3CB0H 2、 建立设置工程、保存工程文件和源文件; 3、 编译、链接;

 4、 PROTEUS 原理图绘制;

 5、 进行 KEIL 与 PROTUES 联机仿真。

 采用单步、断点、全速等方法调试程序,排除错误后,按全速执行在 proteus 中观测 LED 灯的闪烁。

 五、 实验结果 1、 在原理图中加入 hex 文件

  2、 运行结果为:

 P1.7所在的 led 灯每隔一秒闪烁一次

  实验总结

  通过这次实验使我对定时器的工作原理有了更加深入的理解,熟悉了 MCS-51 单片机外部中断初始化编程方法及中断程序的调试方法如何。以及在定时器实验中,掌握了 MCS-51 单片机定时/计数器的基本用法,以及定时软件的设计方法。

推荐访问:触发 电平 边沿 进一步了解外中断的边沿触发与电平触发 外部中断的边沿触发方式与电平触发