51单片机中如何用C语言实现不同个灯同时进行不同频率的PWM呼吸?

简单点的,用表格,事先计算好,放到ROM中,用的时候逐行编译输出就可以。复杂点的,开一个缓冲区,

  为了解决用户可能碰到关于"51单片机中如何用C语言实现不同个灯同时进行不同频率的PWM呼吸?"相关的问题,酷网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"51单片机中如何用C语言实现不同个灯同时进行不同频率的PWM呼吸?"相关的详细问题如下:51单片机中如何用C语言实现不同个灯同时进行不同频率的PWM呼吸?

不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数

扩展阅读,根据您访问的内容系统为您准备了以下扩展内容,希望对您有帮助。

51单片机中如何用C语言实现不同个灯同时进行不同频率的PWM呼吸?你现在知道怎么弄了吗

在定时器中断函数中设置两个变量,其中一个每10毫秒翻转一次,另一个每50毫秒翻转一次;

然后将这两个变量赋值给控制LED灯的两个I/O口!追问两个灯都有呼吸灯的效果而且不同??追答一个50毫秒一次一个10毫秒一次啊。 这两个值可以自己设置,设成1秒一次和1秒 两次,就能肉眼看出来了

51单片机8个灯每两个一起亮灯的c语言程序

//假设晶振12MHZ,P1控制LED低电平亮

#include "reg51.h"

unsigned int YSJS=0;

unsigned int P1BUF=0X03;

void main(void)

{

TMOD |= 0X10; //定时器1工作于方式1,16位定时器

TH1 = 0XFF; //定时器1定时时间=500uS

TL1 = 0X06;

ET1 = 1; //使能定时器1中断

EA =1; //开总中断

P1 = P1BUF;

while(1)

{

}

}

void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组

{

TH1 = 0XFF; //定时器1定时时间=500us

TL1 = 0X06;

YSJS++;

if(YSJS==2000) //500uS*2000=1000000us=1s

{

P1 = P1BUF;

YSJS = 0

P1BUF = P1BUF<<2;

IF(P1BUF==0)P1BUF=0X03;

}

}

单片机用C语言编程,有两个按钮开关,控制八个LED灯,要求实现两种不同的功能,求功能和C语言程序

给你个没有按键的,按键程序自己加上就行了

#include <reg51.h>

void main()

{

unsigned int i = 0; //定义循环变量i,用于软件延时

unsigned char cnt = 0; //定义计数变量cnt,用于移位控制

while (1) //主循环,程序无限循环执行该循环体语句

{

P0 = ~(0x01 << cnt); //P0等于1左移cnt位,控制8个LED

for (i=0; i<20000; i++); //软件延时

cnt++; //移位计数变量自加1

if (cnt >= 8) //移位计数超过7后,再重新从0开始

{

cnt = 0;

}

}

}

相关阅读推荐:

精彩图文

猜你还喜欢

电脑数码美食烹饪健康养生时尚美容情感家庭游戏攻略职场理财生活技巧体育运动 游戏/数码写作指南 办事指南 生活/家居1 健康/养生 职场/理财 爱好/休闲 时尚/美容 美食/营养 教育/学习 家庭/情感 全部科学节气电脑网络体育运动医疗健康游戏社会民生文化艺术电子数码娱乐休闲商业理财教育科学生活烦恼资源共享其它 A B C D12002000400060008000E F G H I J K L M N O P Q R S T U V W X Y Z 0-9 A1

热门推荐