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

正文內(nèi)容

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

2024-10-27 11:22本頁面

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

  

【正文】 SendByte(sla)。 //發(fā)送器件地址 if(ack==0)return(0)。 SendByte(c)。 //發(fā)送數(shù)據(jù) if(ack==0)return(0)。 Stop_I2c()。 //結(jié)束總線 return(1)。 } /******************************************************************* ADC 讀字節(jié)數(shù)據(jù)函數(shù) *******************************************************************/ unsigned char IRcvByte(unsigned char sla) { unsigned char c。 Start_I2c()。 //啟動總線 SendByte(sla+1)。 //發(fā)送器件地址 if(ack==0)return(0)。 c=RcvByte()。 //讀取數(shù)據(jù) 0 Ack_I2c(1)。 //發(fā)送非就答位 Stop_I2c()。 //結(jié)束總線 return(c)。 } /* Display() { uchar adc。 unsigned long dianya。 ISendByte(PCF8591,0x40)。 adc=IRcvByte(PCF8591)。 //ADC0 模數(shù)轉(zhuǎn)換 1 放大2 倍顯示 M2=5*1000*(long)adc。 M2=M28。 return (dianya)。 } */ /******************以上是 PCF8591************/ /****************at24C02**************/ /******************************************************************* 向有子地址器件發(fā)送多字節(jié)數(shù)據(jù)函數(shù) 函數(shù)原型 : bit ISendStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no)。 功能 : 從啟動總線到發(fā)送地址,子地址 ,數(shù)據(jù) ,結(jié)束總線的全過程 ,從器件 地址 sla,子地址 suba,發(fā)送內(nèi)容是 s 指向的內(nèi)容,發(fā)送 no個字節(jié)。 如果返回 1 表示操作成功,否則操作有誤。 注意: 使用前必須已結(jié)束總線。 ********************************************************************/ 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ā)送數(shù)據(jù) */ if(ack==0)return(0)。 s++。 } Stop_I2c()。 /*結(jié)束總線 */ return(1)。 } /******************************************************************* 向有子地址器件讀取多字節(jié)數(shù)據(jù)函數(shù) 函數(shù)原型 : bit RedStr(UCHAR sla,UCHAR suba,ucahr *s,UCHAR no)。 功能 : 從啟動總線到發(fā)送地址,子地址 ,讀數(shù)據(jù),結(jié)束總線的全過程 ,從器件 地址 sla,子地址 suba,讀出的內(nèi)容放入 s指向的存儲區(qū),讀 no 個字節(jié)。 如果返回 1表示操作成功,否則操作有誤。 注意: 使用前必須已結(jié)束總線。 ********************************************************************/ 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ā)送數(shù)據(jù) */ Ack_I2c(0)。 /*發(fā)送就答位 */ s++。 } *s=RcvByte()。 Ack_I2c(1)。 /*發(fā)送非應(yīng)位 */ Stop_I2c()。 /*結(jié)束總線 */ 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 模數(shù)轉(zhuǎn)換 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()。//不斷刷新顯示數(shù)據(jù) delay_18B20(10)。 show2()。 high=(h1)*10+h2。 low=(L1)*10+L2。 baojing()。 } }
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1