c51单片机流水灯程序,c51单片机流水灯程序c语言

c51单片机流水灯程序,c51单片机流水灯程序c语言

2024-10-30 18:42:25 空调知识 0

大家好,今天小编关注到一个比较有意思的话题,就是关于c51单片机流水灯程序的问题,于是小编就整理了2个相关介绍c51单片机流水灯程序的解答,让我们一起看看吧。

C51单片机计时器50ms程序编写?

c51单片机流水灯程序

12MHz晶振,经典51核是12分频,因此时钟周期为1μs。50ms=50000μs,因此定时器累加至溢出需要50000个周期。因此65536-50000=15536=0x3CB0因此TH0=0x3C,TL0=0xB0。0x4C00这个初值对应的不是12MHz晶振,而是11.0592MHz晶振。你抄错了。

点亮单片机中任意一个流水灯亮灭的C语言程序该如何做呢?

点亮单片机中任意一个流水灯亮灭的C语言程序该如何做呢?

实现任意一个流水灯亮灭的程序非常好编程呀,这是入门级水准。

首先我们规划好硬件电路部分,在这里使用三个流水灯做简单讲解吧。单片机使用简单基础的51单片机。利用单片机P3.0~P3.2 三个I0口,假如外部电源给LED供电,IO口就输出低电平时(0),LED灯就会亮,IO口输出高电平,LED就会灭。假如是单片机IO口给led供电(如果使用P0口需要使用上拉电阻),IO口就输出低电平时(0),LED灯就会灭,IO口输出高电平,LED就会亮。

限流电阻阻值计算:

LED的工作电压:红黄为2V,绿蓝白为3.2~3.6V,电流都是18-20ma。下图是是单片机IO驱动的情况,P0口需要使用上拉电阻。假设LED额定电流是18mA。额定电源是3.2v那么限流电阻R2=(5V-3.2V)/18mA=100Ω。(图就是个大概,晶振回路和复位电路都没画)

c51单片机流水灯程序

实例解析:外部电源供电,电路连接简略图如下

程序设计思想:开始让P0保持高电平,三灯都是灭的。然后P0.0输出低电平,LED1亮,延时一段时间后,让P0.0输出高电平,P0.1输出低电平,LED1灭,LED2亮,再延时一段时间,让P0.1输出高电平,P0.2输出低电平,此时LED2灭,LED3亮,延时后让亮灭过程循环就可实现流水灯效果。

c51单片机流水灯程序

流水灯仿真实验:4个LED

程序编写后需要用KECIL C51软件生成HEX文件,用proteus可以仿真结果

程序:


#include <reg51.h> //头文件

#include<intrins.h>//头文件

#define uchar unsigned char

uchar j,temp;

void delay(unsigned int ms) //延时函数

{

uchar t;

while(ms--)

for(t=0;t<123;t++);

}

void main() //主函数

{

P1=0xff; //P1=11111111,对应串口灯全灭

delay(500);

temp=0xfe; // 0x11111110

for(j=0;j<4;j++) //此循环执行四次跳出

{

P1=temp; // P1=11111110, P1.0连接的LED灯亮

delay(500); // 延时

temp=_crol_(temp,1); //左移函数,依次是11111101,11111011,11110111

}

P1=0xff; 跳出循环,P1串口全部是高电平,LED都灭

while(1);

}

c51单片机流水灯程序

到此,以上就是小编对于c51单片机流水灯程序的问题就介绍到这了,希望介绍关于c51单片机流水灯程序的2点解答对大家有用。