基于單片機(jī)的溫度顯示器_第1頁
基于單片機(jī)的溫度顯示器_第2頁
基于單片機(jī)的溫度顯示器_第3頁
基于單片機(jī)的溫度顯示器_第4頁
基于單片機(jī)的溫度顯示器_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于單片機(jī)的溫度顯示器目錄一、設(shè)計目的 2二、摘要: 2三、硬件電路設(shè)計 21、單片機(jī)模塊設(shè)計 22、顯示模塊 33、溫度傳感器 4四、軟件設(shè)計 51、ds18b20模塊設(shè)計 52、lcd1602顯示模塊 73、主函數(shù)程序設(shè)計 95、模擬仿真圖 10六.參考文獻(xiàn) 10一、設(shè)計目的本方案設(shè)計LCD1602顯示實(shí)時溫度的實(shí)驗(yàn),使用基于AT89C51單片機(jī),使用ds18b20溫度傳感器在lcd1602上顯示溫度數(shù)字二、摘要:通過lcd1602顯示溫度數(shù)字,程序設(shè)計使用模塊化設(shè)計關(guān)鍵詞:單片機(jī),ds18b20,lcd1602系統(tǒng)三、硬件電路設(shè)計1、單片機(jī)模塊設(shè)計本次設(shè)計采用的是單片機(jī)AT89C51。芯片共有40個引腳,引腳的排列順序?yàn)閺目啃酒娜笨冢鐖D3.1所示。左邊那列逆時針數(shù)起,依次為1,2,340,其中芯片的1腳頂上有一個凹點(diǎn)。在單片機(jī)的40個引腳中,電源引腳2根,外接晶體振蕩器引腳2根,控制引腳4根以及4組8位可編程I/O引腳32根。圖AT89C51管腳圖AT89C51單片機(jī)共有4組8位可編程I/O口,分別為P0、P1、P2、P3口,每個口有8位,共32根。每一根引腳都可以編程,比方用來控制電機(jī)、交通燈等,開發(fā)產(chǎn)品時就是利用這些可編程引腳來實(shí)現(xiàn)我們想要的功能。P0口:8位雙向I/O口線,名稱為;P1口:8位準(zhǔn)雙向I/O口線,名稱為;P2口:8位準(zhǔn)雙向I/O口線,名稱為;P3口:8位準(zhǔn)雙向I/O口線,名稱為。本文單片機(jī)模塊如下圖,主要是由單片機(jī)芯片與晶振和復(fù)位電路組成的。是由單片機(jī)來控制整個系統(tǒng),讓我們的系統(tǒng)可以正常的運(yùn)行。2、顯示模塊LM016L液晶模塊采用HD44780控制器,HD44780具有功能較強(qiáng)而又簡單的指令集,可以實(shí)現(xiàn)字符移動,閃爍等功能,LM016L與單片機(jī)MCU通訊可采用4位或8位并行傳輸兩種方式,HD44780控制器是由2個8bit的存放器、顯示數(shù)據(jù)存儲〔DDRAM〕、指令存放器〔IR〕、RAM〔DR〕、地址計數(shù)器RAM(AC)、忙標(biāo)志〔BF〕、字符發(fā)生器ROMA〔CGOROM〕以及字符發(fā)生器RAM〔CGRAM〕組成。其中,DR是用來存放數(shù)據(jù)的;IR是用來存放指令碼的,它只能夠?qū)懭攵荒軌蜃x出。其數(shù)據(jù)是由內(nèi)部操作自動地寫入到CGRAM和DDRAM中來,或者是暫存從CGRAM以及DDRAM中讀出的數(shù)據(jù),BF為1時,LED模塊工作于內(nèi)部模式,既不會接受數(shù)據(jù)也不會響應(yīng)外部的操作指令,DDTAM用來存儲顯示的字符,能存儲80個字符碼, CGROM由8位字符碼生成5*7點(diǎn)陣字符160中和5*10點(diǎn)陣字符32種.8位字符編碼和字符的對應(yīng)關(guān)系,可以查看參考文獻(xiàn)〔30〕中的表4. CGRAM是為用戶編寫特殊字符留用的,它的容量僅64字節(jié),可以自定義8個5*7點(diǎn)陣字符或者4個5*10點(diǎn)陣字符,AC可以存儲DDRAM和CGRAM的地址,如果地址碼隨指令寫入IR,那么IR自動把地址碼裝入AC,同時選擇DDRAM或CGRAM但愿,LM016L液晶模塊的引腳圖如圖3.5所示。圖3.51601引腳圖LM016L引腳介紹:Vss〔1腳〕:一般接地。Vdd〔2腳〕:接電源。Vee〔3腳〕:LED顯示器比照度調(diào)整端口,接地時,其比照度到達(dá)最高〔當(dāng)比照度過高時,就會產(chǎn)生“鬼影〞,假設(shè)要正常工作,那么可以通過使用一個大小為10K的電位器來調(diào)整比照度〕,接電源時,其比照度降至最弱。RS〔4腳〕:RS是存放器選擇端口。當(dāng)接低電平時,選擇指令存放器;接高電平時,選擇數(shù)據(jù)存放器。R/W〔5腳〕:R/W為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。E〔6腳〕:E(或EN)端為使能(enable)端,下降沿使能。 Lcd1602與單片機(jī)的接口3、溫度傳感器DS18B20

