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灯连接错误、程序逻辑错误等,但通过仔细检查和调试,最终成功解决了这些问题。

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

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

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

单片机流水灯实验总结

单片机流水灯实验总结

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

实验二流水灯报告

实验二流水灯报告

一、任务分析1、了解 CPU 对 I/O 口的操作方法。

2、学会使用 51 系列单片机 I/O 口的基本输入、输出功能。

3、连接实验系统上的单片机 I/O 口、开关及 LED 灯,设计一个简易流水彩灯。

拨动开关 K1、K0 分别实现 4 种不同的流水彩灯工作方式:二、设计思路1、先对P3.0和P3.1口置1;2、将P3.0和P3.1的值读入寄存器A中;3、判断P3.0和P3.1口的值,由于两个按键有四种组合方式,所以P3.0和P3.1的值分别为00、01、10、11;通过JB跳转程序来判断哪个按键按下;按键按下的不同分别跳转到不同的子函数中;4、通过P3.0和P3.1的值分别跳转到设置P1口工作状态的四个子程序中;5、四个子程序中分别是LED灯闪烁的四种方式,用SETB P1.X 的方式来让LED灯点亮,还应写有Delay函数,Delay函数中设置延时为0.5ms;用CLR的方式来让LED灯灭。

若要让LED全亮或全灭,则对P1口整体赋值。

三、程序流程图图一程序流程图四、实验程序ORG 0030Hmain:SETB P3.0SETB P3.1;未按下按键MOV A, P3ANL A ,#03HMOV R0, #7;MOV R1 ,#7;MOV R2, #7Delay:MOV R6, #1000LP2:MOV R7,#500LP:DJNZ R7,LPDJNZ R6, LP2;延时程序CJNE A,#00H,Moshi1;不等跳到Moshi1,相等则顺序往下执行Moshi0Moshi0:MOV A,#80H ;10000000Next:RR A ;左循环MOV P1,A ;00000001ACALL DelayDJNZ R0,Next ;循环七次Next0:RL AMOV P1,AACALL DelayMOV R0, #7DJNZ R0, Next ;循环七次MOV A, P3 ;A的值改变了要赋值回来,判断语句ANL A ,#03HCJNE A,#01H,Moshi2 ;相等才往下执行,Moshi1:CJNE A,#01H,Moshi2 ; 相等则顺序往下执行MOV A,#01H ;0000 0001MOV P1,#01HNext1:RL A ;0000 0010ORL A,P1 ;或:0000 0011MOV P1,A ;A和P1与完之后结果放到P1里面MOV R0,#07HDJNZ R0, Next1 ;循环七次MOV P1 ,#00HMOV A, P3 ;A的值改变了要赋值回来,判断语句ANL A ,#03HCJNE A,#10H,Moshi1 ;相等才往下执行,Moshi2:MOV P1, 0FFHACALL DelayACALL DelayMOV P1, 0FEH ;11111110ACALL DelayMOV A,P1 ;A 11111110Next2:RL A ; A 11111101ANL A,P1 ;A 11111100MOV P1,ADJNZ R0,Next2 ;循环操作 A 11111100左移后11111001&P1:11111100=11111000;循环9次以后应该需要再判断一次状态。

数电流水灯的实训报告

数电流水灯的实训报告

本次实训旨在通过实际操作,让学生掌握数电流水灯的制作原理、电路连接方法以及编程技巧。

通过制作数电流水灯,提高学生的电子电路设计能力、编程能力和动手实践能力,同时加深对单片机原理的理解。

二、实训环境1. 实训器材:51单片机开发板、LED灯条、电阻、电位器、连接线、面包板、编程软件等。

2. 实训场地:电子实验室。

三、实训原理数电流水灯是通过单片机控制LED灯条上的LED灯依次点亮,模拟流水灯效果。

具体原理如下:1. 单片机通过编程,控制各个LED灯依次点亮,实现流水灯效果。

2. 通过电位器调节LED灯的亮度,使流水灯效果更加自然。

四、实训过程1. 电路连接(1)将51单片机的I/O口与LED灯条上的LED灯依次连接。

(2)将电阻串联在LED灯两端,起到限流作用。

(3)将电位器连接在LED灯条的正极和地之间,用于调节亮度。

