w002.c
来自「使用了SST带仿真功能的单片机89E51」· C语言 代码 · 共 48 行
C
48 行
/*******************************************************************************
* 实验名称: 单片机模拟警报声 *
/*******************************************************************************
* 实验描述:蜂鸣器发出警报声 *
* 实验说明: P1.4为蜂鸣器控制口,高电平时蜂鸣器响 *
* *
*******************************************************************************/
#include <reg51.h>
#include <intrins.h>
sbit BELL = P1^4; //P1.4为蜂鸣器控制口,为高电平时蜂鸣器响
unsigned char frq; //声音频率
void delayms(unsigned char ms); //延时函数声明
main()
{
TMOD = 0x01; //定时器/计数器工作方式控制寄存器(TMOD)设置 T0工作方式1 定时
frq = 0x00;
TH0 = 0x00; //设置定时器/计数器0(T0)初始值
TL0 = 0xff;
TR0 = 1; //开启定时器/计数器0(T0)
IE = 0x82; //开总中断和T0中断允许
while(1) //无条件循环
{
frq++;
delayms(1);//调用延时函数
}
}
void timer0() interrupt 1 using 1 //中断程序
{
TH0 = 0xfe; //定时器/计数器0初始值重装
TL0 = frq;
BELL = ~BELL; //P1.4电平取反
}
void delayms(unsigned char ms) //延时函数
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?