单片机闪烁灯的制作
实验1 KEIL+PROTEUS使用——单灯闪烁

注意:使用的是连接导线,不是画线工具,否则无法仿真。
图1-24绘制系统原理图
※系统仿真
(10)选中AT89C51单片机,并单击打开“Edit Component”对话框,在“Program File”栏后单击选择程序按钮,如图1-25所示。
※新建工程
(2)新建工程在“Project”菜单中选择“NewuVisionProject…”命令。如图1-4所示。
图1-4新建工程
(3)弹出新建工程窗口如图1-5所示,在对话窗中创建名为“test1”的工程,单击“保存”按钮。
注意:将新建的工程保存在准备工作中新建的“test1”文件夹中。
图1-5新建工程窗口
图1-22所需元件
※摆放元件
(7)在工作区中加添加完所需元件,并摆放到合适的位置。
※添加电源/地
(8)在工具栏上单击“Terminals Mode”按钮,在窗口中选择电源“POWER”添加到工作空间中,如图1-23所示。
注意:电源为“POWER”,接地为“GROUND”。
图1-23添加电源
※绘制电路
图1-11源文件添加到工程
※工程选项设定
(11)在工程(Project)窗口的“Target 1”上单击鼠标右键,弹出如图1-12所示的右键菜单中选择“Options for Target‘Target 1’…”。
图1-12选项设置
(12)在弹出如图1-13所示的“Options for Target‘Target 1’”窗口中选择“Output”选项卡,并勾选“Creat Hex File”选项,单击“OK”按钮关闭选项窗口。
2
单灯闪烁流程图如图1-2所示。
单片机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灯会以一定频率闪烁。
单片机闪烁灯实验报告

单片机闪烁灯实验报告引言:单片机是一种集成电路,有着微处理器、存储器、计时器、通信端口等组件,可以按照预定程序进行运算控制。
在实际应用中,单片机的应用十分广泛,其中包括了各种各样的电子产品。
本实验以单片机的闪烁灯实验为例,介绍单片机的基本工作原理和应用。
一、实验介绍:本次实验的主要目的是通过调试单片机的程序,控制单片机的输出口,实现闪烁灯的功能。
同时,本实验还能让学生了解单片机的基本工作原理,熟悉单片机的编程语言和编程方法。
二、实验原理:单片机是一种集成电路,包含了微处理器、存储器、计时器、通信端口等组件,可以按照预定程序进行运算控制。
单片机的工作原理如下:1、单片机的处理器从存储器中读取指令,然后运行指令,执行相应的操作。
2、单片机的计时器用于产生精确的计时信号,以便处理器控制各种外设的时间。
3、单片机的输入和输出口用于与其他设备交换数据,包括传感器、执行器、显示器等。
本实验的闪烁灯功能,是通过控制单片机的输出口完成的。
单片机的输出口分为高电平和低电平两种状态,通过编写相应的程序,可以实现输出口的状态控制。
三、实验内容:本实验需要用到的材料包括:单片机、LED灯、电阻、面包板、电源等。
1、将单片机连接至电源,打开电源开关,待单片机启动后,将其连接至电路。
2、将LED灯连接至单片机的输出口,同时,将电阻连接至LED灯的一个端口,另一端口连接至地。
3、编写程序,使单片机控制输出口的状态,实现LED灯的闪烁。
四、实验步骤:1、准备工作:将单片机连接至电源并启动,将LED灯和电阻连接至电路。
2、编写程序:使用软件编辑器编写控制单片机输出口的程序。
3、调试程序:使用调试工具检查程序的正确性。
4、运行程序:将程序下载至单片机,观察LED灯的闪烁情况。
五、实验结果:经过不断的调试和修改,最终成功实现了LED灯的闪烁功能。
通过观察LED灯的闪烁状态,我们可以看到单片机的输出口不断地切换状态,实现了LED灯的闪烁。
单片机应用技术项目2 闪烁灯