產(chǎn)品的特點(diǎn)〔1〕、只要求一個端口即可實(shí)現(xiàn)通信?!?〕、在DS18B20中的每個器件上都有獨(dú)一無二的序列號?!?〕、實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫?!?〕、測量溫度范圍在-55。C到+125。C之間?!?〕、數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。〔6〕、內(nèi)部有溫度上、下限告警設(shè)置。

DS18B20的引腳介紹TO-92封裝的DS18B20的引腳排列見圖1,其引腳功能描述見表1

四、軟件設(shè)計1、ds18b20模塊設(shè)計Ds18b20.h#ifndef__DS18B20_H__#define__DS18B20_H__#include<reg51.h>#include<intrins.h>//重定義關(guān)鍵詞//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endifsbitDQ=P3^7;#definedelay_4us();{ _nop_();_nop_(); _nop_();_nop_();}ucharinit_ds18b20();ucharreadbyte();voidwritebyte(uchardat);ucharread_tem();voiddelay_ms(uchari);voiddelay_8us(uchari);#endifDs18b20.c#include"ds18b20.h"inttemp;voiddelay_8us(uchari){ while(i--);}voiddelay_ms(uchari){ucharm; while(i--) { for(m=0;m<120;m++); }}ucharinit_ds18b20(){ucharstatus; DQ=1; delay_8us(8); DQ=0; delay_8us(90); DQ=1; delay_8us(5); status=DQ;delay_8us(90);DQ=1; returnstatus;}voidwritebyte(uchardat){uchari; for(i=0;i<8;i++) { DQ=0;dat>>=1; DQ=CY; delay_8us(8); DQ=1; }}ucharreadbyte(){uchari,dat=0x00; for(i=0x01;i!=0x00;i<<=1) { DQ=0;_nop_(); DQ=1;_nop_(); if(DQ)dat=dat|i; delay_8us(8); DQ=1; } returndat;}ucharread_tem(){uchartml,tmh; if(init_ds18b20()==1)return0; else {writebyte(0XCC);writebyte(0X44); delay_8us(500); init_ds18b20();writebyte(0XCC);writebyte(0XBE);tml=readbyte();tmh=readbyte(); temp=tmh; temp<<=8; temp|=tml; return1; }}2、lcd1602顯示模塊Lcd1602.h#ifndef__LCD1602_H__#define__LCD1602_H__#include<reg51.h>#include<intrins.h>//重定義關(guān)鍵詞//#ifndefuchar#defineucharunsignedchar#endif#ifndefuint#defineuintunsignedint#endifsbitrs=P2^6;sbitrw=P2^5;sbiten=P2^7;voiddelay(ucharms);voidbusy_wait();voidwrite_lcd_command(ucharcmd);voidwrite_lcd_data(uchardat);voidinit_lcd();voidlcd_showstring(ucharr,ucharc,uchar*str);#endifLcd1602.c#include"lcd1602.h"codeucharddram[]={0x80,0xc0};voiddelay(ucharms){uchari; while(ms--) for(i=0;i<10;i++);}voidbusy_wait(){ucharlcd_status; do { P0=0xff;en=0;rs=0;rw=1;en=1;lcd_status=P0;en=0;}while(lcd_status&0x80);}voidwrite_lcd_command(ucharcmd){busy_wait();en=0;rs=0;rw=0; P0=cmd;en=1;_nop_();en=0;}voidwrite_lcd_data(uchardat){busy_wait();en=0;rs=1;rw=0; P0=dat;en=1;_nop_();en=0;}voidinit_lcd(){write_lcd_command(0x38);delay(1);write_lcd_command(0x01);delay(1);write_lcd_command(0x06);delay(1);write_lcd_command(0x0c);delay(1);}voidlcd_showstring(ucharr,ucharc,uchar*str){uchari=0;write_lcd_command(ddram[r]|c); for(i=0;str[i]&&i<16;i++)write_lcd_data(str[i]); for(;i<16;i++)write_lcd_data('');}3、主函數(shù)程序設(shè)計Main.c#include<stdio.h>#include"ds18b20.h"#include"lcd1602.h"externtemp;uchartemp_buff[17];externinttemp;voidmain(){ floatn=0.0;init_lcd();lcd_showstring(0,0,"DS18B20TEST");lcd_showstring(1,0,"Waiting...");read_tem();delay_ms(1500);while(1) { if(read_tem()) { n=temp*0.0625;sprintf(temp_buff,"TEMP:%5.1f\Xdf\x43",n);lcd_showstring(1,0,temp_buff); } else {sprintf(temp_buff,"error");lcd_showstring(1,0,temp_buff);}delay_ms(50); }}5、模擬仿真圖六.參考文獻(xiàn)[1]歐偉明,何靜,凌云,劉劍.單片機(jī)原理與應(yīng)用系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2023:268-298.[2]樓然苗,李光飛.單片機(jī)課程設(shè)計指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.7:15-36.[3]林伸茂.8051單片機(jī)徹底研究——實(shí)習(xí)篇[M].

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論