假期学习51单片机时遇到的问题,记录解决问题时用到哪些知识,有哪些知识是之前学过但忘记的,有哪些知识是新的。
1、特殊的寄存器变量
2、位变量
3、三态门
4、D触发器的工作原理
5、蜂鸣器实验中对其声音大小和音调的如何调节
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
sbit BEEP=P2^5; //将P2.5管脚定义为BEEP
/*******************************************************************************
* 函 数 名 : delay_10us
* 函数功能 : 延时函数,ten_us=1时,大约延时10us
* 输 入 : ten_us
* 输 出 : 无
*******************************************************************************/
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{
u16 i=2000;
while(1)
{
while(i--)//循环2000次
{
// BEEP=!BEEP;//产生一定频率的脉冲信号
// delay_10us(250);//改变()里的数字 就是改变频率 可以调节蜂鸣器的音调
/* 改变高低电平的占空比,可以改变声音的大小,
高电平持续时间越长,声音越大 */
BEEP=0;
delay_10us(50);
BEEP=1;
delay_10us(150);
}
i=0;//清零
BEEP=0;//关闭蜂鸣器
}
}