




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄內容摘要 . 1 關鍵詞 . 1 1 緒論 . 1 2 系統設計 . 1 2.1 設計任務與要求 . 1 3 系統硬件設計 . 錯誤!未定義書簽。3.1 原理圖 . 錯誤!未定義書簽。3.2 d/a 轉換模塊 . 錯誤!未定義書簽。3.3 數碼顯示模塊 . 7 3.4 硬件元件清單 . 9 4 軟件設計與仿真. 54.1 主程序設計 . 5 4.2顯示子程序流程圖 . 6 4.3報警子程序流程圖 . 錯誤!未定義書簽。4.4 sounder 揚聲器發聲子程序流程圖 . 14 4.5 程序清單 14 4.6 程序調試 . 錯誤!未定義書簽。結束語 . 15 參考文獻 . 17 1 內容摘要
2、:本文從硬件和軟件兩方面介紹了基于at89c51單片機的溫度報警系統的設計思路, 對硬件原理圖和程序框圖作了簡介的描述。系統選用 adc0808 轉換器,仿真時利用可調電阻調節電壓進行溫度的輸入量模擬, 當溫度低于 60時, 揚聲器發出報警和綠光報警, 當溫度高于 160時發出報警和發出紅光報警。測量范圍在0250,并能實時顯示當前溫度值。關鍵詞: at89c51單片機, dac0808 穩壓電源發光報警1 緒論溫度是一個十分重要的物理量,對它的測量與控制又十分重要的意義。隨著現代化工農業技術的發展及人們對生活環境要求的提高,人們迫不及待需要檢測與控制溫度。溫度控制電路雜工農業生產中有著廣泛的
3、應用。采用單片機來對他們進行監控不僅具有監控方便,簡單靈活性大的優點,而且可以大幅度提高被測溫度的技術指標,從而能夠大大提高產品的質量和數量。因而,單片機對溫度的監控問題是一個工業生產中經常會遇到的監控問題。現代社會是信息化社會,隨著安全化程度的日益提高,而通過溫度報警器及時報警,避免不必要的損失。2 系統設計2.1 設計任務與要求2.1.1 設計任務(1)設計一款基于at89c51 單片機的溫度報警器。利用可調電阻調節電壓作為模擬溫度的輸入量,當溫度低于60時,揚聲器發出報警和綠光報警,當溫度高于160時,發出報警和紅光報警。測量的溫度范圍在0 250,并能實時顯示當前溫度值。(2)用計算機
4、繪制所有的電路圖。2 3 溫度報警器硬件設計3,1用 adc0808 作為溫度調節器,當調節溫度60或 160時報警燈閃爍,且發出不同頻率的聲音。本實訓電路原理圖如下:aabbccddeeffggdpdpabcdefgfpxtal218xtal119ale30ea31psen29rst9p0.0/ad039p0.1/ad138p0.2/ad237p0.3/ad336p0.4/ad435p0.5/ad534p0.6/ad633p0.7/ad732p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78p3.0/rxd10p3.1/txd11p3.2/int012p3.3/
5、int113p3.4/t014p3.7/rd17p3.6/wr16p3.5/t115p2.7/a1528p2.0/a821p2.1/a922p2.2/a1023p2.3/a1124p2.4/a1225p2.5/a1326p2.6/a1427u1at89c51out121add b24add a25add c23vref(+)12vref(-)16in31in42in53in64in75start6out58eoc7oe9clock10out220out714out615out817out418out319in228in127in026ale22u3adc0808低高ls1sounder2202
6、20234567891rp1pullupc122pfc222pfc310ufx112mr110kp24p26p25p27p20p21p22p23p20p21p22p23p24p25p26p2772%rv14.7kp25小于60或大小160報警元器件: 7seg-mpx4-cc-blue (7 段 4 位共陰極led 數碼管)、adc0808(8 位模/數轉換器)、 at89c51 (單片機)、 cap (瓷片電容) 、 cap-elec(電解電容) 、 crystal(晶體振蕩器) 、led-yellow (發光二極管) 、pot-hg(高精度電位計) 、res(電阻) 、 respack-8
7、(帶公共端得8 路電阻)、sounder (發聲器)編寫數碼管溫度顯示子程序:13h 存放溫度個位顯示碼;12h 存放溫度十位顯示碼;11h 存放溫度百位顯示碼,根據下列流程圖寫出顯示子程序3 3.2 d/a 轉換模塊d/a 轉換模塊如圖 5 所示, 由數模轉換器 dac0808 和運放 tl082構成。dac0808 芯片是一個 8 位 d/a 轉換器,有 8 個數碼輸入端, 1個模擬輸出端,能將控制電路輸出的8位二進制數字量轉換成模擬量的輸出。p2口與 dac0808 的輸入端相連,通過 d/a轉換電路將輸入的數字量轉為模擬量,通過 tl082運算放大器輸出實際的電電壓表讀出。dac080
8、8 引腳圖如圖 6 所示。 dac0808 各引腳功能如表 1 所示。圖 6 dac0808 引腳圖dac0808 的 comp 引腳的作用為通過調節外接電阻,以達到改善放大器的性能和輸出電壓。運放輸出電壓為(1)4 式中, vref為外接參考電壓, d7do為 8 位輸入數字量。當輸入數字量在0000000011111111之間變化時,其對應的輸出模擬電壓u1在 0-vref之間,電壓分辨率為: v=5v/(28-1)=19.6mv。表 1 dac0808的引腳功能引腳功能引腳功能d7-d08 根數據輸入線, d7為最高位comp 補償端io電流輸出線(由外向內流)vlc閾值控制輸入端vre
9、f( ) 、 vref( ) 參考電壓輸入端in- 反相輸入端vcc 、vss 電源輸入端in+同相輸入端gnd 模擬地io輸出端vcc- 、vcc+正負電源供應端、3.3 數碼管顯示模塊數碼顯示模塊電路如圖8 所示。顯示部分選用的是7seg-mpx2-cc 兩片 7 段共陰數碼管。 單片機的 p00p07分別接數碼管的 adp 口,p20、 p21分別接數碼管 1、2 接口,分別控制第一片和第二片的暗亮。外加上拉電阻加強驅動能力,使數碼管更亮。5 圖 8 數碼管顯示電路3.5 硬件元件清單系統元器件清單見表2。表 2 系統元器件清單器件數量器件數量adc0808 1 tl082 1 led
10、2 dac0808 1 7seg-mpx2-cc 1 電容( 220n)1 排阻( 4.7k )1 電容( 33p)2 電阻( 5k)3 數字電壓表1 晶振器1 電阻( 1k)1 電容( 10uf)1 開關1 4 軟件設計與仿真本系統程序包括主程序、發送數據子程序、接收命令子程序等。主程序用于系統初始化,子程序調度等。發送鍵碼子程序用于將緩沖區鍵的接通碼或斷開碼發送給單片機接口。發送數據子程序用于將數據發給單片機接口。接收命令子程序用于接收單片機接口發來的鍵盤命令。4.1 主程序設計主程序通過控制程序來判斷控制報警子程序和發聲子程序。主程序流程圖如圖 9 所示。6 開始啟動 adc0808 轉
11、換是否轉換完畢?oe有效讀取 adc0808oe無效計算溫度百位、十位和個位數值調用顯示子程序調用報警子程序yn圖 9 主程序流程圖、4.2 顯示子程序流程圖7 開始位選個位 led 數碼管送個位顯示代碼至顯示端口p0延時 5ms位選十位 led 數碼管送十位顯示代碼至顯示端口p0延時 5ms位選百位 led 數碼管送百位顯示代碼至顯示端口p0延時 5ms子程序返回4.3 報警子程序流程圖:開始讀取溫度值判斷溫度是否低于60度?報警發低音, led 低亮判斷溫度是否高于160度?報警發高音, led 高亮返回yn報警燈關閉 led 全滅yn44sounder 揚聲器發聲子程序流程圖8 開始p3
12、.7取反是否發低音?裝發低音調初值裝發高音調初值關閉定時器中斷返回yn4.5 源程序、#include #include #define adc_vref_type 0 xe0 / 選用 2.56v 的片內基準電壓源,且結果為左對齊#define ad_se_adc0 0 x00 /adc0 unsigned char table10 = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; / 數碼管字型09 unsigned char data4 = 0,0,0,0; / 存放 a/d 轉換結果unsigned long
13、int i,j=2560,k=256; void port_init(void) porta = 0 x01; ddra = 0 x00; portb = 0 xff; ddrb = 0 xff; portc = 0 x0f; /m103 output only 9 ddrc = 0 x0f; portd = 0 x00; ddrd = 0 x00; /adc initialize / conversion time: 112us void adc_init(void) adcsr = 0 x00; /disable adc admux = 0 x00; /select adc input 0
14、 acsr = 0 x80; adcsr = 0 x86; /call this routine to initialize all peripherals void init_devices(void) /stop errant interrupts until set up cli(); /disable all interrupts port_init(); adc_init(); mcucr = 0 x00; gicr = 0 x00; timsk = 0 x00; /timer interrupt sources sei(); /re-enable interrupts /all p
15、eripherals are now initialized void delay_(unsigned char a) unsigned int i; for(i=0;ia*7373;i+); 10 void display(unsigned char p) / 動態顯示, unsigned char i; for(i=0;i4;i+) portd=0 x01i; portb=tablepi; delay_(5); portd&=(0 x01i); unsigned int read_adc(unsigned char adc_input) / 讀取 a/d 轉換結果 admux=ad
16、c_input|adc_vref_type; adcsra|=0 x40; / 啟動 a/d 轉換while (adcsra&0 x10)=0); / 等待 a/d 轉換完成adcsra|=0 x10; return adch; void process(unsigned int i,unsigned char *p) / 數據處理函數 p0=i/1000; i=i%1000; p1=i/100; i=i%100; p2=i/10; i=i%10; p3=i; void main(void) 11 init_devices(); ddra=0 x00; / 設置 a 口為不帶上拉輸入;
17、porta=0 x00; ddrb=0 xff; / 設置 b 口為輸出口 ; ddrd=0 xff; / 設置 d 口為輸出口 ; portb=0 x3f; /b口初始化輸出0 ;d 口初始化輸出1;點亮全部數碼管;portd=0 xff; admux=adc_vref_type; / 選擇第一通道adc0 ;adcsra=0 xa6; /125k轉換速率,自由轉換模式;啟動a/d 轉換;delay_(1000); / 延時待系統穩定;while(1) i=read_adc(ad_se_adc0); / 獲取 a/d 轉換數據i=(i*j)/k; process(i,data); / 數據處
18、理display(data); / 顯示結果delay_(5); 12 4.6 仿真軟件簡介proteus是英國 labcenter公司開發的電路分析與實物仿真軟件。它運行于 windows 操作系統上,可以仿真、分析(spice)各種模擬器件和集成13 電路,該軟件的特點是:(1)實現了單片機仿真和spice電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、rs232動態仿真、 i2c 調試器、 spi 調試器、鍵盤和 lcd系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發生器等。(2)支持主流單片機系統的仿真。目前支持的單片機類型有:arm7(
19、lpc21xx) 、 8051/52 系列、 avr系列、pic10/12/16/18系列、hc11系列以及多種外圍芯片。(3)提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態,因此在該軟件仿真系統中, 也必須具有這些功能; 同時支持第三方的軟件編譯和調試環境,如 keil c51 uvision2、mplab 等軟件。(4)具有強大的原理圖繪制功能。總之,該軟件是一款集單片機和spice分析于一身的仿真軟件, 功能極其強大。proteus7.5是目前最好的模擬單片機外圍器件的工具,可以仿真51系列、 avr 、pic 等常用的 m
20、cu 及其外圍電路(如lcd 、ram 、rom 、鍵盤、馬達、 led 、ad/da 、部分 spi 器件、部分 iic 器件等)。軟件編譯采用 keil c51 軟件, keil c51 是美國 keil software公司出品的 51 系列兼容單片機 c語言軟件開發系統,與匯編相比,c語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過匯編語言后再使用c來開發,體會更加深刻。keil c51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全 windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,14 就能體會到 keil c51 生成的目標代碼效率非
21、常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。4.7 系統調試在調試過程中主要是對程序的修改,特別是顯示子程序。開始時,調整輸入,看數碼顯示的數值,改變電阻值即改變溫度,看數碼顯示的數值是否正確。在看揚聲器發聲時的溫度值是否和實驗設定的相符,還要檢測發光二極管的發光情況。15 結束語這種溫度報警器結構簡單。 工作時,溫度測量范圍為 0250。當溫度達到預定值時, 立刻發出報警信號, 從而防止因溫度升高或過低帶來的不必要的損失。 通過本次課程設計, 又使我學到了許多書本上無法學到的知識,也深刻體會到單片機技術應用領域的廣泛,不僅使我對學過的單片機知識有了很多的鞏固,同時也對單片機這一門課程產生了更大的興趣。在做本次課程設計的過程中, 我感觸最深的當屬查閱了大量的設計資料了。 為了讓自己的設計更加完善, 查閱這方面的設計資料是十方必要的,同時是必不可少的。其次,我學會了在網絡中查找有關的各硬件的資源,為本次課程設計提供一定的資料。16 參考文獻1 王幸之 鐘愛琴 . at89系列單片機原理與接口技術m. 北京:北京航空航天大學出版社, 2004. 2 譚浩強 .c 程序設計(第二版) m. 北京:清華大學出版社, 1999. 3 趙亮.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業負責人安全培訓考試試題及參考答案【新】
- 2024-2025員工三級安全培訓考試試題附答案【預熱題】
- 2025標準版房屋租賃合同范本
- 2025簡易的設備租賃合同
- 2025年口腔清潔護理用品合作協議書
- 2025年印制電路板項目合作計劃書
- 2025租房合同范本下載版
- 2025家電購銷合同書協議樣本
- 2025年金屬制廚房調理器具合作協議書
- 2025年城市文化展示系統項目建議書
- 大數據 AI大模型-智慧統計大數據平臺解決方案(2023版)
- 江蘇省安全員《B證》考試題庫及答案
- 自殺及其預防課件
- 灰姑娘童話故事
- 鉛鋅礦的冶煉技術進展與設備改進
- 等離子切割機操作手冊與安全操作規程
- 印刷合同:紙袋印刷合作
- 快學Scala(中文版第2版)
- 人工智能知識競賽題庫(含答案)
- 鄉土中國第二課
- 機動車排放定期檢驗內部審批程序
評論
0/150
提交評論