2. 编程(1)使用C语言编写单片机程序,实现LED灯依次点亮的功能。

(2)设置延时函数,控制LED灯点亮的时间间隔。

(3)使用电位器读取亮度值,调整LED灯亮度。

3. 调试(1)将编写好的程序下载到单片机中。

(2)观察LED灯流水灯效果,根据实际情况调整延时时间和亮度。

经过实际操作,成功制作出数电流水灯,实现了流水灯效果。

在调试过程中,根据实际情况调整了延时时间和亮度,使流水灯效果更加自然。

六、实训总结1. 通过本次实训,掌握了数电流水灯的制作原理和电路连接方法,提高了电子电路设计能力。

2. 学会了使用C语言编写单片机程序,提高了编程能力。

3. 增强了动手实践能力,提高了解决问题的能力。

4. 加深了对单片机原理的理解,为今后学习相关课程奠定了基础。

七、改进意见1. 在电路设计方面,可以考虑使用模块化设计,提高电路的稳定性和可维护性。

2. 在编程方面,可以尝试使用更高级的编程技巧,使流水灯效果更加丰富。

3. 在实训过程中,可以增加更多的实验内容,提高学生的综合能力。

通过本次实训,我深刻认识到理论知识与实践操作相结合的重要性。

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单片机的流水灯实训报告

基于51单片机的流水灯实训报告
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;

实验一51单片机流水灯实验实验报告

实验一51单片机流水灯实验实验报告
如果使用带进位的位移运算指令rlc和rrc则需要定期把cy置0否则会出现同时亮起两个发光二极管的情况
实验一 51单片机流水灯实验实验报告
“流水灯”实验报告 一、实验目的 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.在仿真系统中绘制RG 0000H Delay: MOV R0, #0FFH SJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOP MOV P0, A DJNZ R1, Delay2 CLR P2.7 DJNZ R0, Delay1 CLR P3.7 RET Move: MOV R2, #7H END MOV R3, #7H RMove: RL A MOV P0, A CALL Delay DJNZ R2, RMove LMove: RR A MOV P0, A CALL Delay DJNZ R3, LMove SJMP Move 五、实验结果 为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。 在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验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。

单片机流水灯实验总结

单片机流水灯实验总结

单片机流水灯实验总结单片机流水灯实验是学习单片机编程的基础实验之一,通过这个实验可以了解单片机的基本输入输出功能,掌握单片机的编程和控制方法。

下面我将对单片机流水灯实验进行总结,包括实验原理、实验步骤、实验结果以及实验中遇到的问题和解决方法。

实验原理。

单片机流水灯实验是利用单片机的GPIO口控制LED灯的亮灭,通过不同的控制方式实现LED灯的流水效果。

在单片机中,通过将相应的GPIO口输出高电平或低电平来控制LED的亮灭,从而实现流水灯的效果。

实验步骤。

1. 硬件连接,将单片机和LED灯按照电路图连接好,确保连接正确无误。

2. 编写程序,利用单片机编程软件编写流水灯控制程序,设置相应的GPIO口输出高低电平的时间间隔和顺序。

3. 烧录程序,将编写好的程序通过编程器烧录到单片机中。

4. 调试程序,连接好电路后,通过上电测试程序,观察LED灯的流水效果是否符合预期。

实验结果。

经过以上步骤,我们成功实现了单片机流水灯的效果。

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

实验结果符合预期,证明了程序编写和硬件连接的正确性。

实验中遇到的问题和解决方法。

在实验过程中,我们遇到了一些问题,例如LED灯未按照预期顺序亮起、熄灭或者有闪烁现象。

经过检查和调试,发现是程序编写中的逻辑错误或者硬件连接接触不良导致的。

通过仔细排查和调试,我们成功解决了这些问题,确保了实验的顺利进行和结果的准确性。

总结。

通过本次单片机流水灯实验,我们深入了解了单片机的GPIO口控制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转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

51单片机流水灯实验报告

51单片机流水灯实验报告

51单片机流水灯实验报告一、实验目的1.熟悉51单片机的硬件资源2.掌握51单片机的I/O口编程3.掌握51单片机的定时器/计数器编程二、实验原理流水灯是一种简单的电子设计,通过依次点亮和熄灭多个LED灯来形成流水灯的效果。

