单片机实验一 闪烁灯和流水灯

合集下载

流水灯实验·

流水灯实验·

实验一发光二极管流水灯实验一、实验要求利用单片机及8个发光二极管等器件,制作一个单片机控制的流水灯系统。

单片机的P0.0~P0.7接有8个发光二极管,运行程序,则8个发光二极管进行流水灯操作,流水灯从上到下依次点亮,反复循环。

二、实验目的1.掌握单片机最小系统的构成。

2.掌握P0口作为基本I/O口使用时,外部电路的连接方法。

3.如何控制I/O口来驱动LED发光二极管。

4.学会用PROTEUS 设计电路原理图,并进行仿真的方法。

5.学会使用Keil C编程。

三、实验步骤(一)电路原理图设计1.启动PROTEUS ISIS仿真工具。

参照实验指导书P24页2.5节的方法,设计电路原理图。

2.在元器件模式下,单击选取元器件,在Keywords一栏中输入元器件名称,如AT89C51,双击所匹配的元器件,便可将其加入到对象选择器中。

本实验需要选取的元器件有单片机AT89C51、发光二极管LED-BIRG、瓷片电容CAP、电解电容CAP-ELEC、电阻RES、上拉排阻RESPACK-8、晶振CRYSTAL、按钮BUTTON、双极性晶体管ST5771-1。

3.按图一电路原理图,在编辑区放置相应元器件,单击选择终端模式,放置电源和地,并连线。

4.设置元器件参数值,本实验中晶振X1频率为12MHz,瓷片电容C1、C2的值为30pF,电解电容C3的值为10uF,电阻R1为470,R2、R3的值为10K,电阻R4~R11的值为470,单片机AT89c51的时钟频率12MHz。

5. 设计完成电路后,单击电气检测按钮,会出现检查结果窗口,若有错,会给出详细的说明。

如没有错,将设计保存到自己的工作目录中。

(二)编写源程序,并生成.HEX文件。

1.启动KEIL Uvision4。

2. 按照实验指导书P50页4.1节的方法输入源程序并生成.HEX文件。

(注意:程序设计时考虑到实验学习板上的电路的设计,要使P2.7 = 0; 关闭液晶使能位,防止液晶数据口输出干扰P0口; 使P3.7 = 0, 选通WS 系列实验板的LED 流水灯的电源控制端)(三)仿真回到PROTEUS ISIS环境,并按照实验指导书P60页4.2节的方法加载.HEX文件进行仿真。

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。

实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。

2.编写程序:按照题目要求编写所需程序。

3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。

程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。

2. 在程序中,我们通过P2口控制LED灯的亮灭状态。

例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。

同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。

3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。

4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。

通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。

5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。

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

51单片机流水灯实验报告单片机实验报告流水灯
51单片机流灯试验
一、实验目的
1.了解51单片机的引脚结构。
2.根据所学汇编语言编写代码实现LED灯的流水功能。
3.利用开发板下载hex文件后验证功能。
二、实验器材
个人电脑,80c51单片机,开发板
三、实验原理
单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。使用rl或rr a实现位的转换。
(3)自己制作的心形流水灯实验板
(4)系统板与实验板的连接展示
七.实验总结:
这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80c51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解c51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。
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)自己焊制的集成最小系统板
A寄存器的位经过rr a之后转换如下所示:

单片机led灯闪烁实验报告

单片机led灯闪烁实验报告

单片机led灯闪烁实验报告1. 实验目的:掌握单片机控制LED灯闪烁的方法,了解单片机数字输入输出端口的使用。

2. 实验材料:STM32F103C8T6开发板、杜邦线、LED灯3. 实验原理:在单片机中,数字输入输出口(IO口)是实现数字输入输出的重要接口。

在单片机中,IO口除了可以做通用输入输出口以外,还有很多专用功能口,如SPI 口、I2C口等。

单片机控制LED灯闪烁的原理就是利用IO口的输出功能,通过改变输出口的电平信号来控制LED的亮灭。

