程序(二零二二版).docxVIP

  • 0
  • 0
  • 约2.34千字
  • 约 8页
  • 2023-08-03 发布于江西
  • 举报
1 . 实验内容要求 (1) 点亮 8 只发光二极管,并使 8 只发光二极管循环亮灯。 (2) 运用简单的语句编写延时子程序, 以控制发光二极管点亮的 间隔时间,并通过调整延时时间来观察延时效果。 用连线 P1 口将的各位端口(P1.0-P1.7)分别接入发光二极管区 的 L0 至 L7,将仿真器插入计算机, 在 KEIL uVision 软件, 新建一个 工程,编写软件,并仿真软件运行。 2 . 思量问题 (1) P1 口与 P0 口的主要区别,如果用 P0 口的输出来控制发光 二极管的点亮,在电路上要做哪些改动? (2) 实现程序延时的方法有哪些? 3 . 参考程序 ORG 0000H AJMP MAIN MAIN: LOOP: MOV A,#0FEH MOV P1,A ACALL DELAY MOV R0,#07H RL A MOV P1,A ACALL DELAY DJNZ R0,LOOP ;送数据初值 ;数据送 P1 口点亮发光二极管 ;延时 ;设置左移 7 次 ;左移一位 ;数据送 P1 口点亮发光二极管 ;延时 ;R0 是否为 0,不为 0 转 LOOP 继续 END 执行 AJMP MAIN ;返回主程循环执 DELAY: D1: D2: D3: MOV R1,#100 MOV R2,#100 MOV R3,#50 DJNZ R3,D3 DJNZ R2,D2 DJNZ R1,D1 RET END ;延时子程序 ;子程序返回 ;程序结束 P2 口作为输入口,接 8 只开关, P1 口做为输出口,接 8 只发 光二极管,通过设置 8 只拨动开关的状态控制8 只发光二极管的亮灭。 用连线将 P1 口的各位端口(P1.0-P1.7)分别接入发光二极管区 的 L0 至 L7,将仿真器插入计算机, P2 口的各位端口(P2.0-P2.7) 分别接入开关量发生器区的 K0 至 K7。在 KEIL uVision 软件,新建 一个工程,编写软件,并仿真软件运行。 ORG 0000H ;开始 MOV P1,#0FFH LOOP: MOV A,P2 MOV P1,A JMP LOOP ;P2 口的开关电平状态读到 A ;把 A 的数据送到 P1 口 ORG 0003H 接 P1 口的 8 个发光二极管循环亮, 用外部单次脉 冲信号申请中 断,中断响应后,使小喇叭响,发光二极管住手闪亮。 MCS-51 单片 机具有两个外部中断输入口(P3.2、P3.3),中断触发方式有两种: 电平触发和跳沿触发(脉冲触发)。在本实验中用脉冲源来摹拟外部 触发信号,使单片机产生中断。 中断服务程序的内容普通包括四个部份:现场保护与现场恢复、 关中断与开中断、中断处理、中断返回。用连线将 P1 口的各位端口 (P1.0-P1.7) 分别接入发光二极管区的 L0 至 L7,将仿真器插入计算 机,P3.2 端口接脉冲源的DOWN 输出端,P3.3 接音响及合成区的Vin1 输出口。在KEIL uVision 软件,新建一个工程,编写软件,并仿真软 件运行。 程序流程 ORG 0000H JMP START ;开始 JMP EXT0 START: MOV IE, MOV IP, MOV TCON, MOV SP,#70H MAIN: MOV P1,#00H ;全亮 LCALL DELAY MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A ;循环左移 AJMP LOOP EXT0: PUSH ACC PUSH PSW CPL P3.3 ;喇叭响 CALL DEL ;喇叭响的速率 POP PSW POP ACC RETI DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#250 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET DEL: MOV R4,#250 DJNZ R4,$ RET END 1 . 实验内容 利用单片机内部定时器中断方式定时, 实现每一秒钟输出状态发 生一次反转。改变定时时间的长度,观察发光二极管闪亮的频率。 2 . 实验原理 MCS-51 单片机内部有两个 16 位定时器,具有 4 种工作方式。特 殊功能寄存器 TMOD 用于选择定时器/计数器 T0、T1 的工作模式和工 作方式、 TCON 用于控制T0、T1 的启动和住手,同时还包含了T0、T1 的状态。定时器计数满时,会产生溢出中断。 3 . 实验步骤 用连线将 P1 口的 P1. 1 接入发光二极管区的 L0,将仿真器插

文档评论(0)

1亿VIP精品文档

相关文档