基于51单片机的流水灯实训报告

合集下载

51单片机流水灯实验报告

51单片机流水灯实验报告

51单片机流水灯实验报告51单片机流水灯实验报告引言:51单片机是一种常用的微控制器,广泛应用于各种电子设备中。

流水灯实验是学习单片机编程的基础实验之一,通过控制多个LED灯的亮灭顺序,可以了解单片机的基本原理和编程方法。

一、实验目的本实验旨在通过使用51单片机,设计并实现一个简单的流水灯电路,加深对单片机原理的理解,掌握基本的单片机编程方法。

二、实验原理51单片机是一种8位微控制器,具有强大的功能和广泛的应用。

流水灯实验中,我们需要控制多个LED灯的亮灭顺序,通过编写程序,将指令发送给单片机,控制LED灯的亮灭。

三、实验器材1. 51单片机开发板2. LED灯若干3. 面包板4. 连接线四、实验步骤1. 将51单片机开发板连接到电脑上,打开开发板的编程软件。

2. 在编程软件中,新建一个工程,选择适合的单片机型号。

3. 编写程序,设置相应的引脚为输出模式,并配置流水灯的亮灭顺序。

4. 将单片机开发板与面包板连接,将LED灯连接到相应的引脚上。

5. 将编写好的程序下载到单片机中。

6. 打开电源,观察LED灯的亮灭顺序是否符合预期。

五、实验结果与分析经过实验,我们成功地实现了一个简单的流水灯电路。

LED灯按照设定的顺序亮灭,形成了流水灯的效果。

通过调整程序中的指令顺序,我们可以改变LED灯的亮灭顺序,实现不同的流水灯效果。

六、实验心得通过这次实验,我对51单片机的原理和编程方法有了更深入的了解。

流水灯实验是一种简单但基础的实验,通过实际操作和编程,加深了我对单片机的理解和掌握。

在实验过程中,我遇到了一些问题,如LED灯连接错误、程序逻辑错误等,但通过仔细检查和调试,最终成功解决了这些问题。

这次实验让我更加熟悉了单片机的应用,为以后更复杂的项目打下了基础。

七、实验拓展在掌握了基本的流水灯实验后,我们可以进一步拓展实验内容。

例如,可以增加控制开关,实现对流水灯的启停控制;可以设计不同的流水灯效果,如闪烁、变速等;还可以与其他传感器、模块进行组合,实现更多功能和效果。

电路板流水灯实训报告

电路板流水灯实训报告

一、实验目的1. 掌握电子电路板的基本制作流程,包括电路设计、元件焊接、电路调试等。

2. 熟悉流水灯电路的工作原理,理解其电路设计及编程方法。

3. 提高动手能力和电子电路分析能力。

二、实验原理流水灯电路是一种常见的电子电路,通过单片机或其他控制器控制LED灯的依次点亮和熄灭,形成流水效果。

本实验采用51单片机作为控制器,通过编写程序控制LED灯的亮灭顺序,实现流水灯效果。

三、实验器材1. 51单片机实验板2. LED灯8个3. 电阻(220Ω)8个4. 接线端子5. 编程器6. 电源7. 焊接工具四、实验步骤1. 电路设计根据实验要求,设计流水灯电路原理图。

电路主要由51单片机的P0口输出,连接8个LED灯和8个220Ω电阻组成。

电阻起到限流作用,保护LED灯不被烧毁。

2. 元件焊接根据电路原理图,将元件焊接在实验板上。

注意焊接顺序和焊接质量,确保电路连接正确。

3. 编程使用编程器将编写好的程序烧录到51单片机中。

程序主要实现以下功能:- 初始化P0口为输出模式;- 设置延时函数,控制LED灯的点亮和熄灭时间;- 循环控制P0口的值,实现LED灯的流水效果。

4. 电路调试连接电源,观察LED灯的流水效果。

若流水效果不理想,检查电路连接是否正确,调整延时函数参数,直至达到预期效果。

五、实验结果与分析实验成功制作了一块流水灯电路板,实现了LED灯的流水效果。

实验过程中,遇到以下问题:1. 电阻值选择不当,导致LED灯亮度不稳定。

2. 焊接过程中,个别焊点虚焊,导致电路连接不良。

