文档介绍:《单片机原理与应用》实验报告第二次实验: 实验一、 P1 口输入、输出实验一、实验目的 1. 学****P1 口的使用方法 2. 学****延时子程序的编写和使用二、实验说明 P1 口是准双向口, 它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1 口用作输入口时, 必须先对口的锁存器写“1”, 若不先对它写“1”, 读入的数据是不正确的。三、实验内容及步骤实验(一): 本实验需要用到单片机最小应用系统( F1 区)和十六位逻辑电平显示模块( I4 区)。用 P1 口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到***流循环点亮。 1. 使用单片机最小应用系统。用扁平数据线连接单片机 P1口 JD1F 与十六位逻辑电平显示模块 JD2I , 打开相关模块电源。 2. 用串行数据通信线连接计算机与仿真器, 把仿真器插到模块的锁紧插座中, 请注意仿真器的方向:缺口朝上。 3. 打开 Keil uVision2 仿真软件, 首先建立本实验的项目文件, 接着添加源程序, 进行编译,直到编译无误。 4. 进行软件设置,选择硬件仿真,选择串行口,设置波特率为 38400 。 5. 打开模块电源和总电源, 点击开始调试按钮, 点击 RUN 按钮运行程序, 观察发光二极管显示情况。发光二极管单只从右到***流循环点亮。实验(二): 本实验需要用到单片机最小应用系统( F1 区)、十六位逻辑电平显示模块( I4 区)以及八位逻辑电平输出模块( B1 区)。用 、 作输入接两个拨断开关, 、 作输出接两个发光二极管。程序读取开关状态,并在发光二极管上显示出来。 1. 用导线分别把单片机最小应用系统的 、 连接到两个拨断开关( B1区) K0、 K1, 、 连接到两个发光二极管( I4 区) L0、 L1。 2. 打开源程序,编译无误后,全速运行程序,拨动拨断开关,观察发光二极管的亮灭情况。向上拨为熄灭,向下拨为点亮。 3. 也可以把源程序编译成可执行文件, 把可执行文件用 ISP 烧录器烧录到 89S52/89S5 1 芯片中运行。( ISP 烧录器的使用查看附录二) 注:在做完实验时记得养成一个好****惯:把相应单元的短路帽和电源开关还原到原来的位置!以下将不再重述。四、流程图及源程序 1 .流程图 2 .实验参考程序( 见光盘中的程序文件夹) 六、电路图实验(一) (A)P1 口循环点灯程序框图(B)P1 口输入输出程序框图 , 置一开始读入 口值将读入的值输出到 读入 口值将读入的值输出到 是否开始设置初始值设移位次数数据输出左一位延时移位次数完成? ORG 000H LJMP 0030H START: mov a,#0FEH mov r5,#8 Output: mov P1,a RL a acall Delay djnz r5,Output Ljmp START Delay: mov r6,#0FFH mov r7,#0FFH DelayLooP: djnz r7,DelayLoop djnz r6,DelayLoop RET END 实验(二) KEYL BIT KEYR BIT LEDL BIT LEDR BIT P1. 000H LJMP 0030H START:SETB KEYL SETB KEYR LOOP:mov C,KEYL mov LEDL,C mov C,KEYR mov LEDR,C LJMP LOOP END 第三次实验: 实验一: 定时器实验一、实验目的 1. 学****80C51 内部计数器的使用和编程方法 2. 进一步掌握中断处理程序的编写方法二、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器, 定时为一秒钟。 CPU 运用定时中断方式, 实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。 TMOD 用于设置定时器/ 计数器的工作方式 0-3 ,并确定用于定时还是用于计数。 TCON 主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是 12 个振荡器周期。因为实验系统的晶振是 12MHZ , 本程序使用定时器 T1 , 工作于方式 2 定时方式,即8 位自动重装方式定时器, 定时器 100u S 中断一次, 所以定时常数的设置可按以下方法计算: 机器周期=12 ÷ 12MHz=1uS