娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

1,實物照片
 

 

 

 


2,Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
 

 

元件清單:
1.    AT89C52
2.    40P底座
3.    8P底座
4.    5MM LED*2(紅色、綠色)
5.    3MM LED(黃色)
6.    12M晶振
7.    30P瓷片電容*2
8.    10uf電解電容
9.    10K電阻*2
10.    1K電阻*5
11.    16P液晶底座
12.    103電位器*2
13.    9*15萬用板
14.    ADC0832芯片
15.    1602液晶
16.    按鍵*5
17.    繼電器
18.    蜂鳴器
19.    MQ2
20.    MQ2底座
21.    DS18B20
22.    3P圓孔母座
23.    8550三極管
24.    8050三極管
25.    自鎖開關
26.    DC電源插口
27.    導線 
28.    USB電源線


3整機程序

#include

#include

#include

#include "DS18B20.h"   

#define uint unsigned int

#define uchar unsigned char   //宏定義

#define BEEP P3_4    //定義蜂鳴器

#define hujiao P1_3 

sbit BEEP=P3^4;

sbit hujiao=P1^3;

sbit RS=P2^5;

sbit RW=P2^6;

sbit EN=P2^7;

sbit led_h=P1^4;

sbit led_l=P1^5;

sbit JDQ=P2^0;

sbit ADCS = P3^7;

sbit ADCLK = P3^5;

sbit ADDI = P3^6;

sbit ADDO = P3^6;

bit shanshuo_st;    //閃爍間隔標志

bit beep_st;     //蜂鳴器間隔標志

bit flag=0;//緊急呼叫標志

sbit DIAN = P2^5;        //小數點

uint abc;

uchar x=4;      //計數器

signed char m;     //溫度值全局變量

uchar n;      //溫度值全局變量

uchar data disdata[5];

uchar code LEDData[]={0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0};

uchar code table[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00}; // 攝氏溫度符號

/*****初始化定時器0*****/

void InitTimer(void)

{

TMOD=0x1;

TH0=0x4c;

TL0=0x00;     //50ms(晶振11.0592M)

}

/*****定時器0中斷服務程序*****/

void timer0(void) interrupt 1

{

TH0=0x4c;

TL0=0x00;

x++;

}

/*****讀取溫度*****/

void check_wendu(void)

{

uint a,b,c;

c=ReadTemperature()-5; //獲取溫度值并減去DS18B20的溫漂誤差

a=c/100;     //計算得到十位數字

b=c/10-a*10;    //計算得到個位數字

m=c/10;      //計算得到整數位

n=c-a*100-b*10;    //計算得到小數位

if(m<0){m=0;n=0;}   //設置溫度顯示上限

if(m>99){m=99;n=9;}   //設置溫度顯示上限    

}

/*************************lcd1602程序**************************/

void delay1ms(uint ms)//延時1毫秒(不夠精確的)

{  uint i,j;

   for(i=0;i    for(j=0;j<100;j++);

}

unsigned char rolmove(unsigned  char m)

  

  unsigned char   a,b,c,d,e,f,g,h;               

a=(m&0x01)<<7;

b=(m&0x02)<<5;

c=(m&0x04)<<3; 

d=(m&0x08)<<1;

e=(m&0x10)>>1;

f=(m&0x20)>>3;

g=(m&0x40)>>5;

h=(m&0x80)>>7;

m=a|b|c|d|e|f|g|h; 

return m;

}

void wr_com(uchar com)//寫指令//

{ delay1ms(1);

   RS=0;

   RW=0;

   EN=0;

   P0=rolmove(com);

   delay1ms(1);

   EN=1;

   delay1ms(1);

   EN=0;

}

void wr_dat(uchar dat)//寫數據//

{ delay1ms(1);;

   RS=1;

   RW=0;

   EN=0;

   P0=rolmove(dat);

   delay1ms(1);

   EN=1;

   delay1ms(1);

   EN=0;

}

