freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于stc89c52、ds18b20、lcd1602、at24c02溫度警報器的單片機課程設計-資料下載頁

2025-10-18 11:22本頁面

【導讀】的檢測與控制是工業(yè)生產過程中比較典型的應用之一。種基于STC89C52的溫度檢測及報警系統。溫度時,通過蜂鳴器提示及報警信號,還提供時間顯示,調時功能。并且能夠存儲到AT24C02中隨時調出數據進行查看。統實現的硬件原理圖及軟件流程圖。經實驗測試表明,該系統測量精。度檢測中有廣闊的應用前景。制器,具有8K在系統可編程Flash存儲器。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位。降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切。工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,DS18B20數字溫度傳感器接線方便,封裝成后可應用于多種場合,主要根據應用場合的不同而改變其外觀。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計。圖2中的斜率累加器用于補償和修正測溫過程中的非線性,其輸。系統對DS18B20的各種操作必須按協。命令→發(fā)存儲器操作命令→處理數據。

  

【正文】 SendByte(sla)。 //發(fā)送器件地址 if(ack==0)return(0)。 SendByte(c)。 //發(fā)送數據 if(ack==0)return(0)。 Stop_I2c()。 //結束總線 return(1)。 } /******************************************************************* ADC 讀字節(jié)數據函數 *******************************************************************/ unsigned char IRcvByte(unsigned char sla) { unsigned char c。 Start_I2c()。 //啟動總線 SendByte(sla+1)。 //發(fā)送器件地址 if(ack==0)return(0)。 c=RcvByte()。 //讀取數據 0 Ack_I2c(1)。 //發(fā)送非就答位 Stop_I2c()。 //結束總線 return(c)。 } /* Display() { uchar adc。 unsigned long dianya。 ISendByte(PCF8591,0x40)。 adc=IRcvByte(PCF8591)。 //ADC0 模數轉換 1 放大2 倍顯示 M2=5*1000*(long)adc。 M2=M28。 return (dianya)。 } */ /******************以上是 PCF8591************/ /****************at24C02**************/ /******************************************************************* 向有子地址器件發(fā)送多字節(jié)數據函數 函數原型 : bit ISendStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no)。 功能 : 從啟動總線到發(fā)送地址,子地址 ,數據 ,結束總線的全過程 ,從器件 地址 sla,子地址 suba,發(fā)送內容是 s 指向的內容,發(fā)送 no個字節(jié)。 如果返回 1 表示操作成功,否則操作有誤。 注意: 使用前必須已結束總線。 ********************************************************************/ void x24c02_init() //24c02 初始化子程序 { scl=1。 delay(100)。 sda=1。 delay(100)。 } bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i。 Start_I2c()。 /*啟動總線 */ SendByte(sla)。 /*發(fā)送器件地址 */ if(ack==0) return(0)。 SendByte(suba)。 /*發(fā)送器件子地址 */ if(ack==0)return(0)。 for(i=0。ino。i++) { SendByte(*s)。 /*發(fā)送數據 */ if(ack==0)return(0)。 s++。 } Stop_I2c()。 /*結束總線 */ return(1)。 } /******************************************************************* 向有子地址器件讀取多字節(jié)數據函數 函數原型 : bit RedStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no)。 功能 : 從啟動總線到發(fā)送地址,子地址 ,讀數據,結束總線的全過程 ,從器件 地址 sla,子地址 suba,讀出的內容放入 s指向的存儲區(qū),讀 no 個字節(jié)。 如果返回 1表示操作成功,否則操作有誤。 注意: 使用前必須已結束總線。 ********************************************************************/ bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no) { unsigned char i。 Start_I2c()。 /*啟動總線 */ SendByte(sla)。 /*發(fā)送器件地址 */ if(ack==0)return(0)。 SendByte(suba)。 /*發(fā)送器件子地址 */ if(ack==0)return(0)。 Start_I2c()。 /*重新啟動總線 */ SendByte(sla+1)。 if(ack==0)return(0)。 for(i=0。ino1。i++) { *s=RcvByte()。 /*發(fā)送數據 */ Ack_I2c(0)。 /*發(fā)送就答位 */ s++。 } *s=RcvByte()。 Ack_I2c(1)。 /*發(fā)送非應位 */ Stop_I2c()。 /*結束總線 */ return(1)。 } /**************上面是 AT24C02***********/ /****************報警模塊 *************/ void baojing() { if((M1/10)high||((M1/10)low)) {beep=0。 LED=0。 } else {beep=1。 LED=1。} } void main() { /*主程序 */ uchar pDat[4]={4}。 int bz=0。 uchar i=0,j=0。 LED=0。 AUXR = AUXR|0x80。 // 啟動 T0, 1T Mode Init_DS18B20()。 InitTimer0()。//中斷初始化 lcd_init()。//液晶顯示初始化 Time_init()。//時序控制初始化 x24c02_init()。//24C02 初始化 EA=1。EX0=1。IT0=1。 high=(h1)*10+h2。 low=(L1)*10+L2。 while(1) { M1=ReadTemperature()。 ISendByte(PCF8591,0x40)。 adc=IRcvByte(PCF8591)。 //ADC0 模數轉換 1 放大2 倍顯示 if(bz==0) { M2=5*1000*(long)adc。 M2=M28。 } if(K6==0) { delay(500)。 if(K6==0) { while(!K6)。 pDat[0] =M2/1000。 pDat[1] =M2%1000/100。 pDat[2] =M2%100/10。 pDat[3] =M2%10。 ISendStr(AT24C02, i*4, amp。pDat[0], 4)。 i++。 delay(30000)。 } } if(K7==0) { delay(500)。 if(K7==0) { while(!K7)。 bz=1。 IRcvStr(AT24C02,j*4,amp。pDat[0],4) 。 j++。 M2=pDat[0]*1000+pDat[1]*100+pDat[2]*10+pDat[3]。 } } if(K8==0) { bz=0。 } key()。 show1()。//不斷刷新顯示數據 delay_18B20(10)。 show2()。 high=(h1)*10+h2。 low=(L1)*10+L2。 baojing()。 } }
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1