本实验使用的是51单片机,它有40个I/O口和3个定时器/计数器,可以方便地实现流水灯的效果。

三、实验器材1.51单片机开发板B数据线3.LED灯若干4.面包板5.连线材料(公对公、公对母杜邦线)四、实验过程1.准备工作:a.将51单片机开发板和LED灯连接起来,将LED灯依次插在面包板上,并与51单片机的I/O口相连接。

b.连接电脑与51开发板,使用USB数据线将它们连接起来。

2.编写程序:a. 打开Keil开发环境,新建一个工程。

b.在C代码文件中编写流水灯的控制程序,并引用51单片机的头文件和IO口控制相关的函数。

代码示例:```c#include <reg51.h>sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;sbit LED5 = P1^4;void delay(unsigned int t)while(t--)for(unsigned int i = 0; i < 125; i++);}void maiwhile(1)LED1=0;//点亮LED1delay(1000); // 延时LED1=1;//熄灭LED1LED2=0;//点亮LED2delay(1000); // 延时LED2=1;//熄灭LED2LED3=0;//点亮LED3delay(1000); // 延时LED3=1;//熄灭LED3LED4=0;//点亮LED4delay(1000); // 延时LED4=1;//熄灭LED4LED5=0;//点亮LED5delay(1000); // 延时LED5=1;//熄灭LED5}}```3.烧录程序:a.将开发板上的烧录开关调整为“USB”模式。

单片机流水灯实验报告

单片机流水灯实验报告

单片机流水灯实验报告单片机流水灯实验报告一、实验目的本实验旨在通过单片机控制八个LED灯,实现流水灯效果。

通过本实验,我们希望达到以下目的:1.深入理解单片机的I/O端口的工作原理和使用方法。

2.掌握单片机定时器/计数器的工作原理和使用方法。

3.学会编写简单的单片机程序,实现特定的LED灯控制。

4.通过实践操作,提高单片机软硬件的综合应用能力。

二、实验设备1.单片机开发板2.电脑一台3.八个LED灯4.杜邦线若干5.电阻、电容等电子元件三、实验原理本实验采用AT89C51单片机作为主控芯片。

八个LED灯分别连接到P1端口的P1.0到P1.7。

通过编程控制P1端口的每一个引脚,实现对LED灯的亮灭控制。

使用定时器/计数器实现延时,达到流水灯效果。

四、实验步骤和内容1.搭建硬件电路将八个LED灯、一个上拉电阻以及相应的杜邦线连接至单片机开发板。

确保电源正确连接,并注意LED灯的长脚为正极,短脚为负极。

2.编写程序使用Keil C51编写程序,实现如下功能:点亮每个LED灯一定的时间,然后熄灭。

重复此过程,形成流水灯效果。

代码如下:#include <reg51.h> //包含51单片机的头文件#define LED P1 //定义LED为P1端口void delay(unsigned int time) //延时函数{unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);}void main() //主函数{while(1) //程序一直循环执行{unsigned char i=0; //定义一个变量i,用于循环控制LED灯while(i<8) //循环点亮每个LED灯{LED=~(0x01<<i); //点亮第i个LED灯delay(50000); //延时50ms(50*1275us)i++; //变量i加1,控制下一个LED灯}}}3.编译程序将程序编译为二进制文件,生成HEX文件。

流水灯控制的实验报告

流水灯控制的实验报告

一、实验目的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灯流水灯的效果,分析程序运行过程。

实验一-51单片机流水灯实验-实验报告5页

实验一-51单片机流水灯实验-实验报告5页

实验一-51单片机流水灯实验-实验报告5页实验目的:通过51单片机控制LED流水灯的实验,提高学生对于51单片机I/O端口控制的掌握程度,并加深对于“流水灯原理”的理解,在此基础之上,提高同学们对于算法的理解与启发式思路。

实验器材:1. 计算机及Keil C51开发软件。

2. STC89C52单片机开发板一块。

3. LED灯若干(使用的LED有红、黄、绿、蓝、紫共5种,将每种颜色灯各6枚组合成一共30颗灯)。

4. 单片机烧录器。

实验原理:数码管实验就是在P0口中,以位选方式驱动数码管,以位选控制器件的组成电路。