针对以上问题,采取以下措施:1. 调整电阻值,使LED灯亮度均匀。

2. 重新焊接虚焊点,确保电路连接良好。

六、实验总结通过本次电路板流水灯实训,掌握了以下知识和技能:1. 电子电路板的基本制作流程。

2. 流水灯电路的工作原理及编程方法。

3. 电子元件焊接技巧和电路调试方法。

本次实验提高了自己的动手能力和电子电路分析能力,为以后的学习和工作打下了基础。

单片机流水灯实验总结

单片机流水灯实验总结

单片机流水灯实验总结引言:单片机流水灯实验是学习嵌入式系统和单片机基础的重要实践环节。

通过设计和搭建流水灯电路,我们可以深入理解单片机的工作机制和时序控制。

本文将总结我在流水灯实验中的心得体会,分享一些有关单片机流水灯设计的经验。

一、实验概述这个实验的目标是设计一个能够连续闪烁的流水灯电路,通过单片机的控制,实现一串灯按照固定的顺序不断亮灭的效果。

我们可以通过改变灯的亮灭时间和顺序,来获得不同的流水灯效果。

二、选材准备在进行单片机流水灯实验之前,我们需要准备一些基本的材料和工具。

首先,我们需要一块单片机开发板,最常用的是STC89C52系列的开发板,该开发板搭载了一颗51单片机。

此外,我们还需要准备串联的LED灯,该灯可以选择常见的5mm直径的LED灯,同时需要配备一定数量的适量电阻用于限流。

三、实验步骤1. 连接电路:首先,需要将电路图中的元件按照连接要求连接好,确保各个元件之间的连接无误且紧固可靠。

2. 编写程序:接下来,我们需要使用Keil等软件编写单片机的程序。

通过学习嵌入式C语言编程,我们可以控制单片机的输入输出,包括控制LED灯的亮灭。

3. 烧录程序:编写完程序后,需要借助烧录器将程序烧录到单片机中。

这样单片机才能按照我们设计的程序来控制灯的状态。

4. 调试与测试:当烧录完成后,可将单片机开发板上的电源与电源线连接,并打开开关,此时,流水灯便会开始闪烁。

通过观察流水灯的灯光变化,我们可以判断我们的程序是否正确。

四、实验心得通过进行单片机流水灯实验,我深刻体会到了嵌入式系统的编程和硬件设计的重要性。

在编写程序时,我们需要仔细思考流水灯的亮灭规律和顺序,以及每个灯亮灭的时间间隔。

这需要我们对嵌入式C语言的基本语法和单片机的时序控制有一定的理解。

另外,在实验过程中,我遇到了一些问题和挑战。

例如,如何控制灯的顺序和亮灭时间,如何调整程序的延时时间等。

在解决这些问题的过程中,通过查阅资料和与同学的讨论,我逐渐积累了解决问题的经验,并在实践中不断调试和优化程序。

《单片机原理及应用》基于51单片机实验箱的流水灯设计

《单片机原理及应用》基于51单片机实验箱的流水灯设计

《单片机原理及应用》基于51单片机实验箱的流水灯设计一、实验目的和要求1.掌握单片机基本资源使用。

2.掌握单片机电路原理图。

3.掌握单片机C语言软件开发以及试验箱使用。

二、实验内容和原理实验内容:1.绘制程序流程图并编写C语言程序2.在实验箱中进行测试,最后提交实验报告三、主要仪器设备Keil4软件、C51单片机实验箱。

四、操作方法与实验步骤4.1 题目要求使用单片机实验箱实现流水灯功能。

4.2 系统设计思路主程序中实现流水灯功能,时间单位采用500ms信号,作为实现流水灯的发光二极管和单片机的P1相连。

4.2 C程序编制(包含详细的文字和程序流程图)#include<intrins.h>#include<reg52.h>#define uchar unsiged char#define uint unsigned intvoid mDelay(uint Delay){int i;for(;Delay>0;Delay--)for(i=0;i<110;i++);}void main(){unsigned char a,i;While(1){a=0x01;for(i=0;i<8;i++){a=-crol-(a,1)P2=amDelay(500);}}4.3 测试分析(包含文字和图像叙述)在KeilC51软件软件中编写好程序并调试好后,连接单片机实验箱,实验结果如下:实验箱上连接的八个灯,每个灯间隔500ms的时间一个接一个的循环闪烁。

