亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tempc.c

?? 溫度傳感器程序
?? C
字號:
#include <reg51.h>
#include <intrins.h>

sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3= P3^3;
sbit P3_4= P3^4;
sbit P3_5= P3^5;
sbit P3_6= P3^6;
sbit P3_7= P3^7;

#define LEDPort           P1      //LED控制口
#define LEDf           P3_0    //LEDf
#define LED1           P3_1    //LED1
#define LED2           P3_2    //LED2
#define LED3           P3_3    //LED3
#define LED4           P3_4    //LED4
#define Key_jd            P3_5    //上調(diào)溫度
#define TMPort	P3_7		//DS1820 DataPort


unsigned char code LEDDis[]={0x5f,0x06,0x3b,0x2f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的LED筆劃,0xFF為空,0xF7為負(fù)號

static unsigned char bdata StateREG;	//可位尋址的狀態(tài)寄存器
sbit DS18B20ON = StateREG^0;	          //DS1820是否存在
sbit SetTF = StateREG^1;              //是否是在溫度設(shè)置狀態(tài)

static signed char LED_f,LED_1,LED_2,LED_3,LED_4;  //LED的顯示位 LED_One為十位,LED_Two為個(gè)位
static signed char L_1,L_2,L_3,L_4,L_5;  //LED的顯示位 LED_One為十位,LED_Two為個(gè)位
static unsigned char Sign; //負(fù)號標(biāo)識
static unsigned char sign_jd; //精度標(biāo)識
static unsigned char KeyV,TempKeyV;      //鍵值

static unsigned char bdata TLV _at_ 0x0029;         //溫度變量高低位
static unsigned char bdata THV _at_ 0x0028;
static signed char TMV;       //轉(zhuǎn)換后的溫度值
static signed char TM;       //轉(zhuǎn)換后的溫度值
static signed int wd;       //轉(zhuǎn)換后的溫度值
static signed int zd;       //轉(zhuǎn)換后的溫度值

void Delay_10ms(void);
void InitDS1820(void);
void ROMDS1820(void);
void TMVDS1820(void);
void Delay_510(void);
void TMRDS1820(void);
void ReadDS1820(void);
void V2ToV(void);
void Delay_110(void);



void main(void)
{
    THV = 0;
	TLV = 0;
	TMV = 0;
	TM=0;
	KeyV = 0;
	TempKeyV = 0;
    zd=50;

	InitDS1820(); //初始化
	ROMDS1820(); 	//跳過ROM
	TMRDS1820(); 	//讀出溫度指令
	ReadDS1820(); //讀出溫度值和上限值

	EA = 1;					//允許CPU中斷
	ET0 = 1; 				//定時(shí)器0中斷打開
	TMOD = 0x1;			//設(shè)定時(shí)器0為模式1,16位模式
	TH0=0xB1;
	TL0=0xDF;				//設(shè)定時(shí)值為20000us(20ms)
	TR0 = 1;				//開始定時(shí)
	while(1);
}

//定時(shí)器0中斷外理中鍵掃描和顯示
void KeyAndDis_Time0(void) interrupt 1 using 2
{
  TH0=0xb1;
  TL0=0xDF;				//設(shè)定時(shí)值為20000us(20ms)
  Key_jd=1;
  LEDPort = 0x00;
  zd++;
  if (zd>50)
   {
  if (!Key_jd)
    KeyV = 1;

  if (KeyV != 0)      //有鍵按下
    {
      Delay_10ms();   //延時(shí)防抖  按下10ms再測
      if (!Key_jd)
        TempKeyV = 1;
      if (KeyV == TempKeyV)   //兩次值相等為確定接下了鍵
        {
          sign_jd=!sign_jd;
		  zd=0;
        }
    }
   }
  KeyV = 0;
  TempKeyV = 0;   //清空變量準(zhǔn)備下次鍵掃描

  if (DS18B20ON)
    {
      InitDS1820();	//初始化
      ROMDS1820(); 	//跳過ROM
      TMVDS1820();  //溫度轉(zhuǎn)換指令

      Delay_510();
      Delay_510();  //延時(shí)等待轉(zhuǎn)換完成

      InitDS1820(); //初始化
      ROMDS1820(); 	//跳過ROM
      TMRDS1820(); 	//讀出溫度指令
      ReadDS1820(); //讀出溫度值
      V2ToV(); 
      if (LED_f==1)//轉(zhuǎn)換顯示值
      LEDf=0;
	  else
	  LEDf=1;
	  LEDPort = ~LED_1;
      LED1 = 0;
      Delay_510();
      Delay_510();
      LED1 = 1;    //顯示百位數(shù)
      LEDPort = ~LED_2;
      LED2 = 0;
      Delay_510();
      Delay_510();
      LED2 = 1;    //顯示百位數(shù)
      LEDPort = ~LED_3;
      LED3 = 0;
      Delay_510();
      Delay_510();
      LED3 = 1;    //顯示百位數(shù)
      LEDPort = ~LED_4;
      LED4 = 0;
      Delay_510();
      Delay_510();
      LED4 = 1;    //顯示百位數(shù)

    }
}





void V2ToV(void)	//數(shù)值轉(zhuǎn)換
{
  TM=TLV<<4;
  TLV = TLV >> 4;			
  THV = THV << 4;			//讀出的高低位數(shù)值移位
  TMV = TLV | THV;		//合并高低位放入TM為實(shí)際溫度值
  Sign = 0;
  Sign = TMV >> 7;
  if (Sign)
		{
    		L_1= (~(TMV-1)) / 100;							//轉(zhuǎn)換百位值		
			L_2= ((~(TMV-1)) - L_1 * 100)/10;
			L_3 = (~(TMV-1)) - L_1 * 100 - L_2 * 10;
		}
	else
		{ 
    		L_1= (TMV) / 100;							//轉(zhuǎn)換百位值		
			L_2= (TMV - L_1 * 100)/10;
			L_3 = TMV - L_1 * 100 - L_2 * 10;
		}
  if (Sign)
		{
    		TM=~(TM-1);
			LED_f=1;
		}
	  else
	   {

	   LED_f=0;
	    }
  wd=0;	 
  if (TM & 0x80){wd=wd+5000;}
  if (TM & 0x40){wd=wd+2500;}
  if (TM & 0x20){wd=wd+1250;}
  if (TM & 0x10){wd=wd+625;}
  L_4=wd/1000;
  L_5=(wd-L_4*1000)/100;
  if (sign_jd)
    {
     LED_1=LEDDis[L_2];		
     LED_2=LEDDis[L_3]|0x80;	
     LED_3=LEDDis[L_4];	
     LED_4=LEDDis[L_5];				
    }
  else
    {
     LED_1=LEDDis[L_1];		
     LED_2=LEDDis[L_2];	
     LED_3=LEDDis[L_3]|0x80;	
     LED_4=LEDDis[L_4];				
	}
}


void InitDS1820(void)		//初始化DS1820
{
  TMPort=1;		//拉高TMPort
	_nop_();      //保持一個(gè)周期
	TMPort = 0;		//拉低TMPort
  Delay_510();  //延時(shí)  DS1820復(fù)位時(shí)間要500us的低電平
  TMPort = 1;   //拉高TMPort
	_nop_();      //保持  
	_nop_();
	_nop_();

  Delay_110();  //延時(shí)110us 等待DS1820回應(yīng)
  if (!TMPort)  //回應(yīng)信號為低電平
    DS18B20ON = 1;
  else
    DS18B20ON = 0;
  Delay_110();  //延時(shí)
  Delay_110();
  TMPort = 1;   //拉高TMPort
}


void Delay_510(void)	//延時(shí)510微秒
{
#pragma asm
	MOV R0,#7DH
	MOV R1,#02H
	TSR1:
	DJNZ R0,TSR1
	MOV R0,#7DH
	DJNZ R1,TSR1
#pragma endasm
}

void Delay_110(void)	//延時(shí)110微秒
{
#pragma asm
	MOV R0,#19H
	MOV R1,#02H
	TSR2:
	DJNZ R0,TSR2
	MOV R0,#19H
	DJNZ R1,TSR2
#pragma endasm
}

void Delay_10ms(void)	//延時(shí)10ms
{
#pragma asm
	MOV R0,#19H
	MOV R1,#0C8H
	TSR3:
	DJNZ R0,TSR3
	MOV R0,#19H
	DJNZ R1,TSR3
#pragma endasm
}

void Delay_4s(void)	//延時(shí)4s
{
#pragma asm
  MOV R2,#28H
  TSR5:
	MOV R0,#0FAH
	MOV R1,#0C8H
	TSR4:
	DJNZ R0,TSR4
	MOV R0,#0FAH
	DJNZ R1,TSR4
  DJNZ R2,TSR5
#pragma endasm
}

void ROMDS1820(void)  //跳過ROM匹配
{
#pragma asm
  MOV A,#0CCH
  MOV R2,#8
  CLR C
  WR1:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR1
  SETB P3_7
#pragma endasm
}

void TMVDS1820(void)  //溫度轉(zhuǎn)換指令
{
#pragma asm
  MOV A,#44H
  MOV R2,#8
  CLR C
  WR2:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR2
  SETB P3_7
#pragma endasm
}

void TMRDS1820(void)  //讀出溫度指令
{
#pragma asm
  MOV A,#0BEH
  MOV R2,#8
  CLR C
  WR3:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR3
  SETB P3_7
#pragma endasm
}

void TMWDS1820(void)  //寫入溫度限制指令
{
#pragma asm
  MOV A,#04EH
  MOV R2,#8
  CLR C
  WR13:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR13
  SETB P3_7
#pragma endasm
}

void TMREDS1820(void)		//COPY RAM to E2PRAM
{
#pragma asm
  MOV A,#48H
  MOV R2,#8
  CLR C
  WR33:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR33
  SETB P3_7
#pragma endasm
}

void TMERDS1820(void)		//COPY E2PRAM to RAM
{
#pragma asm
  MOV A,#0B8H
  MOV R2,#8
  CLR C
  WR43:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR43
  SETB P3_7
#pragma endasm
}

void WriteDS1820(void)	//寫入溫度限制值
{
#pragma asm
	MOV A,26H					//發(fā)出4EH寫ROM指令后連發(fā)兩個(gè)字節(jié)分別為上下限
  MOV R2,#8
  CLR C
  WR23:
  CLR P3_7
  MOV R3,#6
  DJNZ R3,$
  RRC A
  MOV P3_7,C
  MOV R3,#23
  DJNZ R3,$
  SETB P3_7
  NOP
  DJNZ R2,WR23
  SETB P3_7       
#pragma endasm
}

void ReadDS1820(void) //讀出溫度值
{
#pragma asm
  MOV R4,#2 ; 將溫度高位和低位,高溫限制位從DS18B20中讀出
  MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高溫限制位存入27H(TMRomV)
  RE00:
  MOV R2,#8
  RE01:
  CLR C
  SETB P3_7
  NOP
  NOP
  CLR P3_7
  NOP
  NOP
  NOP
  SETB P3_7
  MOV R3,#09
  RE10: 
  DJNZ R3,RE10
  MOV C,P3_7
  MOV R3,#23
  RE20: 
  DJNZ R3,RE20
  RRC A
  DJNZ R2,RE01
  MOV @R1,A
  DEC R1
  DJNZ R4,RE00
#pragma endasm
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产麻豆免费人成网站| 欧美一区二区美女| 日韩一区精品视频| 国产精品传媒视频| 精品国产乱码久久久久久图片 | 久久成人羞羞网站| 亚洲少妇30p| 国产亚洲欧美一区在线观看| 欧美另类变人与禽xxxxx| eeuss鲁一区二区三区| 久久爱www久久做| 日本中文字幕一区| 一区二区三区四区激情| 国产精品久久久久一区| 2020国产精品久久精品美国| 欧美久久免费观看| 欧美吻胸吃奶大尺度电影| 成人一级片在线观看| 国产精品一区一区三区| 蜜桃一区二区三区在线观看| 天堂va蜜桃一区二区三区| 一区二区三区四区视频精品免费 | 欧美欧美午夜aⅴ在线观看| 成人免费毛片片v| 国产一区二区视频在线| 看电影不卡的网站| 奇米777欧美一区二区| 午夜精品福利一区二区三区av| 综合久久给合久久狠狠狠97色| 亚洲国产精品精华液ab| 国产欧美精品在线观看| 国产欧美日韩麻豆91| 久久久噜噜噜久噜久久综合| 精品第一国产综合精品aⅴ| 欧美一级一区二区| 91精品国产91综合久久蜜臀| 69堂亚洲精品首页| 欧美男女性生活在线直播观看| 欧美性三三影院| 欧美三级在线视频| 欧美日本一区二区在线观看| 欧美日本一区二区三区四区| 91麻豆精品国产91| 日韩欧美视频在线| xnxx国产精品| 欧美经典一区二区| 亚洲色图视频免费播放| 亚洲综合在线视频| 日韩高清在线电影| 国产资源精品在线观看| 从欧美一区二区三区| 99精品国产一区二区三区不卡| 91网址在线看| 欧美日韩一区三区| 欧美一级欧美三级| 久久久久久久久99精品| 国产精品美女久久久久久久久久久 | 亚洲在线视频网站| 性感美女极品91精品| 日韩av不卡在线观看| 国产精品一二三区| 色综合视频在线观看| 欧美日韩精品综合在线| 欧美成人vr18sexvr| 国产欧美日韩在线看| 亚洲精品大片www| 免费人成网站在线观看欧美高清| 国产一区二区福利视频| 成人精品亚洲人成在线| 欧美三片在线视频观看| 欧美精品一区二区蜜臀亚洲| 中文字幕第一页久久| 一二三四社区欧美黄| 精品一区二区三区视频在线观看| 99免费精品视频| 欧美高清视频不卡网| 国产视频一区二区在线观看| 亚洲精品高清视频在线观看| 久久电影网站中文字幕| 色拍拍在线精品视频8848| 日韩一级黄色片| 亚洲天堂中文字幕| 久久激情五月婷婷| 色噜噜狠狠成人网p站| 精品国产一区二区三区不卡| 亚洲精品免费在线播放| 久久99精品国产麻豆婷婷| 色婷婷综合久久| 久久久久久电影| 天天做天天摸天天爽国产一区| 国产不卡在线一区| 91精品中文字幕一区二区三区| 国产精品色在线观看| 蜜桃免费网站一区二区三区| 91福利精品第一导航| 国产亚洲欧美日韩俺去了| 午夜精品福利视频网站 | 欧美人伦禁忌dvd放荡欲情| 国产欧美精品区一区二区三区 | 一本久久综合亚洲鲁鲁五月天| 日韩网站在线看片你懂的| 亚洲人被黑人高潮完整版| 国产一区二区三区四区五区入口 | 成人黄色网址在线观看| 91精品国产综合久久精品图片| 日韩美女视频一区二区| 国产综合久久久久影院| 欧美精品亚洲二区| 亚洲免费电影在线| 成人精品视频一区二区三区 | 国产69精品久久99不卡| 这里只有精品视频在线观看| 一级精品视频在线观看宜春院| 岛国精品一区二区| 久久久亚洲高清| 久久99精品久久只有精品| 欧美日高清视频| 午夜激情一区二区三区| 欧美性生活影院| 亚洲图片有声小说| 91麻豆免费观看| 一区在线观看视频| av一区二区三区四区| 国产精品色哟哟| 成人午夜电影网站| 国产精品色哟哟网站| 国产91清纯白嫩初高中在线观看| 国产日韩欧美精品电影三级在线| 精品一二三四在线| 欧美精品一区二区三区视频| 美女网站视频久久| 亚洲精品在线观看视频| 久久99热这里只有精品| 久久一区二区视频| 久久er精品视频| 国产亚洲欧洲997久久综合| 国产成人精品一区二| 国产色产综合产在线视频| 国产精品性做久久久久久| 久久麻豆一区二区| www.av亚洲| 综合自拍亚洲综合图不卡区| 91丨porny丨户外露出| 一区二区三区在线视频播放| 欧美性色aⅴ视频一区日韩精品| 午夜欧美视频在线观看| 欧美一区二区三区性视频| 黄色成人免费在线| 中文字幕+乱码+中文字幕一区| 成人午夜在线视频| 一区二区三区免费网站| 欧美浪妇xxxx高跟鞋交| 久久精品国产99| 国产欧美中文在线| 色呦呦国产精品| 午夜伊人狠狠久久| 日韩欧美一区二区视频| 国产精品1区2区| 亚洲欧美国产三级| 91精品国产综合久久久久久久久久| 毛片不卡一区二区| 久久久国际精品| 色婷婷精品大视频在线蜜桃视频| 性做久久久久久久免费看| 日韩精品一区二| 97久久精品人人澡人人爽| 一二三四社区欧美黄| 欧美一区二区视频网站| 懂色中文一区二区在线播放| 亚洲图片有声小说| 国产色91在线| 在线观看一区不卡| 国产在线视频一区二区三区| ●精品国产综合乱码久久久久| 欧美片网站yy| 粉嫩av一区二区三区在线播放| 亚洲第四色夜色| 久久精品欧美日韩精品| 欧美色视频在线观看| 国产精品12区| 日韩精品国产精品| ...xxx性欧美| 久久综合狠狠综合| 欧美午夜免费电影| 成人免费视频一区| 偷拍一区二区三区| 国产精品乱码久久久久久| 91精品久久久久久蜜臀| 99久久精品99国产精品| 经典三级在线一区| 香港成人在线视频| 亚洲色图制服诱惑| 久久精品一区二区三区不卡牛牛| 欧美在线综合视频| 成人精品一区二区三区中文字幕| 免费观看30秒视频久久| 亚洲欧美另类在线| 久久精品视频网| 日韩美一区二区三区| 欧美在线你懂的|