打开板子发现蜂鸣器默认接通的,会一直响,然后参考了学习资料,需要先关闭蜂鸣器。
然后代码都是学习资料里面的。
void cls_buzz(void)
{
P2 = (P2&0x1F|0xA0);//给P2赋值——先将P2原有的值和0x1F进行与运算,再将得出的值与0xA0进行或运算,结果赋值给P2
P0 = 0x00;//将P0置零
P2 &= 0x1F;//将P2的值锁存
}
接下来写一个延时函数
void Delay(unsigned char x) //@12.000MHz我直接用烧录软件生成的,晶振频率设置为12MHz
{
unsigned char i, j;
while(x>0){
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
x--;
}
}
接下来写主函数
void main()
{
cls_buzz();
while(1)
{
P2 = ((P2&0x1f)|0x80);
P0 = 0xff; //LED灯灭
P2 &= 0x1f;
Delay(500);//延时500毫秒
P2 = ((P2&0x1f)|0x80);
P0 = 0x00; //LED灯亮
P2 &= 0x1f;
Delay(500);
}
}
提示:不要忘记添加头文件
#include "STC15F2K60S2.H"
#include "intrins.h"//如果用了_nop_()函数就要添加这个头文件,没用就不用管
编译好烧录进板子,就OK
|