久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3444|回復: 1
打印 上一主題 下一主題
收起左側

酒精檢測

[復制鏈接]
跳轉到指定樓層
樓主
ID:438588 發表于 2018-12-3 18:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/***********************************************************/
#include<reg51.h>             //頭文件
#include<LCD1602.h>
#include<ADC0832.h>
#include<EEPROM.h>
#include<INTERRUPT.h>     
#define uchar unsigned char
#define uint unsigned int
/*****************燈、蜂鳴器、按鍵引腳定義******************/
sbit led=P1^7;             //LED燈(紅)
sbit buzz=P2^3;            //蜂鳴器
sbit key_set=P1^0;          //設置鍵
sbit key_jia=P1^3;                        //加鍵
sbit key_jian=P1^6;         //減鍵
/*****************全局變量定義******************************/
#define K_MG_MV 2      
#define IN_V 500
long ALValue;
uchar K_ZERO;
uint jiujia_up,zuijia_up;
uint set_f;
uchar num;
/***********************************************************
函數名稱:void fixed_display()
函數作用:固定顯示部分
參數說明:
************************************************************/
void fixed_display()
{
    lcd1602_write_character(0,1,"ALcohol content:");
        lcd1602_write_character(8,2,"PPM");
}
/***********************************************************
函數名稱:void display1()
函數作用:顯示實際濃度值
參數說明:
************************************************************/
void display1()
{
    fixed_display();
        if(K_ZERO+2>ADC_date)
             K_ZERO=ADC_date;
    ALValue=(long)IN_V*(ADC_date-K_ZERO)/255;
        if(ALValue<0)
             ALValue=0;
        ALValue=ALValue*K_MG_MV;
        LCD_disp_char(5,2,ASCII[ALValue/100]);
    LCD_disp_char(6,2,ASCII[ALValue%100/10]);
        LCD_disp_char(7,2,ASCII[ALValue%10]);
        if(zuijia_up<=AVlalue)
        {
           led=0;
           buzz=0;
        }
        else
           if(jiujia_up<=ALValue)
           {
               led=0;
                   buzz=1;
           }
           else
           {
               led=1;
                   buzz=1;
           }
}
/***********************************************************
函數名稱:void display2(void)
函數作用:顯示設置時酒駕、醉駕上限值
參數說明:
************************************************************/
void display2(void)
{
    num++;
        if(num==254)
            num=0;
    lcd1602_write_character(0,1,"Jiujia Limit:");
    lcd1602_write_character(0,2,"Ziujia Limit:");
        if(num%2==0)
        {
            LCD_disp_char(13,1,ASCII[jiujia_up/100]);
            LCD_disp_char(14,1,ASCII[jiujia_up%100/10]);
            LCD_disp_char(15,1,ASCII[jiujia_up%10]);
            LCD_disp_char(13,1,ASCII[ziujia_up/100]);
            LCD_disp_char(13,1,ASCII[ziujia_up%100/10]);
            LCD_disp_char(13,1,ASCII[ziujia_up%10]);
        }
        else
        {
            if(set_f==1)
                {
                    LCD_disp_char(13,1,ASCII[13]);
                        LCD_disp_char(14,1,ASCII[13]);
                        LCD_disp_char(15,1,ASCII[13]);
            }
                else
                {
                    LCD_disp_char(13,1,ASCII[jiujia_up/100]);
                LCD_disp_char(14,1,ASCII[jiujia_up%100/10]);
                LCD_disp_char(15,1,ASCII[jiujia_up%10]);
                }
                if(set_f==2)
                {
                    LCD_disp_char(13,2,ASCII[13]);
                        LCD_disp_char(14,2,ASCII[13]);
                        LCD_disp_char(15,2,ASCII[13]);
                }
            else
                {
                        LCD_disp_char(13,1,ASCII[ziujia_up/100]);
                LCD_disp_char(13,1,ASCII[ziujia_up%100/10]);
                LCD_disp_char(13,1,ASCII[ziujia_up%10]);
                }
        }
}
/***********************************************************
函數名稱:void delayms(uint ms)
函數作用:毫秒延時函數
參數說明:
************************************************************/
void delayms(uint ms)
{
       unsigned char i=100,j;
           for(;ms;ms--)
           {
               while(--i)
                   {
                       j=10;
                           while(--j);
                   }
           }
}
/***********************************************************
函數名稱:void scan(void)
函數作用:按鍵檢測及處理
參數說明:
************************************************************/
void scan(void)
{
     //設置鍵,不支持連按
         if(key_set==00)
         {
            delayms(7);
                if(key_set==0)
                {
                    led=1;
                        buzz=1;
                        if(set_f==0)
                        {
                            LCD_write_command(0x01);
                                delay_n40us(100);
                                display2();
                        }
                        set_f++;
                        if(set_f==3)
                        {
                            set_f=0;
                                EEPROM_delete(0x2002);
                                EEPROM_write(0x2002,jiujia_up/100);
                                EEPROM_write(0x200a,jiujia_up%100);
                                EEPROM_delete(0x2202);
                                EEPROM_write(0x2202,zuijia_up/100);
                                EEPROM_write(0x220a,zuijia_up%100);
                                LCD_write_command(0x01);
                                delay_n40us(100);
                                fixed_display();
                        }
                }
                while(!key_set);
         }
         //加值鍵,支持連續
         if(key_jia==0&&set_f!=0)
         {
            delayms(7);
                if(key_jia==0set_f==1)
                {
                    if(jiujia_up<999&&jiujia_up<zuijia_up-1)
                            jiujia_up++;
                        display2();
                }
                if(key_jia==0&&set_f==2)
                {
                    if(zuijia_up<999)
                            zuijia_up++;
                        display2();
                }
         }
         //減值鍵,支持連續
         if(key_jian==0&&set_f!=0)
         {
            delayms(7);
                if(key_jian==0set_f==1)
                {
                    if(jiujia_up!=0)
                            jiujia_up--;
                        display2();
                }
                if(key_jia==0&&set_f==2)
                {
                    if(zuijia_up!=0&&zuijia_up>jiujia_up+1)
                            zuijia_up--;
                        display2();
                }
         }
}
/***********************************************************
函數名稱:void main()
函數作用:主函數
參數說明:
************************************************************/
void main()
{
     uchar i=0;
         T0_init();
         LCD_init();           
         /*EEPROM_delete(0x2002);
         EEPROM_write(0x2002,80/100);
         EEPROM_write(0x200a,80%100);
         jiujia_up=EEPROM_read(0x2002);
         jiujia_up=jiujia_up*100+EEPROM_read(0x200a);
         /*EEPROM_delete(0x2202);
         EEPROM_write(0x2202,150/100);
         EEPROM_write(0x220a,150%100);
         ziujia_up=EEPROM_read(0x2202);
         ziujia_up=ziujia_up*100+EEPROM_read(0x220a);
         while(!wait_f)
         {
             lcd1602_write_character(0,1,"Please wait for!");
                 LCD_disp_char(6,2,ASCII[(60-time)/10]);
                 LCD_disp_char(7,2,ASCII[(60-time)%10]);
                 LCD_disp_char(9,2,s);
         }//*/
         ADC0832_read(0);
         K_ZERO=ADC_date;
         while(1)
         {
             /*ADC0832_read(0);
                 LCD_disp_char(0,2,ASCII[K_ZERO/100]);
                 LCD_disp_char(1,2,ASCII[K_ZERO%100/10]);
                 LCD_disp_char(2,2,ASCII[K_ZERO%10]);//*/
                 scan();
                 if(set_f==0)
                 {
                     i++;
                         if(i>50)
                         {
                              ADC0832_read(0);
                                  i=0;
                     }
                         display1();
                 }
             else
                 display2();
         }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2018-12-4 04:21 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品99在线 | 国产亚洲精品精品国产亚洲综合 | 亚洲精品成人 | 亚洲一区二区在线电影 | 精品久久久久久久久久久下田 | 91操操操 | 九九伦理电影 | 久久国产婷婷国产香蕉 | 国产精品一区二区福利视频 | 高清av在线 | 美女三区 | 亚洲91| 宅女噜噜66国产精品观看免费 | 蜜月aⅴ国产精品 | 亚洲欧美一区二区三区在线 | 国产精品美女久久久久久久久久久 | 精品在线一区 | 99福利视频| 久久精品国产亚洲a | 91一区二区三区在线观看 | 久久亚洲一区二区三区四区 | 91精品国产综合久久久久久漫画 | 中文字幕日韩欧美一区二区三区 | 国产欧美一区二区三区日本久久久 | 免费黄色的网站 | 91视视频在线观看入口直接观看 | 欧美成人免费在线 | 亚洲精品视频网站在线观看 | 免费在线看黄 | 国产一区二区三区免费视频 | 久久久久无码国产精品一区 | 免费亚洲婷婷 | 国产免费一区二区三区最新6 | 亚洲va欧美va天堂v国产综合 | 在线视频 亚洲 | 一级片网站视频 | 神马久久久久久久久久 | 日韩一区精品 | 99精品欧美一区二区蜜桃免费 | 黄色一级毛片 | 一区二区免费在线视频 |