void wr_new()    //寫新字符

{

uchar i;

wr_com(0x40);

for(i=0;i<8;i++)

{

  wr_dat(table[i]);

}

}

void lcd_init()//初始化設置//

{ delay1ms(15);

wr_com(0x38);delay1ms(5);

wr_com(0x08);delay1ms(5);

wr_com(0x01);delay1ms(5);

  wr_com(0x06);delay1ms(5);

wr_com(0x0c);delay1ms(5);

wr_new();

wr_com(0x80);

    wr_dat('S');//A

wr_com(0x81);

    wr_dat('m');//:

   wr_com(0x82);

    wr_dat('o');

   wr_com(0x83);

    wr_dat('k');

wr_com(0x84);

    wr_dat('e');

   wr_com(0x85);

    wr_dat(':');

   wr_com(0x87);

    wr_dat('T');

wr_com(0x88);

    wr_dat('e');

   wr_com(0x89);

    wr_dat('m');

   wr_com(0x8a);

    wr_dat(':');

wr_com(0x8d);

    wr_dat('.');

wr_com(0x8f);

    wr_dat('C');

    

wr_com(0xc0);

    wr_dat('A');

wr_com(0xc1);

    wr_dat('l');

wr_com(0xc2);

    wr_dat('a');

   wr_com(0xc3);

    wr_dat('r');

wr_com(0xc4);

    wr_dat('m');

wr_com(0xc5);

    wr_dat(':');

wr_com(0xcb);

    wr_dat('-');

   wr_com(0xce);

    wr_dat('C');   

}

/*****************顯示函數******************************/

void disp()//溫度值顯示

{

     disdata[0]=m/10+0x30;//十位數

     disdata[1]=m%10+0x30;//個位數

     disdata[2]=n+0x30;//小數位

     disdata[3]=abc+0x30;//煙霧濃度

    wr_com(0x8b);

    wr_dat(disdata[0]);//顯示十位 

    wr_com(0x8c);

    wr_dat(disdata[1]);//顯示個位 

    wr_com(0x8e);

    wr_dat(disdata[2]);//顯示小數位

    wr_com(0x86);

    wr_dat(disdata[3]);

}

void baojing()

{

wr_com(0xc9);

    wr_dat(tab[0]+0x30);

wr_com(0xca);

    wr_dat(tab[1]+0x30); 

wr_com(0xcc);

    wr_dat(tab[2]+0x30);

wr_com(0xcd);

    wr_dat(tab[3]+0x30);

wr_com(0xc6);

    wr_dat(tab[4]+0x30);

}

/*****報警子程序*****/

void Alarm()

