基于51单片机的流水灯设计

发布时间:2025-01-17 18:20

了解基础摄影设备,如DSLR(单反相机)、微单、卡片机等 #生活知识# #摄影技巧# #摄影设备推荐#

三个按键:A按键启动、B按键控制不同流水速度(低中高)、C按键

设计思路一(未用中断):
8个LED灯正极解电源,负极接单片机I/O口。
死循环:设置P2口为11111110,使用左移函数,循环七次。
同时每次位移中间加入延时函数。
三个按键:A按键启动、B按键控制不同流水速度(低中高)、C按键控制流水灯暂停蜂鸣器长响:
思路一:设置一个变量i,起初为0,按下A键后为1;当i为1进入死循环
设置变量j,按下B,j++,当j大于3,j=j-3;使用j*1000,来空置循环函数的延时时间。设置bit变量s=0,按下按键C,s++,当s=1,j进入循环蜂鸣器响,s=0退出循环。
在每次延时时检查按键

#include<reg52.h> #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; u8 j=1; #define LED P2 sbit K1=P3^1; sbit K2=P3^0; sbit K3=P3^2; sbit BUZ=P1^5; void delayk(u16 i) //延时函数快, { while(i--); } void delay() //延时函数 {void key2();void key3();u16 y;switch(j){case 1:for(y=10000;y>0;y--){key2();key3();}break;case 2:for(y=20000;y>0;y--){key2();key3();}break;case 3:for(y=40000;y>0;y--){key2();key3();}break;} } void key2() {if(K2==0){delayk(1000);if(K2==0){++j;}if(j>3) { j=j-3;}}while(!K2);} void key3() {u8 i;if(K3==0){delayk(1000);if(K3==0){ i=1;while(i){BUZ=0;while(K3==1&&i==1){ if(K3==0){delayk(1000); if(K3==0) { i=0;BUZ=1;while(!K3); }}}}}} } void pamadeng() {u8 i;while(1){key2();key3();LED=0XFE; //1111 1110 delay();for(i=0;i<7;i++){key2();key3();LED=_crol_(LED,1); delay();} } } void main() {while(1){if(K1==0){delayk(1000);if(K1==0){pamadeng();}}} }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117

设计思路二:(使用中断)
设置一个变量i,起初为0,按下A键后为1;当i为1进入死循环
设置变量j,按下B,进入中断2,当j大于3,j=j-3;使用j*1000,来空置循环函数的暂停时间。设置bit变量s=0,按下按键C,进入外部中断0,s++,当s=1,j进入循环蜂鸣器响,s=0退出循环。

#include<reg52.h> #include<intrins.h> typedef unsigned int u16; typedef unsigned char u8; typedef bit u1; #define LED P2 sbit K1=P3^0; //2号开关 sbit K2=P3^3; //4号开关 sbit K3=P3^2; //3号开关 sbit BUZ=P1^5; //蜂鸣器 u8 j=1; //用于记录K2按键 void delay(u16 i) {while(i--); } void open02() //打开外部中断0,2 {EA=1; //总中断EX0=1; //打开外部中断0IT0=1; //边沿触发方式EX1=1; //打开外部中断1IT1=1; //边沿触发 } void pamadeng() //控制跑马灯跑动 {u8 i;while(1){LED=0XFE; //1111 1110 delay((j*20000));for(i=0;i<7;i++){LED=_crol_(LED,1); delay((j*20000));}} } void main() {open02();while(1){if(K1==0){delay(1000);if(K1==0){pamadeng();} }} } void key2() interrupt 2 //外部中断1,记录按键2次数 {delay(1000); //消抖if(K2==0)++j;if(j>3)j=j-3; } void key3() interrupt 0 //外部中断0,跑马灯暂停 {delay(1000); //消抖if(K3==0){u1 k=1; //用于记录K3按键BUZ=0;while(k){while(K3==1&&k==1){if(K3==0){delay(1000); //消抖if(K3==0){k=~k;BUZ=1; //关闭蜂鸣器while(!K3); //确认按键松开}}}}} }

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697

学习收获:
单片机:集成电路芯片;计算机部件集成;

模电:
半导体:原子最外层电子4个(既易得电子又易失电子,硅、锗),
二极管:掺杂正极性P,掺杂负极性N。LED,掺杂加入通电发光物质,长脚正,短脚负,正极里面东西小,负极大;稳压管,反接稳压。P中空穴多,P中电子多。但是电场方向是N指向P。
三极管:NPN,B高电平连通(箭头指向外);PNP,B低电平连通。C高,E低(箭头指向内)
场效应管:FET
芯片:www.alldatasheetcn.com
运算放大器,比较器
上面有一横低电平有效,无一横高电平有效

数电:
TTL:5高0低(大于2高,小于0.8低)
COMS:
HVCMOS:3.3高0低(大于1.7高,小于0.7低)
LVCMOS:2.5高0低
RS232电平通信:
负逻辑:+12低电平,-12高电平

Long 32位(51) 32位VC与int无区别 int 16位 short 16位 char 8位
float 32位 double 64位
sbit:特殊功能位声明
bit:位变量声明

ROM 掉电不丢失(只读不写)
RAM 掉电丢失

P3.0 RXD串行口输入
P3.1 TXD串行口输出
(通信)
P3.2 INT0外部中断0输入
P3.3 INT1外部中断1输入
P3.4 T0定时器0外部输入
P3.5 T1定时器1外部输入
P3.6 WR外部写控制
P3.7 RD外部读控制

震荡周期,时钟周期:晶振提供
状态周期:时钟周期的两倍
机器周期:CPU完成一个独立操作;六个状态周期,十二个震动周期
指令周期:CPU完成一条指令所需要的全部时间;每条指令执行时间都是由一个或几个机器周期组成,MCS-51有单,双,四周期指令

对I/O口的控制
上(下)拉电阻,将不确定的信号全部转化高(低)电平

电源电路:
复位电路:高电平复位(上电复位(启动复位),手动复位)
复位电路中电容作用:
在这里插入图片描述

电容主要对于上电复位:单片机上电,给电容充电,电路导通,RST高电平,电容充满后,电路不导通,RST 低电平。完成复位

时钟电路:
下载电路:

I/O口

在这里插入图片描述

延时函数:
Void delay(unsigned int i)
{
While(i–)
}
当i=1时大概是10微秒

中断:
外部中断0,INT0 P3.2
定时器中断0,T0 P3.4
外部中断1,INT1 P3.3
定时器中断1,T1 P3.5
RX,TX P3.0 P3.1

后期计划:
继续巩固51的学习,同时进入STM32的学习

网址:基于51单片机的流水灯设计 https://www.yuejiaxmz.com/news/view/727043

相关内容

基于51单片机智能台灯节能灯热释人体自动感应照明灯设计
基于51单片机的智能小车设计绪论
基于单片机的智能垃圾桶设计(51基础版)
39、基于51单片机声控光控灯人体感应路灯照明灯系统设计
基于51单片机的家电控制系统设计
基于51单片机无线蓝牙智能家居控制系统设计
基于51单片机的智能照明控制系统
51单片机之实现流水灯
基于51单片机的居家环境智能监测系统设计.docx
基于51单片机的智能无线LED灯控制 蓝牙手机APP控制灯亮灭亮度方案原理图设计

随便看看