开关控制流水灯2——51单片机的Proteus实验

实验原理

51单片机的一个I/O口接四个开关,每个开关控制流水灯的不同方面,再通过另一个I/O口控制8个LED的亮、灭,从而实现流水灯。

其中:开关一控制流水灯是否有翻转;开关二控制流动方向;开关三控制是否改变数字;开关四控制流动时间。

主要器件以及电路图

单片机——AT89C51,发光二极管——LED。

proteus单片机开关控制流水灯实验

C语言程序源码

#include <reg51.h>
typedef unsigned int uint;
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
uint delayT = 10000;
void delay(){
int i;
for(i=0;i<delayT;i++){
;
}
}
int main(){
int i;
uint leds[8] = {254,253,251,247,239,223,191,127};//只有一个灯亮
while(1){
P0 = 0xff;
//是否取反
if(P0_0 == 0){
for(i=0;i<8;i++){
leds[i] = -leds[i];
}
}
if(P0_2 == 0){
//控制是否数字加一
for(i=0;i<8;i++){
leds[i] = leds[i] + 1;
}
}
if(P0_1 == 1){
//下面的循环正常循环
for(i=0;i<8;i++){
P1 = leds[i];
delay();
}
}
if(P0_1 == 0){
//反循环
for(i=7;i>=0;i--){
P1 = leds[i];
delay();
}
}
if(P0_3 == 1){
//控制流动时间
delayT = 60000;
}
else{
delayT = 10000;
}
}
}
  1. 按钮控制LED——51单片机的Proteus实验
  2. 流水灯——51单片机的Proteus实验
  3. 数码显示管——51单片机的Proteus实验
  4. 蜂鸣器——51单片机的Proteus实验
  5. 蜂鸣器演奏祝你平安——51单片机的Proteus实验
  6. 蜂鸣器演奏兰花草——51单片机的Proteus实验
  7. 蜂鸣器演奏老鼠爱大米——51单片机的Proteus实验
  8. ADC0808模数转换——51单片机的Proteus实验
  9. 开关控制流水灯2——51单片机的Proteus实验
  10. 单片机数字钟C程序——51单片机的Proteus实验1 2
  11. 8951+1602显示字符——51单片机的Proteus实验
  12. LCD1602显示程序头文件——51单片机的Proteus实验
  13. 8951+1602数字钟——51单片机的Proteus实验
  14. 4X4矩阵键盘+1602——51单片机的Proteus实验
  15. 8952+1602测单片机内部时钟频率——51单片机的Proteus实验

返回单片机目录, ARM目录, 返回首页