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

正文內(nèi)容

畢業(yè)設計-基于stc89c52系列單片機的紅外遙控電子鐘溫度計設計-文庫吧

2025-05-16 02:13 本頁面


【正文】 要一根線即可讓其工作,轉(zhuǎn)換精度可由用戶自己選擇,一共有四種選擇, 9位, 10 位, 11 位,12 位,步進分別為 ℃, ℃, ℃, ℃。 DS18B20 可以自動轉(zhuǎn)化輸出溫度數(shù)據(jù)。單片機可以直接識別,故采用此方案。 紅外遙控電子鐘溫度計 5 聲光報警 模塊 的選擇 方案一:通過單片機來控制語音芯片來實現(xiàn)提示信息的 播報。但是由于語音芯片成本比較高,而且擴展起來比較復雜,增加焊接難度和設計成本。 方案 二 : 用發(fā)光二極管和蜂鳴器搭一個簡單的電路,成本底,電路比較簡單,使用方便符合我們的系統(tǒng)要求,故采用此方案。 顯示模塊 的選擇 方案一:采用 LED 數(shù)碼管顯示。顏色鮮艷,易于觀察, 但是由于產(chǎn)品需要顯示的信息較多,個別字符也無法顯示不符合本作品的要求。 方案二:采用 1602 液晶顯示。我們對 1602 液晶的操作比較熟悉,其顯示功能也比較強大,實用性很強,還可以顯示自定義字符,故采用此方案。 電源模塊的選擇 方案一: 采用蓄電池為系統(tǒng)供電。蓄電池具有較強的電流驅(qū)動能力以及穩(wěn)定的電壓輸出性能。但是蓄電池的體積過于龐大,價格比較昂貴,對于我們的作品性價比不高。 方案二:采用 12V 穩(wěn)壓電源,經(jīng)過 7805 的電壓變換后為單片機供電。經(jīng)過實驗驗證,輸出電壓供電時,單片機及外設的工作電壓不夠,性能不穩(wěn)定。 方案三:采用 USB 串口輸出電壓,其電壓輸出穩(wěn)定,符合產(chǎn)品的需求,但是其不可移動性降低了產(chǎn)品的靈活性,使用極其不便。 方案四:采用手頭上的 MP3 充電器電源,其輸出電壓可以穩(wěn)定在 伏,符合產(chǎn)品的需求,節(jié)省了一定的成本,大大簡化了制作 的難度,故采用此方案。 紅外發(fā)射接收 模塊 的選擇 方案一:紅外編碼和解碼模塊都有自己編程序來實現(xiàn),好處可以學習紅外發(fā)射協(xié)議,但是難度大,容易出錯。 方案二:采用 PT2262IR 和 PT2272L6 配對的紅外發(fā)射和接收芯片,其編碼譯碼都由固件來實現(xiàn)。外圍電路的搭建稍復雜,但是有利于提高我們的動手能力,故采用方案。 經(jīng)過反復的探討和論證我們最終確定智如下最終方案: 紅外遙控電子鐘溫度計 6 ? 采用 STC89C58 單片機作為整個電路的控制核心。 ? 采用 DS12C887R 時鐘芯片提供準確的時間。 ? 利用 DS18B20 采集當前環(huán)境的 溫度。 ? 采用蜂鳴器和二極管來完成聲光報警功能。 ? 采用用 1602 液晶作為人機交互界面。 ? 采用 MP3 充電器為系統(tǒng)提供基準電源。用兩節(jié) 伏電池為遙控模塊提供電源。 ? 采用 PT2262IR 和 PT2272L6 的配對使用完成產(chǎn)品的遙控與接收控制。 2 硬件系統(tǒng)的設計與功能實現(xiàn) STC89C58 單片機設計 圖 21 單片機設計 紅外遙控電子鐘溫度計 7 圖 22 復位電路設計 本方案采用 DS12C887 作為時鐘芯片,采用 Intel 總線模式,只啟用它的時鐘功能,利用了它的 61 個 NV RAM 作為存儲溫度報警記錄用。 圖 23 時鐘模塊設計 紅外遙控模塊的設計 紅外線遙控是利用波長為 ~ 。常用的紅外遙控系統(tǒng)分發(fā)射和接收兩個部分。發(fā)射部分芯片 PT2262IR, 編碼芯片 PT2262IR發(fā)出的編碼信號由:地址碼、數(shù)據(jù)碼、同步碼組成一個完整的碼字,解碼芯片 PT2272 接收到信號后,其地址碼經(jīng)過兩次比較核對后, VT 腳才輸出 瞬間 高電平,與此同時相應的數(shù)據(jù)腳也輸出高電平,如果發(fā)送端一直按住按鍵,編碼芯片也會連續(xù)發(fā)射。當發(fā)射機沒有按鍵按 下時,PT226IR 不接通電源,發(fā)射電路不工作 。 PT2272L6 解碼芯片 在 數(shù)據(jù)成功接收就能一直保持對應的電平狀態(tài),直到下次遙控數(shù)據(jù)發(fā)生變化時改變。 其 6 路的并行數(shù)據(jù),對應的地址編碼是 6 位。 發(fā)射與接收的地址編碼有三種狀態(tài)可供選擇 :懸空、接正電源、接地三種狀態(tài) ,本作品制作時采用全部接地編碼方式,只有編碼芯片與解碼芯片的地址完全一致的時候發(fā)射與接收才能正常工作。 紅外接收頭,它將紅外接收電路做在一起,只有三個引腳.分別是 +5V 電源、地、信號紅外遙控電子鐘溫度計 8 輸出。紅外接收頭的信號輸出 為高電平,經(jīng)過 9014 三極管的倒相 后與解碼芯片的信號輸入端連接。 圖 24 PT2262IR 發(fā)射電路 圖 25 PT22762L6 接收電路 紅外遙控電子鐘溫度計 9 聲光報警模塊的設計 圖 26 蜂鳴器模塊設計 圖 27 發(fā)光二極管模塊設計 溫度檢測模塊的設計 本產(chǎn)品為了簡化設計 DS18B20 采用外部電源,沒有采用寄生電源。 紅外遙控電子鐘溫度計 10 圖 28 溫度模塊的設計 人機界面的設計 圖 29 液晶模塊設計 紅外遙控電子鐘溫度計 11 3 軟件設計的實現(xiàn)與說明 主程序框架圖 我們所設計的軟件的主程序框架圖如下圖 31 所示 : 初始化喂看門狗查詢是哪個功能功能塊一功能塊二功能塊三功能塊四功能塊五功能塊六功能塊七功能塊八功能塊九功能塊十功能塊十一功能塊十二功能塊十三功能塊十四 圖 31 主程序框架圖 功能塊框架圖 每一個功能塊的程序程序?qū)崿F(xiàn)都有共同規(guī)律,規(guī)律如下: 紅外遙控電子鐘溫度計 12 查詢是否有按鍵 按鍵功能處理顯示部分處理YN 圖 32 功能塊框架圖 程序設計 程序設計嚴格遵守兩個框架圖 兩個典型的能說明本程序設計的函數(shù)如下。 main()主函數(shù) main()函數(shù)能很好的體現(xiàn)全局框架的設計。用 Current_Function 來確定下一個功能該是哪一個。 void main () { init()。 while(1) { WDT_CONTR=0x34。//0011 0100 看門 狗的設置; if(Current_Function==1) function_1_main()。 else if(Current_Function==2) function_2_menu()。 else if(Current_Function==3) 紅外遙控電子鐘溫度計 13 function_3_set_usual_time()。 else if(Current_Function==4) function_4_set_alarm_time()。 else if(Current_Function==5) function_5_set_date()。 else if(Current_Function==6) function_6_set_temp_alarm()。 else if(Current_Function==7) function_7_set_temp_accurancy()。 else if(Current_Function==8) function_8_turn_off_887_osc()。 else if(Current_Function==9) function_9_turn_on_887_osc()。 else if(Current_Function==10) function_10_temp_alarm_history()。 else if(Current_Function==11) function_11_clear_temp_alarm_history()。 else if(Current_Function==12) function_12_battery_state()。 else if(Current_Function==13) function_13_look_alarm_time()。 else if(Current_Function==14) function_14_look_alarm_temp()。 } } menu()函數(shù) menu()函數(shù)即實現(xiàn)菜單的功能的函數(shù),它跟其他的功能塊在框架上的設計都一樣,都是先掃描 CPU 有沒有送來鍵盤動作信號,有則處理,不論有沒有鍵盤動作信號,下一步都要進行人機界面的刷新。 bit function_2_menu() { if(Press_F==1) { Press_F=0。 if(Scan_Result==3) { Menu_Number++。 if(Menu_Number==11) Menu_Number=1。 } else if(Scan_Result==2) { 紅外遙控電子鐘溫度計 14 Menu_Number。 if(Menu_Number==0) Menu_Number=10。 } else if(Scan_Result==6) { Current_Function=1。 if(Date_Set_F==1) { write_ds(0x0b,0x86)。 set_date(Year,Month,Day,W)。 write_ds(0x0b,0x06)。 } if(Time_Usual_Set_F==1) { write_ds(0x0b,0x86)。 set_time(H,M,S)。 write_ds(0x0b,0x06)。 } Refresh_E=1。 write_cmd(0x01)。 return 0。 } else if(Scan_Result==5) { if(Menu_Number==1) //設置普通時間 { Current_Function=3。 H=read_ds(4)。 M=read_ds(2)。 S=read_ds(0)。 Set_Pointer=1。 write_cmd(0x01)。 } else if(Menu_Number==2) //設置鬧鐘時間 { Current_Function=4。 H=read_ds(5)。 M=read_ds(3)。 S=read_ds(1)。 Set_Pointer=1。 Time_Alarm_Set_F=0。 write_cmd(0x01)。 紅外遙控電子鐘溫度計 15 } else if(Menu_Number==3) //設置日期 { Current_Function=5。 Year=read_ds(9)。 Month=read_ds(8)。 Day=read_ds(7)。 W=read_ds(6)。 Set_Pointer=1。 write_cmd(0x01)。 } else if(Menu_Number==4)//設置溫度報警限 { Current_Function=6。 Set_Pointer=1。 Temp_Alarm_Set_F=0。 ds1820_rst()。 ds1820_wr(0xcc)。 ds1820_wr(0xbe)。//讀取 ram 的數(shù)據(jù) ds1820_rd()。//得作廢前兩個 ds1820_rd()。 TH=ds1820_rd()。 TL=ds1820_rd()。 Temp_Accurancy=ds1820_rd()。 ds1820_rst()。//結(jié)束讀取 write_cmd(0x01)。 } else if(Menu_Number==5) //設置溫度精度 { Current_Function=7。 Temp_Accurancy_Set_F=0。 ds1820_rst()。 ds1820_wr(0xcc)。 ds1820_wr(0xbe)。//讀取 ram 的數(shù)據(jù) ds1820_r
點擊復制文檔內(nèi)容
畢業(yè)設計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1