标题:
51单片机控制8个发光管由上至下间隔1s流动 程序思路求助
[打印本页]
作者:
金金有点傻
时间:
2020-8-21 19:14
标题:
51单片机控制8个发光管由上至下间隔1s流动 程序思路求助
想自己制作 求指导 :8个发光管由。上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。
求教各位大佬:
我只能做到间隔一秒流动。但是亮500ms,灭500ms这个操作,中的。灭灯。编不出来了。可以问问怎么编么
IMG_20200821_190948.jpg
(682.15 KB, 下载次数: 45)
下载附件
2020-8-21 19:14 上传
作者:
csmyldl
时间:
2020-8-21 22:38
延时程序设计为500ms,
temp=_crol_(temp,1)
P1=temp; //亮
beep=0; //响
delay(); //延时
P1=0xff; //灭
beep=1; //不响
delay(); //延时
作者:
16639745810
时间:
2020-8-22 00:29
#include "reg52.h"
#include "intrins.h"
sbit BEEP = P2^3;
sbit Led0 = P1^0; //着实费引脚 (8个数码管共阴)
sbit Led1 = P1^1;
sbit Led2 = P1^2;
sbit Led3 = P1^3;
sbit Led4 = P1^4;
sbit Led5 = P1^5;
sbit Led6 = P1^6;
sbit Led7 = P1^7;
unsigned char n;
//严格意义上尽量别用延时
void Delay100ms() //@11.0592MHz 100毫秒延时
{
unsigned char i, j;
i = 180;
j = 73;
do
{
while (--j);
} while (--i);
}
void delay_ms(unsigned char n) //延时是100ms的整数倍
{
while(n>=0)
{
Delay100ms();
n--;
}
}
void Beep() //蜂鸣器响函数,
{
unsigned int i,j;
for(i=0;i<700;i++)
{
BEEP = ~BEEP;
for(j=0;j<300;j++);
BEEP = ~BEEP;
for(j=0;j<10;j++);
}
}
void main()
{
unsigned int i;
/* 第一种效果
while(1)
{
Led0 = Led2 = Led4 = Led6 = 1;//灯亮 0,2,4,6灯亮
Led1 = Led3 = Led5 = Led7 = 0;//灯灭
Beep();
delay_ms(5);//500ms
Led0 = Led2 = Led4 = Led6 = 0;// 灯灭
Led1 = Led3 = Led5 = Led7 = 1;//灯亮
delay_ms(5);//500ms
}
*/
while(1)
{
for(i=0;i<7;i++)
{
P1 = _crol_(P1,1); //右移
Beep();
delay_ms(5);
}
for(i=0;i<7;i++)
{
P1 = _cror_(P1,1);
Beep();
delay_ms(5);
}
}
}
作者:
wps10025
时间:
2020-8-22 08:45
#include<reg52.h>
typedef unsigned int uint;//无符号整型
void Delay500ms(); //@11.0592MHz
void main(void)
{
while(1)
{
uint a;
for(a = 0; a < 8;a++)
{
P1 = ~(0X01 << a);
//这一行加上蜂鸣器开启
Delay500ms();//500ms延时 11.0592MHZ
}
for(a = 0; a < 6;a++)
{
P1 = ~(0X40 >> a);
//这一行加上蜂鸣器关闭
Delay500ms();//500ms延时 11.0592MHZ
}
}
}
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 5;
j = 5;
k = 150;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
//这个延时时间500毫秒多,具体使用自己微调吧
作者:
Roy-2010
时间:
2020-8-22 15:14
干嘛搞个蜂鸣器的代码,不是LED灯吗?
作者:
gfshao
时间:
2020-9-16 10:57
写个延时函数,再调用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1