单片机流水灯实验报告
- 格式:docx
- 大小:21.52 KB
- 文档页数:4
光控流水灯实验报告LED流水灯实验报告LED流水灯的设计报告课程名称:LED流水灯设计学院:大数据与信息工程学院专业:姓名:学号:年级:任课教师:一、实验的背景和意义单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把CPU随机存储器RAM、只读存储器ROM、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。
大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O引脚。
系统已采用MCS—51系列单片机为中心器件来设计LED流水灯系统,实现LED左循环显示,并实现循环的速度可调。
二、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序和C语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
三、设计任务及要求1.用个发光二极管作为显示电路2.实现LED动态显示3.能连续循环显示四、设计思路LED流水灯实际上是一个带有八个放光二极管的单片机最小应用系统,即为由晶振LED灯、电阻、电容器、电源等电路和必要的软件组成的单个单片机。
. 精选范本实验一 流水灯一、实验要求 编写程序实现用PIC16F877A 单片机的D 口控制发光二极管循环右移位,实现追灯功能:先D8点亮,其次是D7点亮,……,D1点亮,然后D8点亮,……,周而复始循环进行,并使用Proteus VSM 仿真器进行程序的烧写和仿真调试。
二、实验目的1.熟悉利用Proteus 软件绘制单片机硬件电路,熟悉PIC16F877A 单片机的硬件结构。
2.学习输入/输出端口控制方法。
3.进一步熟悉MPLAB 环境下工程项目的建立和源程序的编写。
4.掌握使用PIC16F877A 仿真器进行硬件的仿真调试。
三、实验设备PC 机一台、MPLAB 开发软件、Proteus 软件。
四、实验线路及连线1.利用Proteus 绘制硬件线路图,在MPLAB IDE 中加载Proteus VSM 仿真器,调试PIC C 程序。
2.如下图,单片机的D 口外接8个LED 。
五、实验说明1.如下图,当D 口的RD*为高时,相应的LED 点亮。
2.编程时,延时的实现可直接调用HI-TECH 的库函数,即:#include <pic.h> 。
六 实验报告1、proteus 软件的硬件线路图B2013052244刘颖2、程序流程图开始TRISD=0x00;A=0x00;N延时等待200ms ?YPORTD=A;A=A<<1;NA=0 ?YA=0x01;精选范本3、观察实验现象八个LED灯循环点亮,先D8点亮,200ms后D8灭,D7点亮,……,D1点亮,200ms后D1灭,然后D8点亮,……,周而复始循环进行。
4、实验分析问题分析:控制流水灯循环点亮的过程中需定义一个全局变量A=0b00000001,让A的值左移,并把值赋给D口,从而达到所需的效果,但当A左移8次后灯却不再点亮。
解决方法:出现上述现象的原因是当A左移8次后A的值变为0,故要对A的值进行判断,如果值为0,则对其进行赋初值。
单片机技术创新设计实验报告名称:学生人数:班级:1.项目背景:当今时代的智能控制电子技术给人们的生活带来了方便和舒适,七彩的霓虹灯使我们的城市更加迷人,并增加了很多为人们的生活增色。
制造水灯的方法有很多,例如传统的分立元件,由数字逻辑电路组成的控制系统和单片机智能控制系统。
该设计是一种简单实用的单片机图案水灯设计生产方案。
2,根据时钟信号的脉冲输入,可以通过改变各LED点亮状态的保持时间来改变led的间隔时间。
根据LED的循环照明和时间间隔的变化,设计了直观的LED图案水灯自动循环系统。
从这个想法,我们可以轻松地启动水灯控制过程的顺序设计。
3,软件设计4.软件设计4.软件设计4.软件设计4.软件设计软件设计软件设计4.软件设计软件设计4.软件设计4.软件设计4.软件设计ᦇ软件设计ᦇ软件设计ᦇ软件设计ᦇ包括<regx51。
H>软件设计ᦇ软件设计ᦇ软件设计ᦇ包括<regx51。
H>﹥软件设计ᦇ软件设计#软件设计#软件设计#软件设计#软件设计ᦇ软件设计ᦇ软件设计ᦇ软件设计ᦇ软件设计ᦇ软件设计#软件设计#软件设计#软件设计#软件设计,0xf0,0x0f,0xff,0x33、0xcc,0x33、0xcc,0x33、0xcc,0xff};无效延迟1ms(无符号int计数){unsignedint i,J; for(I = 0; I <count; I ++)for(J = 0; J <120; j ++);} main(void){uchar I;而(1){for (I = 0; I <35; I ++){P1 =标签[i]; delay1ms(500);}}} 5.实验结果6.通过实验设计,我们可以锻炼我们综合利用知识,提出问题,分析问题和解决问题的能力。
我很激动,在我开始设计的那段时期我学到了很多东西。
特别是将理论与实践相结合。
我认为掌握单片机的应用开发技术是最基本,最必要的。
单片机流水灯实验(说明:本文为word格式,下载后可自由编辑)一、任务让8个LED灯轮流亮起来,实现流水灯的功能。
二、思路让接在P0.0口的LED灯亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED灯熄灭,就要把P0.0口的电平变为高电平就可以了。
要实现流水灯功能,只要将8个LED灯依次点亮、熄灭,8只LED 灯便会一亮一暗的做流水灯了。
我们应该注意一点,由于单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
三、步骤1、用proteus画电路图。
如下图:2、用keil建工程。
1)运行keil C51软件,点击Project菜单新建项目,选择为AT89C52的单片机型号。
然后单击File选择New新建程序文件,保存成.c 文件,右击Source Group1添加入程序文件。
2)用C语言编写程序代码如下:#include <reg52.h>void delay (unsigned char tmp);code unsigned char tmpled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void main(void){unsigned char i;while (1){for(i=0;i<8;i++){P0=tmpled[i];delay(50);}}}void delay(unsigned char tmp){unsigned char i,j;i=tmp;while(i){i--;j=255;{j--;}}}3)右击Target 1打开设置,Output菜单下勾选上create hex file。
4)调试运行程序后,在proteus中双击单片机,添加hex文件,运行看到流水的的效果。
四、实验中遇到的问题。
1、用proteus仿真时候,发现错误:error variable not found parsing property resistance of RN1-Rnvalue expected for RN1-R (n=1~8)而且led灯亮度十分微弱。
电子工艺学考试作品报告作品名称:花样流水灯姓名:专业班级:电信1105学号:中南大学物理与电子学院目录第一章系统整体概述…………………………………………………………第二章硬件设计………………………………………………………………第三章软件设计………………………………………………………………第四章调试与分析……………………………………………………………第五章制作感受………………………………………………………………【摘要】当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。
本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于单片机AT89C52和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C52为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C52单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C52 单片机流水灯数码管AT89C52单片机概述AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程。
PIC流水灯实验报告
实验目的:通过编写程序,使单片机控制LED流水灯逐个点亮和熄灭。
实验材料:
1、STC89C52单片机开发板×1
2、220欧姆电阻×9
3、LED×9
4、杜邦线
实验原理:
流水灯可以通过将多个LED连接在一起,然后按照一定的顺序控制它们的亮灭来实现。
在该实验中,将使用STC89C52单片机控制流水灯的亮灭。
实验步骤:
1、将220欧姆电阻插入LED的负极(短腿)上。
2、将LED的正极(长腿)依次连接到单片机的P1.0-P1.7和P3.5口上。
3、连接单片机和PC,打开Keil软件,新建工程。
4、在工程中添加头文件和声明变量。
5、编写主函数,并在其中添加控制流水灯的代码。
6、通过编译程序,并将程序下载到单片机中。
7、连接外部电源,观察流水灯的运行情况。
实验效果:
实验成功后,将能够看到LED从1-8依次点亮和熄灭,然后又从8-1依次点亮和熄灭,如图所示。
总结:
通过该实验,掌握了单片机控制LED流水灯的方法。
熟悉了Keil软件的使用,加深了对单片机编程的理解。
在实验过程中,还加深了对电路原理图的理解,并学习了使用杜邦
线进行电路的连接。
该实验不仅提高了我们的动手能力,也增加了我们的实践经验,为以后的学习打下了坚实的基础。
流水灯实验报告实验目的1.了解单片机I/O口的工作原理。
2.掌握51单片机的汇编指令。
3.熟悉汇编程序开发,调试以及仿真环境。
一、实验内容通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。
(即流水灯效果)二、实验原理通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。
具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→......可以使用一个循环,不断对数据进行移位运算实现。
这里的移位指令采用RL和RR,即不带进位的位移运算指令。
如果使用带进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。
三、实验过程1.在仿真系统中绘制好单片机的电路图2.编写汇编程序,程序如下:ORG 0000HDelay: MOV R0,#0FFHSJMP StartDelay1: MOV R1,#0FFHStart: MOV A, Delay2: NOP#0FEHMOV P0, A DJNZ R1,Delay2 CLR P2.7 DJNZ R0,Delay1 CLR P3.7 RETMove: MOV R2, #7H ENDMOV R3, #7HRMove: RL AMOV P0, ACALL DelayDJNZ R2,RMoveLMove: RR AMOV P0, ACALL DelayDJNZ R3,LMoveSJMP Move四、实验结果为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。
在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:1.只有1号二极管点亮2.只有2号二极管点亮3.只有3号二极管点亮4.只有4号二极管点亮5.只有5号二极管点亮6.只有6号二极管点亮7.只有7号二极管点亮8.只有8号二极管点亮实验的结果:二极管的发光状态从1→2→3→4→5→6→7→8→7→…→1→2;如此往复循环。
单片机流水灯实验报告电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: xx-10-21 班级:电信092 姓名:蔡松亮学号: 910706247一、实验目的:进一步熟悉keil仿真软件、proteus仿真软件的使用。
了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。
掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
二、实验原理:MCS-51系列单片机有四组8位并行I/O口,记作P0、P1、P2和P3。
每组I/O口内部都有8位数据输入缓冲器、8位数据输出锁存器及数据输出驱动等电路。
四组并行I/O端口即可以按字节操作,又可以按位操作。
当系统没有扩展外部器件时,I/O端口用作双向输入输出口;当系统作外部扩展时,使用P0、P2口作系统地址和数据总线、P3口有第二功能,与MCS-51的内部功能器件配合使用。
以P1口为例,内部结构如下图所示:图 P1口的位结构作输出时:输出0时,将0输出到内部总线上,在写锁存器信号控制下写入锁存器,锁存器的反向输出端输出1,下面的场效应管导通,输出引脚成低电平。
输出1时,下面的场效应管截止,上面的上拉电阻使输出为1。
作输入时:P1端口引脚信号通过一个输入三态缓冲器接入内部总线,再读引脚信号控制下,引脚电平出现在内部总线上。
I/O口的注意事项,如果单片机内部有程序存贮器,不需要扩展外部存贮器和I/O接口,单片机的四个口均可作I/O口使用;四个口在作输入口使用时,均应先对其写“1”,以避免误读;P0口作I/O 口使用时应外接10K的上拉电阻,其它口则可不必;P2可某几根线作地址使用时,剩下的线不能作I/O口线使用;P3口的某些口线作第二功能时,剩下的口线可以单独作I/O口线使用。
三、实验环境:硬件:PC机,基本配置CPU PII以上,内存2G 软件:keil 2, Proteus 7.5四、实验内容及过程:1、用Proteus画流水灯电路图流程:1)、运行Proteus仿真软件,单击pick from libraries,打开搜索元器件窗口,如图 1 所示:图 1 打开搜索元器件窗口2)、搜索添加元器件,如图2 所示:图2 搜索添加元器件窗口3)、添加元器件,修改元器件的参数,绘制流水灯原理图,元器件参数为c1=c2=20pf、c3=10uf;R1=R2=R3=R4=R5=R6=R7=R8=470欧姆、R9=10k欧姆;晶振=12M;VCC=5V。
流水灯贴片实验报告1. 实验目的通过贴片电路的设计与制作,了解流水灯电路的原理和实现方法,掌握基本的贴片焊接技巧,提高实际操作能力。
2. 实验器材和材料- 单片机开发板x1- LED灯x8- 电位器x1- 电阻x8- 电解电容x1- 陶瓷电容x1- 线路板x1- 连接线若干- 焊锡丝- 焊锡台- 鼓风机3. 实验原理流水灯是一种常见的LED灯电路,通过控制LED灯的亮灭顺序和时间间隔,达到流水般的效果。
在本实验中,我们使用单片机控制流水灯的亮灭。
实验电路原理如下:- 八个LED灯通过限流电阻连接到单片机的IO口,通过控制IO口的电平高低来控制LED的亮灭。
- 一个电位器作为亮度调节器,通过调节电阻值来控制LED灯的亮度。
- 一个电解电容和一个陶瓷电容用于稳压和滤波。
4. 实验步骤4.1 贴片电路设计根据实验原理设计流水灯贴片电路的电路图,明确所需器件和连接方式。
4.2 打样将电路图打样,确定电路板的布局和连接方式。
4.3 贴片制作将所需器件按照电路图和布局要求进行贴片制作,在贴片过程中要注意器件的方向和位置,确保连接正确、牢固。
并利用焊锡丝和焊锡台进行焊接。
4.4 调试完成贴片后,用万用表检查电路板上的电路连接情况,确保没有短路或开路问题。
然后将电路板插入单片机开发板,通过编程控制流水灯的亮灭。
4.5 测试将贴片流水灯实验电路通过电源线与电源连接后,观察LED灯按照设计的流水灯效果正常工作。
5. 实验结果和分析经过实验,成功制作出贴片流水灯电路并实现了预期的流水灯效果。
LED按照设计的顺序和时间间隔亮灭,整个流水灯效果流畅且稳定。
通过实验可以发现,贴片电路制作的关键在于焊接。
焊接技术的好坏直接影响到电路的连接质量和可靠性。
正确选择焊接温度、使用适量的焊锡以及合适的焊接时间,是保证焊接效果的关键。
此外,电位器的调节能够实现LED灯的亮度调节。
通过改变电位器的电阻值,可以改变LED的亮度,满足不同环境下的使用需求。
第1篇实验名称:流水灯实验实验日期:2021年10月25日实验地点:实验室实验者:张三一、实验目的1. 了解流水灯的原理和组成;2. 掌握流水灯的制作方法;3. 培养动手能力和团队合作精神。
二、实验原理流水灯是一种通过改变电路中各个灯泡的连接方式,实现灯光顺序变化的电子装置。
其原理是利用555定时器产生一个周期性的方波信号,通过控制方波信号的占空比,实现不同灯泡的顺序点亮。
三、实验器材1. 555定时器1个;2. 集成电路板1块;3. 灯泡4个;4. 电阻4个;5. 电池1节;6. 导线若干;7. 万用表1个;8. 电烙铁1把;9. 剪线钳1把。
四、实验步骤1. 制作电路板:将555定时器、电阻、灯泡等元件焊接在电路板上。
2. 连接电路:将电池的正负极分别连接到电路板的电源端,将555定时器的输出端分别连接到灯泡的正极,将灯泡的负极分别连接到电路板的GND端。
3. 测试电路:使用万用表测量555定时器的输出电压,确保输出电压在正常范围内。
4. 调整占空比:通过改变电阻的阻值,调整555定时器的占空比,实现不同灯泡的顺序点亮。
5. 验证实验:观察流水灯的运行情况,确认实验是否成功。
五、实验结果与分析1. 实验成功:通过调整电阻的阻值,实现了4个灯泡的顺序点亮,实验成功。
2. 分析:在实验过程中,我们发现调整电阻的阻值可以改变555定时器的占空比,从而改变灯光的顺序。
当电阻阻值增大时,占空比减小,灯光点亮速度变慢;当电阻阻值减小时,占空比增大,灯光点亮速度变快。
六、实验结论通过本次流水灯实验,我们掌握了流水灯的原理和制作方法,提高了动手能力和团队合作精神。
实验结果表明,通过调整电阻的阻值,可以实现不同灯泡的顺序点亮,达到流水灯的效果。
七、实验反思1. 在实验过程中,我们发现电路板焊接过程中容易出现短路现象,因此在焊接过程中要仔细检查,确保电路板焊接正确。
2. 在调整电阻阻值时,要注意观察灯光的变化,以便找到最佳的电阻阻值。
实验一流水灯实验一、实验目的1)简单I/O引脚的输出2)掌握软件延时编程方法3)简单按键输入捕获判断二、实验实现的功能1)开机是点亮12发光二极管,闪烁三下2)按照顺时针循环依次点亮发光二极管3)通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序五、实验过程中遇到的问题及解决方法1)每次循环无论正转还是反转程序,总先是先执行P1口的8位led灯。
原因:在利用KEIL自带的库函数中的_crol_和_cror_时,在正转和反转程序中应该调换顺序的,开始没注意到。
改正后显示正常。
2)在开始实验的时候实行的是一直循环的方式,利用按键嵌套。
后来发现不理想,每次按键按到三次以上后进入死循环。
解决方案:利用一个按键,显示一次。
并加入按键释放,防止误动作。
指导老师签字:日期:实验一程序:/******************************************************************** **************工程说明:本工程主要完成了一下功能:1,复位后演示所有功能2,灯闪烁三次3,流水灯正转4,流水灯反转函数说明:yanshi():演示程序dengss():闪烁程序right():正转程序left():反转程序scankey():按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标志uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint); //1ms延时void yanshi(void);//演示所有亮灯方式void dengss(void);//闪烁三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各种变量定义及函数声明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--){P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频率}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12保留发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频率}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);}P3=0xff;//熄灭D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1保留发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频率}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等待按键释放}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等待按键释放}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等待按键释放}}}实验二定时器或实时时钟实验一、实验目的1)数码管动态显示技术2)定时器的应用3)按键功能定义二、实验实现的功能1)通过按键可以设定定时时间,启动定时器,定时时间到,让12个发光二极管闪烁,完成定时器功能。
一、实验目的1. 熟悉流水灯控制电路的原理和设计方法;2. 掌握使用单片机控制LED灯流水灯的方法;3. 培养动手实践能力和创新意识。
二、实验原理流水灯是一种常见的LED灯控制方式,通过单片机对LED灯进行控制,使LED灯按照一定的规律依次点亮和熄灭,形成动态的流水效果。
本实验采用51单片机作为控制器,通过编程实现对LED灯流水灯的控制。
流水灯的控制原理如下:1. 将LED灯连接到单片机的P0口,每个LED灯对应一个P0口的引脚;2. 编写程序,使单片机依次对P0口的引脚进行赋值,从而控制LED灯的亮灭;3. 通过延时函数实现LED灯的流水效果。
三、实验器材1. 51单片机实验板;2. 8个LED灯;3. 电阻(阻值约为220Ω);4. 连接线;5. 编程器;6. 示波器(可选)。
四、实验步骤1. 将LED灯按照电路图连接到实验板上,确保每个LED灯的正极连接到单片机的P0口对应引脚,负极连接到GND;2. 编写程序,实现LED灯流水灯的控制。
程序如下:```c#include <reg51.h>void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++); }void main() {while (1) {P0 = 0x01; // 第一个LED灯亮 delay(500);P0 = 0x02; // 第二个LED灯亮 delay(500);P0 = 0x04; // 第三个LED灯亮 delay(500);P0 = 0x08; // 第四个LED灯亮 delay(500);P0 = 0x10; // 第五个LED灯亮 delay(500);P0 = 0x20; // 第六个LED灯亮 delay(500);P0 = 0x40; // 第七个LED灯亮 delay(500);P0 = 0x80; // 第八个LED灯亮delay(500);P0 = 0xFF; // 所有LED灯亮delay(500);P0 = 0x00; // 所有LED灯灭delay(500);}}```3. 将编写好的程序烧录到单片机中,并上电运行;4. 观察LED灯流水灯的效果,分析程序运行过程。
实验一流水灯实验一、实验目的1)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕捉判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪耀三下2)依据顺时针循环挨次点亮发光二极管3)经过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序按键正转闪耀反转五、实验过程中碰到的问题及解决方法1) 每次循环不论正转仍是反转程序,总先是先履行P1 口的 8 位 led 灯。
原由:在利用 KEIL 自带的库函数中的 _crol_ 和_cror_ 时,在正转和反转程序中应当调动次序的,开始没注意到。
更正后显示正常。
2)在开始实验的时候推行的是向来循环的方式,利用按键嵌套。
以后发现不理想,每次按键按到三次以上后进入死循环。
解决方案:利用一个按键,显示一次。
并加入按键开释,防备误动作。
指导老师署名:日期:实验一程序 :/******************************************************************** **************工程说明:本工程主要达成了一下功能:1,复位后演示全部功能2,灯闪耀三次3,流水灯正转4,流水灯反转函数说明:yanshi() :演示程序dengss() :闪耀程序right():正转程序left():反转程序scankey() :按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标记uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint);//1ms 延时void yanshi(void);//演示全部亮灯方式void dengss(void);//闪耀三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各样变量定义及函数申明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--)P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);P3=0xff;// 熄灭 D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等候按键开释}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等候按键开释}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等候按键开释}}}实验二准时器或实不时钟实验一、实验目的1)数码管动向显示技术2)准时器的应用3)按键功能定义二、实验实现的功能1) 经过按键能够设定准不时间,启动准时器,准不时间到,让12 个发光二极管闪耀,达成准时器功能。
题目:基于AT89C52单片机的多模式流水灯设计——程序设计一、概述AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程。
P为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。
功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。
主要管脚有:XTAL1(19 脚)和X TAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。
RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。
P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。
二、实验原理与设计方案设计平台:AT89C51单片机;PC机,含Keil软件平台,Proteus软件平台;单片机开发板。
如下图2为开发板:设计思路:本系统主要通过P1口来控制LED的闪烁,有10种模式(0~9)可供选择。
通过模式按键来选择需要的闪烁方式,这里主要通过几个计数器来控制,按下一次按键,计数器加1,模式切换到下一种模式。
同时利用数码管将模式显示出来。
另外还有一个加速和减速的按键,系统设定有30种速度可供选择。
按下一次加速键,速度计数器加1,按下一次减速键,速度计数器减1。
流水灯实验报告课程名称:LED流水灯实验报告学院:xxxxx学院专业:姓名:学号:年级:任课教师:【正文】一、实验的背景和意义单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把CPU随机存储器RAM、只读存储器ROM、多种输入输出口、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的应用。
大致可以分为以下几个范畴: 1、在智能仪器仪表上的应用,例如精确的测量设备;2、在工业控制中的应用,例如用单片机可以构成形式多样的控制系统,与计算机互联网构成二级控制系统等;3、在家用电器中的应用,可以从手机、电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话、集群移动通信、无线电话对讲机等;4、在医用设备中的应用,例如医用呼叫机、各种分析仪、超声诊断设备及病床呼叫系统等等;5在各种大型电器中的模块化作用,如音乐集成单片机,看是简单的功能,微缩在电子芯片中,就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O引脚。
系统已采用MCS—51系列单片机为中心器件来设计LED流水灯系统,实现LED左循环显示,并实现循环的速度可调。
二、设计目的1.学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
2.掌握汇编语言程序和C 语言程序设计方法。
3.培养实践技能,提高分析和解决实际问题的能力。
三、设计任务及要求 1.用个发光二极管作为显示电路 2.实现LED 动态显示 3.能连续循环显示 四、 设计思路LEDLED如果要让接在P1.0口的LED1亮起来,相反,如果要让接在P1.0口的LED1熄灭,那么只需要把P1.0口的电平变为高电平就可以了;同理,接在P1.1—P1.7口的其他7个LED 的点亮的熄灭的方法同LED1。
流水灯显示实验报告流水灯显示实验报告一、实验目的本实验旨在通过单片机控制LED灯的亮灭,实现流水灯的显示效果。
通过本实验,旨在巩固学生对单片机基本理论知识的理解,掌握流水灯显示的基本原理与设计方法,提高实践操作能力。
二、实验原理流水灯是一种常见的LED显示效果,通过控制LED灯的亮灭顺序和时间间隔,使LED灯以一定的速度逐次点亮或熄灭,形成流水般的效果。
本实验采用单片机控制LED灯的亮灭,通过编程实现流水灯的显示。
三、实验步骤1.准备实验材料(1)单片机开发板(2)LED灯若干(3)杜邦线若干(4)面包板(5)镊子、电烙铁等工具2.搭建硬件电路(1)将LED灯按照一定的顺序连接到单片机开发板的GPIO口上。
(2)使用杜邦线将电源连接到LED灯的正极和负极。
(3)连接单片机开发板与电脑的串口。
3.编写程序(1)打开单片机开发板的编程软件,如Keil uVision。
(2)编写程序代码,实现流水灯的显示效果。
程序代码包括初始化、延时、循环点亮和熄灭LED灯等部分。
(3)将程序代码下载到单片机开发板中。
4.调试与测试(1)打开电源,观察LED灯的亮灭情况,检查是否实现了流水灯效果。
(2)调整程序代码中的延时参数,改变LED灯的亮灭速度。
(3)检查程序代码中的语法错误和逻辑错误,确保程序的正确性。
四、实验结果与分析1.实验结果通过本次实验,我们成功地实现了流水灯的显示效果。
当电源接通后,LED灯按照设定的顺序逐次点亮或熄灭,形成流水般的效果。
同时,通过调整程序代码中的延时参数,我们还可以改变LED灯的亮灭速度。
2.结果分析本次实验的成功得益于正确的实验方法和步骤。
首先,我们准确地搭建了硬件电路,确保LED灯与单片机的连接正确;其次,我们合理地编写了程序代码,实现了流水灯的显示效果;最后,我们对实验结果进行了仔细的观察和调试,确保实验结果的正确性。
通过本次实验,我们不仅提高了实践操作能力,还巩固了对单片机基本理论知识的理解。
实验三流水灯控制实验一、实验目的1.熟练掌握单片机控制系统硬件电路的设计、测试;单片机监控程序的编写、调试及运行。
二、实验设备1.PC计算机;2.NEC全系列微控制器(单片机)开发工具EM/EZ-1系统;3.实验系统。
三、实验内容1.参考附录中的“LED灯控制电路原理图”及“实验DEMO程序”,编写并运行单片机监控程序,观察在实验板上实现对每个LED灯(LED1~LED12)的亮、灭控制。
2.编写程序实现流水灯功能(方案自行设计)。
四、实验要求1. 实验完成后,应请老师确认后再离开实验室,同时将实验报告写好,填写上班级和姓名后交实验教师。
2. 实验报告中要有完成实验内容2的实验步骤、过程、程序流程图、源程序代码清单、实验结果等内容,并对实验结果进行分析和总结。
1附录:1. LED灯控制电路原理图:2. LED灯控制单片机DEMO程序:#pragma sfrvoid delay( void ) /*软件延时函数*/{int i,j;for(i=0;i<=20000;i++)for(j=0;j<=200;j++);}void main( void ){/* initialize the port registers */P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/P15 =0x0; /*接在P150~P153上的LED灯熄灭*//* initialize the mode registers */2PM13 = 0xf0; /*P00~P03为输出口*/PM14 = 0xf0; /*P20~P23为输出口*/PM15 = 0xf0; /*P50~P07为输出口*/while(1){P13 = 0x0f; /*接在P130~P133上的LED灯点亮*/ delay(); /*延时*/P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/ P14 = 0x0f; /*接在P140~P143上的LED灯点亮*/ delay(); /*延时*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/ P15 = 0x0f; /*接在P150~P153上的LED灯点亮*/ delay(); /*延时*/P5 = 0x0; /*接在P150~P153上的LED灯熄灭*/ }}3。
单片机花样流水灯设计实验报告* * 大学物理学院单片机花样流水灯设计实验课题: 花样流水灯设计班级: 物理 *** 姓名: ***学号:【摘要】当今时代的智能控制电子技术,给人们的生活带来了方便和舒适,而每到晚上五颜六色的霓虹灯则把我们的城市点缀得格外迷人,为人们生活增添了不少色彩。
制作流水灯的方法有很多种,有传统的分立元件,由数字逻辑电路构成的控制系统和单片机智能控制系统等。
本设计介绍一种简单实用的单片机花样流水灯设计与制作,采用基于MS-51的单片机AT89C51和发光二极管、晶振、复位、电源等电路以及必要的软件组成的以AT89C51为核心,辅以简单的数码管等设备和必要的电路,设计了一款简易的流水灯电路板,并编写简单的程序,使其能够自动工作。
本设计用AT89C51单片机为核心自制一款简易的花样流水灯,并介绍了其软件编程仿真及电路焊接实现,在实践中体验单片机的自动控制功能。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
关键字:AT89C51 单片机流水灯数码管2【概述】1. 单片机及其发展概况单片机又称为单片微计算机,其特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时/计数器及终端系统等)全部集成在一个半导体芯片上。
单片机作为一种高集成度微型计算机,已经广泛应用于工业自动化控制、智能仪器仪表、通信设备、汽车电子与航空航天电子系统、智能家居电器等各个领域。
2. Protues仿真软件简介Protues以其数量众多的元件数据库、标准化的仿真仪器、直观的捕获界面、简洁明了的操作、强大的分析测试、可信的测试结果, 为电子工程设计节约研发时间,节省了工程设计费用。
利用Protues软件设计一款通过数码管显示计数时间的流水灯电路及Keil C软件编程后,再将两者关联则可以简单快速的进行仿真。
【实验设计目标】设计要求以发光二极管作为发光器件,用单片机自动控制,对8个LED灯设计至少3种流水灯显示方式,每隔20秒变换一次显示花样,计时通过一个二位七段数码管显示。
1 / 4
流水灯实习报告
一、实验原理
单片机通过P0口连接锁存器74ls273,P0同时作为低八位地址,实验板内
P2口连接74ls138,任意一个输出连接74ls273片选,再将74ls273接八个LED
灯,通过软件控制对74ls273送入显示数据就可以按要求显示了。
二、硬件原理图
三、实验程序
ORG 00H
AJMP START
ORG 001BH
AJMP INT
ORG 0100H
START:
MOV SP,#60H
MOV TMOD,#10H
MOV TL1,#00H
MOV TH1,#4CH
MOV R0,#00H
MOV R1,#20
SETB TR1
SETB ET1
SETB EA
2 / 4
SJMP $
INT:
PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
CLR TR1
MOV TL1,#B0H
MOV TH1,#3CH
SETB TR1
DJNZ R1,EXIT
MOV R1,#20
MOV DPTR,#DATA
MOV A,R0
MOVC A,@A+DPTR
MOV DPTR,#8000H
Movx @DPTR,A
INC R0
ANL 00,#07H
EXIT:
POP DPH
3 / 4
POP DPL
POP PSW
POP ACC
RETI
DATA:
DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,0H
END
四、实验功能
以实验机上74LS273做输出口,接八只发光二极管,编写程序,使开机后
第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒
钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全
灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去.
五、实验总结
通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提
高。而安排课程设计的基本目的,是在于通过理论与实际的结合、人与人的沟
通,进一步提高思想觉悟和领悟力。
尤其是观察、分析和解决问题的实际工作能力。它的一个重要功能,在于
运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论
知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提
出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到
底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计
划,改变学习内容与方法提供实践依据。实际能力的培养至关重要,而这种实
际能力的培养单靠课堂教学是远远不够的,必须从课堂走向实践。这也是一次
预演和准备毕业设计工作。通过课程设计,让我们找出自身状况与实际需要的
差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的
知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我
4 / 4
系人才培养计划的完善和课程设置的调整。课程设计之后,我们普遍感到不仅
实际动手说,这应该是个警示,在剩下的大学生活里,我应该好好珍惜,好好
学习各方面的知识。在单片机方面也是了解了一些些,我相信这次课程设计会
对我以后的工作通过这次单片机课程设计,我不仅加深了对单片机理论的理
解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新
精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改
进,使之功能不断完善,成为自己的东西。