流水灯实验就是在P1口中,以位移方式驱动LED灯,以主控程序的组成电路。

实验内容:实验中使用Keil C51软件编写程序,由程序控制单片机的P1口输出电平,从而控制LED的灯光闪烁。

LED灯的控制方式为从左到右控制LED逐层点亮或逐层熄灭,或者从左到右逐层递增亮度或递增颜色。

另外,LED灯的控制还可以从中间开始点亮或者点熄,并在两边逐层变化。

实验时,需要先理清楚流水灯的控制原理,明确各个控制变量的功能,并制定出相应的算法,在程序中进行实现。

实验步骤:1. 将30个LED灯按照左到右的次序排列好,将其中一个LED固定在开发板上的对应P1口位置上。

2. 根据实验要求,编写一个程序,对于LED的灯光状态进行控制,使LED灯从左到右依次变亮或变暗。

编写程序时可以采用多种实现方式,如如果使用循环语句,可以循环控制LED序列中的每个灯的亮度状态,使得程序能够不断运行直到停止。

3. 编写完成程序后,通过单片机烧录器,将程序烧录到开发板上,并将开发板上的电源连接上。

4. 开发板接通电源后,可以看到电路中的LED发出不同的亮光信号,如果控制程序设计得好,可以实现一些比较有意思的效果,如从起始位置到中间逐渐点亮,或者从中间到两侧依次点亮,等等。

实验结果:通过程序的编写和烧录,可以实现对于LED流水灯的控制。

程序运行期间会通过P1口输出电平信号,控制LED灯的点亮和熄灭,从而实现LED的流水灯效果。

基于51单片机的流水灯设计报告

基于51单片机的流水灯设计报告

自动化技术综合实训报告实训题目:基于单片机的流水灯设计院系:信自学院自动化系专业:自动化班级:自动化XXX班姓名:XXX学号:XXX指导教师:XXX实训地点:XXX开课时间:.1 - 2013.7.12目录1实训目的...............................................................................................................................- 3 -2实训要求...............................................................................................................................- 3 -3绪论.......................................................................................................................................- 4 -引言.......................................................................................................................- 4 -发展状况...............................................................................................................- 4 -数字单片机的技术发展...............................................................................- 5 -内部结构的进步................................................................................- 5 -功耗、封装及电源电压的进步........................................................- 6 -工艺上的进步....................................................................................- 6 -单片机应用的可靠性技术发展...................................................................- 7 -EFT(Ellectrical Fast Transient)技术 ...................................- 7 -低噪声布线技术及驱动技术............................................................- 8 -采用低频时钟....................................................................................- 8 -4基于单片机的流水灯设计功能描述及设计背景...............................................................- 9 -功能描述...............................................................................................................- 9 -设计背景...............................................................................................................- 9 -5基于单片机的流水灯设计系统总体(方案)设计........................................................ - 10 -设计思路............................................................................................................ - 10 -6基于单片机的流水灯设计基本原理分析及设计说明.................................................... - 10 -系统硬件电路图的绘制.................................................................................... - 10 -硬件详细设计:................................................................................................ - 12 -复位电路部分............................................................................................ - 12 -晶振部分.................................................................................................... - 13 -LED显示部分............................................................................................. - 13 -程序流程图:.................................................................................................... - 14 -7软硬件调试、运行结果及分析........................................................................................ - 15 -软件编程............................................................................................................ - 15 -位控法........................................................................................................ - 15 -循环移位法................................................................................................ - 16 -查表法.........................................................................................................- 17 -汇编语法要求、规则................................................................................ - 18 -Proteus仿真......................................................................................................- 20 -8总结与体会........................................................................................................................ - 28 -9谢词.................................................................................................................................... - 29 -10参考文献.................................................................................................................... - 30 -11附录............................................................................................................................ - 31 -电路原理总图.................................................................................................... - 31 -PCB印刷版总图................................................................................................. - 32 -单片机实物总图................................................................................................ - 33 -元器件清单........................................................................................................ - 34 -程序源代码清单................................................................................................ - 35 -基于单片机的流水灯设计杜春香1实训目的1、训练学生综合运用己学课程的基本知识,掌握单片机应用系统的开发设计方法和步骤。

