




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、開放性試驗課 程 設 計成績評定表設計課題 : 基于89C52的數字溫度傳感器設計 學院名稱 : 電氣工程學院 專業班級 : 小組成員: 指導教師 : 指導教師意見:成績: 簽名: 年 月 目錄一 系統概述2二 總體框圖3三 硬件設計33.1AT89C52簡介33.2 12864液晶簡介43.2.1液晶顯示模塊概述43.2.2模塊引腳說明53.2.3接口時序63.3數字溫度傳感器DS182073.4時鐘芯片9四 軟件設計10附錄 程序及系統原理圖11一 系統概述本系統是以89C52單片機為控制器的數字溫度采集顯示報警系統,可以實現對當前溫度溫度的實時采集并傳送到12864液晶屏上顯示,并可設置
2、溫度高低報警值,其中主要采用的芯片有AT89C52微控制器芯片,DS1302實時時鐘芯片,DS18B20溫度傳感器,12864液晶顯示芯片。其中溫度傳感器將當前的溫度采集并送入微控制器中,再由微控制器將數據傳遞給12864液晶顯示。二 總體框圖三 硬件設計3.1AT89C52簡介AT89C52是一種帶8K字節閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS8位微處理器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C52是一種高效微控制器,為很多嵌入式控制系統提供了一
3、種靈活性高且價廉的方案。主要特性:·與MCS-51 兼容 ·4K字節可編程閃爍存儲器·壽命:1000寫/擦循環·數據保留時間:10年·全靜態工作:0Hz-24Hz·三級程序存儲器鎖定·128*8位內部RAM·32可編程I/O線·兩個16位定時器/計數器·5個中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片內振蕩器和時鐘電路 管腳說明: VCC:供電電壓。 GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次
4、寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高
5、,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51
6、的一些特殊功能口,如下表所示:管口管腳 備選功能 P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數據存儲器寫選通)P3.7 /RD(外部數據存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。3.2 12864液晶簡介3.2.1液晶顯示模塊概述JM12864M-2漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內置8192個中文漢字(16X1
7、6點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。主要技術參數和顯示特性:電源:VDD 3.3V+5V(內置升壓電路,無需負壓);顯示內容:128列× 64行顯示顏色:黃綠顯示角度:6:00鐘直視LCD類型:STN與MCU接口:8位或4位并行/3位串行配置LED背光多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等二、外形尺寸外觀尺寸:93×70×12.5mm 視域尺寸:73×39mm外形尺寸圖 外形尺寸3.2.2模塊引腳說明128X64HZ 引腳說明引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VDD-模塊的電
8、源正端3V0-LCD驅動電壓輸入端4RS(CS)H/L并行的指令/數據選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數據口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數據08DB1H/L數據19DB2H/L數據210DB3H/L數據311DB4H/L數據412DB5H/L數據513DB6H/L數據614DB7H/L數據715PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復位 低電平有效18NC空腳19LED_A(LED+5V)背光源正極20LED_K(LED-OV)背光源負極邏輯工作電壓(VDD):4.55.5V電
9、源地(GND):0V工作溫度(Ta):-10 60(常溫) / -2070(寬溫)3.2.3接口時序模塊有并行和串行兩種連接方法(時序如下):8位并行連接時序圖MPU寫資料到模塊MPU從模塊讀出資料漢字顯示坐標 X坐標Line180H81H82H83H84H85H86H87HLine290H91H92H93H94H95H96H97HLine388H89H8AH8BH8CH8DH8EH8FHLine498H99H9AH9BH9CH9DH9EH9FH 3.3數字溫度傳感器DS1820 一 單線數字溫度計DSl820介紹 DSl820數字溫度計提供9位(二進制)溫度讀數指示器件的溫度信息經過單線接口
10、送入DSl820或從DSl820送出因此從主機CPU到DSl820僅需一條線(和地線)DSl820的電源可以由數據線本身提供而不需要外部電源因為每一個DSl820在出廠時已經給定了唯一的序號因此任意多個DSl820可以存放在同一條單線總線上這允許在許多不同的地方放置溫度敏感器件DSl820的測量范圍從-55到+125增量值為0.5可在l s(典型值)內把溫度變換成數字每一個DSl820包括一個唯一的64位長的序號該序號值存放在DSl820內部的ROM(只讀存貯器)中開始8位是產品類型編碼(DSl820編碼均為10H)接著的48位是每個器件唯一的序號最后8位是前面56位的CRC(循環冗余校驗)碼
11、DSl820中還有用于貯存測得的溫度值的兩個8位存貯器RAM編號為0號和1號1號存貯器存放溫度值的符號如果溫度為負()則1號存貯器8位全為1否則全為00號存貯器用于存放溫度值的補碼LSB(最低位)的1表示0.5將存貯器中的二進制數求補再轉換成十進制數并除以2就得到被測溫度值(-550125)DSl820的引腳如圖226l所示每只D51820都可以設置成兩種供電方式即數據總線供電方式和外部供電方式采取數據總線供電方式可以節省一根導線但完成溫度測量的時間較長采取外部供電方式則多用一根導線但測量速度較快。 (1)初始化時序見圖2.25-2主機總線to時刻發送一復位脈沖(最短為480us的低電平信號)
12、接著在tl時刻釋放總線并進入接收狀態DSl820在檢測到總線的上升沿之后等待15-60us接著DS1820在t2時刻發出存在脈沖(低電平持續60-240 us)如圖中虛線所示 (2)寫時間隙當主機總線t o時刻從高拉至低電平時就產生寫時間隙見圖2253圖2254從to時刻開始15us之內應將所需寫的位送到總線上DSl820在t后15-60us間對總線采樣若低電平寫入的位是0見圖2253若高電平寫入的位是1見圖2254連續寫2位間的間隙應大于1us (3)讀時間隙見圖2255主機總線to時刻從高拉至低電平時總線只須保持低電平l 7ts之后在t1時刻將總線拉高產生讀時間隙讀時間隙在t1時刻后t 2
13、時刻前有效t z距to為15捍s也就是說t z時刻前主機必須完成讀位并在t o后的60尸s一120 fzs內釋放總線3.4時鐘芯片 DS1302 是DALLAS 公司推出的涓流充電時鐘芯片內含有一個實時時鐘/日歷和31 字節靜態RAM 通過簡單的串行接口與單片機進行通信實時時鐘/日歷電路提供秒分時日日期月年的信息每月的天數和閏年的天數可自動調整時鐘操作可通過AM/PM 指示決定采用24 或12 小時格式DS1302 與單片機之間能簡單地采用同步串行的方式進行通信僅需用到三個口線1 RES 復位2 I/O 數據線3 SCLK串行時鐘時鐘/RAM 的讀/寫數據以一個字節或多達31 個字節的字符組方
14、式通信DS1302 工作時功耗很低保持數據和時鐘信息時功率小于1mWDS1302 是由DS1202 改進而來增加了以下的特性雙電源管腳用于主電源和備份電源供應Vcc1 為可編程涓流充電電源附加七個字節存儲器它廣泛應用于電話傳真便攜式儀器以及電池供電的儀器儀表等產品領域下面將主要的性能指標作一綜合1.實時時鐘具有能計算2100 年之前的秒分時日日期星期月年的能力還有閏年調整的能力231 8 位暫存數據存儲RAM3.串行 I/O 口方式使得管腳數量最少4.寬范圍工作電壓2.0 5.5V5.工作電流 2.0V 時,小于300nA6.讀/寫時鐘或RAM 數據時有兩種傳送方式單字節傳送和多字節傳送字符組
15、方式7.8 腳DIP 封裝或可選的8 腳SOIC 封裝根據表面裝配8.簡單 3 線接口9.與 TTL 兼容Vcc=5V10.可選工業級溫度范圍-40 +85 四 軟件設計程序流程圖如圖4-1表示圖4-1.程序流程圖程序采用模塊化編程模塊化編程即把單個功能的子程序進行單獨建立,并對其子程序做出自己的頭文件,其函數在主函數中調用即可,且不影響其他模塊。編寫模塊化程序,可閱讀性強,可移植性高附錄 程序及系統原理圖溫度傳感器子函數#include "18b20.h"#include "delay.h"void delay(unsigned int i)while
16、(i-);Init_DS18B20(void)unsigned char x=0;DQ=1;delay(8);DQ=0;delay(80);DQ=1;delay(14);x=DQ;delay(20);/*/ReadOneChar(void)unsigned char i=0;unsigned char dat=0;for(i=0;i<8;i+)DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay(4);return(dat);/*/WriteOneChar(unsigned char dat)unsigned char i=0;for(i=0;i&l
17、t;8;i+)DQ=0;DQ=dat&0x01;delay(5);DQ=1;dat>>=1;/*/ReadTemperature(void)unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xcc);WriteOneChar(0xbe);a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=
18、t|a;tt=t*0.0625;t=tt*10+0.5;return(t);/*/#ifndef _18B20_H_#define _18B20_H_#include <reg52.h>sbit DQ=P22;Init_DS18B20(void);ReadOneChar(void);WriteOneChar(unsigned char dat);ReadTemperature(void);void delay(unsigned int i);#endif液晶顯示子函數#include "lcd12864.h"#include "delay.h"
19、;uchar hanzi0="時間: "uchar hanzi1="溫度: "uchar hanzi2="高報警: 22.0 "uchar hanzi3="低報警: 18.0 "void delay_ms(uchar a)uint i,j;for(i=a;i>0;i-)for(j=6245;j>0;j-);/*/*/在12m晶振時延時50us*/void delayus(uchar t)uint i,j;for(i=t;i>0;i-)for(j=19;j>0;j-);/*/void writ
20、e_com(uchar com)rs=0;rw=0;e=0; lcd_dat_port=com;delayus(1);e=1;delayus(10);e=0;delayus(2);/*/void write_data(uchar dat)rs=1;rw=0;e=0;lcd_dat_port=dat;delayus(1);e=1;delayus(10);e=0;delayus(2);/*/void init()uchar i;delay_ms(2);write_com(0x30);delayus(4);write_com(0x30);delayus(4);write_com(0x0c);dela
21、yus(4);write_com(0x01);delayus(240);write_com(0x06);delayus(10);/*/write_com(0x80);delay_ms(1);for(i=0;i<9;i+)write_data(hanzi0i);write_com(0x90);delay_ms(1);for(i=0;i<9;i+)write_data(hanzi1i);write_com(0x88);delay_ms(1);for(i=0;i<16;i+)write_data(hanzi2i);write_com(0x98);delay_ms(1);for(i=
22、0;i<16;i+)write_data(hanzi3i);delay_1ms(10);#ifndef _LCD12864_H_#define _LCD12864_H_#include <reg52.h>#include "delay.h"#define lcd_dat_port P0sbit rs=P35;sbit e=P34;sbit rw=P36;void write_com(uchar com);void write_data(uchar dat);void delay_ms(uchar a);void delayus(uchar t);void
23、init();void lcd_char_write(uchar x_pos,y_pos,lcd_dat);#endif延時函數#include "delay.h"void delayshu(void)int k;for(k=0;k<1000;k+);/*/void lcd_delay(uint ms)uint i;while(ms-)for(i=0;i<250;i+);/*/*/void delay_1ms(uchar x)uchar i=0,j=0;for(i=0;i<x;i+)for(j=0;j<113;j+);#ifndef _DELAY_H
24、_#define _DELAY_H_#include <reg52.h>#define uchar unsigned char#define uint unsigned intvoid lcd_delay(uchar ms);void delayshu(void);void delay_1ms(uchar x);#endif時鐘函數#include "ds1302.h"#include "delay.h"/* 函 數 名:RTInputByte() 功 能:實時時鐘寫入一字節 說 明:往DS1302寫入1Byte數據 (內部函數) 入口參數:
25、d 寫入的數據 返 回 值:無 設 計:zhaojunjie 日 期:2002-03-19 修 改: 日 期: */void RTInputByte(uchar d) uchar i; ACC = d; for(i=8; i>0; i-) T_IO = ACC0; /*相當于匯編中的 RRC */ T_CLK = 1; T_CLK = 0; ACC = ACC >> 1; /* 函 數 名:RTOutputByte() 功 能:實時時鐘讀取一字節 說 明:從DS1302讀取1Byte數據 (內部函數) 入口參數:無 返 回 值:ACC 設 計:zhaojunjie 日 期:2
26、002-03-19 修 改: 日 期: */uchar RTOutputByte(void) uchar i; for(i=8; i>0; i-) ACC = ACC >>1; /*相當于匯編中的 RRC */ ACC7 = T_IO; T_CLK = 1; T_CLK = 0; return(ACC); /* 函 數 名:W1302() 功 能:往DS1302寫入數據 說 明:先寫地址,后寫命令/數據 (內部函數) 調 用:RTInputByte() , RTOutputByte() 入口參數:ucAddr: DS1302地址, ucData: 要寫的數據 返 回 值:無
27、設 計:zhaojunjie 日 期:2002-03-19 修 改: 日 期: */void W1302(uchar ucAddr, uchar ucDa) T_RST = 0; T_CLK = 0; T_RST = 1; RTInputByte(ucAddr); /* 地址,命令 */ RTInputByte(ucDa); /* 寫1Byte數據*/ T_CLK = 1; T_RST = 0; /* 函 數 名:R1302() 功 能:讀取DS1302某地址的數據 說 明:先寫地址,后讀命令/數據 (內部函數) 調 用:RTInputByte() , RTOutputByte() 入口參數:
28、ucAddr: DS1302地址 返 回 值:ucData :讀取的數據 設 計:zhaojunjie 日 期:2002-03-19 修 改: 日 期: */uchar R1302(uchar ucAddr) uchar ucData; T_RST = 0; T_CLK = 0; T_RST = 1; RTInputByte(ucAddr); /* 地址,命令 */ ucData = RTOutputByte(); /* 讀1Byte數據 */ T_CLK = 1; T_RST = 0; return(ucData);/* 函 數 名:Set1302() 功 能:設置初始時間 說 明:先寫地址
29、,后讀命令/數據(寄存器多字節方式) 調 用:W1302() 入口參數:pClock: 設置時鐘數據地址 格式為: 秒 分 時 日 月 星期 年 7Byte (BCD碼)1B 1B 1B 1B 1B 1B 1B 返 回 值:無 設 計:zhaojunjie 日 期:2002-03-19 修 改: 日 期: */void Set1302(uchar *pClock) uchar i; uchar ucAddr = 0x80; EA = 0; W1302(0x8e,0x00); /* 控制命令,WP=0,寫操作?*/ for(i =3; i>0; i-) W1302(ucAddr,*pClo
30、ck); /* 秒 分 時 日 月 星期 年 */ pClock+; ucAddr +=2; W1302(0x8e,0x80); /* 控制命令,WP=1,寫保護?*/EA = 1;/* 函 數 名:Get1302() 功 能:讀取DS1302當前時間 說 明: 調 用:R1302() 入口參數:ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B 返 回 值:無 設 計:zhaojunjie 日 期:2002-03-19 修 改: 日 期: */void Get1302(uchar ucCu
31、rtime) uchar i; uchar ucAddr = 0x81;EA = 0; for (i=0; i<3; i+) ucCurtimei = R1302(ucAddr);/*格式為: 秒 分 時 日 月 星期 年 */ ucAddr += 2; EA = 1; #ifndef _DS1302_H_#define _DS1302_H_#include <reg52.h> #include <intrins.h>#define nop() _nop_()sbit T_CLK = P32; /*實時時鐘時鐘線引腳 */sbit T_IO = P24; /*實時
32、時鐘數據線引腳 */sbit T_RST = P33; /*實時時鐘復位線引腳 */sbit ACC0 = ACC0;sbit ACC7 = ACC7;void RTInputByte(uchar d);uchar RTOutputByte(void);void W1302(uchar ucAddr, uchar ucDa);uchar R1302(uchar ucAddr);void Set1302(uchar *pClock);void Get1302(uchar ucCurtime);#endif主函數#include "lcd12864.h"#include "18b20.h"#include "delay.h"#include "ds1302.h"#include <reg52.h>uchar xiegang=":"uchar code mun_to_char = "0123456789abcdef" /*定義數字跟ASCII碼的關系*/uchar data time_data_buff3=0x00,0x00,0x09;/*格式為: 秒 分 時 日 月 星期 年 */sbit WELA=P27;sbit beep=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理技術規范試題及答案
- 行政人事筆試題目及答案
- 聽力答題測試題及答案
- 流浪旅游測試題及答案
- 公共政策的評估項目設計試題及答案
- 軟件設計師考試短期突破試題及答案
- 網絡工程師2025年考試應對策略與試題答案
- 重要知識點2025年信息系統試題及答案
- 2024年激光比長儀資金需求報告代可行性研究報告
- 網絡配置管理中的標準化問題解析試題及答案
- 浙江省寧波市鎮海中學2025年5月第二次模擬考試 英語試卷+答案
- 項目管理與評估試題及答案
- 2024年安徽省淮南市田家庵區小升初數學試卷(空白卷)
- 航海英語閱讀與寫作能力測試考核試卷
- 環境設計人才培養方案
- 龍巖市2025年高中高三畢業班五月教學質量檢政治試卷(含答案)
- 自動跟蹤定位射流滅火系統設計與實施及驗收標準化研究
- 巴黎奧運會試題及答案
- 城市道路交通標志和標線設置規范
- 高二語文期末復習重點知識歸納總結
- 大數據與商業決策的應用試題及答案
評論
0/150
提交評論