当IO口输出高电平时,控制LED为亮状态;当IO 口输出低电平时,控制LED为灭状态。

4. 实验步骤:(1)将LED灯的正极连接到单片机的GPB5号引脚(即B端口的5号引脚),将LED的负极连接到地。

(2)在Keil中新建工程,并配置IO口为输出口。

(3)编写程序,利用GPIO_WriteBit函数对GPB5号引脚进行高低电平控制,实现LED灯的闪烁。

(4)将程序下载到开发板中,观察LED灯的闪烁情况。

5. 实验代码:#include "stm32f10x.h"void Delay(uint32_t nCount) {for(; nCount != 0; nCount);}int main(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);while(1) {GPIO_SetBits(GPIOB, GPIO_Pin_5);Delay(0xFFFFF);GPIO_ResetBits(GPIOB, GPIO_Pin_5);Delay(0xFFFFF);}}6. 实验结果:当程序下载到开发板中时,LED灯会以一定频率闪烁。

单片机流水灯实验总结

单片机流水灯实验总结

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机流水灯实训报告

单片机流水灯实训报告

基于AT89C52单片机的流水灯设计实训报告学院:信息工程学院班级:12级电子信息工程本科班学号:姓名:指导教师:2014年 12月29日目录前言 (1)一、总体设计 (2)1.1 总体设计框图 (2)1.2 硬件具体原理图 (3)二、设计内容 (3)2.1 设计要求 (3)2.2 硬件设计 (3)2.3 软件设计 (5)2.3.1 Keil的使用步骤: (5)2.3.2 程序流程 (8)2.3.3 程序代码 (9)三、最小系统板的焊接及调试流程 (12)3.1 最小系统板电路焊接流程: (12)3.1.1焊前准备: (12)3.1.2焊接步骤: (12)3.2 调试及问题解决方法 (13)3.2.1仿真 (13)3.2.2下载 (14)3.2.3问题及解决方法 (14)四、总结体会 (15)前言随着社会的进步和发展和人们生活水平的不断提高单片机技术已经成为当今各种新技术的载体各个应用领域的工程技术人员都应掌握单片机应用术。

同时,它所给人带来的方便也是不可否定的。

其中,数码管就是一个典型的例子。

但人们对它的要求越来越高要为现代人工作、科研、生活、提供更好的方便的设施,就需要从单片机技术入手,一切向着数字化控制、智能化控制方向发展。

单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。

更重要的意义在于,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。

以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现。

单片微型计算机就是将CPU、RAM、ROM、时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

我们周围有许多广告牌。

单片机发光管闪烁和流水灯的操作

单片机发光管闪烁和流水灯的操作1、闪烁:尝试让第一个发光管闪烁程序如下:#include<reg52.h> //52单片机头文件sbit led1=P1^0; //单片机管脚位声明void main() //主函数{unsigned int i; //定义一个int型变量while(1){i=50000; //变量赋初值为50000led1=0; //点亮灯while(i--); //延时i=50000;led1=1; //熄灭灯while(i--);}}2、流水灯程序如下:#include<reg52.h> //52单片机头文件void main() //主函数{unsigned int i; //定义一个int型变量while(1){i=50000; //变量赋初值为50000P1=0xfe; //点亮第一个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xfd; //点亮第二个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xfb; //点亮第三个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xf7; //点亮第四个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xef; //点亮第五个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xdf; //点亮第六个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0xbf; //点亮第七个灯while(i--); //延时i=50000; //变量赋初值为50000P1=0x7f; //点亮第八个灯while(i--); //延时}}。

单片机实训报告单灯闪烁

一、实训目的1. 熟悉单片机的基本结构和原理;2. 掌握单片机的编程方法;3. 熟练使用单片机进行单灯闪烁实验,加深对单片机原理的理解;4. 提高动手实践能力和问题解决能力。

二、实训器材1. 单片机实验箱;2. 编译器(如Keil uVision);3. 发光二极管(LED);4. 电阻;5. 电路板;6. 电源;7. 导线。

