




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告課程名稱:單片機原理及應用課程設計設計題目: 智能倒計時器 系 別: 通信與控制工程系 專 業: 電子信息工程 班 級: 電信二班 學生姓名: 學 號: 起止日期: 指導教師: 教研室主任: 指導教師評語: 指導教師簽名: 年 月 日成績評定項 目權重成績1、設計過程中出勤、學習態度等方面0.22、課程設計質量與答辯0.53、設計報告書寫及圖紙規范程度0.3總 成 績 教研室審核意見:教研室主任簽字: 年 月 日教學系審核意見: 主任簽字: 年 月 日摘 要 在生活和生產的各領域中,隨著計算機在社會領域的滲透,單片機的應用正在不斷的走向深入,同時帶動傳統控制檢測日新月異更新。在實時
2、控制和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。本系統由單片機系統、矩陣式鍵盤和LED數碼管顯示系統組成。裝置利用STC89C52單片機與LED數碼管顯示。通過按鍵控制設定倒計時時間,再通過中斷控制系統開始倒計時。為了簡化電路,降低成本,采用以軟件為主的的接口方法。該系統實用、功能靈活多樣,可以對計時時間進行實時控制,可以廣泛的應用于各種場所的控制設備。關鍵字:STC89C52;8255A芯片;數碼管;鍵盤;定時器目 錄設計要求11方案論證11.1 方案一11.2 方案二12硬件
3、設計12.1 STC89C52的芯片概述12.2 LED數碼管顯示器概述22.3 8255A的引腳信號52.4 8255A的控制字72.5 鍵盤72.6 其他元器件的介紹及參數的選擇73軟件設計73.1程序框圖83.2 定時器/計數器初值的計算83.3數碼管顯示94 軟件調試104.1系統調試工具 keil c51105 總結11參考文獻12附錄一:整體設計圖13附錄二:總程序14智能倒計時器設計要求選擇5位數碼管做顯示,實現5種倒計時模式,通過控制按鍵進行選擇1、99999s-0s2、9999s-0s3、999s-0s4、99s-0s5、9s-0s6、開始值由人工輸入-0s 1 方案論證1.
4、1方案一:采用FPGA/PLD芯片為核心的設計采用FPGA/PLD進行設計可能在系統功能上還可以作更多的提高,但是這個對設計成本的增加也是必然的,而且FPGA/PLD這些芯片的價格比較高,操作起來難,對于做這些功能的產品來講有點大材小用,所以也暫時不考慮。2.3 方案二:采用STC89C52芯片為核心的設計采用單片機STC89C52進行控制的電路比較簡單,要達到以上的功能的沒有多大的問題,而且單片機取材方便,價格也比較實惠,對程序的編寫和調試也比較的簡單,所以各方面來講都比較適合。根據以上兩種方案的比較,確立為方案二的STC89C52作為系統的核心元件 硬件設計2.3 STC89C52的芯片概
5、述典型單片機有MCS-51、MSP430、EM78、PIC、Motorola、AVR等。MCS-51為主流產品,MSP430為低功耗產品,功能較強,EM78為低功耗產品,價格較低。PIC為低電壓、低功耗、大電流LCD驅動、低價格OTP產品。PIC的引腳通過限流電阻接至220V交流電源,可直接與繼電器想連,無須光電耦合隔離。Motorola特點是噪聲低,抗干擾能力強,比 較適合于工控領域及惡劣的環境。我們這里選51系列的89c52單片機,單片機與8255芯片相連,擴展了I/O口,使其有足夠的I/O與鍵盤與數碼管連接。STC89C52是一個低功耗,高性能CMOS 8位單片機,片內含8k Bytes
6、的可反復擦寫1000次的Flash只讀程序存儲器。 其工作電壓在4.55V,一般我們選用5V電壓。外形及引腳排列如圖1所示 (1)電源及時鐘引腳(4個)Vcc: 電源接入引腳Vss:接地引腳XTAL1:晶振震蕩器接入的一個引腳(采用外部振蕩器時,此引腳接地);XTAL2:晶體振蕩器的另一個引腳(采用外部振蕩器時,此引腳作為外部振蕩器信號的輸入端)。圖1:STC89C52的核心電路框圖(2)控制線引腳(4個)RST/Vpd:復位信號輸入引腳/備用電源輸入引腳;ALE:地址鎖存允許信號輸出引腳/編程脈沖輸入引腳:EA:內外存儲器選擇引腳/片外EPROM編程電壓輸入引腳;PSEN:外部程序存儲器選通
7、信號輸出引腳。(3)并行I/O引腳P0.0-P0.7:一般I/O口引腳或數據/低位地址總線復用引腳;P1.0-P1.7:一般I/O口引腳;P2.0-P2.7:一般I/O口引腳或高位地址總線引腳;P3.0-P3.7:一般I/O口引腳或第二功能引腳2.2 LED數碼管顯示器概述數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管。共陽數碼管在應用時應將公共極COM接
8、到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管。共陰數碼管在應用時應將公共極COM接到地線GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。LED數碼管有兩種連接方法如下:共陽極接法。把發光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發光二極管的陰極通過電阻與輸入端相連。我們這里采用共陽極接法,當為低電平的時刻,那一段就亮。我們先把要顯示的數編成碼,然后位選要顯示的數碼管,最后吧把要顯
9、示的數的碼送給段選。共陰極接法。把發光二極管的陰極連在一起構成公共陰極,使用時公共陰極接地。每個發光二極管的陽極通過電阻與輸入端相連。 圖2 共陽共陰數碼管LED數碼顯示器的顯示段碼。 為了顯示字符,要為LED顯示器段碼(或稱字形代碼),組成一個8字形字符的7段,再加上1個小數點位,共計8段,因此提供給LED顯示器的顯示段碼為1個字節。各段碼位的對應關系如下表所示.十六進制數及空白字符與P的顯示段碼顯示字符0123456789七段代碼3FH06H5BH4FH66H6DH7DH07H7FH6FH數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此根據數碼管的驅動方
10、式的不同,可以分為靜態式和動態式兩類。 靜態顯示驅動:靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態顯示則需要5×840根I/O端口來驅動,實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。 動態顯示驅動:數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極C
11、OM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。我們這里選用動態顯示。 圖3 數碼管連接圖2.38255的引腳信號 與外部設備端相連的引腳(1) PA7-PA0:A端口的輸入/輸出引腳。(2) PB7-PB0:B端口的輸入/輸出引腳。(3) PC7-PC0:C端口的輸入/輸出引腳。 與CPU相連的引腳(1) RESET:復位信號,低電平有效。當RESET信號來到時,所有內部
12、寄存器都被清0,同時3個端口被自動設為輸入端口。(2) D7-D0:8255A的數據線,和系統數據總線相連。這里與單片機P0相連。(3) CS:芯片選擇信號。只有當CS有效時,讀出信號RD和寫入信號WR才對8255A有效。(4) RD:讀出信號。CPU通過IN指令使RD有效,將數據或狀態信息從8255A中讀到CPU。(5) WR:寫入信號。CPU通過OUT指令使WR有效,將數據或狀態信息從CPU中寫道8255A.(6) A1,A0:端口選擇信號。8255A內部有3個數據端口和1個控制端口,共4個端口。規定A1,A0為00、01、10和11時,分別選中端口A、端口B、端口C和控制端口。圖4 82
13、55A引腳圖2.4 8255的控制字 方式選擇控制字(1) 方式選擇控制字把A、B、C三個端口分為A、B兩組來設定工作方式。A組包括端口A和端口C的上半部,B組包括端口B和端口C的下半部。(2) 端口A可工作于3種方式中的任何一種:端口B只能工作于方式0和方式1;而端口C除用作輸入、輸出口(方式0)外,通常用來配合端口A和端口B提供聯絡控制信號和狀態信號。(3) 歸在同一組的兩個端口可分別作為輸入端口或輸出端口,不要求同為輸入或輸出。 端口C按位置位/復位控制字 (1) 端口C按位置位/復位控制字盡管是對端口C進行操作的,但此控制字必須寫入控制口,而不寫入端口C。 (2) 一個控制字只能完成端
14、口C中某一位置的置1或置0,要對多位置1或置0,必須使用多個控制字。2.5鍵盤控制第一種:采用掃描鍵盤,可以用普通按鍵構成4×4矩陣鍵盤,直接接到AT89C51單片機的P1口,高四位作為行,低四位作為列,通過軟件完成鍵盤的掃描和定位。這種方式相對下面的獨立式鍵盤節省了很多的I/O口。第二種:鍵盤控制采用獨立式按鍵,每個按鍵的一端均接地,另一端直接和P1口相連,在按鍵和P1口之間通過10K電阻與+5V電源相連。鍵盤通過檢測輸入線的電平狀態就可以很容易地判斷哪個鍵被按下了,這種方法操作速度高而且軟件結構很簡單,比較適合按鍵較少或操作速度較高的場合,這種獨立式接口的應用很普遍。顯示部分:我
15、們這里采用第一種,通過掃描確定所按下的鍵值。圖5 鍵盤圖2.6 其他元器件介紹及參數選擇本設計中還用到其他一些元器件,例如:晶振,電容,電阻排,電解電容,鍵盤,開關等等。晶振采用頻率為12MHZ,連接的兩個電容為30pF;電阻排為470*8,能夠實現8個470歐電阻的等效替換;電解電容為10u;開關功能是在仿真過程中,按下鍵盤便能實現。3 軟件設計3.1 程序框圖 開始初始化鍵盤設定初值減1結束 圖6 程序流程圖初始化:設置8255芯片的初始值:a8255_PA=0xff;a8255_CON=0x81;設置定時器的初值和工作方式:TMOD=0x01;TH0=0x3c;TL0=0xb0; IT1
16、=1;TR0=1開中斷: EA=1;ET0=1;EX0=1。鍵盤設置初值:key=0時,a=99999;key=1時,a=9999;key=2時,a=999;key=3時,a=99;key=4時,a=9;減1:當定時器記1秒時,a就減1。3.2 定時/計數器初值計算1.定時器/計數器的定時器/計數器范圍 (1)工作方式0:13位定時器/計數器方式 最大計數值= 8192 (2)工作方式1:16位定時器/計數器方式 最大計數值=65536 (3)工作方式2和工作方式3:8位的定時器/計數器方式因此, 最大計數值=256 2.計數器初值的計算方法:用最大計數量減去需要的計數次數。即:TC=M-C
17、其中:TC計數器需要預置的初值; M計數器的模值(最大計數值);C計數器計滿回0所需的計數值,即設計任務要求的計數值。定時時間的計算公式為:T=(M-TC)×T0 (或TC=M-T/T0 )(1)本電路應用16位計數器的計時(2)1秒等于1000000微秒,而每一計時脈沖是1微秒,因此需輸入1000000個計時脈沖,方可達到1秒的時間。本設計中,設定中斷每次溢出時間50ms。(3)由上式得知,循環20次即可達到1秒定時,即: TC=65536-0.05s/0.000001=3CB0HTHO=3CHTL0=B0H3.3 數碼管顯示數碼管采用動態掃描顯示:先位選一個數碼管,段選要顯示的數
18、,延遲一段時間,再位選另一位數碼管,段選要顯示的數,就這樣類推,依次顯示,利用認得視覺暫停,看起來就像是一起顯示的一樣。void display(uint a) uint wan,qian,bai,shi,ge; wan=a/10000; qian=a%10000/1000; bai=a%1000/100; shi=a%100/10; ge=a%10; a8255_PA=0xfd; a8255_PB=tablewan; delay(1); a8255_PA=0xfb; a8255_PB=tableqian; delay(1); a8255_PA=0xf7; a8255_PB=tablebai;
19、 delay(1); a8255_PA=0xef; a8255_PB=tableshi; delay(1); a8255_PA=0xdf; a8255_PB=tablege; delay(1);4 軟件調試4.1 系統調試工具keil c51 Keil C51 仿真器是一款利用KEIL C51 的IDE 集成開發環境作為仿真環境的廉價仿真器,是利用SST公司具有IAP功能的單片機SST89C58制作而成,主要是利用了SST89C58的IAP功能,所謂IAP功能是In application program 的英文縮寫,是在應用編程的意思,通俗一點講就是:它可以通過串口將用戶的程序下載到單片機中
20、,可以通過串口對單片機進行編程。它之所以具有這種功能,實際上它有兩塊程序flash區,其中一塊flash中運行的程序可以更改另外的一塊程序flash區中的程序,正是利用這一特性才用它作成了仿真器,我們把仿真器的監控程序事先燒入SST89C58,監控程序通過SST89C58的串口和PC通訊,當使用KEIL C51的IDE環境仿真時,用戶的程序通過串口被監控程序寫入flash程序區中,當用戶設置斷點等操作仿真程序時,flash程序中的用戶程序也在相應的更改,從而實現了仿真功能 。調試的主要方法 :1. 啟動Keil c51 2. 新建一個工程。Project菜單New project ,選擇好我們
21、要保存的文件夾后,鍵入Frist 保存。接著彈出CPU類型選擇框,我們選擇最常用的AT89C51,按確定。3. 在工程中加入文件。新建一個文件,文件菜單FileNew,我們再選擇:文件菜單FileSave As? (另存為)彈出 對話框后,我們文件名框中鍵入First.c(注意文件后綴名是 .c)保存。C文件建好啦。現在我們把文件加入到工程中去。 點擊Target 1前面的+號,右鍵單擊Source Group 1選擇Add Files to Group ,Source Group 1,選擇添加 Add。編譯運行,檢查程序是否有錯誤。4.用STC軟件進行下載連接到單片機,然后觀察是否按設計要求
22、實現。5 總結在這次單片機課程設計中,我覺得最大的收獲就是提高了自己的動手及思考解決問題的能力,平常以為很明白的程序,在仿真過程中卻發現并不是想象的那么簡單,設計的過程中失敗了很多次,但通過自己的不懈努力最終獲得設計的成功!本次設計雖然是8255A非常簡單的應用,但讓我掌握了學習可編程接口芯片和可編程接口芯片的方法,為以后的學習實踐打下了基礎。在設計過程當中也發現了自己經驗的不足,尤其是在編程序方面還需要大量的練習,為以后的學習打下基礎。萬事開頭難,在這次課程設計后我對自己的動手能力更加有信心。由于時間和個人能力的不足,我沒能做出多位數碼管計時的設計,但是在以后的時間里我繼續學習以補充自己知識
23、的短板來完善自身。參考文獻1 朱定華,戴汝平.單片微機原理與應用.(M) 北京:清華大學出版社,20032 樓然苗,李光飛.單片機課程設計指導.(B).北京航空航天大學出版社,20073 李鳳霞,劉桂山, 薛慶.C語言程序設計(第二版).北京理工大學出版社,20084 張鑫,華臻,陳書謙.單片機原理及應用(A). 北京電子工業出版社,20055 譚浩強著 C程序設計(第二版) 清華大學出版社 1999附錄一:總體設計圖附錄二:總程序#include<reg52.h>#include <absacc.h>#define a8255_PA XBYTE0xd900 /*PA口
24、地址*/#define a8255_PB XBYTE0xdb00 /*PB口地址*/#define a8255_PC XBYTE0xD5FF /*PC口地址*/#define a8255_CON XBYTE0xde00 /*控制字地址*/#define uchar unsigned char#define uint unsigned long intuint a,n,i,j,x=1,b=1,tt=0;uint table=0x80,0x9B,0x42,0x0A,0x19,0x0C,0x04,0x9A,0x00,0x08; void delay1(void) unsigned char i; f
25、or(i=250; i>0;i-); uchar inkey() uchar i,j=0x10,k; uchar keytab20=0x18, /*0*/ 0x28, /*1*/ 0x48, /*2*/ 0x88, /*3*/ 0x14, /*4*/ 0x24, /*5*/ 0x44, /*6*/ 0x84, /*7*/ 0x12, /*8*/ 0x22, /*9*/ 0x42, /*10*/ 0x82, /*11*/ 0x11, /*12*/ 0x21, /*13*/ 0x41, /*14*/ 0x81 /*15*/ ;a8255_CON=0x81; a8255_PC=0x00; fo
26、r(i=0;i<4;i+) a8255_PC=j; a8255_PA=0xff;a8255_PB=0xff;k=a8255_PC;k=k&0x0f;if(k!=0) delay1(); k=a8255_PC; k=k&0x0f; if(k!=0) break; j=j<<1; delay1(); k=k+j; for(i=0;i<16;i+) if(keytabi=k) break; return i;void delay(uint z) uint x,y;for(x=z;x>0;x-)for(y=11;y>0;y-); void display(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 生物小知識:豬
- 育嬰師知識更新與發展試題及答案
- 財務指標計算方法試題及答案
- 語言學試題及答案
- 項目管理中客戶關系維護試題及答案
- 項目管理2024年西醫臨床試題及答案
- 試題解析初級會計師考試試題及答案
- 羊水栓塞急救試題及答案
- 首爾兼職面試題及答案
- 項目管理師復習能力提升試題及答案
- 2025年醫保知識考試題庫:醫保定點醫療機構管理制度要點試題
- 2025屆陜西省高考適應性檢測(三)物理試題+答案
- 2025-2030中國有源電力濾波器(APF)行業市場發展趨勢與前景展望戰略研究報告
- 2025工廠職工安全培訓考試試題及答案可打印
- 兒童寓言故事-烏鴉喝水
- 2025年河南工業和信息化職業學院高職單招語文2019-2024歷年真題考點試卷含答案解析
- 華能慶陽煤電限責任公司2025年上半年校園招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 海鮮代加工合同協議
- 熱力管網安全風險評估-全面剖析
- 2025年開封大學高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 23G409先張法預應力混凝土管樁
評論
0/150
提交評論