{

if((m>=shangxian&&beep_st==1)||(melse if(abc>=nongdu&&beep_st==1) BEEP=1;

else BEEP=0;

if(m>=shangxian||melse if(abc>=nongdu) {led_h=0;led_l=1;JDQ=0;}

else {led_h=1;led_l=0;JDQ=1;}

if(x>=10){beep_st=~beep_st;x=0;}

}

void Alarm1()

{

led_h=0;

led_l=1;

if(x>=10){beep_st=~beep_st;x=0;}

if(beep_st==1)BEEP=1;

else BEEP=0;

led_h=0;

led_l=1;

JDQ=0;

}

uchar ADC0832(bit mode,bit channel)     //AD轉換,返回結果

{

uchar i,dat,ndat;


ADCS = 0;//拉低CS端

_nop_();

_nop_();


ADDI = 1; //第1個下降沿為高電平

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿1

_nop_();

_nop_();


ADDI = mode; //低電平為差分模式,高電平為單通道模式。 

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿2

_nop_();

_nop_();


ADDI = channel; //低電平為CH0,高電平為CH1 

ADCLK = 1;//拉高CLK端

_nop_();

_nop_();

ADCLK = 0;//拉低CLK端,形成下降沿3


ADDI = 1;//控制命令結束(經試驗必需)

dat = 0;

//下面開始讀取轉換后的數據,從最高位開始依次輸出(D7~D0)

for(i = 0;i < 8;i++)

{

  dat <<= 1;

  ADCLK=1;//拉高時鐘端

  _nop_();

  _nop_();

  ADCLK=0;//拉低時鐘端形成一次時鐘脈沖

  _nop_();

  _nop_();

  dat |= ADDO;

}

ndat = 0;     //記錄D0

if(ADDO == 1)

ndat |= 0x80;

//下面開始繼續讀取反序的數據(從D1到D7) 

for(i = 0;i < 7;i++)

{

  ndat >>= 1;

  ADCLK = 1;//拉高時鐘端

  _nop_();

  _nop_();

  ADCLK=0;//拉低時鐘端形成一次時鐘脈沖

  _nop_();

  _nop_();

  if(ADDO==1)

  ndat |= 0x80;

}   

ADCS=1;//拉高CS端,結束轉換

ADCLK=0;//拉低CLK端

ADDI=1;//拉高數據端,回到初始狀態

if(dat==ndat)

return(dat);

else

return 0;   

}

/*****主函數*****/

void main(void)

{

InitTimer();    //初始化定時器

EA=1;      //全局中斷開關

TR0=1;

ET0=1;      //開啟定時器0

BEEP=0;

led_h=1;

led_l=1;

JDQ=1;

check_wendu();

check_wendu();

lcd_init();//初始化顯示

delay1ms(100);

lcd_init();//初始化顯示

delay1ms(100);

while(1)

{

if(hujiao==0)

{

   Delay(2000);

   do{}while(hujiao==0);

   flag=~flag;

}

checkkey();

  abc = ADC0832(1,0);  //差分模式,CH0-CH1

  abc = abc*19.607843; //轉換為實際電壓便于顯示

  abc=abc/1000%10;

    check_wendu();

disp();

baojing();

if(flag==1){Alarm1();JDQ=0;}

else    Alarm();   //報警檢測

if(set_st==0) wr_com(0x0c);

if(set_st==1)

{

wr_com(0xc6);

wr_com(0x0d);

delay1ms(150);

}

if(set_st==2)

{

wr_com(0xca);

wr_com(0x0d);

delay1ms(150);

}

if(set_st==3)

{

wr_com(0xcd);

wr_com(0x0d);

delay1ms(150);

}

}

}/*****END*****/



關鍵字:單片機  ADC0832  MQ2溫度煙霧報警控制 引用地址:單片機+ADC0832+MQ2溫度煙霧報警控制

上一篇:單片機自動澆花系統設計
下一篇:51單片機PCF8591 AD DA轉換電位器控制舵機旋轉的源程序

推薦閱讀

? ? 去年谷歌發布旗下Pixel 2系列手機之后,就有消費者陸續曝出不少的bug,包括屏幕等等軟硬件問題。今年發布的Pixel 3系列亦是如此。  除了已經曝光的兩個揚聲器的音量大小不一致、內存管理機制出問題、拍攝照片之后有時無法保存等之外,現在,又有消息曝光了Pixel 3 XL手機會在側面顯示第二個“劉海”。  對于Pixel 3系列機型上出現的這些b...
(文章來源:中科羅伯特機器人學院) 丹麥的機器人制造商R是移動機器人全球市場領導者,最近首次在華公開展示最高負載1噸的MiR1000機器人。MiR的首席執行官Thomas Vis表示:“自今年4月推出后,這是我們在中國乃至亞太地區首次公開展示這款產品。它的誕生不僅順應了全球工業制造業蓬勃發展的人機協作趨勢,也符合市場對內部物流所提出的更高層次的要求...
今天,爆料者@數碼閑聊站透露型號為 M2007J17C 和 M2007J22C 的手機已獲得 3C 認證。他聲稱這些機型是下一代 Redmi Note 系列智能手機。3C 信息顯示 M2007J17C 和 M2007J22C 是兩款不同的手機,因為它們的充電器提供不同的最大充電功率。信息顯示,M2007J17C 可能配備 33W 快速充電器,而 M2007J22C 可能隨附 22.5W 快速充電器。兩款...
隨著智能汽車的發展,車內觸屏的設計也越來越多的被應用于汽車的各個角落,而觸覺反饋也給汽車界面帶來了新的功能,以減少駕駛員誤觸而分心操控車內功能,實現盲操,重塑用戶體驗。 觸覺是一種自然的人類感覺,它可應用于整個汽車的HMI中,以提供一種觸覺的、擬形的設計方法,其應用范圍非常廣。 HaptX的觸覺手套使用了一系列傳感器和130個觸覺致動器,為...

史海拾趣

問答坊 | AI 解惑

綠色照明─中國節能產業跨世紀的戰略

1.1 綠色照明                                    &n ...…

查看全部問答∨

求SPFD5420A液晶控制器的init code

求SPFD5420A液晶控制器的init code,請有代碼的大俠們貼一份吧,不勝感激!…

查看全部問答∨

Cortex-m3 lm1138 程序下到FLASH里面跑飛了怎么回事!

   我的程序下到板子里運行來控制電機,都是經過光耦的,用繼電器來控制轉向,AD采樣后判斷,進行快速的切換轉向就回出現程序跑飛了,復位鍵也無效!只有重新下載,開發環境IAR  MDK都用了,MDK出現的情況少點,IAR出現的比較 ...…

查看全部問答∨

 優秀PCB設計工程師所需要具備的本領

1.會熟練的使用cadence或mentor軟件layout.         2.能獨檔一面,從做器件到布局布線出光繪。     3.有做各種pcb的設計經驗, 如電腦主板,手機,數碼相機等電子消費產品,GSM和3G產品的基站單元板,背板 ...…

查看全部問答∨

【求助】MSP430F427的液晶驅動?

本人在使用MSP430F427液晶驅動模塊時,遇到如下問題,希望各位高手指點: 配置好Basic Timer1作為on the LCD’s frame frequency(BTCTL = 0xb7 ;),這時如果使能LCDON(LCDCTL = 0x35;),將在所有的segment pin測出有驅動信號(接上相應的3 ...…

查看全部問答∨

準備轉投TI,立貼

以前是搞STM32的,選型的時候光看144引腳了,結果發現網絡功能這塊有很多工作要做,USB也是外置芯片,處理起來超級不順手。以前真的不太看好流明的東西,但是現在被TI收購了,且TI整合產品線,即將推出M4,而且引腳也達到144,所以非常看好M4的前景 ...…

查看全部問答∨

EEPROM為什么不能保存,學習中。。

#include <intrins.h>#include <reg52.h>      //52系列單片機頭文件#define uchar unsigned char#define uint unsigned int #define RdCommand 0x01 //定義ISP的操作命令#define PrgCommand 0x02#define EraseCo ...…

查看全部問答∨

時鐘配置

如何給lm3s9b96 配置11.0592MHz的時鐘…

查看全部問答∨

用萬用表測頻率問題

請教各位大俠,在只有一個探頭,沒有參考點的情況下,怎樣用萬用表測頻率?…

查看全部問答∨

MSP430F常用模塊應用原理

MSP430F常用模塊應用原理…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 台北市| 阿拉尔市| 清镇市| 新田县| 泊头市| 林西县| 威信县| 新绛县| 中方县| 阿克陶县| 南澳县| 兴隆县| 东明县| 黄龙县| 永春县| 调兵山市| 德庆县| 夏河县| 喀喇沁旗| 阳原县| 开化县| 英山县| 读书| 抚远县| 长泰县| 舞钢市| 德保县| 富民县| 邻水| 剑阁县| 旺苍县| 湖北省| 郧西县| 淳安县| 上杭县| 武安市| 娱乐| 修文县| 云霄县| 广宗县| 自贡市|