一、实验要求
1. P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2. P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,
编写程序读取开关状态,将此状态,通过发光二极管显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。
二、实验目的
1. 学习P1口的使用方法。
2. 学习延时子程序的编写和使用。
三、实验电路及连线
连线 连接孔1 连接孔2 1 2 3 4 P1.0 P1.1 P1.2 P1.3 L0 L1 L2 L3 连线 连接孔1 1 2 3 4 S0 S1 P1.2 P1.3 连接孔2 P1.0 P1.1 L4 L5 实验1: P1口循环点灯 实验2: P1口输入输出 四、实验说明
1. P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构
可知当P1口用为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。
2. 8051可以将位变量通过C标志位赋值给其它位。 3. 8051延时子程序的延时计算问题,对于程序
Delay:
MOV R6,#0H MOV R7, #0H DelayLoop:
DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET
查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,请算出该段程序执行时间为:
五、程序流程图
开始 开始 设置初始值 P1.0,P1.1置1 设移位次数 读入P1.0口值 数据输出 将读入的值输出到P1.2 左移一位 读入P1.1口值 延时 是 移位次数完成?
(A) P1口循环点灯程序框图
否 将读入的值输出到P1.3
(B) P1口输入输出程序框图
六、实验步骤
(1). (2).
把实验平台与PC机串行口连起来,把实验平台左上角P1.0-P1.3在PC机上用鼠标点击“Wave”图标,进入WINDOWS调试环境,而
用连线连至L0-L3,打开电源。
后进行初始化设置。点击[仿真器\\仿真器设置]出现“仿真器设置”窗,进行仿真器的设置。 (3).
用鼠标点一下[文件\\打开文件],输入文件名*.asm,创建新文件,进入编辑窗口,注意对发光二极管是输出“1”点亮,在该窗口中输入事先编好的程序。 (4). (5).
用鼠标点[项目\\全部编译]窗,对当前源文件进行编译,反复修改运行程序后,观察发光二极管闪亮移位情况。 好程序,直到编译通过为止。
七、实验报告要求
1.请根据程序流程图(A)补充完整下面程序,并注释: Loop:
mov a, #01h mov r2, #8 Output:
mov P1, a rl call djnz r2, Output ljmp Loop
Delay:
mov r6, #0 mov r7, #0 DelayLoop:
djnz r6, DelayLoop djnz r7, DelayLoop ret
end
2.请根据程序流程图(B)写出实现“实验要求”2的程序,调试运行程序并注释:
硬件实验二 继电器控制实验
一、实验要求
用单片机的端口,输出电平控制继电器的吸合和断开,实现对外部装置的控制。
二、实验目的
1. 学习I/O端口的使用方法
2. 掌握继电器的控制的基本方法 3. 了解用弱电控制强电的方法
三、实验电路及连线
连线 连接孔1 连接孔2 1 2 3 P1.0 5V L0 继电器输入 继电器常闭输入 继电器中间输入
四、实验说明
现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方面又要为电子线路的电气电路提供良好的电气隔离,以保护电子电路和人身的安全。继电器便能完成这一桥梁作用。
本实验采用的继电器其控制电压是5V,控制端为高电平时,继电器工作常开触点吸合,连触点的LED灯被点亮。当控制端为低电平时,继电器不工作。执行时,对应的LED将随继电器的开关而亮灭。
五、实验框图
开始 继电器吸合 延时 继电器断开 延时 六、实验步骤
(1). (2).
把实验平台与PC机串行口连起来,根据实验连线表在实验平台上在PC机上用鼠标点击“Wave”图标,进入WINDOWS调试环境,而
连线,打开电源。
后进行初始化设置。点击[仿真器\\仿真器设置]出现“仿真器设置”窗,进行仿真器的设置。 (3). (4).
用鼠标点一下[文件\\打开文件],输入文件名*.asm,创建新文件,用鼠标点[项目\\全部编译]窗,对当前源文件进行编译,反复修改进入编辑窗口,在该窗口中输入事先编好的程序。 好程序,直到编译通过为止。
(5).
单步运行程序,观察由继电器控制的发光二极管亮灭情况。
七、实验报告要求
请根据程序流程图补充完整下面程序,调试运行并注释: Output equ P1.0 ; P1.0 port
Loop:
clr c
mov Output, call setb c
mov ,c call ljmp Loop
Delay:
mov r6, #0 mov r7, #0 DLoop:
djnz r7, DLoop djnz r6, DLoop ret
end
因篇幅问题不能全部显示,请点此查看更多更全内容