1.要求
1.1-完成51最小系统的搭建,并且能够点亮一个LED;
1.2-8个LED灯流水闪烁(跑马灯);
1.3-设置3个按键(A按键启动、B按键控制低中高三种流水速度、C按键控制暂停与蜂鸣器长响(按一下蜂鸣器响,再按一下蜂鸣器不响);
1.4-将要求1.1、1.2、1.3在Proteus中仿真实现;
1.5-焊接自己的51最小系统板,硬件实现上述功能;
2.程序代码
**2.**
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit BUZ=P1^0;
sbit K1=P3^2;
sbit K2=P3^3;
uint n=0;
uchar led=0xfe;
uchar sudu=1;
void delay(uint num)//延时函数
{
uint i,j;
for(i=num;i>0;i--)
for(j=123;j>0;j--);
}
void int2() interrupt 2//蜂鸣器控制
{
while(1)
{
if(K2==0)
{
delay(400);
BUZ=~BUZ;
}
if(BUZ==1)break;
}
}
void int0() interrupt 0//速度控制
{
if(K1==0)n++;
if(n==4)n=1;
switch(n)
{
case 1:sudu=1;break;
case 2:sudu=2;break;
case 3:sudu=3;break;
}
}
void main()//主函数
{
EA=1;//总中断开
EX0=1;EX1=1;//开外部中断0,1
IT0=1;IT1=1;//下降沿触发
if(sudu==1)
{
delay(400);
while(1)
{
P2=led;
delay(800);
led=_crol_(led,1);
if(sudu!=1)break;
}
}
if(sudu==2)
{
delay(400);
while(1)
{
P2=led;
delay(200);
led=_crol_(led,1);
if(sudu!=2)break;
}
}
if(sudu==3)
{
delay(400);
while(1)
{
P2=led;
delay(50);
led=_crol_(led,1);
if(sudu!=3)break;
}
}
}
3.仿真电路
4.硬件焊接
版权声明:本文为CSDN博主「ZSW2027008838」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZSW2027008838/article/details/122261345
1.要求
1.1-完成51最小系统的搭建,并且能够点亮一个LED;
1.2-8个LED灯流水闪烁(跑马灯);
1.3-设置3个按键(A按键启动、B按键控制低中高三种流水速度、C按键控制暂停与蜂鸣器长响(按一下蜂鸣器响,再按一下蜂鸣器不响);
1.4-将要求1.1、1.2、1.3在Proteus中仿真实现;
1.5-焊接自己的51最小系统板,硬件实现上述功能;
2.程序代码
**2.**
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit BUZ=P1^0;
sbit K1=P3^2;
sbit K2=P3^3;
uint n=0;
uchar led=0xfe;
uchar sudu=1;
void delay(uint num)//延时函数
{
uint i,j;
for(i=num;i>0;i--)
for(j=123;j>0;j--);
}
void int2() interrupt 2//蜂鸣器控制
{
while(1)
{
if(K2==0)
{
delay(400);
BUZ=~BUZ;
}
if(BUZ==1)break;
}
}
void int0() interrupt 0//速度控制
{
if(K1==0)n++;
if(n==4)n=1;
switch(n)
{
case 1:sudu=1;break;
case 2:sudu=2;break;
case 3:sudu=3;break;
}
}
void main()//主函数
{
EA=1;//总中断开
EX0=1;EX1=1;//开外部中断0,1
IT0=1;IT1=1;//下降沿触发
if(sudu==1)
{
delay(400);
while(1)
{
P2=led;
delay(800);
led=_crol_(led,1);
if(sudu!=1)break;
}
}
if(sudu==2)
{
delay(400);
while(1)
{
P2=led;
delay(200);
led=_crol_(led,1);
if(sudu!=2)break;
}
}
if(sudu==3)
{
delay(400);
while(1)
{
P2=led;
delay(50);
led=_crol_(led,1);
if(sudu!=3)break;
}
}
}
3.仿真电路
4.硬件焊接
版权声明:本文为CSDN博主「ZSW2027008838」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZSW2027008838/article/details/122261345
暂无评论