求助各位大虾
时间:10-02
整理:3721RD
点击:
这段程序怎么就能随LED灯的亮灭来发声的
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit teep = P1^2; // P1.2口控制蜂鸣器
Delay(uint);
main ()
{
uchar temp, a, b;
temp = 0xfe;
P0 = temp;
while(1) {
for(a = 0; a < 7; a++) {
temp = _crol_(temp, 1); //左移1位
P0 = temp;
Delay(260);
}
for(b = 0; b < 7; b++) {
temp = _cror_(temp, 1); //右移1位
P0 = temp;
Delay(260);
}
}
}
Delay(uint z) //含有发音功能的延时程序
{
uint i, j;
for(j = z; j > 0; j--) {
teep = 0; for(i = 100; i > 0; i--);
teep = 1; for(i = 100; i > 0; i--);
}
}
能不能详解一下 谢谢各位大虾了
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit teep = P1^2; // P1.2口控制蜂鸣器
Delay(uint);
main ()
{
uchar temp, a, b;
temp = 0xfe;
P0 = temp;
while(1) {
for(a = 0; a < 7; a++) {
temp = _crol_(temp, 1); //左移1位
P0 = temp;
Delay(260);
}
for(b = 0; b < 7; b++) {
temp = _cror_(temp, 1); //右移1位
P0 = temp;
Delay(260);
}
}
}
Delay(uint z) //含有发音功能的延时程序
{
uint i, j;
for(j = z; j > 0; j--) {
teep = 0; for(i = 100; i > 0; i--);
teep = 1; for(i = 100; i > 0; i--);
}
}
能不能详解一下 谢谢各位大虾了
Delay( uint z ) 实际上是产生Z个周期的方波。用这个方波去驱动蜂鸣器。
这段程序怎么就能随LED灯的亮灭来发声的?不是很理解。
那Delay(uint z) //含有发音功能的延时程序 ,,这个函数很明显。起到一个延时的作用,但是同时,在延时的过程中加入了一个某频率的声音teep = 0; for(i = 100; i > 0; i--);
teep = 1; for(i = 100; i > 0; i--); i的参数控制高低音。那个z的参赛就是控制这声音长短。同时起到一个延时作用。
while(1) {
for(a = 0; a < 7; a++) {
temp = _crol_(temp, 1); //左移1位
P0 = temp;
Delay(260);
这程序后面那个 Delay(260); 就会伴随这声响,只是这执行速度快。导致你以为是同时进行的。其实是按顺序执行,