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

正文內(nèi)容

畢業(yè)設計-基于51單片機的溫度控制系統(tǒng)設計-文庫吧資料

2025-01-24 15:18本頁面
  

【正文】 }}void S3_SUB(void){ if(mode==2) //下限模式 { DQ1_SET[0]。} //加下限 和限值下限最大值 } if(mode==3)//上限模式 { DQ1_SET[1]++。}//鍵盤掃描void S2_ADD(void){ if(mode==2) //下限模式 { DQ1_SET[0]++。C39。 write_date(0x30+Display_Digit[4])。)。 write_date(39。H39。)。 write_date(39。 39。)。 write_date(39。C39。 write_date(0x30+Display_Digit[6])。)。 write_date(39。L39。 write_(0x80+0X40+0)。 Display_Digit[5]=DQ1_SET[1]%100/10。}void DIS_SET_SEG(void)//在LED上顯示數(shù)據(jù){ Display_Digit[7]=DQ1_SET[0]%100/10。 39。)。 write_date(39。 39。)。 write_date(39。 39。)。 write_date(39。 39。)。 write_date(39。 39。)。 write_date(39。 39。)。 write_date(39。 39。 write_(0x80+0X40+0)。C39。 write_date(0x30+Display_Digit[0])。.39。 write_date(0x30+Display_Digit[1])。}。39。 //恒溫溫度 if(ng==0) {write_date(0x30+Display_Digit[3])。 //報警溫度 if(ng == 1){Temp=0。 //十 Display_Digit[1] = CurrentT%10。 //溫度整數(shù)部分 Display_Digit[3] = CurrentT/100。0xf0)4) | ((Temp_Value[1]amp。0x0f]。 } else{ng = 0。 if(Temp_Value[0]==0x00) Temp_Value[1]++。0xf8)==0xf8) { Temp_Value[1] = ~Temp_Value[1]。//,延時 ng = 0。 }//處理溫度值void Display_Temperature(){// uchar i。//溫度高8位 DS18B20_IS_OK=1。//讀取溫度寄存器 Temp_Value[0] = ReadOneByte()。 WriteOneByte(0xcc)。 //跳過序列號 WriteOneByte(0x44)。 if(Init_DS18B20()==1) DS18B20_IS_OK=0。 dat = 1。 Delay(5)。 DQ1 = datamp。i8。 }//寫一個字節(jié)void WriteOneByte(uchar dat){ uchar i。 DQ1 = 1。 if(DQ1) dat |= 0X80。 _nop_()。 dat = 1。i8。 _nop_()。}//讀一個字節(jié)uchar ReadOneByte(){ uchar i,dat=0。 DQ1 = 1。 status = DQ1。//延時 DQ1 = 1。 //延時 DQ1 = 0。 DQ1 = 1。 Delay(10)。num++) // temper: 。 for(num=0。 write_(0x01)。 write_(0x0c)。 lcden=0。 }void init_lcd(void) //初始化液晶,及畫面初始化{ uchar num。 delayms(2)。 delayms(1)。 lcden=0。 lcden=0。 lcden=1。 LCDDATA=。}void write_(uchar ) //1602液晶寫指令{ rs=0。y0。x0。}//1602void delayms(uint z) //延時N ms{ uint x,y。j++) 。i++) for(j=0。 for(i=0。//待顯示的各溫度數(shù)位bit DS18B20_IS_OK = 1。 //當前讀取的溫度整數(shù)部分uchar Temp_Value[]={0x00,0x00}。 //負號標志uchar code df_Table[]= { 0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9}。 //mode=1正常顯示 mode=2 設置下限模式 mode=3設置上限 uchar code table[]=Temper 。 //溫度報警uchar count。 //蜂鳴器uchar DQ1_SET[2]。 //傳感器1sbit LED1=P2^6。sbit lcden=P3^2。 //減//LCD1602//P07==== D07define LCDDATA P1sbit rs=P3^0。 //設置 上下限sbit S2=P2^1。 在本次設計的過程中,我發(fā)現(xiàn)很多的問題,雖然以前還做過這樣的設計但這次設計真的讓我長進了很多,單片機課程設計重點就在于軟件算法的設計,需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個程序并不是一件簡單的事,舉個例子,以前寫的那幾次,數(shù)據(jù)加減時,我用的都是BCD碼,這一次,我全部用的都是16進制的數(shù)直接加減,顯示處理時在用除法去刪分,感覺效果比較好,有好多的東西,只有我們?nèi)ピ囍隽?,才能真正的掌握,只學習理論有些東西是很難理解的,更談不上掌握。圖42為溫度數(shù)據(jù)處理程序的流程圖。當數(shù)據(jù)是個負數(shù)的時候,顯示之前要進行數(shù)據(jù)轉換,將其整數(shù)部分取反加一。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。DS18B20讀寫時序如圖41~43:圖41 DS18B20的復位時序圖圖42 DS18B20的寫數(shù)據(jù)時序圖圖43 DS18B20的讀數(shù)據(jù)時序圖由時序圖可知,DS18B20在復位時需要480us的低電平,等待15us后MCU將總線拉高,等待DS18B20的響應信號;DS18B20在寫數(shù)據(jù)時分為寫“0”和寫“1”操作,寫“0”操作時,DS18B20需要至少60us的總線被拉低,然后在60us內(nèi)將“0”寫入DS18B20中,持續(xù)時間至少1us,寫“1”操作是只需將寫入的“0”改為“1”即可;DS18B20讀操作也分為讀“0”和讀“1”操作,讀“0”操作時,總線需要15us被拉低,再拉高45us,然后再15us內(nèi)將數(shù)據(jù)讀走,讀“1”操作同讀“0”操作。此外,還可外接5 V電源,給DSl8B20供電。 顯示電路的連接圖4 軟件設計 DS18b20的讀操作DSl8B20的主要數(shù)據(jù)元件有:64位激光Lasered ROM,溫度靈敏元件和非易失性溫度告警觸發(fā)器TH和TL。1602液晶模塊內(nèi)部的控制器共有11條控制指令,豐富的指令可以完成液晶的時序控制、工作方式式設置和數(shù)據(jù)顯示等。圖36 復位電路 單片機與報警電路系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成。圖35 DS18B20和單片機的接口連接 復位信號及外部復位電路該復位信號高電平有效,其有效時間應持續(xù)24個振蕩脈沖周期即兩個機器周期以上。圖35為DSl8820內(nèi)部結構。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行MOVX RI指令,P2端口內(nèi)容即為特殊功能寄存器(SFR)區(qū)中R2寄存器內(nèi)容,整個訪問期間不改變。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時。P2端口是一個帶內(nèi)部上拉電阻的8位雙向I/O,其輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。復位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復位成功。在DS18B20出廠時該位被設置為0,用戶不要去改動。第九個字節(jié)是冗余檢驗字節(jié)。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結構寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復位時被刷新。 DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結構寄存器。 這是12位轉化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,;如果溫度小于0,這5位為1。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。漏極開路,常態(tài)下高電平。當工作于寄生電源時,此引腳必須接地。溫度傳感器DS18B20引腳如圖34所示??蛇x更小的封裝方式,更寬的電壓適用范圍。176。本次設計中,由AT89S52芯片連同附加電路構成的單片機最小系統(tǒng)作為數(shù)據(jù)處理及控制模塊,其中,使用P1口作為1602液晶的數(shù)據(jù)傳輸口,P3口作1602的命令數(shù)據(jù)控制、時鐘、讀寫控制、和使能控制接口,P2口作按鍵掃描接口。 最小系統(tǒng)模塊本次設計中,選用ATMEL公司的51系列單片機AT89S52芯片作為電子密碼電源開關的數(shù)據(jù)處理及操作控制芯片。它具有體積小,功能多、價格低、使用方便、系統(tǒng)設計靈活等優(yōu)點,應用領域不斷擴大,除了工業(yè)控制,智能化儀表,通訊,家用電器外,在智能化高檔電子玩具產(chǎn)品中也大量采用單片機芯片作為核心控制部件。改變編程單元的地址和寫入的數(shù)據(jù),重復①—⑤步驟,直到全部文件編程結束。⑤ 每對Flash存儲陣列寫入一個字節(jié)或每寫入一個程序機密位,加上一個ALE/PROG編程脈沖。③ 激活相應的控制信號。 AT89S52的編程方法 編程前,須按編程模式表設置好地址、數(shù)據(jù)及控制信號;順序如下:① 在地址線上加上要編程單元的地址信號。復位后,P0~P3輸出高電平;SP寄存器為07H;其它寄存器全部清0;不影響RAM狀態(tài)。(3)控制或復位引腳RESET 此腳為高電平時(約2個機器周期)可將單片機復位。電容取20PF左右。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。 XTAL1,XTAL2接石英晶體振蕩器。   XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。   如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器的指令。   EA/VPP——外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE禁止位無效。 如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。   ALE/PROG——當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復位。 此外,P3口還接收一些用于FLASH閃存編程和程序校驗的控制信號。   P3口亦作為AT89S52特殊功能(第二功能)使用。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。 在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。在這種應用
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1