如何利用单片机设计出呼吸灯

具体要求是单片机IO口接8个LED,要求8个LED同时逐渐点亮,再逐渐熄灭,每亮灭一次,计数器加一,由两位数码管显示
目前似乎搞出了呼吸灯的程序。但是添加数码管已经懵逼了
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

#include<reg52.h> //包含头文件,一般情况不需要改动,
sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号
void Delay(unsigned int t); //函数声明

void main (void)
{

unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值

while (1) //主循环
{
LED0=1;
Delay(60000); //特意加延时,可以看到熄灭的过程
for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
{//PWM_LOW表示低
//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次

LED0=0; //点亮LED
Delay(PWM_LOW);//延时长度,600次循环中从1加至599
LED0=1; //熄灭LED
Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1

}
LED0=0;
for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){//与逐渐变亮相反的过程

LED0=0;
Delay(PWM_LOW);
LED0=1;
Delay(CYCLE-PWM_LOW);

}
//主循环中添加其他需要一直工作的程序
}
}
/*------------------------------------------------
延时函数,含有输入参数unsigned int t,无返回值
unsigned int 是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}追问

要汇编语言程序

温馨提示:内容为网友见解,仅供参考
无其他回答

基于AVR 单片机设计一款 LED 呼吸灯
首先,确保材料准备充足,包括:AVR单片机,如ATmega328PLED灯电阻式柔性薄膜压力传感器用于显示压力值的LCD显示屏电阻、电容等电子元件开发板或面包板等搭建工具接着,进行硬件连接,如:连接单片机与其他元件,确保系统稳定运行将LED灯与单片机引脚连接,实现呼吸灯效果压力传感器连接至模拟输入引脚,以测量和控...

51单片机用汇编语言如何设计8个轮流呼吸的呼吸灯?
AJMP START START:MOV P0,#01H;()只有第一个灯亮 ACALL DELAY;延迟,不加延迟的话 你根本看不起清到底那个灯亮的 MOV P0,#02H;()只有第二个灯亮 ACALL DELAY MOV P0,#04H;()只有第三个灯亮 ACALL DELAY MOV P0,#08H;()只有第四个灯亮 ACALL DELAY MOV P0,#10H;()只有第五个灯...

单片机制作呼吸灯的C语言程序怎样编写
include<reg51.h> sbit LED0=P0^0;sbit wei=P1^1;sbit duan=P1^0;sbit lcden=P1^7;sbit dianzhen=P1^3;sbit leden=P1^2;void Delay(unsigned int t);void main (void){ unsigned int CYCLE=600,PWM_LOW=0;\/\/定义周期并赋值 lcden=0;P0=0x00;dianzhen=0;P0=0xff;wei=0;duan=0;...

求单片机大神帮忙设计一个电路,51单片机制作led呼吸灯的
演示定时器1的快速PWM输出@利用快速PWM输出控制LED的亮度变化,达到呼吸灯的效果*\/ include<iom8a.h>#include"port_set.h"#include"delay.h"\/***@函数功能:定时器1初始化@说明:定时器初始化为快速PWM,TOP为8位(0x00FF)时钟输入为系统时钟匹配时OC1A输出0,在TOP时输出1OC1B为普通端口输入捕捉触...

单片机式的呼吸灯控制方法
一般是用PWM方式控制LED亮度,PWM的输出按照一定的规律变化,就可以做出呼吸灯的效果。再说30个LED的控制,如果要简单点做,30个LED可以串起来串一个电阻,接高点的电源电压,30个LED用同一个信号控制,当然,亮度也是同步变化的。如果要复杂,那就出30个信号分别控制30个LED串30个电阻,具体看你的追求...

51单片机设计呼吸灯
include "reg51.h" \/\/包含头文件 define uchar unsigned char define uint unsigned int \/\/ \/\/延时函数 \/\/ delay(uint time) \/\/int型数据为16位,所以最大值为65535 { uint i,j; \/\/定义变量i,j,用于循环语句 for(i=0;i<time;i++) \/\/for循环,循环50*time次 for(j=0...

用stm8单片机实现呼吸灯
占空比=0 和占空比=100,是一个高电平一个低电平,当然能实现LED的亮灭了,占空比从0-100可以发现LED的亮度是从0到100%亮度变化的。仔细理解下PWM占空比的概念。

我想用STC15F104E 的单片机做呼吸灯
1在下载程序时,其功能就是RXD\/TXD,如果应用程序需要用到串口输出,STC官网有现成的模拟串口例程,按自己的应用稍加修改就可使用。如果USB——COM模块驱动正常时,考虑是否连接正确,即:单片机的RXD(P3.0)接模块的TXD;单片机的TXD(P3.1)接模块的RXD,记得波特率调低些(全部2400)试试。

求编程大神!给一个可以直接调用的PWM(呼吸灯,)模快! 越简单越好类似延时...
在 \/INT1、\/INT0 外接了两个按键,用来调整占空比;在 P0 口外接了两个 BCD 数码显示器,用来显示当前的占空比的等级。实验的时候,可以使用示波器来观察 P2 口输出的波形。如果把 PWM 波形的频率提高,也可以用 LED 观察到渐亮渐暗的效果,目前看,只是闪烁的时间发生变化。include<reg52.h> un...

求一个89c52单片机的呼吸灯程序 要边呼吸边移动的 就是相当于呼吸灯流水...
delay(10); \/\/ 这里的延时 根据灯的情况自己调整 } } } \/\/ 主程序开始 void main(){ unsigned char ledn;while(1){ for(ledn=0;ledn<8;ledn++){ off_on(ledn);on_off(ledn);} } } 这个程序我简单测试了一下,效果还好,不知道这个效果是不是您想要的?说明一下啊,我这...

相似回答