三、实训原理单片机(Microcontroller Unit,MCU)是一种将计算机的中央处理单元(CPU)、存储器(RAM、ROM)、定时器、计数器、并行I/O口、串行通信接口等集成在一个芯片上的微型计算机。

本实训以单灯闪烁为例,说明单片机的编程和实际应用。

单灯闪烁的原理是利用单片机的I/O口控制LED灯的亮灭。

具体来说,通过设置I/O口的输出电平,控制LED灯的电流,从而实现LED灯的亮灭。

在单片机中,I/O口可以设置为输出模式或输入模式。

本实训中,将I/O口设置为输出模式,通过控制I/O口的输出电平,实现LED灯的闪烁。

四、实训步骤1. 硬件连接(1)将LED灯的阳极(正极)连接到单片机的I/O口(如P1.0);(2)将LED灯的阴极(负极)通过限流电阻连接到电源的负极;(3)将单片机的VCC连接到电源的正极,将GND连接到电源的负极。

2. 编写程序(1)使用Keil uVision编译器编写程序,编写程序如下:```c#include <reg51.h> // 包含单片机寄存器定义头文件#define LED P1^0 // 将LED灯连接到P1.0口void delay(unsigned int ms) // 延时函数,ms为延时时间(毫秒){unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}void main(){while (1){LED = 0; // 点亮LED灯delay(500); // 延时500msLED = 1; // 熄灭LED灯delay(500); // 延时500ms}}```(2)编译程序,生成HEX文件。

单片机闪烁实验报告

单片机闪烁实验报告单片机闪烁实验报告引言:单片机是一种集成电路,具有微处理器核心、存储器和输入输出设备等功能。

在现代电子技术中,单片机应用广泛,其灵活性和可编程性使其成为各种电子设备的重要组成部分。

本实验旨在通过使用单片机控制LED灯的闪烁,探索单片机的基本原理和应用。

一、实验目的:通过本实验,我们的目的是熟悉单片机的工作原理和编程方法,理解单片机控制LED灯闪烁的过程。

同时,通过实际操作,培养我们的动手能力和团队合作精神。

二、实验器材:1. 单片机开发板2. LED灯3. 连接线4. 电源三、实验步骤:1. 将单片机开发板与电源连接,确保电源正常工作。

2. 将LED灯连接到开发板上的GPIO引脚。

3. 打开开发板上的编程软件,编写控制LED闪烁的程序。

4. 将编写好的程序下载到单片机开发板上。

5. 打开开发板上的电源,观察LED灯是否按照程序闪烁。

四、实验结果:经过实验,我们成功地控制了LED灯的闪烁。

在程序中,我们通过设置GPIO引脚的高低电平来控制LED灯的亮灭。

通过调整程序中的延时时间,我们还可以控制LED灯的闪烁频率和亮度。

这进一步验证了单片机的可编程性和灵活性。

五、实验总结:通过本次实验,我们深入理解了单片机的工作原理和应用。

单片机作为一种集成电路,不仅具有微处理器的功能,还可以通过编程实现各种功能。

在实验中,我们通过控制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)。

单片机实验一发光二极管的控制——闪烁灯和流水灯
[实验要求]
(1)闪烁灯实验: 点亮与单片机P1.0口相连的发光二极管, 延时某固定时间(选择
0.2S、0.5S、1S), 然后熄灭, 再延时固定时间(0.2S、0.5S、1S), 再点亮, 如此
循环下去.
(2)流水灯实验:单片机P1口相连的8个发光二极管循环移位点亮。

移位方式任
选左移(即从P1.0~P1.7依次点亮)或右移(即从P1.7~P1.0依次点亮),依次点亮的时间间隔选择0.2s、0.5s或1s。

[实验目的]
(1)了解单片机I/O口输出高低电平的方法,
(2)掌握循环移位的工作原理和操作方法。

(3)延时函数的时间估算. 关于延时函数的时间估算可以采用软件延时法和中断
定时方法. 本实验采用软件延时法.
[硬件电路]
发光二极管的闪烁灯和流水灯实验电路图。

相关文档
最新文档