DSC_0023.JPG (167.99 KB, 下載次數: 22)
下載附件
2019-10-7 23:24 上傳
DSC_0024.JPG (152.42 KB, 下載次數: 21)
下載附件
2019-10-7 23:24 上傳
電路原理圖如下:
原理圖.jpg (106.08 KB, 下載次數: 22)
下載附件
2019-10-7 23:24 上傳
單片機源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define jump_ROM 0xCC
- #define start 0x44
- #define read_EEROM 0xBE
- sbit DQ = P3^2; //DS18B20數據口
- sbit BELL = P2^0;
- unsigned char TMPH,TMPL;
- uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數碼管字跟
- uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端
- /********************************************************************
- * 名稱 : delay()
- * 功能 : 延時,延時時間大概為140US。
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void delay_1()
- {
- int i,j;
- for(i=0; i<=10; i++)
- for(j=0; j<=2; j++)
- ;
- }
- /********************************************************************
- * 名稱 : delay()
- * 功能 : 延時函數
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void delay(uint N)
- {
- int i;
- for(i=0; i<N; i++)
- ;
- }
- /********************************************************************
- * 名稱 : Delay_1ms()
- * 功能 : 延時子程序,延時時間為 1ms * x
- * 輸入 : x (延時一毫秒的個數)
- * 輸出 : 無
- ***********************************************************************/
- void Delay_1ms(uint i)//1ms延時
- {
- uchar x,j;
- for(j=0;j<i;j++)
- for(x=0;x<=148;x++);
- }
- /********************************************************************
- * 名稱 : Reset()
- * 功能 : 復位DS18B20
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- uchar Reset(void)
- {
- uchar deceive_ready;
- DQ = 0;
- delay(29);
- DQ = 1;
- delay(3);
- deceive_ready = DQ;
- delay(25);
- return(deceive_ready);
- }
- /********************************************************************
- * 名稱 : read_bit()
- * 功能 : 從DS18B20讀一個位值
- * 輸入 : 無
- * 輸出 : 從DS18B20讀出的一個位值
- ***********************************************************************/
- uchar read_bit(void)
- {
- uchar i;
- DQ = 0;
- DQ = 1;
- for(i=0; i<3; i++);
- return(DQ);
- }
- /********************************************************************
- * 名稱 : write_bit()
- * 功能 : 向DS18B20寫一位
- * 輸入 : bitval(要對DS18B20寫入的位值)
- * 輸出 : 無
- ***********************************************************************/
- void write_bit(uchar bitval)
- {
- DQ=0;if(bitval==1)
- DQ=1;
- delay(5);
- DQ=1;
- }
- /********************************************************************
- * 名稱 : read_byte()
- * 功能 : 從DS18B20讀一個字節
- * 輸入 : 無
- * 輸出 : 從DS18B20讀到的值
- ***********************************************************************/
- uchar read_byte(void)
- {
- uchar i,m,receive_data;
- m = 1;
- receive_data = 0;
- for(i=0; i<8; i++)
- {
- if(read_bit())
- {
- receive_data = receive_data + (m << i);
- }
- delay(6);
- }
- return(receive_data);
- }
- /********************************************************************
- * 名稱 : write_byte()
- * 功能 : 向DS18B20寫一個字節
- * 輸入 : val(要對DS18B20寫入的命令值)
- * 輸出 : 無
- ***********************************************************************/
- void write_byte(uchar val)
- {
- uchar i,temp;
- for(i=0; i<8; i++)
- {
- temp = val >> i;
- temp = temp & 0x01;
- write_bit(temp);
- delay(5);
- }
- }
- /********************************************************************
- * 名稱 : Main()
- * 功能 : 主函數
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void main()
- {
- float tt;
- uint temp,t1,t2;
- P2=0xff;
- while(1)
- {
- Reset();
- write_byte(jump_ROM);
- write_byte(start);
- Reset();
- write_byte(jump_ROM);
- write_byte(read_EEROM);
- TMPL = read_byte();
- TMPH = read_byte();
- temp = TMPL / 16 + TMPH * 16;
- t1=temp/10%10;
- t2=temp%10 ;
- if(temp>=35)
- {
- P2=0xf0;
- }
- if(temp<=32)
- {
- P2=0xff;
- }
- }
- }
復制代碼 程序下載地址:
溫度報警器帶報警.rar
(324.67 KB, 下載次數: 23)
2019-10-7 23:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
溫度報警器帶報警四路防plc.rar
(324.67 KB, 下載次數: 19)
2019-10-7 23:26 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|