




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、_單片機(jī)應(yīng)用實(shí)習(xí)報(bào)告書_ 目錄摘 要2Abstract31 .設(shè)計(jì)任務(wù)及要求41.1 設(shè)計(jì)任務(wù)41.2 設(shè)計(jì)要求52、硬件分析52.1單片機(jī)最小系統(tǒng)電路52.2顯示電路62.4溫度模塊DS18B2072.5頻率計(jì)模塊83、 電路仿真84、 實(shí)物照片115、 程序流程圖125.1 主程序流程125.2時(shí)鐘程序135.3顯示流程14參考文獻(xiàn):15附錄 本設(shè)計(jì)所用的C程序清單16 摘 要 隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),此次實(shí)習(xí)設(shè)計(jì)的是一個(gè)可自行調(diào)節(jié)的數(shù)字時(shí)鐘。以AT89C51的最小系統(tǒng)為核心,實(shí)現(xiàn)時(shí)鐘,溫度計(jì),頻率計(jì)的一個(gè)整體系
2、統(tǒng)。硬件電路簡單,功能較為齊全。關(guān)鍵字:單片機(jī) AT89C51 數(shù)字時(shí)鐘Abstract With the development of technology ,single-chip technology has spread to our lives, work, research, in various fields, has become a relatively mature technology, this practice is the design of a self adjustable digital clock. With a minimum of AT89C51syst
3、em as the core, realize the clock, thermometer, frequency of a system. The hardware circuit is simple, the function is more complete.Keyword: single-chip AT89C51 digital clock1 .設(shè)計(jì)任務(wù)及要求1.1 設(shè)計(jì)任務(wù)(1)完成單片機(jī)最小系統(tǒng)的設(shè)計(jì)、焊接、調(diào)試;(2)完成ISP下載電路的設(shè)計(jì)、焊接;(3)完成應(yīng)用系統(tǒng)擴(kuò)展電路部分的設(shè)計(jì)、焊接、調(diào)試;應(yīng)用系統(tǒng)擴(kuò)展電路的具體要求如下:1)鍵盤、顯示電路利用單片機(jī)最小系統(tǒng)、6個(gè)7段LE
4、D數(shù)碼管、12個(gè)按鍵,設(shè)計(jì)制作一個(gè)鍵盤、顯示電路??梢允褂?279鍵盤顯示接口電路,也可以使用單片機(jī)的并行接口作為鍵盤顯示接口。2) 數(shù)字時(shí)鐘在鍵盤、顯示電路的基礎(chǔ)上完成一個(gè)數(shù)字時(shí)鐘的設(shè)計(jì),完成以下功能:a. 要求以24小時(shí)計(jì)時(shí)方式顯示時(shí)、分、秒;b. 時(shí)、分、秒可以通過按鍵分別調(diào)整。 3) 數(shù)字溫度計(jì)在上題的硬基礎(chǔ)上,制作一個(gè)數(shù)字溫度計(jì)。完成以下功能:a. 利用DS18B20可編程1-Wire數(shù)字溫度傳感器芯片,或利用AD590溫度傳感器芯片和A/D轉(zhuǎn)換器芯片采集溫度溫度信號;b. 當(dāng)按下鍵盤上的溫度顯示按鍵時(shí)將實(shí)時(shí)溫度信息顯示在LED顯示器上,當(dāng)按下鍵盤上的時(shí)鐘顯示按鍵時(shí),恢復(fù)時(shí)鐘的正常顯
5、示;c. 通過串行通信的方式,將采集到的實(shí)時(shí)溫度信息送至第二個(gè)單片機(jī)系統(tǒng),并在二個(gè)單片機(jī)系統(tǒng)顯示實(shí)時(shí)溫度。4) 數(shù)字頻率計(jì)在上題的硬基礎(chǔ)上,制作一個(gè)數(shù)字頻率計(jì)。完成以下功能:a. 利用MCU設(shè)計(jì)一個(gè)數(shù)字頻率計(jì),用于檢測0500kHz周期信號的頻率,輸入信號幅度范圍:0.110V;b. 當(dāng)按下鍵盤上的頻率顯示按鍵時(shí)將測量的頻率信息顯示在LED顯示器上,當(dāng)按下鍵盤上的時(shí)鐘顯示按鍵時(shí),恢復(fù)時(shí)鐘的正常顯示;(4)利用仿真軟件完成系統(tǒng)仿真工作;(5)完成系統(tǒng)軟件的設(shè)計(jì),包括程序結(jié)構(gòu)設(shè)計(jì)、流程圖繪制、程序設(shè)計(jì)。1.2 設(shè)計(jì)要求(1)利用PROTEL等軟件進(jìn)行硬件設(shè)計(jì);(2)利用Keil uV2軟件完成應(yīng)用
6、系統(tǒng)軟件設(shè)計(jì);(3)利用PROTEUS軟件進(jìn)行仿真設(shè)計(jì);(4)完成單片機(jī)最小系統(tǒng)和應(yīng)用系統(tǒng)電路板的焊接;(5)對電路進(jìn)行調(diào)試;(6)利用stc-isp軟件完成在系統(tǒng)編程、下載,并完成系統(tǒng)軟件調(diào)試;(7)單獨(dú)完成硬件軟件設(shè)計(jì)、仿真、焊接、調(diào)試。2、硬件分析2.1單片機(jī)最小系統(tǒng)電路 本實(shí)驗(yàn)才用STC單片機(jī)的典型系統(tǒng),各模塊參數(shù)配置如圖:其中晶振頻率為12MHz,震蕩部分電容為30pF的瓷片電容。復(fù)位電路采用圖示的兼有上電復(fù)位和按鍵復(fù)位功能的方式,其中的電容為10uF電解電容。 圖2.1 單片機(jī)最小系統(tǒng) 2.2顯示電路 用七段LED數(shù)碼管來實(shí)現(xiàn),采用共陽管和PNP驅(qū)動(dòng)方式。PNP工作于開關(guān)狀態(tài),基極
7、通過1K的電阻連到單片機(jī)的P2口。為節(jié)省P口,將六位數(shù)碼管的8段段選端分別并接并加上470的限流電阻,由P0口控制,給低電平的段會(huì)被點(diǎn)亮。因?yàn)榱还艿亩伪徊⒔又荒芡ㄟ^動(dòng)態(tài)掃描的方式來顯示,即利用管子的余暉和人眼的視覺殘留實(shí)現(xiàn)六位管子在“同一時(shí)間”顯示不同的值,而掃描這是靠位選的輪流有效實(shí)現(xiàn)。如下圖。圖2.2 LED結(jié)構(gòu)2.3鍵盤電路單片機(jī)系統(tǒng)中,若使用按鍵較多時(shí),通常采用矩陣式(也稱行列式)鍵盤。矩陣式鍵盤由行線和列線組成,按鍵位于行、列線的交叉點(diǎn)上。獨(dú)立式按鍵的軟件常采用查詢式結(jié)構(gòu)。先逐位查詢每根I/O口線的輸入狀態(tài),如某一根I/O口線輸入為低電平,則可確認(rèn)該I/O口線所對應(yīng)的按鍵已按下,然
8、后,再轉(zhuǎn)向該鍵的功能處理程序。此處為一個(gè)4*3的矩陣鍵盤電路。 圖2.3 矩陣鍵盤2.4溫度模塊DS18B20 DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。 圖2.4 DS18B20內(nèi)部結(jié)構(gòu)框圖DS18B20引腳定義:(1) DQ為數(shù)字信號輸入/輸出端。(2)GND為電源地。(3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。2.5頻率計(jì)模塊頻率測量儀的設(shè)計(jì)思路主要是:對信號分頻,測量一個(gè)或幾個(gè)被測量信號周期中已知標(biāo)準(zhǔn)頻率信號的周期個(gè)數(shù),進(jìn)而測量出該信號頻率的大小,其原理如下圖所示。 圖2.5 頻率測量原理若被測
9、量信號的周期為,分頻數(shù)m1,分頻后信號的周期為T,則:T=m1Tx 。由圖可知: T=NTo (注:To為標(biāo)準(zhǔn)信號的周期,所以T為分頻后信號的周期,則可以算出被測量信號的頻率f。)由于單片機(jī)系統(tǒng)的標(biāo)準(zhǔn)頻率比較穩(wěn)定,而是系統(tǒng)標(biāo)準(zhǔn)信號頻率的誤差,通常情況下很?。欢到y(tǒng)的量化誤差小于1,所以由式T=NTo可知,頻率測量的誤差主要取決于N值的大小,N值越大,誤差越小,測量的精度越高。3、 電路仿真 通過89C51來完成整個(gè)電路圖的核心部分。單片機(jī)內(nèi)部晶振完成計(jì)時(shí)部分,6個(gè)七段數(shù)碼管連接顯示??刂撇糠滞ㄟ^44的矩陣鍵盤實(shí)現(xiàn)。 圖3.1 溫度模塊仿真 圖3.2 頻率計(jì)仿真 圖2.3 時(shí)鐘仿真4、 實(shí)物照片
10、 圖4.1 實(shí)物圖5、 程序流程圖5.1 主程序流程開始 初始化程序啟動(dòng)時(shí)鐘時(shí)鐘工作狀態(tài)N是否有鍵按下YYK0鍵按下設(shè)置秒?yún)?shù)NYK1鍵按下設(shè)置分參數(shù)NYK2鍵按下設(shè)置時(shí)參數(shù)NYK4鍵按下跳入溫度顯示N跳入頻率計(jì)YK4鍵按下 圖5.1 主程序流程圖開 始5.2時(shí)鐘程序初始化程序時(shí)鐘工作狀態(tài)NY 顯示調(diào)整NN 時(shí)鐘顯示YYY時(shí)加一設(shè)置YY分加一設(shè)置24H?60M?60S?NK0鍵按下一次NK1鍵按下一次K2鍵按下一次秒加一設(shè)置Y有鍵按下 圖5.2 時(shí)鐘模塊流程圖5.3顯示流程 顯示數(shù)據(jù)的顯示碼求下一位選碼送位段碼到P0口輸出 顯示數(shù)據(jù)的顯示碼動(dòng)態(tài)顯示子程序取出要顯示的時(shí)間據(jù)送位顯碼到P2輸出延時(shí)
11、圖5.3 顯示部分流程圖參考文獻(xiàn):1謝維成 楊加國 編著單片機(jī)原理與應(yīng)用 2 陳濤編著.單片機(jī)應(yīng)用及C51程序設(shè)計(jì).北京:機(jī)械工業(yè)出版社,20103單片機(jī)原理及應(yīng)用 張毅剛 高等教育出版社 2004年版4 孫曉明EDA實(shí)驗(yàn)指導(dǎo)書武漢:武漢理工大學(xué)教材中心,20075 張靖武,周靈彬編著.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真. 北京:電子 工業(yè)出版社,2007. 附錄 本設(shè)計(jì)所用的C程序清單#include#include#define uchar unsigned char #define uint unsigned intvoid displaytim();void delay(uint z
12、);void init();void keyscan();void tempmain();void fremain();uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;uchar code temtable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0xa7,0xff,0xef,0xf7;uchar code fretabl
13、e=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, /帶小數(shù)點(diǎn)的09編碼0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;/不帶小數(shù)點(diǎn)的09的編碼sbit dula=P26;sbit wela=P27;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit s4=P33;sbit ds=P22;sbit rd=P37;uchar count;char miao,shi,fen,miao1,miao2,shi1,shi2,fen1,fen2;/溫度測量參數(shù)float
14、f_temp;uint temp;uchar temp1;/頻率測量參數(shù)uchar dispcount,frecount,timecount,b1,b2,b3,b4,b5,b6;bit flag,flag1; /將flag定義為位變量/unsigned long a;void shizhong() while(1)keyscan();displaytim();if(s4=0)delay(5);if(s4=0)while(!s4);fremain(); void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void init()fla
15、g1=1;miao1=0;miao2=0;fen1=0;fen2=0;shi1=0;shi2=0; TH0=0XF0; /重新給T1填裝定時(shí)初值/ TL0=0X60; TMOD=0x01; /給TOMD送方式控制字,使T1為計(jì)數(shù)方式,T0為定時(shí)方式/EA=1;ET0=1;TR0=1; shizhong();void keyscan()rd=0;if(s1=0)delay(5); if(s1=0)while(!s1); miao+;if(miao=60)miao=0;if(s2=0)delay(5); if(s2=0)while(!s2); fen+;if(fen=60)fen=0;if(s3=
16、0)delay(5); if(s3=0)while(!s3); shi+;if(shi=24)shi=0;void displaytim() miao1=miao%10; miao2=miao/10; fen1=fen%10; fen2=fen/10; shi1=shi%10; shi2=shi/10; wela=1; P0=0xfe; wela=0; dula=1; P0=tableshi2; dula=0; P0=0xff; delay(5); wela=1; P0=0xfd; wela=0; dula=1; P0=fretableshi1+10; dula=0; P0=0xff; del
17、ay(5); wela=1; P0=0xfb; wela=0; dula=1; P0=tablefen2; dula=0; P0=0xff; delay(5); wela=1; P0=0xf7; wela=0; dula=1; P0=fretablefen1+10; dula=0; P0=0xff; delay(5); wela=1; P0=0xef; wela=0; dula=1; P0=tablemiao2; dula=0; P0=0xff; delay(5); wela=1; P0=0xdf; wela=0; dula=1; P0=tablemiao1; dula=0; P0=0xff;
18、 delay(5);void dsreset() /對于11.0592MHz時(shí)鐘, unsigned int型的i, 作一個(gè)i+操作的時(shí)間大于?us unsigned int i; ds = 0; i = 103; /拉低約800us, 符合協(xié)議要求的480us以上 while(i0) i-; ds = 1; /產(chǎn)生一個(gè)上升沿, 進(jìn)入等待應(yīng)答狀態(tài) i = 4; while(i0) i-; bit tempreadbit(void) unsigned int i; bit dat; ds = 0; i+; /延時(shí)約8us, 符合協(xié)議要求至少保持1us ds = 1; i+; i+; /延時(shí)約16
19、us, 符合協(xié)議要求的至少延時(shí)15us以上 dat= ds; i = 8; while(i0) i-; /延時(shí)約64us, 符合讀時(shí)隙不低于60us要求 return (dat);/讀取一字節(jié)數(shù)據(jù), 通過調(diào)用readBit()來實(shí)現(xiàn)unsigned char tempread() unsigned int i; unsigned char j, dat; dat = 0; for(i=0; i8; i+) j = tempreadbit(); /最先讀出的是最低位數(shù)據(jù) dat = (j 1); return dat;/向DS18B20寫入一字節(jié)數(shù)據(jù)void tempwritebyte(unsi
20、gned char dat) unsigned int i; unsigned char j; bit b; for(j = 0; j = 1; /寫1, 將DQ拉低15us后, 在15us60us內(nèi)將DQ拉高, 即完成寫1 if(b) ds = 0; i+; i+; /拉低約16us, 符號要求1560us內(nèi) ds = 1; i = 8; while(i0) i-; /延時(shí)約64us, 符合寫時(shí)隙不低于60us要求 else /寫0, 將DQ拉低60us120us ds = 0; i = 8; while(i0) i-; /拉低約64us, 符號要求 ds = 1; i+; i+; /整個(gè)寫
21、0時(shí)隙過程已經(jīng)超過60us, 這里就不用像寫1那樣, 再延時(shí)64us了 /向DS18B20發(fā)送溫度轉(zhuǎn)換命令void tempchange(void) dsreset(); /初始化DS18B20, 無論什么命令, 首先都要發(fā)起初始化 delay(1); /延時(shí)1ms, 因?yàn)镈S18B20會(huì)拉低DQ 60240us作為應(yīng)答信號 tempwritebyte(0xcc); /寫入跳過序列號命令字 Skip Rom tempwritebyte(0x44); /寫入溫度轉(zhuǎn)換命令字 Convert T/向DS18B20發(fā)送讀取數(shù)據(jù)命令unsigned int get_temp()uchar a,b;dsr
22、eset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;return temp;void displaytem(uchar num0,uchar dat)uchar i;P0=0x00;dula=1;P0=temtabledat;dula=0;wela=0;i=0xff;i=i&(0x01)0;i-)dis_temp(get
23、_temp();temp1=(uchar)(get_temp()/2);send(temp1);for(i=10;i0;i-)dis_temp(get_temp(); if(s4=0) delay(5); if(s4=0) while(!s4); shizhong(); void main() init();shizhong();void fredisplay(uchar num1,uchar dat) /數(shù)據(jù)顯示程序 /num是第幾個(gè)數(shù)碼管,dat是要顯示的數(shù)字uchar i;dula=0;P0=0x00;dula=1;P0=fretabledat;/編碼賦給P0口dula=0;wela=0
24、;i=0xff;i=i&(0x01)(num1);/用I來存儲(chǔ)位選數(shù)據(jù),只有一位為0P0=i;wela=1;wela=0;delay(1);void fremain(void) flag1=0;IP=0x04; /將T1定義為高優(yōu)先級,使CPU優(yōu)先響應(yīng)其中斷/frecount=0; /計(jì)數(shù)脈沖賦初值0/ TR1=1; ET1=1;TMOD=0x51; /給TOMD送方式控制字,使T1為計(jì)數(shù)方式,T0為定時(shí)方式/ while(1) if(flag=1) flag=0; /位變量清0/ a=frecount*65536+TH1*256+TL1; / 計(jì)算脈沖個(gè)數(shù)/ a=a*100; TH1=0; TL1=0; b1=a%10; /計(jì)算b1位/ a=a/10; b2=a%10; / 計(jì)算b2位/ a=a/10; b3=a%10; /計(jì)算b3位/ a=a/10; b4=a%10; /計(jì)算b4位/ a=a/10; b5=a%10; / 計(jì)算b5位/ a=a/10; b6=a%10; /計(jì)算b6位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞動(dòng)合同范本題目
- 農(nóng)村水田租賃承包合同范本
- 企業(yè)汽車銷售合同范本
- 代理買賣二手車合同范本
- 代領(lǐng)購房合同范本
- 一般經(jīng)銷合同范例
- 個(gè)人購貨采購合同范本
- 關(guān)于裝修貸款合同范本
- 升旗臺合同范本
- 前臺勞務(wù)派遣合同范本
- 高考專題復(fù)習(xí):小說專題訓(xùn)練歷史小說的特點(diǎn)
- 人教部編版六年級下冊道德與法治第二課-《學(xué)會(huì)寬容-第一課時(shí)-寬容讓生活更美好》教學(xué)課件
- 醫(yī)患溝通技巧培訓(xùn)講義
- 丁苯橡膠乳液聚合生產(chǎn)工藝課件
- -抗腫瘤藥物的心臟毒性及防治新版課件
- 第1章全科醫(yī)學(xué)概述(人衛(wèi)第五版全科醫(yī)學(xué)概論)課件
- 拖拉機(jī)培訓(xùn)(基礎(chǔ)和通用知識)課件
- 對核武器和核事故的防護(hù)
- 中國古代經(jīng)濟(jì)史講稿
- 怎樣做好一名拉長
- 故障檢測報(bào)告表
評論
0/150
提交評論