五、讨论和心得(不少于100字)通过此次实验,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,试验过程还是比较繁琐,但是还是完成了这次试验,使我对于理解单片机的基本原理更加深刻,将所学知识运用到实践中,在实践中发现问题,强化理论知识。

课程名称:单片机原理及应用实验项目名称(二):定时计数器的应用—按钮控制LED灯四、实验目的和要求1.掌握单片机基本资源使用。

51单片机实验报告(共五则)

51单片机实验报告(共五则)

51单片机实验报告(共五则)第一篇:51单片机实验报告51单片机实验报告实验一点亮流水灯实验现象 Led灯交替亮,间隔大约10ms。

实验代码#include 〈reg51、h> void Delay10ms(unsigned int c);voidmain(){)1(elihwﻩ{ ﻩP0= 0x00;Delay10ms(50);;ffx0 =0Pﻩﻩ;)05(sm01yaleDﻩ } } void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)——b;0〉b;83=b(rofﻩ{ ﻩﻩfor(a=130;a〉0;a--);}ﻩﻩ}} 实验原理W W hi i le(1)表示一直循环。

循环体内首先将P0 得所有位都置于零,然后延时约5 5 0*10=500ms,接着 0 P0 位全置于 1 1,于就是 D LED 全亮了。

接着循环,直至关掉电源..延迟函数就是通过多个for r 循环实现得。

实验 2 流水灯(不运用库函数)实验现象起初 led 只有最右面得那一个不亮,半秒之后从右数第二个led也不亮了,直到最后一个也熄灭,然后 led 除最后一个都亮,接着上述过程 #includemain(){unsigned char LED;LED = 0xfe;while(1){ ﻩ;DEL = 0PﻩDelay10ms(50);00x0 == 0P(fiﻩ {;1〈〈 DEL = DELﻩ)ﻩ;efx0 = DELﻩ} ﻩ}ﻩ} void Delay10ms(unsigned int c){unsigned char a,b;for(;c>0;c-—){)—-b;0〉b;83=b(rofﻩ{ ﻩﻩﻩ;)--a;0>a;031=a(rofﻩ} ﻩ} ﻩ} 实验原理这里运用了C语言中得位运算符, , 位运算符左移, , 初始值得二进制为1111 1 110, 之后左移一次变成1111 1 100 0,当变成00000 0000 时通过 f if 语句重置 1 1 11 1 11110、延迟函数在第一个报告已经说出了,不再多说..实验 3 流水灯(库函数版)实验现象最开始还就是最右边得一个不亮,然后不亮得灯转移到最右边得第二个,此时第一个恢复亮度,这样依次循环.实验代码#include 〈reg51、h> #include 〈intrins、h〉void Delay10ms(unsigned int c); void main(void){unsigned char LED;;EFx0 = DELﻩ)1(elihwﻩ{ ﻩP0 = LED;;)05(sm01yaleDﻩﻩ;)1,DEL(_lorc_ = DELﻩ} ﻩ} void Delay10ms(unsigned in t c){unsigned chara, b;for(;c〉0;c——){ ﻩfor(b=38;b〉0;b—-){ ﻩﻩ;)-—a;0〉a;031=a(rofﻩ} ﻩ}}实验原理利用头文件中得函数,_cro l_(,), 可以比位操作符更方便得进行 2 2 进制得移位操作, , 比位操作符优越得就是,该函数空位补全时都就是用那个移位移除得数据, , 由此比前一个例子不需要f if 语句重置操作..数码管实验实验现象单个数码管按顺序显示0-9与 A-F。

流水灯报告

流水灯报告

基于51单片机流水灯控制系统的设计实习心得随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。

在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。

本学期我们就学习了单片机这门课程,感觉是有点难呢。

也不知道整个学习过程是怎么过来得,可是时间不等人。

时光飞逝,一转眼,一个学期又进尾声了,俗话说“好的开始是成功的一半”。

说这次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。

其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。

最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

这次的实习算起来在实验室的时间只有一个月,硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。

第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。

我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

实训报告单片机流水灯

实训报告单片机流水灯

一、实验目的1. 熟悉单片机的基本原理和组成,掌握51单片机的编程方法。

