这段程序怎么就能随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--);
}
}
能不能详解一下 谢谢各位大虾了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那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); 就会伴随这声响,只是这执行速度快。导致你以为是同时进行的。其实是按顺序执行,
一周热门 更多>