• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機的語音播報酒精檢測儀設(shè)計

2024/12/12
1732
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

有需要資料的可了解一下.docx

共1個文件

設(shè)計要求:

(1)數(shù)據(jù)采集系統(tǒng)以單片機為控制核心,外圍電路帶有LCD顯示以及鍵盤響應(yīng)電路,無需要其他計算機,用戶就可以與之進行交互工作,完成數(shù)據(jù)的采集、存儲、計算、分析等過程。

(2)系統(tǒng)具有低功耗、小型化、高性價比等特點。

(3)從便攜式的角度出發(fā),系統(tǒng)成功使用了液晶顯示器以及小鍵盤。由單片機系統(tǒng)控制鍵盤和LCD顯示來實現(xiàn)人機交互操作,界面友好。

include <reg52.h>
#include <intrins.h>
//顯示函數(shù)
#include <display.h>
#include <4004.h>

//宏定義
#define uint unsigned int 
#define uchar unsigned char
#define Data_ADC0809 P1
 
//管腳聲明
//sbit LED_R= P2^2; //紅指示燈
//sbit LED_G= P2^0; //綠色指示燈
//sbit FENG = P2^5; //蜂鳴器
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^1;
sbit OE=P3^2;
//按鍵
sbit Key1=P2^5;	//設(shè)置按鍵
sbit Key2=P2^4; //加
sbit Key3=P2^3;	//減
sbit Key4=P2^2;

bit bdata flag;//指示燈和蜂鳴器閃爍報警標志位
uchar set;	  //設(shè)置標志位


//函數(shù)聲明
extern uchar ADC0809();
extern void Key();

//酒精含量變量
uchar temp=0;

uchar WARNING=25; // 初始報警值

void delay_2S(void)   //4S
{
    uchar a;
	uchar b,c;
    for(c=90;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_();  //if Keil,require use intrins.h
}
//初始化函數(shù)
/*void init()	 
{
	TMOD=0x01; //定時器0方式1
 	TL0=0xb0;
 	TH0=0x3c;  //賦初值
 	EA=1;	//開總中斷
	ET0=1;	//允許定時器0中斷
 	TR0=1;	//定時器0開
}  */
 //主函數(shù)
void main()
{
	uchar p=0;
	uint sum;
	Init1602();	//1602初始化
//	init();	 //初始化函數(shù)
	while(1)//主循環(huán)
	{
		for(p=0;p<20;p++)
		{
			temp=ADC0809();	//讀取酒精值
			sum=sum+temp;
		}
		temp=sum/20;
		sum=0;
		
		if(set==0) //如果沒有按下設(shè)置(默認set是0,就是正常顯示狀態(tài))
		Display_1602(temp,WARNING,Mode);	 //顯示酒精值
		//開始語音播報
	if(set==0)
	{
			//現(xiàn)在濃度
			playbit=1;
			playcout=1;
			playsound();
			delay_2S();
			delay_2S();
			DDstop();	
			//第一位
			playbit=1;
			playcout=(temp/100)+2;
			playsound();
			delay_2S();
			DDstop();	
			//第二位
			playbit=1;
			playcout=(temp%100/10)+2;
			playsound();
			delay_2S();
			DDstop();	
			//第三位
			playbit=1;
			playcout=(temp%100%10)+2;
			playsound();
			delay_2S();
			DDstop();
/*			//米
			playbit=1;
			playcout=12;
			playsound();
			delay_2S();
			DDstop();	*/

		if(temp<WARNING&&set==0)	//如果實際的酒精值小于報警值且在正常顯示狀態(tài)下
		{
//			flag=0;	 //執(zhí)行下面flag=0的(主要就是綠燈閃,關(guān)蜂鳴器和繼電器)
			//濃度正常
			playbit=1;
			playcout=12;
			playsound();
			delay_2S();
			delay_2S();
			DDstop();
		}
		else if(temp>WARNING&&set==0)  //如果實際的酒精值大于報警值且在正常顯示狀態(tài)下
		{
//			flag=1;	//執(zhí)行下面flag=1的(主要就是紅燈閃,開蜂鳴器和繼電器)
			//濃度超標
			playbit=1;
			playcout=13;
			playsound();
			delay_2S();
			delay_2S();
			DDstop();
		}
		delay_2S();	
		//錄音鍵按下
		if(Key4==0)
		{
			Mode=1;
			while(Mode!=14)
			{
				//按鍵判斷
				if(Key4==0)
				{
					Mode++;
					Display_1602(0,0,Mode);
					while(Key4==0);
					//開始錄音
					playbit=0;
					recbit=1;
				//	playcout=Mode-1;
					

資料借鑒于此?紛傳

  • 有需要資料的可了解一下.docx
    下載

相關(guān)推薦

方案定制

去合作
方案開發(fā)定制化,2000+方案商即時響應(yīng)!