精华内容
下载资源
问答
  • 51单片机(呼吸灯)汇编语言版 - 范文中心
    2021-05-23 12:06:42

    单片机实训课程之:呼吸灯一. 设计要求 二. 相关原理 三. 论证分析 四. 硬件原理 五. 软件程序设计 六. 测试方法与结果 七. 使用说明(附录)

    一. 设计要求

    呼吸灯顾名思义就是让LED 灯的闪烁像呼吸一样,时呼时吸,时亮时暗。

    二. 相关原理

    呼吸灯的原理:呼吸灯,是用LED 模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗„„如此往复,再利用LED 的余辉和人眼的暂留效应,看上去就和人的呼吸一样了。

    三. 论证分析 程序流程图

    四、硬件原理 (1)80C51

    1. 单片机定义“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU 、ROM 、

    RAM 、并行口、串行口、定时器/计数器、中断系统、系统时钟等。

    MCS-51的微处理器是由运算器和控制器构成所的。

    运算器:主要用来对操作数进行算术、逻辑运算和位操作。主要包括算术逻辑运算单元ALU 、累加器A 、寄存器B 、位处理器、程序状态字寄存器PSW 以及BCD 码修正电路等。

    控制器:单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。

    (2)时钟电路

    外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作,以便于同步。

    外部时钟电路,是由一个12MHz 晶振和两个瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用,外接晶振频率精确度直接影响电子钟计时的准确性。(外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。)

    2. 单片机电子钟利用内部定时/计数器溢出产生中断(12M 晶振一般为50ms )再乘以相应的倍率来实现秒、分、时的转换。从定时/计数器产生中断请求到响 应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的 机器周期。

    五. 软件设计程序

    源程序代码:

    ORG 0000H

    START: MOV R0,#01H

    MOV R1,#00H MOV R2,#00H MOV R3,#0FFH

    LOOP: MOV P1,R2

    MOV A,R0

    LOOP1: MOV R4,#10

    DJNZ R4,$

    DJNZ R0,LOOP1 INC A

    MOV R0,A

    MOV P1,R3 MOV A,R1

    LOOP2: MOV R4,#10

    DJNZ R4,$

    DJNZ R1,LOOP2 DEC A MOV R1,A

    JNZ K1 MOV A,R2 CPL A MOV R2,A MOV A,R3 CPL A MOV R3,A K1: SJMP LOOP END

    六、测试方法与结果

    利用PROTEUS 仿真软件,下图为硬件仿真图,仅为仿真,不做实际连接。Proteus 里看不到呼吸灯效果,只看得到LED 灯时亮的。

    1) 虚拟电路的建立

    所需元件:80C51、八个LED 、八个电阻(10K )、一个12KHZ 晶振、二个220pf

    电容

    2) 仿真文件编制添加

    Keil仿真调试过产生的HEX 文件,写入Proteus 中的MCU 芯片中,

    3) 调试和仿真

    七. 使用说明(附录)

    采用硬件仿真器、实验箱或实验板,

    参考文献

    【1】单片机应用技术 王文杰、许文斌 【2】单片机应用设计200例 刘秀英 【3】模拟电子技术 【4】数字电子技术 【5】百度文库

    更多相关内容
  • 用51单片机做的一盒呼吸灯的仿真,用的仿真软件是proteus
  • 51单片机呼吸灯程序

    2013-04-25 12:30:29
    使用延时控制led的亮暗来达到呼吸灯的效果
  • //呼吸灯周期:T=200*100us=20ms void Delay_100us() { TH0=(65536-100)/256; TL0=(65536-100)%256; TR0=1;//启动定时器,开始计时 while(TF0!=1);//判断定时器是否溢出 TF0=0;//溢出时清0,进行下次计时 } ...
    #include<reg52.h>
    unsigned char Cycle=200;	//呼吸灯周期:T=200*100us=20ms
    void Delay_100us()
    {
    	TH0=(65536-100)/256;
    	TL0=(65536-100)%256;
    	TR0=1;//启动定时器,开始计时
    	while(TF0!=1);//判断定时器是否溢出
    	TF0=0;//溢出时清0,进行下次计时
    }
    
    void Delay(unsigned char t)
    {
    	unsigned char i;
    	for(i=0;i<t;i++)
    		Delay_100us();
    }
    
    void main()
    {
    	int LED;
    	unsigned char i;	
    	TMOD=0x01;
    	while(1)
    	{	
    		//由暗变亮
    		for(i=1;i<Cycle;i++)
    		{
    			LED=0x00;
    			P2=LED;Delay(i);	
    			P2=~LED;Delay(Cycle-i);
    		}
    		//由亮变暗
    		
    		for(i=1;i<Cycle;i++)
    		{
    			LED=0x00;
    			P2=LED;Delay(Cycle-i);	
    			P2=~LED;Delay(i);
    		}
    	}
    }
    
    展开全文
  • 1.用C51单片机实现花样流水,代码如下: #include <reg52.h> #define LED_A P1 //led所用的接口,是哪个口就写P几void delayms(){ unsigned char x = 0;  unsigned char i; unsigned char y = 0; while...

    1.用C51单片机实现花样流水灯,代码如下:

    #include <reg52.h>
    #define LED_A P1            //led灯所用的接口,是哪个口就写P几
    void delayms()
    {
    unsigned char x = 0;          
    unsigned char i;
    unsigned char y = 0;
    while(y < 0.001)             //定义led灯的切换的延时时间,越小越快。
    {                     //(y < 0.001);(x<100);(i<100)都可以修改
    x = 0;
    while(x<100)
    {
    i = 0;
    while(i<100)
    {
    i++;
    }
    x++;
    }
    y++;
    }
    }
    #define LED_NUM 8          //定义led灯的数量,可快速实现不同用途的修改;
    void main()
    {
    unsigned char k;
    unsigned char j;
    unsigned char LED_ALL[] = {0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};      //led灯亮灭的十六进制数组;
    unsigned char LED_ALL_2[] = {0XFC,0XF3,0XCF,0X3F};
      while(1)
      {
        for(k=0;k<3;k++)                    //第一个for实现奇偶灯交叉闪烁三次,想闪烁几次就修改(K<3)中的数值;
        {
          LED_A = 0xAA;                      
          delayms();
          LED_A = 0x55;
          delayms();
        }
        for(k=3;k>0;k--)                //实现一个流水灯左右三次(从左到右再从右到左算一次);
        {
          for(j=0;j<LED_NUM;j++)        
          {
            LED_A = LED_ALL[j];
            delayms();
          }
          for(j=6;j>0;j--)
          {
            LED_A = LED_ALL[j];
            delayms();
          }
        }
        for(k=0;k<3;k++)            //实现前四个灯亮后四个灯灭,交叉闪烁3次,修改次数同上;
        {
          LED_A = 0xf0;
          delayms();
          LED_A = 0xf;
          delayms();
        }
        for(k=3;k>0;k--)              //实现两个灯依次流水3次;
        {
          for(j=0;j<4;j++)
          {
            LED_A = LED_ALL_2[j];
            delayms();
          }
          for(j=2;j>0;j--)
          {    
            LED_A = LED_ALL_2[j];
            delayms();
          }
        }
      }
    }

     

     

     

     

     

     

    2.实现第一个灯呼吸,由暗变亮,再由亮变暗,程序如下;

    #include <reg52.h>
    sbit LED1 = P3^0;
    void delay(unsigned int a)          //定义一个延时函数
    {
      while(--a);
    }
    void main()
    {
      unsigned int t,circle=800;          //定义变量,circle=800为led灯呼吸的间隔长短,数值越小,间隔越短。
      while(1)
      {
        LED1 = 1;
        for(t=1;t<circle;t++)
        {
          LED1 = 0;
          delay(t);          
          LED1 = 1;
          delay(circle-t);
        }
        LED1 = 0;
        for(t=circle-1;t>0;t--)
        {
          LED1 = 0;
          delay(t);
          LED1 = 1;
          delay(circle-t);
        }
      }
    }

    转载于:https://www.cnblogs.com/37cheng/p/11602798.html

    展开全文
  • 51单片机 呼吸灯 七彩呼吸灯

    千次阅读 2020-11-07 12:50:59
    课程设计题十八:七彩呼吸灯 要求: (1) 起始状态时,七个灯处于同频率“呼吸”状态。 修改:8个灯 (2) 按键1按下时,1号到8号依次由亮到暗“呼吸”。 (3) 按键2按下时,1号到8号依次由暗到亮“呼吸”。 (4) ...

    课程设计题十八:七彩呼吸灯
    要求:
    (1) 起始状态时,七个灯处于同频率“呼吸”状态。 修改:8个灯
    (2) 按键1按下时,1号到8号依次由亮到暗“呼吸”。
    (3) 按键2按下时,1号到8号依次由暗到亮“呼吸”。
    (4) 按键3按下时,恢复起始亮法。

    1 先做一个呼吸灯

    由易到难,先做一个呼吸灯。
    呼吸灯是让小灯从暗到亮变化,然后从亮回到暗。并一直循环。
    51单片机只能依靠定时器完成PWM。并且基于PWM原理下,proteus无法仿真出小灯的亮暗,只能看实物。

    #include "reg51.h"
    #include <intrins.h>
    
    /*
     * 10ms的PWM频率是100HZ
     * 高电平时间+低电平时间=10ms
     * 低电平时间越长,小灯亮度越高
     */
    sbit		led0		= P2 ^ 0;
    

    效果:
    在这里插入图片描述

    2 完成题目

    (2) 按键1按下时,1号到8号依次由亮到暗“呼吸”。
    (3) 按键2按下时,1号到8号依次由暗到亮“呼吸”。
    (4) 按键3按下时,恢复起始亮法。

    摄像头拍不清楚,肉眼看得更清楚。
    在这里插入图片描述

    展开全文
  • 呼吸灯 51单片机 仿真

    2019-05-27 17:14:49
    047 51单片机 呼吸灯 仿真 更多资料请访问我下载主页 void main() { upCounter = MIN; downCounter = MAX; //计数器初始化 TMOD = 0x01; //设置定时器工作方式 TH0 = 0xF0; TL0 = 0xF0 ; //T0初始化值 EA = ...
  • 本帖最后由 xiashan 于 2015-4-5 18:30 编辑看着笔记本待机的时候,电源变成忽明忽暗,手就不自在了。研究了一番,写出了代码,加到自己做的“玩具”上。可能会觉得这个东西没有什么实在意义,只不过看起来没闪烁...
  • 利用51单片机实现呼吸灯

    万次阅读 2019-07-27 00:01:56
    利用PWM波的占空比进行控制LED的亮度 #include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit LED=P2^0; uint i,pwm,y=500; void delay(uint i) //延时函数 { int x; for(x=i;...
  • //晶振11.0592//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸//本例在51hei-5型开发板上实现了一个数码管和一个LED一起实现呼吸效果//文件下载:...uchar sr...
  • 基于51单片机呼吸灯程序编写

    千次阅读 2021-09-14 10:20:27
    利用51单片机编写的呼吸灯小程序,实验程序内容截图分享~
  • 通过STC89C51单片机,通过定时器实现PWM的呼吸灯。通过STC89C51单片机,通过定时器实现PWM的呼吸灯。通过STC89C51单片机,通过定时器实现PWM的呼吸灯
  • 定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大 脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失。每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小;后半部分先让...
  • 基于51单片机呼吸 16个流水 +定时器 PWM输出 亲测可用
  • 本例程由c语言编写,使用stc89c52rc单片机定时器实现,6ms周期pwm输出,实现led31级亮度调节。
  • 采用比较简单的c语言,详细完整的代码,能够实现呼吸灯的功能。
  • //功能:通过PWM调制模拟呼吸灯 ...c51(用于单片机开发的一种c语言) #define uchar unsigned char //用uchar代替unsigned char #define uint unsigned int //用uint代替unsigned int //函数相当于一个...
  • 51单片机+PWM控制渐变七彩灯C51程序。
  • 基于单片机与PWM的呼吸灯设计实训指导教师:班 级:设 计 人姓名:设 计 日 期:设 计 地 点:完 成 时 间:摘要本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以C语言编程实现LED渐亮再渐暗类似人的呼吸...
  • //晶振11.0592//灯光在单片机控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸//本例在51hei-5型开发板上实现了一个数码管和一个led一起实现呼吸效果//文件下载:http://www.51hei.com/f/fxd.rar#includereg52.h>...
  • 最终所要实现的效果:当按下A键对应A亮,按下B键对应B亮,按下C键对应C亮,按下D键对应D亮。 就选四个键,多了自己写,原理都一样。 原理支撑:对于嵌入的LED,低电平亮,高电平灭(这个大部分这样,实际...
  • 51单片机(呼吸灯)汇编语言版长江工程职业技术学院单片机实训报告 PAGE - 8 -单片机实训课程之:呼吸灯一.设计要求二.相关原理三.论证分析四.硬件原理五.软件程序设计六.测试方法与结果七.使用说明(附录)一.设计要求...
  • 51单片机呼吸灯

    千次阅读 2020-03-21 10:33:15
    呼吸灯 代码 #include"reg52.h" typedef unsigned int u16; typedef unsigned char u8; sbit pwm=P2^1; bit dir; u16 count,timer,value; //全局变量 void tim0_init() //定时器初始化函数 ...
  • 51单片机——实现呼吸灯&程序代码

    千次阅读 2021-03-23 21:34:42
    注:该51单片机led引脚为P2^ 0 - P2^7,实际代码按照引脚图实现。 代码如下: #include<reg52.h> typedef unsigned int uint; typedef unsigned char uchar; //--------------Delay-------------------- ...
  • 51单片机利用PWM、定时器实现呼吸灯

    万次阅读 多人点赞 2020-09-16 13:06:24
    一次呼吸灯效果(暗->亮->暗):4s #include <reg52.h> //52头文件 typedef unsigned char u8; //别名 u8 Tcount, dutyfactor, direct; //一个PWM周期内的:周期计数,占空比,方向 sbit ...
  • 本程序是用51单片机通过PWM(脉冲宽度调制)方式控制LED,达到呼吸灯的效果。
  • 51单片机呼吸灯实验报告.doc 呼吸灯1功能与技术分析呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。可以展示出各种酷炫的图像。11呼吸灯的实现效果...
  • 51单片机实现呼吸灯

    2014-11-20 16:32:33
    通过51单片机来操作led,实现呼吸灯效果,用按键可选取灯的亮度,再搭配数码管显示其等级(适合学习板使用)。

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 154
精华内容 61
关键字:

c51单片机呼吸灯