单片机流水灯实验总结

单片机流水灯实验总结

篇一:单片机实验报告——流水灯电子信息工程学系实验报告课程名称:单片机原理及接口实验项目名称:实验2 流水灯实验时间: 2011-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。

C51单片机实验报告流水灯交通灯定时器双机交互时钟

C51单片机实验报告流水灯交通灯定时器双机交互时钟

C51单片机实验报告流水灯交通灯定时器双机交互时钟C51单片机实验报告流水灯交通灯定时器双机交互时钟学号:班级:自动化10 班姓名:张指导老师:胡2019.12单片机核心板实验要求一、流水灯实验、实验目的:) 简单I/O 引脚的输出2 ) 掌握软件延时编程方法3 ) 简单按键输入捕获判断 2 、完成功能要求) 开机是点亮12 发光二极管,闪烁三下2 ) 按照顺时针循环依次点亮发光二极管3 ) 通过按键将发光二极管的显示改为顺逆时针方式二、定时器或实时时钟实验、实验目的) 数码管动态显示技术2 ) 定时器的应用3 ) 按键功能定义 2 、完成功能要求) 通过按键可以设定定时时间,启动定时器,定时时间到,让12 个发光二极管闪烁,完成定时器功能。

) 实时时钟,可以设定当前时间,完成钟表功能(四位数码管分别显示分钟和秒)。

上述二个功能至少完成一种功能。

三、双机通信实验1 、实验目的UART 串行通信接口技术应用2 、完成功能要求用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。

四、交通灯实验1 、实验目的1 )按键、数码管、发光二极管综合应用编程技术2 )数据存储于EEPRO的技术(也可以不使用)3 )定时中断技术4 )按键中断技术2 、完成功能要求)对每个路口(主干道、次干道)的绿灯时间,及黄灯时间的设定。

)设定参数掉电后不丢失(如果不使用EEPRO,此功能可以不实现)。

)紧急按键功能,当按下该键时,所有路口变成红灯,相当于交警指挥特殊车辆通过。

再按该键,恢复正常显示。

实验一流水灯实验一、实验目的1 )简单I/O 引脚的输出2 )掌握软件延时编程方法 3 )简单按键输入捕获判断二、实验实现的功能 1 )开机是点亮12发光二极管,闪烁三下 2 )按照顺时针循环依次点亮发光二极管 3 )通过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计1 )如单片机核心板所示的硬件电路。

四、系统软件设计设计思路:1 )定义数组使得调用数组可以使led 灯能够顺时针和逆时针显示;2 )将按键的输入端全部置零,做单独按键使用;3 )利用“ while ”循环使得数码管可以闪烁三下;)利用“ for ”循环使得小灯能够依次点亮一个周期;5 )将以上思想汇总,编程,实现功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
51单片机流水灯试验
一、实验目的
1.了解51单片机的引脚结构。
2.根据所学汇编语言编写代码实现LED灯的流水功能。
3.利用开发板下载hex文件后验证功能。
二、实验器材
个人电脑,80c51单片机,开发板
三、实验原理
单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。
void main()
{
uchar i;
while(1)
{
P00=1;
delay(2000);
P00=0;
for(i=0;i<8;i++)
{
P1=table[i];
P2=table[i];
delay(2000);
}
P01=1;
delay(2000);
P01=0;
}
}
实物展示:
(1)单片机最小系统板
(2)自己焊制的集成最小系统板
DELAY:MOV R1,#255
DEL2:MOV R2,#250
DEL1:DJNZ R2,DEL1
DJNZ R1,DEL2
RET
End
实验结果:
六、实验参考程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
A寄存器的位经过rr a之后转换如下所示:
然后将A寄存器转换一次便送给P2即MOVP2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。
四、ห้องสมุดไป่ตู้验电路图
五、通过仿真实验正确性
代码如下:ORG 0
MOV A,#00000001B
LOOP:MOV P2,A
RL A
ACALL DELAY
SJMP LOOP
uchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
sbit P00=P0^0;
sbit P01=P0^1;
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
for(j=0;j<110;j++);
}
(3)自己制作的心形流水灯实验板
(4)系统板与实验板的连接展示
七.实验总结:
这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。
相关文档
最新文档