知识目标:
1.掌握51单片机并行输入/输出(I/O)端口的结构和功能;
2.掌握P0、P1、P2、P3口的操作方法; 3.理解单片机的时钟和时序; 4.掌握C语言源程序结构; 5.掌握C语言基本语句; 6.重点掌握循环语句while、do…while、for的语法特点; 7.掌握延时程序设计和调试方法。
1. 表达式语句就是一个表达式加上一个分号。
其一般形式如下:
表达式; 执行表达式语句就是计算表达式的值 如:a++; x=1; 2. 空语句 用一个分号表示,其一般形式为:
;
程序执行空语句时需要占用一条指令的执行时间,但是什么也不做。 在C51程序中常常把空语句作为循环体,用于消耗CPU
时间等待事件发生的场合。
当f =6MHz时,时钟周期=1/ f =1/6µs,机器周期
=(1/6)×12µs=2µs 当f=12MHz时,时钟周期=1/f=1/12µs,机器周期 (1/12)×12µs=1µs
C基本语句
C语言的语句可分为以下五种:
表达式语句
空语句 复合语句
选择语句Biblioteka 循环语句表达式语句和空语句
复合语句(程序块) 示例
/*P1口8个LED灯依次点亮*/ main( ) {
图2- 4时钟周期、机器周期、指令周期之间的关系图
时钟周期、机器周期、指令周期的计算
【例2-1】MCS-51的时钟周期、机器周期、指令周期是如何分配的
?当晶振频率分别为6MHz和12MHz时,一个机器周期为多少µs?
解:MCS-51单片机每个状态周期包含2个时钟周期,1个机器周期有 6个状态周期,每条指令的执行时间(即指令周期)为1~4个机器周期。
LED灯闪烁实验总结

课程名称:Zigbee技术及应用实验项目: LED灯闪烁实验指导教师:专业班级:姓名:学号:成绩:1.实验目的(1)学习单片机IO口配置与驱动,实现指示灯LED1闪烁,频率为1Hz;(2)通过模块化编程,养成良好编程习惯。
2.实验设备(1)CC2530核心板一块;(2)传感器底板一个;(3)仿真器一个;(4)方口USB线一根;3.实验原理3.1硬件设计原理本实验的原理如图1-1所示。
其中,LED1和LED3都串联一个R273和R275限流电阻,然后连接到CC2530的P1口的P1_1和P1_0管脚上。
当P1_1为低电平时,LED1上有电流流过,LED1被点亮,反之熄灭。
图1-1 LED灯原理图限流电阻R的计算:图中R273和R275限流电阻,其计算公式如下:R=(U-UF)/ID (1-1)式中,U为电路供电电压,UF为LED正向压降,ID为LED的工作电流。
对于普通LED发光二极管,其正向压降:黄色为1.4V、红色为1.6V、蓝/白色为2.5V;点亮工作电流为3-20mA。
由图1-1可知,电路供电电压为U=3.3V,LED1选择为黄色发光二极管(压降是1.4V),带入(1-1)式可得R的取值范围是95-633Ω,电阻只要在此范围内即可,一般选择了470Ω的常用电阻。
从图1-1可以看出,如果要让LED1发光,需要设置CC2530对应的I/O口将LED电平拉低。
本实验我们只点亮LED1指示灯,所以只要设置LED1为低电平即可,所以只要我们知道LED1与CC2530哪个管脚相连就可以进行编程。
随着这个思路我们在原理图中找到LED1与CC2530芯片的P1_1管脚连接,将P1_1管脚拉低LED1即被点亮。
3.2程序设计原理(1)主程序分析本实验的程序流程如图1-2所示,其重点IO口的配置。
如果以1Hz的频率点亮LED1闪烁,则需要配置P1_1为输出,然后在P1_1输出1Hz的脉冲信号。
图1-2 程序逻辑流程图(2)IO 端口配置P1口通过特殊功能寄存器P1SEL (P1口功能选择寄存器)和P1DIR (P1口方向寄存器)进行配置,其定义如下。
单片机发光管闪烁和流水灯的操作

单片机发光管闪烁和流水灯的操作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--); //延时}}。
闪烁LED灯的程序
闪烁L E D灯软件描述:/*文件描述:使用的是口,可以用其他的端口,如果用其他的端口只需把程序里的改成相应的端口,程序实现的功能是单片机通过对端口高低电平的控制实现led灯的亮和灭。
赋值1就是高电平,0是低电平,具体赋什么值才亮要结合硬件部分,看led灯的接法。
这里是赋0就会亮。
*/#include<>sbitLED=P1^0;击确定就好了。
之后就需要在工程里面添加文件了(就是写程序代码的地方)。
点击file菜单下的new按钮就建立了新文件;键入程序点击保存按钮。
键入文件名但必须以.c为后缀,因为你写的是c语言文件。
如果是汇编就是.asm了。
一般用c语言写,这里我就用test1.了,点击保存。
然后就是设置了。
右击target1,选择第一项的options for target “target1”。
选择output在create HEX前勾上对号。
点击确定。
之后就是添加文件了,就是把c语言文件添加到工程里面去。
右击上图灰色的部分,再左击Add files to ‘source group 1‘,点击文件名,点击Add;文件添加完毕,关闭对话框就可以了。
下面就是编译了,就是安从左到右的3个按键即可。
创建了hex文件,这个文件就是烧写到单片机的文件;下面就是烧写程序了。
打开烧写程序选择单片机型号一般不用该默认c52.打开需要下载的文件即点击open file按钮;选择下载的文件;点击打开即可;选择端口。
一般这个电脑就是com1.点击下载即可。
给单片机上电;硬件描述:硬件部分就是一个led灯。
但是需要串联一个限流电阻,如果只加入一个led灯就是烧掉,限流电阻的选择要合适,这个自己百度看看很简单的在这里就不必说了,应该串联个500R左右的电阻,因为办公室里没有所以就用了2个1K的并联。
我建议同学自己焊下电路板,然后下载上程序看看。
下载后的状态:定时器/*文件描述:这个led口用的也是是口,可以用其他的端口,如果用其他的端口只需把程序里的改成相应的端口,这个程序实行的功能是利用定时器0的计数功能实现上面闪烁led灯的功能。
运用AT89C51使LED 灯闪烁
运用AT89C51使LED 灯闪烁1. 概述本文档将介绍如何使用AT89C51微控制器来控制LED灯的闪烁。
AT89C51是一种高性能、低功耗的8位单片机,具备丰富的GPIO(通用输入输出)引脚,适合用于各种嵌入式应用中。
2. 硬件准备在开始编程之前,我们需要准备以下硬件设备:•AT89C51单片机开发板•LED灯•220欧姆电阻(用于限流)3. 连接电路在连接电路之前,确保开发板和所需的元件处于关机状态。
按照以下步骤连接电路:1.连接LED灯的长脚(阳极)到AT89C51的P1.0引脚。
2.连接LED灯的短脚(阴极)通过220欧姆电阻接地。
确保连接正确后,即可准备开始编程。
4. 编程以下是使用AT89C51使LED灯闪烁的示例程序:#include <REG51.h>#define LED P1_0 // 定义LED控制引脚为P1.0void delay(int milliseconds){int i, j;for (i = 0; i < milliseconds; i++)for (j = 0; j < 120; j++);}void main(){while (1){LED = 1; // 将LED引脚置高,点亮LEDdelay(1000); // 延时1秒LED = 0; // 将LED引脚置低,熄灭LEDdelay(1000); // 延时1秒}}在上面的示例代码中,我们使用P1.0引脚来控制LED灯的开关。
程序使用了一个简单的延时函数delay来实现LED灯的闪烁效果。
当LED引脚置高时,LED 灯亮起;当LED引脚置低时,LED灯熄灭。
通过在LED灯亮起和熄灭之间加入适当的延时,我们可以实现LED灯的闪烁效果。
5. 下载程序在编程完成后,我们需要将程序下载到AT89C51单片机中。
以下是下载程序的步骤:1.将AT89C51单片机开发板连接到电脑的USB口或串口上。
led闪烁实验报告
竭诚为您提供优质文档/双击可除led闪烁实验报告篇一:单片机实验--LeD灯闪烁实验实验报告课程名称实验项目20XX年3月13日【实验目的】1.掌握51单片机开发板的使用步骤;2.掌握51单片机开发板所需软件的安装过程;3.以LeD灯闪烁为例子,掌握软件KeIL3的使用方法。
熟悉51单片机开发板的使用【实验环境】1.实验仪器、设备计算机、51单片机开发板2.软件usb驱动程序、KeLL开发软件3.实验过程51单片机开发板的使用步骤1)安装usb驱动程序;2)安装KeIL开发软件3)在KeIL环境中编写和调试程序4)用程序烧录软件,将单片机程序烧录到单片机51单片机开发板所需软件的安装过程1)安装usb驱动程序2)设置串口LeD灯闪烁的程序的编写、调试和烧录。
【实验内容】1.内容一1.1操作过程(1)将单片机开发板的电源与pc的usb口相连;(2)在pc机上安装usb_Driver驱动程序的安装,具体安装步骤,请参见《文件驱动程序安装说明.pdf》;设置串口,请参见《设置串口.pdf》;(3)在pc机上安装KeILV3软件,具体安装步骤,请参见《安装说明.TxT》;(4)运行KeIL3软件,软件的具体使用方法,请参见请参见《keil入门.pDF》文件;(5)在KeIL软件中,创建内容如下的c程序,文件名为学生自己的学号:(6)编译和调试,修改程序错误;(7)使用软件《pZIsp自动下载软件.exe》将程序烧录到单片机中,观察现象是否与正常;(8)再在原来程序的基础上,修改程序,实现功能较复杂的程序。
(9)编写内容如下的汇编程序,文件名为学生学号.asm:1.2操作结果程序下载成功后,则单片机开发板上的8个LeD灯将闪烁。
下图为LeD灯电路图。
1.3结果分析主程序中有:(1)p2=0x00;(2)delay(600);(3)p2=0xff;(4)delay(600);第一条程序为置p0口为低电平,点亮p2口8个LeD;,第二条程序为调用延时程序,等待一段时间熄灭,第三条程序为置p0口为高电平,熄灭p2口8个LeD灯;最后一条程序为调用延时程序。
LED灯闪烁控制
太原理工大学单片机原理与应用技术课程实验报告专业班级学号姓名指导教师LED 灯闪烁控制一、实验目的(1)掌握C语言、汇编语言编写单片机控制程序的方法;(2)掌握使用Keil C软件编写、编译、调试程序的方法;(3)掌握使用Proteus软件绘制电路原理图、硬件仿真和程序调试;(4)理解LED灯控制电路原理和延时程序的编写。
二、实验硬件和软件计算机1台,并安装Proteus软件和Keil C51软件。
三、实验任务在单片机I/O口上外接一个发光二极管LED,通过程序实现LED闪烁显示,即不停地一亮一灭,亮、灭持续时间均为0.2秒。
四、实验电路及分析实验电路如图所示,在P1.7口(也可选择其它端口)外接一个发光二极管D1,分析可知P1.7输出“0”时,D1点亮,P1.7输出“1”时D1熄灭。
LED 灯闪烁控制电路图五、实验程序编写1.程序编写(1)C语言程序#include <reg51.H>sbit D1=P1^7;void Delayms(unsigned int n){ unsigned int i, j;for(j=n; j>0;j--)for(i=112; i>0; i--);}int main( ){ while(1){ D1=0;Delayms(200);D1=1;Delayms(200);}}(2)程序流程图六、实验步骤1.利用Proteus软件绘制仿真电路图(1)打开Proteus软件,File→New Project进入工程创建向导,选择项目文件存放路径,项目文件名为“实验1.pdsprj”。
(2)创建原理图(schematic),默认模板为default,可根据电路规模选择合适的图纸大小。
(3)选择“Do not create a PCB layout”,即不绘制PCB图。
(4)选择第一项“No Firmware Project”,即不在Proteus平台下创建源程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由以上可知,当R6=10、R7=248时,延时5ms,R6 =20、R7=248时,延时10ms,以此为基本的计时单位。 如本实验要求0.2秒=200ms,10ms×R5=200ms, 则R5=20,延时子程序如下:
DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET
③程序流程图
开始
左移位多少次? 显示数据赋值给A 显示数据由A赋值给P1 调用延时子程序 左移1位 左移8次?
NO
右移位多少次? 显示数据赋值给A
显示数据由A赋值给P1
调用延时子程序 右移1位
NO
YES
右移7次?
YES
任务一、闪烁灯制作
试验任务: 如图4.1.1所示:在单片机P1.0端口上接一 个发光二极管L1,使L1在不停地一亮一灭形成 闪烁灯状态,一亮一灭的时间间隔为0.2秒。
1.电路原理图
如图4.1.1
2.程序设计内容
(1). 延时程序的设计方法 作为单片机的指令的执行的时间是很短,微秒级,因此, 我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大, 所以我们在执行某一指令时,插入延时程序,来达到我们的要 求,但这样的延时程序是如何设计呢?下面具体介绍其原理: ①如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1 微秒 (12/12MHZ=1µS) MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 DJNZ R7,$ 2个 2×248 DJNZ R6,D1 2个 2×20=40 因此,上面的延时程序时间为(2+2×248)×20+2×20 +2=10002US=10.002ms。当P1.0端口输出高电平,即P1.0 =1时,根据发光二极管的单向导电性可知, 这时发光二极管L1熄灭;当P1.0端口输出低 电平,即P1.0=0时,发光二极管L1亮;我们 可以使用SETB P1.0指令使P1.0端口输出 高电平,使用CLR P1.0指令使P1.0端口输 出低电平。