⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lm386.c

📁 驱动芯片LM386检测要用keil生成hex再用
💻 C
字号:
/*****************************************************************************
						MCS8051-III学习板演示程序
							
				(c) Copyright 2007-2007,广州恒芯电子
						All Rights Reserved
*****************************************************************************/

/*****************************************************************************
程序说明
名称: MCS8051-III学习板演示程序(LM386测试)
功能: 发出报警声
版本:2007-07-01
*****************************************************************************/

/*****************************************************************************
硬件说明
单片机:   兼容MCS-51单片机/STC89C51
晶振频率: 12MHz
*****************************************************************************/

#include "regx52.h"

/****************************************************************************
说明: 程序预定义
*****************************************************************************/
#define LM386_DATA  P3_7/*LM386输出端*/

void Bell();/*发出报警声*/

/****************************************************************************
名称: Delay
说明: 程序延时
参数: 无
返回: 无
*****************************************************************************/
void Delay();

unsigned char m_ucTH;
unsigned char m_ucTL;

/*****************************************************************************
程序开始
*****************************************************************************/
void main()
{	
	static unsigned char a=0;

	/*T0中断设定*/
  	TMOD=0x01;/*使用T0:GATE=0,C/T=0(定时),M1 M0=01(工作方式1)*/
	ET0=1;/*允许T0中断*/
	TR0=1;/*使T0工作*/
	EA=1;/*总中断开启*/

	while(1)
	{	
		a=1-a;
		if(a)
		{
			m_ucTH=0xff;/*输出5K*/	
		    m_ucTL=0x38;
		}
		else
		{
			m_ucTH=0xfc;/*输出1K*/
		    m_ucTL=0x38;
	
		}

		Delay();
		Delay();
	}
}

/*****************************************************************************
名称: Interrupt1Handler
说明: T0中断入口
参数: 无
返回 :无
*****************************************************************************/
void Interrupt1Handler() interrupt 1
{
	Bell();/*发出报警声*/

	TH0=m_ucTH;/*重新设置T0定时值*/
	TL0=m_ucTL;
}

/****************************************************************************
名称: Bell
说明: 发出报警声
参数: 无
返回: 无
*****************************************************************************/
void Bell()
{
	static unsigned char a=0;

	a=1-a;
	if(a)/*LM386输出端取反*/
	{
		LM386_DATA=1;	
	}
	else
	{
		LM386_DATA=0;
	}

}

/****************************************************************************
名称: Delay
说明: 程序延时
参数: 无
返回: 无
*****************************************************************************/
void Delay()
{
    static unsigned char a,b;

    for(a=0;a<255;a++)
		for(b=0;b<255;b++);
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -