实实 验验 十十 一一 P 1 口口 及及 外外 部部 中中 断断 一、一、实验目的实验目的 1. 掌握利用 MCS-51 单片机 P1 口实现 I/O 的三种传送方式 2. 掌握 MCS-51 单片机外部中断源的原理和编程方法 3. 了解 MCS-51 单片机处理外部中断的全过程 4. 弄懂外部中断触发方式的选择 二、二、实验要求实验要求 熟练掌握结合 DP-51PROC 单片机综合仿真实验仪和 Kiel C51 集成开发环境进行仿真 调试 三、三、实验内容及实验电路实验内容及实验电路 1、P1 口无条件输出实验,电路图图 3-1 所示图 3-1 P1 口无条件输出实验参考程序 1:8 个 LED 灯同时闪亮ORG 8000H LJMP Main ORG 80F0H Main: MOV R7, #0 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop CPL P1.0 ; P 1 .0 取反 CPL P1.1 ; P 1 .1 取反 CPL P1.2 ; P 1 .2 取反 CPL P1.3 ; P 1 .3 取反 CPL P1.4; P 1 .4 取反 CPL P1.5 ; P 1 .5 取反 CPL P1.6 ; P 1 .6 取反 CPL P1.7 ; P 1 .7 取反 SJMP Main END2、P1 口条件输出实验,电路如图 3-2 所示。
图 3-2 P1 口条件输出实验参考程序 2: ORG 8000H LJMP Main ORG 8100H Main: JBP1.7,SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETBP1.0 SETBP1.1 SETBP1.2 SETBP1.3 SETBP1.4 SETBP1.5 SETBP1.6 SJMP Main END 3、P1 口中断输入/输出实验,电路如图 3-3 所示图 3-2 P1 口中断输入/输出实验参考程序 3:ORG 8000H LJMP Main ORG 8003H LJMP INT0SV Main: MOV SP, #5FH SETB EA SETB IT0SETB EX0SJMP $ INT0SV: MOV P1,#0FFH MOV A,P1 SWAP A MOV P1,A RETI END 四、四、实验步骤实验步骤 实验内容实验内容 1 1::P1 口无条件输出实验 1.断开 DP-51PROC 实验仪的电源,按图 3-1 接线,使用排线将 A2 区的 J61 接口与 D1 区的 J52 接口相连。
2.接通 DP-51PROC 实验仪的电源,将 TKSMonitor51 仿真器上的工作模式选择开关拨 到 RUN 处 1、 建立名为 P1_wtjio 工程,按实验参考程序 1 编辑新文件,文件名为:p1_wtj.asm然 后编译,无误转换为调试方式,运行程序,观察并记录运行结果 实验内容实验内容 2 2::P1 口条件输出实验 1、 断开 DP-51PROC 实验仪的电源,按图 3-2 接线,使用排线将 A2 区的 J61 接口与 D1 区的 J52 接口相连,使用导线把 A2 区的 P1.7 与 D1 区 J54 的 SW1 相连 2、 接通 DP-51PROC 实验仪的电源,将 TKSMonitor51 仿真器上的工作模式选择开关拨 到 RUN 处 3、建立名为 P1_tjio 工程,按实验参考程序 2 编辑新文件,文件名为:p1_tj.asm然后编 译,无误转换为调试方式,预先将 SW1 置 1 或置 0,运行程序,观察并记录运行结果 实验内容实验内容 3 3::P1 口中断方式输入/输出实验 1、断开 DP-51PROC 实验仪的电源,按图 3-3 接线,使用导线将 A2 区的 P10、P11、P12 分别与 D1 区的 SW1、SW2 、SW3 相连,使用导线把 A2 区 INT0 与 D1 区 J53 的 KEY1(图 3-3 中的 K1 即为 D1 区的 K1)相连。
2、 接通 DP-51PROC 实验仪的电源,将 TKSMonitor51 仿真器上的工作模式选择开关拨 到 RUN 处 3、建立名为 P1_zdio 工程,按实验参考程序 3 编辑新文件,文件名为:p1_zd.asm然后 编译,无误转换为调试方式,预先置好开关的状态,运行程序,观察中断的执行过程, 并记录运行结果 五、五、思考题思考题 1、 如何将 P1 口无条件输出的实验,修改为将 8 个 LED 发光二极管向左或向右循环点亮?2、 如何利用 INT0 中断使 P1 口控制 8 个 LED 发光二极管向左或向右循环点亮?电路如 何修改?程序如何修改?。