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

正文內(nèi)容

空調(diào)控制系統(tǒng)_畢業(yè)論文(編輯修改稿)

2024-10-01 09:43 本頁面
 

【文章內(nèi)容簡介】 部電路如圖 24所示: 圖 24 外部晶振電路 外部振蕩信號由 X2引入, X1和 X2:片內(nèi)振蕩電路輸入、輸出引腳,這兩個(gè)端子用來外接石英晶體和微調(diào)電容。在石英晶體的兩個(gè)管腳加交變電 場時(shí),它將會(huì)產(chǎn)生一定頻率的機(jī)械變形,而這種機(jī)械振蕩又會(huì)產(chǎn)生交變電場,上述物理現(xiàn)象稱為壓電效應(yīng)。一般情況下,無論是機(jī)械振動(dòng)的振幅,還是交變電場的振幅都非常小。但是,當(dāng)交變電場的頻率為某一特定值時(shí),振幅驟然增大,產(chǎn)生共振,稱之為壓電振蕩。這一特定頻率就是石英晶體的固有頻率,也稱諧振頻率,即用來連接 89C51片內(nèi) OSC的定時(shí)反饋回路。石英晶振起振后要能在 X2線上輸出一個(gè) 3V左右的正弦波,以便使 MCS51片內(nèi)的 OSC電路按石英晶振相同頻率 10 自激振蕩。通常 OSC的輸出時(shí)鐘頻率 fosc為 ~ 16 MHz,典型 值為 12 MHz或者 MHz。電容C5, C6可以幫助起振,典型值為 33 pF,調(diào)節(jié)它們可以達(dá)到微調(diào) fosc的目的。 11 3 軟件設(shè)計(jì) 軟件設(shè)計(jì)原理及設(shè)計(jì)所用工具 本設(shè)計(jì)中采用的處理器是 AT89C51單片機(jī),由此可采用面向 MCS51的程序設(shè)計(jì)語言,包括 ASM51匯言和 C語言,這兩種語言各有特點(diǎn)。 C語言更接近機(jī)器語言,常用來編制與系統(tǒng)硬件相關(guān)的程序,如訪問I/O端口、中斷處理程序、實(shí)時(shí)控制程序、實(shí)時(shí)通信程序等;而數(shù)學(xué)運(yùn)算程序則適合用 C51高級語言編寫,因?yàn)橛?高級語言編寫運(yùn)算程序可提高編程效率和應(yīng)用程序的可靠性。 與以往的 80C51單片機(jī)不同, AT89C51具有在線調(diào)試和下載功能,它由支持 AT89C51的開發(fā)工具包 Keil 開發(fā)系統(tǒng)來提供。也就是說,在用戶系統(tǒng)保留 AT89C51 的情況下,通過開發(fā)系統(tǒng)與 AT89C51的串行接口通信,直接對用戶系統(tǒng)進(jìn)行調(diào)試,并在調(diào)試完成后將調(diào)試好的程序下載到 AT89C51 中。 Keil :編譯、下載、調(diào)試和模擬,分別由 Keil 、在線串 行下載器、調(diào)試器和模擬器來實(shí)現(xiàn)。 Keil Windows操作系統(tǒng)下直接使用,編譯匯編源程序,并生成 16進(jìn)制文件和列表文件。串行下載器是一個(gè)軟件程序,它允許通過標(biāo)準(zhǔn) PC機(jī)上的串口串行下載匯編程序到片內(nèi) 8kB 的閃速程序存儲(chǔ)器中。調(diào)試器采用 Windows 系統(tǒng),允許用戶使用AT89C51的 UART串行接口在芯片上調(diào)試代碼執(zhí)行。在典型調(diào)試對話中,調(diào)試器提供對片內(nèi)所有外圍設(shè)備的訪問、單步和設(shè)置斷點(diǎn)的代碼執(zhí)行控制方式。模擬器采用 Windows系統(tǒng),能完全模擬 AT89C51的所有功能。模擬器 使用簡單,結(jié)合了許多標(biāo)準(zhǔn)調(diào)試特征,包括多斷點(diǎn)、單步以及代碼執(zhí)行跟蹤等能力。 主程序功能單一化,只對各子程序進(jìn)行控制、調(diào)動(dòng),使整個(gè)程序成為有機(jī)的整體。軟件主程序是系統(tǒng)的監(jiān)控程序,主要工作流程為:系統(tǒng)在上電以后進(jìn)入初始化狀態(tài),將系統(tǒng)中所有的接口模式、狀態(tài)以及有關(guān)的存儲(chǔ)單元置位成初始狀態(tài),然后恢復(fù) AT89C51的 P1 口 (控制輸出 )的工作狀態(tài)。 部分程序的流程圖 主程序流程圖 本設(shè)計(jì)主程序流程如圖 31所示。 程序啟動(dòng)后,首先清理系統(tǒng)內(nèi)存,然后對溫度進(jìn)行采集,通過溫度采集芯片內(nèi)部轉(zhuǎn)換后, 傳輸?shù)絾纹瑱C(jī),由單片機(jī)控制顯示設(shè)備,顯示現(xiàn)在的溫度,然后系統(tǒng)進(jìn)入待機(jī)狀態(tài),等待鍵盤輸入設(shè)定溫度,系統(tǒng)將設(shè)定溫度與現(xiàn)在溫度進(jìn)行比較,得出結(jié)果,啟動(dòng)制冷系統(tǒng)或者加熱系統(tǒng)。 12 圖 31 主程序流程圖 DS18B20 的溫度采樣程序流程圖 CPU對 DS18B20的訪問流程是:先對 DS18B20初始化,再進(jìn)行 ROM 操作命令,最后才能對存儲(chǔ)器和數(shù)據(jù)進(jìn)行操作。 DS18B20每一步操作都要遵循嚴(yán)格的工作時(shí)序和通信協(xié)議。如主機(jī)控制 DS18B20完成溫度轉(zhuǎn)換這一過程,根據(jù) DS18B20的通訊協(xié)議,須經(jīng)三個(gè)步驟:每一次讀寫之前都要對 DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM指令,這樣才能對 DS18B20進(jìn)行預(yù)定的操作。 DS18B20工作的流程 如圖 32。 13 圖 32 溫度采樣框 程序如下: float tt。 Init_DS18B20()。 // 初始化 ds18b2子函數(shù) delay_MS(1)。 WriteOneChar(0xcc)。 // 跳過 ROM命令 WriteOneChar(0xbe)。 // 發(fā)送讀取數(shù)據(jù)命令 temp_data[0]=ReadOneChar()。 // 連續(xù)讀兩個(gè)字節(jié)數(shù)據(jù) temp_data[1]=ReadOneChar()。 temp1=temp_data[1]。 temp1=8。 temp1=temp1|temp_data[0]。 // 兩字節(jié)合成一個(gè)整型變量。 return temp1。 // 返回溫度值 } void tem_deal(uint tem) /* 溫度數(shù)據(jù)顯示處理函數(shù) */ { if(tem6348) // 溫度值正負(fù)判斷 { tem=65536tem。 flag1=1。 } // 負(fù)溫度求補(bǔ)碼 ,標(biāo)志 位置 1 else flag1=0。 Dis_ram[0]=temamp。0x0f。 // 取小數(shù)部分的值 14 Dis_play[3]=Dis_ram[0]。 // 存入小數(shù)部分顯示值 Dis_ram[0]=tem4。 // 取中間八位 ,即整數(shù)部分的值 Dis_play[0]=Dis_ram[0]/100。 // 取百位數(shù)據(jù)暫存 Dis_play[2]=Dis_ram[0]%100。 // 取后兩位數(shù)據(jù) 暫存 if(Dis_play[2]=XX) Dis_play[4]=1 。 else Dis_play[4]=0 。 if(Dis_play[2]=SX) Dis_play[5]=1 。 else Dis_play[5]=0 。 Dis_play[1]=Dis_play[2]/10。 // 取十位數(shù)據(jù)暫存 Dis_play[2]=Dis_play[2]%10。 // 取個(gè)位數(shù)據(jù)暫 存 if(!Dis_play[0]) // 最高位為 0都不顯示 { Dis_play[0]=0x0a。 // 先判斷百位是否為 0 if(!Dis_play[1]) { Dis_play[1]=0x0a。 // 再判斷十位是否為 0 LED 顯示部分程序流程圖 LED軟件設(shè)計(jì)的主要功能是將 DS18B20所測數(shù)據(jù)經(jīng)過模糊控制以后用 LED顯示出來。其流程圖如圖 33: 15 圖 33 LED顯示流程圖 程序如下 : LED1=~LED1。 { LED2=~LED2。 } void display() /*****顯示溫度子程序 *****/ { char k。 for(k=0。k4。k++) //4 位 LED掃描控制 { if(table[Dis_play[k]] != 0) { Disdata=table[Dis_play[k]]。 //數(shù)據(jù)顯示 } if (k==2){DIN=0。} //小數(shù)點(diǎn)顯示 discan=scan_con[k+3]。 //位選 delay_MS(90)。 //延時(shí) discan=0x00。 } 16 discan=scan_con[7]。 //位選 Disdata=0xc6。 //顯示 C delay_MS(90)。 discan=0x00。 } /*****主函數(shù) *****/ void main(void) { EA=1。 //允許 INT0 中斷 EX0=1。 IT0=1。 //下降沿觸發(fā) do { tmpchange()。 //溫度轉(zhuǎn)換 tem_deal(tmp())。 //顯示溫度值 display()。 if(Dis_play[4]==1) shengwen()。 else LED1=1。 if(Dis_play[5]==1) jiangwen()。 else LE
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1