标题:
单片机计数蜂鸣器程序
[打印本页]
作者:
pu8sqgsz
时间:
2019-11-6 09:26
标题:
单片机计数蜂鸣器程序
程序实现仿真后点击开关读秒计数,读秒结束后蜂鸣器响声报数,hex文件已置入压缩包内,部分源码如下
1Z)E6TF~]9$ZHB7YUM1AA}5.png
(104.86 KB, 下载次数: 32)
下载附件
2019-11-6 09:19 上传
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include "lcd.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
typedef unsigned char u9;
int q;
uchar m=0;
/*******************************************************************************
* 函 数 名 :delay
* 函数功能 :延时函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void delay(uchar p)
{
uchar a,b;
for(;p>0;p--)
for(a=600;a>0;a--)
for(b=600;b>0;b--);
}
/*******************************************************************************
* 函 数 名 : lcd
* 函数功能 :
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void lcd()
{
LcdInit();
LcdWriteData(q/100+0x30);
LcdWriteData(q/10%10+0x30);
LcdWriteData(q%10+0x30);
m++;
}
void main(void)
{ q=0;
IT0=1;//跳变沿出发方式(下降沿)
EX0=1;//打开INT0的中断允许。
EA=1; //打开总中断
while(1)
{
int i;
if(k1==0) //检测按键K1是否按下
{
if(k1==0) //再次判断按键是否按下
{
for(i=0;i<1000;i++)
{
q++;
lcd();
delay(10);
}
}
while(!k1); //检测按键是否松开
}
}
}
void alarm(uchart)
{
uchar i,j;
for(i=0;i<100;i++)
{
beepIO=!beepIO;
for(j=0;j<100;j++);
}
}
/*******************************************************************************
* 函 数 名 :zz
* 函数功能 :响声计数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void zz()
{
unsigned int x,n;
n=m;
for(x=0;x<n;x++)
{
alarm(90) ;
delay(20);
}
beepIO=1;
}
void T0int() interrupt 0
{
while(1)
{
{
if(zd==0) //检测按键K1是否按下
{
if(zd==0) //再次判断按键是否按下
{
zz();
}
while(!zd); //检测按键是否松开
}
}
}
}
复制代码
程序源码.zip
(80.69 KB, 下载次数: 4)
2019-11-6 09:22 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1