2. 理解单片机I/O口的使用,学会利用单片机控制LED灯的流水灯效果。

3. 提高动手实践能力,培养团队协作精神。

二、实验环境1. 实验设备:51单片机开发板、LED灯、面包板、电源、连接线等。

2. 实验软件:Proteus仿真软件、Keil uVision5集成开发环境。

三、实验原理流水灯实验是单片机入门级实验之一,通过控制单片机的I/O口输出高低电平,使LED灯依次点亮,形成流水灯效果。

实验中,利用单片机的定时器产生定时中断,每隔一定时间改变I/O口的输出状态,实现LED灯的流水灯效果。

四、实验步骤1. 打开Proteus软件,新建一个工程项目,添加51单片机开发板和LED灯等元件,绘制电路图。

2. 打开Keil uVision5,新建一个C51工程项目,选择对应的单片机型号。

3. 编写程序:(1)初始化I/O口:将P0口设置为输出模式,将P1口设置为输出模式。

(2)设置定时器:选择合适的定时器,设置定时时间,使其产生定时中断。

(3)编写中断服务程序:在中断服务程序中,改变I/O口的输出状态,实现LED灯的流水灯效果。

(4)编写主程序:在主程序中,启动定时器,进入中断服务程序。

4. 编译程序,生成HEX文件。

5. 将生成的HEX文件导入Proteus软件,运行仿真实验。

6. 观察实验现象,检查LED灯的流水灯效果是否正常。

五、实验结果与分析1. 实验现象:在Proteus软件中,LED灯依次点亮,形成流水灯效果。

2. 实验分析:通过设置定时器,每隔一定时间改变I/O口的输出状态,实现LED 灯的流水灯效果。

实验过程中,可以调整定时器的定时时间,改变流水灯的速度。

六、实验总结1. 本实验使我们对单片机的基本原理和组成有了更深入的了解。

2. 通过编写程序,掌握了51单片机的编程方法,提高了编程能力。

3. 实验过程中,我们学会了利用单片机控制LED灯,实现了流水灯效果。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告:实验一:用C51实现流水灯实验实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。

实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。

使用r1或rr a实现位的转换。

实验内容:通过仿真来实现实验电路图代码如下;for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;实验结果:实验程序:#include<REG51.H>void delay();//延时函数声明void main()//主函数{unsigned charx,num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;}}void delay()//延时函数,无符号字符型变量i为形式参数{unsigned int j,k;//定义无符号字符型变量j和kfor(k=0;k<500;k++)//双重for循环语句实现软件延时for(j=0;j<100;j++);}实验总结:这次试验通过仿真实验软件实现流水灯实验,充分学会了keil 软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。

也认识到仿真实用性。

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、还有就是焊接的时候切记不能拿着电烙铁和别人激动的聊天,不能拿着电烙铁对人或事物指指点点,以免伤到别人和自己或烧坏公共财物等。
4、焊接完了,还要对电烙铁进行保护措施——在电烙铁的笔头抹上一层锡,防止笔头被氧化!
周二
1、上午跟下午都是进行实物焊接。看着电脑上面的仿真电路图来一步步焊接,还要在脑海里边想象这样子焊接能否做到不用飞线,到最后又能让人看起来一目了然,清晰明了的感觉!不会看起来很混乱的联想图!所以,焊接是一个很考验人的耐性跟思维能力的功夫!在单片机的P0端口,接数码管的时候,要接上一个排阻来保护电路,因为在单片机内部除了P0端口,其它端口都有接内部电阻,所以,一定要在P0端口外接一个排阻来保护电路!
周五
我都在努力着完成最后一步工作,把程序下载到单片机中,刚开始的时候,经常出现CPU跟MCU握手失败,程序无法载入单片机中。我努力想到底哪里出错了,后来在一个同学的帮忙下,终于找到了出现问题的地方,就是数码管的1脚还没有与单片机的21脚焊接上。经过一会的补救,终于完成了!
总程序:
#include<reg51.h>
后来,老师就教我们編数码管的程序,然后结合流水灯的程序,通过修改后,仿真到模拟电路中看流水灯的走动和数码管的显示是否按你设想的结果一致,如果不一致,就要请教老师和同学。
最后,老师教给我们一个作业——写实训报告,后来我们都在埋头苦干中。
周四
由于部门的辩论赛活动,我不得不请假,所以就没有来参加实训!听同学们说老师叫我们自己动手把之前没完成的工作继续去完成!主要还是編程序和写实训报告。
uchar wei[2]={0xfe,0xfd};
bit start=0;
bit turnflag=0;
uchar num=0;
void delay(uint ms);
void runled(void);
void Display(uchar num);
void main(void)
{
uchar i =0;
#define uchar unsigned char
#define uint unsigned int
#define _DELAY_TIME_ 200
sbit addkey=P3^0;
sbit deckey=P3^1;
uchar seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//cc
2、晚上学着怎么去编流水灯程序。编完后就仿真一下,看看程序有没有出错。出现错误和警告的信息时,要找到它并认真思考错的原因!
3、发光二极管内部是具有发光特性的PN结。当PN结导通时,依靠少数载流子的注入以及随后的复合而辐射发光。LED在正向导通之前几乎没有电流。当电压超过开始电压时,电流就急剧上升,从而发亮。从原理图中可以看出,LED的阳极已经接到电源,只要控制LED的阴极为低电平,LED灯就会发亮,要使得八只发光二极管从上到下点亮,只需单片机编程控制八只发光二极管从上到下顺序为低电平即可。
基于51单片机的流水灯实训报告
实训报告
实训名称:流水灯的制作实习
专业:计算机控制班级:控来自1215组员:郭思怡学号:07121512
指导老师:黄练
实习时间:12-13第2学期第4周
实训目的:熟悉流水灯的制作过程,学会编程序和排版,掌握焊接技术!巩固课堂理论知识!
实训设备:电路板、电烙铁、LED 8个、电阻、电容、晶振、排阻、锡线、51单片机、底座、按键开关2个、总开关1个、数码管、数字万用表、镊子、钳子等
4、因为知识有限,編程序的时候只能用比较笨却最易理解的方法,它采用顺序程序结构,这就是位控法。它用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。
周三
下午检测电路是否短路或者断路等问题,如果出现问题,就要找出出现问题的地方并改正。我用数字万用表来检查我的作品是否短路,可是,因为不懂得怎么用数字万用表,所以一开始的时候用红黑表笔在电路上乱接,然后就经常听到“滴滴”短路的声音!后来有一位师兄告诉我说:“要用表笔测焊接时的靠得最近的两条线路来检测它是否短路······”真的很感谢师兄的教导。
turnflag =0;
P1=0xFF;
delay(2);
while(1)
{
if(addkey==0 |deckey==0)
{
P1=0xFF;
break;
}
runled();
}
EA=1;
ET0=1;
TMOD=0x01;
TR0=1;
TH0=(65536-15000)/256;
TL0=(65536-15000)%256;
num=99;
}
}
}
void runled(void)
{
uchar led=0x80;
uchar i=0;
if(1==turnflag)
{
led=0x80;
下午,就按着上午的的线路图来进行实物摆设和焊接。摆设的时候,有些元件是需要区分正负极的,不可接反!焊接的时候,是有很多东西要注意的,例如:
1、头部跟电烙铁的距离不能靠的太近或太远,太近会被飞溅的锡的氧化物溅到并烫到你的皮肤或眼睛等;太远则会看不清,焊接的时候会出现锡洞或者漏焊的情况!
2、焊接一个点的时候,焊接时间应该保持在2~4秒内!时间太短的话,那锡量就少,最后的时候可能会出现零件不稳固、断路等情况!时间太长就会出现粘锡、浪费锡、短路等现象!
while(1)
{
//runled();
if(addkey==0)
{
delay(10);
while(0==addkey);
if(num<99)
num++;
else
num=0;
}
else if(deckey==0)
{
delay(10);
while(0==deckey);
if(num>0)
num--;
else
实训内容:(包括硬件电路分析,电路组成,各组成的作用,工作原理,关键点的信号状态,关键点的检查,故障分析,故障检测和排查,电路调整的地方,细节注意事项等等)
周一
上午,老师教我们用proteus仿真软件做仿真电路图。并教我们用白纸描出电路板,然后在那张纸上画出你要摆设的元件,之后就经过在纸上的多次修改后得出的最好的线路连接方案图。
相关文档
最新文档