您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 实验二控制LED灯点亮实验(精)
实验二控制LED灯点亮实验一、实验目的1..进一步熟悉单片机编程和程序调试方法2.学习P1口的使用方法3.学习延时子程序的编写和应用二、实验内容1.让实验板上的第1、3、5、7位置上的灯与第2、4、6、8位置上的灯交替闪烁。2、设计出如下要求的流水灯程序。变化要求:先从第4个灯向左逐个点亮,接着从第5个灯向右逐个点亮,然后,从第1个向右、第8个向左同时开始的向内逐个点亮再从中间向两边逐个点亮的。三、实验相关说明1、实验电路原理图100注意:在实验报告中,请画出实际运行你程序的电路的原理图2、LED灯控制。从电路原理图可看到,当P1.0端口输出高电平,即P1.0=1时,发光二极管L1熄灭;当P1.0输出低电平即P1.0=0时,L1亮;在汇编语言里可用SETBP1.0指令使P1.0端口输出高电平,用CLRP1.0指令使P1.0端口输出低电平,从而控制LED的亮、灭。注意:实验板是用哪个口连接了LED。3.延时子程序的设计、应用单片机指令的执行时间很短,时间在微秒级,因此,如果我们想看灯闪烁,那么就必须在用指令控制灯处于亮或灭的状态后,保证那状态维持一段时间后再转换成另一状态。如何做到维持一段时间呢?方法有很多,其中最易实现的一种方法是:通过插入一段程序,每条指令执行都需要1个或若干个机器周期的时间。因而执行完这段程序就过了一段时间,通常把这称为延时。延时程序一般采用单重或多重循环程序。可以根据需要延时的时间来设计这段程序包含哪些指令、循环次数。设计举例如下:若单片机晶振为12MHz,因此,则单片机的1个机器周期为1微秒,则下面这段循环程序中每条指令执行所需的机器周期数及其要花的时间列在下面。机器周期微秒MOVR6,#202个机器周期2D1:MOVR7,#2482个机器周期2×20DJNZR7,$2个机器周期2×248×20DJNZR6,D12个机器周期2×20=4010002因此,上面的延时程序时间为10.002ms。由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如要求0.2秒=200ms,10ms×R5=200ms,则R5=20,汇编延时子程序如下:DELAY:MOVR5,#20D1:MOVR6,#20D2:MOVR7,#248DJNZR7,$DJNZR6,D2DJNZR5,D1RETC语言延时子程序如下:voiddelay02s(void//延时0.2秒子程序{unsignedchari,j,k;for(i=20;i0;i--for(j=20;j0;j--for(k=248;k0;k--;}四、实验步骤1.用串行数据通信线连接计算机与实验板,用USB给实验板提供电源2.打开KeiluVision2软件,首先建立本实验的项目文件(参考实验一的步骤,3.输入源程序,将源程序加入到项目文件中,然后进行编译,直到编译无误。生成hex文件。4.通过STC-ISP下载软件,将hex文件下载到实验板内,观察发光二极管显示情况是否满足题目要求,如未达要求,分析原因,修改源程序,再编译、下载、运行,直至达到题目要求。5.对实验进行总结,按要求写出实验报告。
本文标题:实验二控制LED灯点亮实验(精)
链接地址:https://www.777doc.com/doc-2140378 .html