版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機課程設(shè)計姓 名:呂長明學 號:專業(yè)班級:機電四班一、單片機原理及應(yīng)用簡介隨著國內(nèi)超大規(guī)模集成電路的出現(xiàn),微處理器及其外圍芯片有了迅速的發(fā)展。集成技術(shù)的最新發(fā)展之一是將CPU和外圍芯片,如程序存儲器、數(shù)據(jù)存儲器、并行、串行I/O口、定時/計數(shù)器、中斷控制器及其他控制部件集成在一個芯片之中,制成單片計算機(Single-Chip Microcomputer)。而近年來推出的一些高檔單片機還包括有許多特殊功能單元,如A/D、D/A轉(zhuǎn)換器、調(diào)制解調(diào)器、通信控制器、鎖相環(huán)、DMA、浮點運算單元等。因此,只要外加一些擴展電路及必要的通道接口就可以構(gòu)成各種計算機應(yīng)用系統(tǒng),如工
2、業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、自動測試系統(tǒng)、萬年歷電子表等。二、系統(tǒng)硬件設(shè)計8052 是標準的40引腳雙列直插式集成電路芯片,引腳分布請參照-單片機引腳圖圖1:圖1 8052引腳P0.0P0.7 P0口8位雙向口線(在引腳的3932號端子)。P1.0P1.7 P1口8位雙向口線(在引腳的18號端子)。 P2.0P2.7 P2口8位雙向口線(在引腳的2128號端子)。P3.0P3.7 P2口8位雙向口線(在引腳的1017號端子)。 8052芯片管腳說明:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。 當P1口的管腳第一次寫1時,被定義為高阻輸
3、入。P0能夠用于外部程序 數(shù) 據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口 作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部 必 須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。
4、并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口
5、,如表1所示:口管腳備選功能P3.0 RXD串行輸入口P3.1 TXD串行輸出口P3.2 /INT0外部中斷0P3.3 /INT1外部中斷1P3.4 T0記時器0外部輸入P3.5 T1記時器1外部輸入P3.6 /WR外部數(shù)據(jù)存儲器寫選通P3.7 /RD外部數(shù)據(jù)存儲器讀選通表1 特殊功能口P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。一般情況下,ALE端以不變的頻率周期輸出正脈沖信號,此頻
6、率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSE N信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000 H- FFFFH),不管是否有內(nèi)部程序存儲器。注
7、意加密方式1時,/EA將內(nèi) 部 鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FL ASH 編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。 三、系統(tǒng)總體方案 我選用的是單片機(8052)來實現(xiàn)電子萬年歷的功能。共具備兩個功能:(1)顯示年月日及分秒信息(2)具有可調(diào)整日期和時間功能。該電子萬年歷能夠成功實現(xiàn)時鐘運行,調(diào)整功能,且精確度經(jīng)調(diào)試一天的誤差在2S內(nèi)。1微處理器在設(shè)計過程中我使用12MHZ晶振與單片機8052相連接,通過軟件編程的方法實現(xiàn)了以24小時為一個周期同時顯示小時
8、,分鐘和秒的要求,該定時鬧鐘設(shè)有九個按鍵,使之具備了校時、定時功能。利用單片機定時器及計數(shù)器產(chǎn)生定時效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動態(tài)掃描顯示單片機內(nèi)部處理的數(shù)據(jù)。同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實現(xiàn)不同功能。在PROTEUS軟件環(huán)境下的8052芯片如圖4所示: 圖4 PROTEUS軟件環(huán)境下的8052芯片 2顯示電路就時鐘而言,通??刹捎靡壕э@示或數(shù)碼管顯示。由于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性相對較差;對于具有驅(qū)動電路和微處理器接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對微處理器的接口要求較高,占用資源多
9、。另外,89C2051本身無專門的液晶驅(qū)動接口,因此,本設(shè)計采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合。初始化時,由軟件編寫的指令就集中在顯示功能的設(shè)置上。LGM12641BS1R的指令可帶一個、兩個參數(shù),或無參數(shù)。若指令中含有參數(shù),則每條指令執(zhí)行時均須先送入?yún)?shù),再送入指令代碼。由于狀態(tài)位作用不一樣,因此執(zhí)行不同指令必須檢測不同狀態(tài)位。液晶顯示模塊LGM12641BS1R如圖5所示:圖5 顯示電路LGM12641BS1R3按鍵電路由于我設(shè)計的是電子萬年歷,需要實現(xiàn)多種功能的顯示,并要能夠切換顯示和調(diào)節(jié)年月日,因此,在設(shè)計過程中按鍵的設(shè)計就顯得尤為重要
10、。在設(shè)計過程中我一共采用了4個按鍵,盡量在小的空間里實現(xiàn)最多的功能。其中MODE鍵是年月日與時間顯示切換鍵,按下一次就能夠更換一次顯示位。在調(diào)整顯示環(huán)境下UP和DONW鍵是顯示調(diào)整位的的加1減1鍵,F(xiàn)UNCTION鍵實現(xiàn)清零,并提高萬年歷顯示的精確性。按鍵電路如圖6所示:圖6 按鍵電路 四、硬件電路的總體框圖設(shè)計該設(shè)計的硬件電路的總體框圖如圖7所示: 按鍵與按鈕 電路復(fù)位等輔助電路液晶顯示電路總體開關(guān)電源系統(tǒng)圖7 總體框圖五、硬件電路原理圖設(shè)計該萬年歷是以單片機8052為核心來完成的。在硬件電路中采用P0口作為6位液晶顯示電路的驅(qū)動接口,這是由于P0口輸出驅(qū)動電路工作處于開漏狀態(tài),它的驅(qū)動能力
11、強,故只需外接上拉電阻便可以把LED數(shù)碼管點亮。因為共陰的LED數(shù)碼管它的驅(qū)動電流是分開的,在單片機進行動態(tài)掃描的時候不會影響彼此的電流,故該電路中的8位LED數(shù)碼管均用共陽陰極的數(shù)碼管。8位LED數(shù)碼管的位選線分別由相應(yīng)的P2. 0P2. 5控制,而將其相應(yīng)的段選線并聯(lián)在一起,由一個8位的I/O口控制,即P0口。P3口與八個校時按鍵相連,以成功實現(xiàn)萬年歷校時的功能。電路原理圖如圖8所示:圖8 硬件電路六、主程序流程圖設(shè)計該設(shè)計主程序流程圖如圖9所示初始化定時器初始化化定時器初始化化串口初始化顯示待機指示符設(shè)定月設(shè)置年顯示刷新啟動走時變量初始化刷新顯示判時分變化否否?秒指示判秒到否?年代顯示時
12、間顯示星期顯示YYYY:圖9 主程序流程圖基本顯示模塊設(shè)計的重點是由顯示代碼取得相應(yīng)的段碼、顯示段碼數(shù)據(jù)的串行發(fā)送,程序流程如圖所示。其中時個位的段碼必須加上小數(shù)點,即帶小數(shù)點顯示時個位,目的是以小數(shù)點符代替時間分割符“-”。軟件秒脈沖發(fā)生器其實質(zhì)是利用了定時器0的定時溢出中斷,將它設(shè)定為100ms溢出中斷,則10次中斷的時間正好為1s。將時間參數(shù)設(shè)計為100ms的原因有兩個:)根據(jù)系統(tǒng)時鐘主頻為6M的特點,16位定時器最大定時時間為65536×2M(M為機器周期,這里是2),即131ms,取整數(shù)100便于計次數(shù);)如取的太短,如10ms,則定時器頻繁中斷,干擾系統(tǒng)正常運行效果。有了
13、秒脈沖發(fā)生器,10次中斷為1s,秒指示燈閃亮1次,秒變量單元加1,60后分變量單元加1,如果為60分則時變量單元加1。任何一個變量的變化,則顯示刷新一次(更新)。上述思想的實現(xiàn)均集成在定時器0的中斷子程序中。該設(shè)計顯示模塊流程圖如圖10所示:將進制時分數(shù)據(jù)轉(zhuǎn)化為顯示代碼關(guān)顯示以免顯示抖動通過串口將時十位段碼送入對應(yīng)的將時個位段碼送入對應(yīng)的將分十位和個位段碼送入各自對應(yīng)打開顯示圖10 基本顯示模塊的程序流程圖七、仿真過程1、仿真:打開WAVE6000,輸入所編寫的源程序并對程序進行編譯,在軟件的幫助下檢查其中的錯誤并進行反復(fù)修改,知道編譯正確后運行,確保沒有錯誤以后對正確的源程序進行保存,保存時
14、給其命名,以便將來載入程序時容易找到。2、打開PROTEUS軟件,并出畫單片機電子萬年歷具體運行電路圖。3、檢查所畫電路運行圖,確保沒有錯誤以后,在PROTEUS下對原理圖進行加載WAVE6000下的源程序。4、加載完成后,單擊電路圖框下的開始按鈕,進行仿真,觀察LED數(shù)碼管現(xiàn)實情況,此時LED數(shù)碼管開始顯示數(shù)字。調(diào)節(jié)開關(guān)進行時間的調(diào)節(jié)。當秒的顯示間隔快與或慢與實際間隔時,調(diào)節(jié)石英晶體震蕩器的頻率參數(shù),從而使秒的間隔達到標準。然后檢查電路其它問題,并對其的各參數(shù)進行調(diào)整,使之正確。八、仿真結(jié)果通過在WAVE6000下對源程序的編譯,改正了其中的很多錯誤,然后運行,保證源程序的正確性。然后按原理
15、圖選擇正確合理的電器元件,畫出正確的電路圖,加載源程序運行,順利實現(xiàn)了單片機數(shù)字電子鐘的“小時”、“分鐘”、“秒”的顯示。該電子萬年歷的顯示效果及電子萬年歷時間和日期的調(diào)節(jié)效果分別如圖12和圖13所示:圖12 電子萬年歷的運行效果圖13 電子萬年歷時間和日期的調(diào)節(jié)效果九、課程設(shè)計體會通過這一周的課程設(shè)計,我學到了不少的知識。把以前沒有學好的模擬電路的知識進行了補充和加強。這使我受益很大。加深了我對于單片機和數(shù)字電路的認識,相信在以后的學習和工作中碰到這些基礎(chǔ)的元器件我會更加得心應(yīng)手。通過查閱大量的資料,我獲得了以前在課堂上學不到的東西,我想這對于以后的畢業(yè)設(shè)計,或者工作也好,都是很有幫助的。我
16、很認真地對待這個過程中的每一個細節(jié),希望自己能做得更好。希望今后還有這樣的機會,能夠讓我學到更多的知識。在此次的數(shù)字鐘設(shè)計過程中,更進一步地熟悉了芯片的結(jié)構(gòu)及掌握了各芯片的工作原理和其具體的使用方法。在連接六進制,十進制,六十進制的進位及十二進制的接法中,要求熟悉邏輯電路及其芯片各引腳的功能,那么在電路出錯時便能準確地找出錯誤所在并及時糾正了。 在設(shè)計電路中,往往是先仿真后連接實物圖,但有時候仿真和電路連接并不是完全一致的,例如仿真的連接示意圖中,往往沒有接高電平的16腳或14腳以及接低電平的7腳或8腳,因此在實際的電路連接中往往容易遺漏。在設(shè)計電路的連接圖中出錯的主要原因都是接線和芯片的接觸
17、不良以及接線的錯誤所引起的。對該設(shè)計的建議:此次的電子萬年歷設(shè)計重在于仿真和接線,雖然能把電路圖接出來,并能正常顯示,但對于電路本身的原理并不是十分熟悉.總的來說,通過這次的設(shè)計實驗更進一步地增強了實驗的動手能力。學無止境,我們現(xiàn)在所做的一切都還只是一個開始。附1 源程序代碼#include < reg52.h >#include < character.h >#include < lcd.h >#include < clock.h >#include < sensor.h>#include < calendar.h >#
18、include < key.h >/*預(yù)定義*/#define uchar unsigned char#define uint unsigned int/*/sbit bell = P2 0; /定義蜂鳴器端口sbit in = P2 7; /定義紅外檢測端口/* 名稱: Timer0_Service() inturrupt 1* 功能: 中斷服務(wù)程序 整點報時 3聲嘟嘟的聲音* 入口參數(shù):* 出口參數(shù):*/void Timer0_Service() interrupt 1 static uchar count = 0; static uchar flag = 0; /記錄鳴叫的次
19、數(shù) count = 0; TR0 = 0; /關(guān)閉Timer0 TH0 = 0x3c; TL0 = 0XB0; /延時 50 ms TR0 = 1 ; /啟動Timer0 count +; if( count = 20 ) /鳴叫 1 秒 bell = bell; count = 0; flag +; if( flag = 6 ) flag = 0; TR0 = 0; /關(guān)閉Timer0 /* 名稱: Timer2_Servie() interrupt 5* 功能: 中斷服務(wù)程序 整點報時 一分鐘* 入口參數(shù): * 出口參數(shù):*/void Timer3_Service() interrupt
20、5 static uchar count; TF2 = 0; /軟件清除中斷標志 count +; if( in = 1 ) count = 0; /計算清0 TR2 = 0; /關(guān)閉Timer2 bell = 1; /關(guān)閉蜂鳴器 if( count = 120 ) / 一分鐘后 關(guān)閉報警 count = 0; /計算清0 TR2 = 0; /關(guān)閉Timer2 bell = 1; /關(guān)閉蜂鳴器 /* 函數(shù)名稱:main()* 功 能:* 入口參數(shù):* 出口參數(shù):*/void main( void ) uchar clock_time7 = 0x00, 0x00, 0x02, 0x30, 0x0
21、6, 0x08 ; /定義時間變量 秒 分 時 日 月 年 uchar alarm_time2 = 0, 0; /鬧鐘設(shè)置 alarm_time0: 分鐘 alarm_time1 :小時uchar temperature2; /定義溫度變量 temperature0 低8位 temperature1 高8位 Lcd_Initial(); /LCD初始化Clock_Initial( clock_time ); /時鐘初試化/*中斷初始化*/ EA = 1; /開總中斷 ET0 = 1; /Timer0 開中斷ET2 = 1; /Timer2 開中斷 TMOD = 0x01 ; /Timer0 工作方式 1RCAP2H = 0x3c; RCAP2L
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度知識產(chǎn)權(quán)保護合同咨詢及代理服務(wù)協(xié)議3篇
- 二零二五版古董家具修復(fù)、安裝與展覽服務(wù)合同3篇
- 二零二五年服裝店轉(zhuǎn)讓合同書附帶品牌形象重塑及宣傳推廣服務(wù)3篇
- 二零二五版噪聲污染檢測與控制合同3篇
- 二零二五年度智能家居代理出租房租賃合同2篇
- 二零二五年杭州二手房買賣合同貸款與還款指導(dǎo)合同3篇
- 二零二五年金融科技公司股份代持與金融信息服務(wù)合同3篇
- 二零二五版房地產(chǎn)開發(fā)項目施工許可證報建代理合同3篇
- 二零二五版餐飲企業(yè)食品安全責任承包合同范本3篇
- 二零二五版古建筑保護監(jiān)理服務(wù)增補合同2篇
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識》備考題庫(含答案)
- 《水下拋石基床振動夯實及整平施工規(guī)程》
- 2025年云南大理州工業(yè)投資(集團)限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學大綱
- 營銷策劃 -麗亭酒店品牌年度傳播規(guī)劃方案
- 兒童傳染病預(yù)防課件
- 護理組長年底述職報告
評論
0/150
提交評論