單片機課程設計60秒倒計時_第1頁
單片機課程設計60秒倒計時_第2頁
單片機課程設計60秒倒計時_第3頁
單片機課程設計60秒倒計時_第4頁
單片機課程設計60秒倒計時_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、前 言 在生活和生產的各領域中,凡是有自動控制要求的地方都會有單片機的身影出現;從簡單到復雜,從空中、地面到地下,凡是能想像到的地方幾乎都有使用單片的需求。現在盡管單片機的應用已經很普遍了,但仍有許多可以用單片機控制而尚未實現的項目,因此,單片機的應用大有想像和拓展空間。 單片機的應用有利于產品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,提高產品質量,改善勞動環境,減少能源和材料消耗,保證安全等。 但是,單片機應用的意義絕不僅限于它的廣闊范圍以及所帶來的經濟效益上,更重要的意義還在于:單片機的應用正從根本上改變著傳統的控制系統設計思想和設計方法。從前必須有模擬電路或數字電路實

2、現的大部分功能,現在已能使用單片機通過軟件(編程序)方法實現了。這種以軟件取代硬件并提高系統性能的控制系統“軟化”技術,稱之為微控制技術。微控制技術是一種全新的概念,是對傳統控制技術的一次革命。隨著單片機應用的推廣普及,微控制技術必將不斷發展、日益完善和更加充實。近年來隨著計算機在社會領域的滲透, 單片機的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月益更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。 模擬多通道壓力系統是利用壓力傳感器采集當前壓力并反映在顯示器上

3、,它可以分析壓力過量程,并發出報警。并采用電子秤原理可根據輸入單價準確的計算出物體的金額。本篇論文討論了簡單的倒計時器的設計與制作 ,對于倒計時器中的四位LED數碼顯示器來說,我為了簡化線路、降低成本,采用以軟件為主的接口方法,即不使用專門的硬件譯碼器,而采用軟件程序進行譯碼。目 錄第1章 方案論證1.1 課程設計的目的和要求11.2 總體設計1 第2章 硬件設計2 2.1 AT89S51芯片概述 13 2.2 LED數碼管顯示器概述 15 2.3 其他元器件介紹及參數選擇 18第3章 軟件設計 28 3.1 程序框圖28 3.2 定時/計數器初值計算 2 3.3 軟件程序第4章 調試與仿真4

4、.1 Keil軟件介紹及使用30 4.2 Proteus軟件介紹及使用30 課程設計心得體會參考文獻30第一章 方案論證1.1 課程設計的目的和要求1目的課程設計是單片機課程教學的最后一個環節,是對學生進行全面的系統的訓練。進行課程設計可以讓學生把學過的比較零碎的知識系統化,真正的能夠把學過的知識落到實處,能夠開發簡單的系統,也進一步激發了學生再深一步學習的熱情,因此課程設計是必不可少的,是非常必要的。課程設計是提高學生單片機技術應用能力以及文字總結能力的綜合訓練環節,是配合單片機課程內容掌握、應用得的專門性實踐類課程。通過典型實際問題的實際,訓練學生的軟硬件的綜合設計、調試能力以及文字組織能

5、力,建立系統設計概念,加強工程應用思維方式的訓練,同時對教學內容做一定的擴充。2要求單片機控制的60s倒計時(1)用單片機AT89C51的定時器實現60s倒計時。本例中用兩位數碼管靜態顯示倒計時秒值。(2)用PROTEUS設計,仿真基于AT89c51單片機的60s倒計時實驗。3. 目標通過課程設計,使自己深刻理解并掌握基本概念,掌握單片機的基本應用程序設計及綜合應用程序設計的方法。通過做一個綜合性訓練題目,達到對內容的消化、理解并提高解決問題的能力的目的。1.2 總體設計圖1:60秒倒計時總體電路設計本設計由硬件設計和軟件設計兩部分組成,總電路如圖1所示,硬件設計主要包括單片機芯片選擇,數碼管

6、選擇及晶振,電容,電阻等元器件的選擇及其參數的確定;軟件設計主要是實現60秒倒計時程序的編寫,包括利用中斷實現1秒的定時及60秒的倒計時。具體設計:通過AT89C51型號單片機,由P1和P2兩組I/O引腳分別控制兩個7SEGCOM ANODE型號數碼管,分十位控制和個位控制,達到顯示60秒倒計時的目的。通過復位電路,在仿真過程中點擊開關實現60復位。第二章 硬件設計2.1 AT89C51的芯片概述 AT89C51是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATM

7、EL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89C51可為許多嵌入式控制應用系統提供高性價比的解決方案。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。 其工作電壓在4.5V,一般我們選用5V電壓。外形及引腳排列如圖2所示 圖2:89C51的核心電路框圖l 主要特性與MCS-51 兼容 4K字節可編程閃爍存儲器 壽命:1000寫/擦循環數據保留時間:10年全靜態工作:0Hz-24MHz三級程序存儲器鎖定1288位內部RAM32可編程I/O線兩個

8、16位定時器/計數器5個中斷源 可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路 l 管腳說明(1)電源及時鐘引腳(4個)Vcc: 電源接入引腳Vss:接地引腳XTAL1:晶振震蕩器接入的一個引腳(采用外部振蕩器時,此引腳接地);XTAL2:晶體振蕩器的另一個引腳(采用外部振蕩器時,此引腳作為外部振蕩器信號的輸入端)。(2)控制線引腳(4個)RST/Vpd:復位信號輸入引腳/備用電源輸入引腳;ALE:地址鎖存允許信號輸出引腳/編程脈沖輸入引腳:EA:內外存儲器選擇引腳/片外EPROM編程電壓輸入引腳;PSEN:外部程序存儲器選通信號輸出引腳。(3)并行I/O引腳P0.0-P0.7:一般

9、I/O口引腳或數據/低位地址總線復用引腳;P1.0-P1.7:一般I/O口引腳;P2.0-P2.7:一般I/O口引腳或高位地址總線引腳;P3.0-P3.7:一般I/O口引腳或第二功能引腳l 振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。 2.2 LED數碼管顯示器概述本設計中采用的是7SEGCOM ANODE型號數碼管,它是一種半導體發光器件,其基本單元是

10、發光二極管。實物如圖3所示:圖3:7SEGCOM ANODE型號數碼管l 數碼管的分類數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極管單元(多一個小數點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數碼管;按發光二極管單元連接方式分為共陽極數碼管和共陰極數碼管。共陽數碼管是指將所有發光二極管的陽極接到一起形成公共陽極(COM)的數碼管。共陽數碼管在應用時應將公共極COM接到+5V,當某一字段發光二極管的陰極為低電平時,相應字段就點亮。當某一字段的陰極為高電平時,相應字段就不亮。共陰數碼管是指將所有發光二極管的陰極接到一起形成公共陰極(COM)的數碼管。共陰

11、數碼管在應用時應將公共極COM接到地線GND上,當某一字段發光二極管的陽極為高電平時,相應字段就點亮。當某一字段的陽極為低電平時,相應字段就不亮。LED數碼管有兩種連接方法如下:共陽極接法。把發光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發光二極管的陰極通過電阻與輸入端相連。 共陰極接法。把發光二極管的陰極連在一起構成公共陰極,使用時公共陰極接地。每個發光二極管的陽極通過電阻與輸入端相連。 LED數碼顯示器的顯示段碼。 為了顯示字符,要為LED顯示器段碼(或稱字形代碼),組成一個8字形字符的7段,再加上1個小數點位,共計8段,因此提供給LED顯示器的顯示段碼為1個字節。各段

12、碼位的對應關系如下表所示.十六進制數及空白字符與P的顯示段碼段碼位 D7 D6 D5 D4 D6 D2 D1 D0 顯示段 pd g f e d e b a 字型 共陽極段碼 共陰極段碼 字型 共陽極段碼 0 C0H 3FH 9 90H 1 F9H 06H A 88H 2 A4H 5BM B 83H 3 B0H 4FH C C6H 4 99H 66H D A1H 5 92H 6DH E 86H 6 82H 7DH F 84H 7 F8H 07H 空白 FFH 8 80H 7FH P 8CH l 數碼管的驅動方式數碼管要正常顯示,就要用驅動電路來驅動數碼管的各個段碼,從而顯示出我們要的數字,因此

13、根據數碼管的驅動方式的不同,可以分為靜態式和動態式兩類。 靜態顯示驅動:靜態驅動也稱直流驅動。靜態驅動是指每個數碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態驅動的優點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數碼管靜態顯示則需要5840根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個呢:),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。 動態顯示驅動:數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃a,b,c,d,e,f,g,dp的同

14、名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為12ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態

15、顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O端口,而且功耗更低。l 數碼管參數8字高度:8字上沿與下沿的距離。比外型高度小。通常用英寸來表示。范圍一般為0.25-20英寸。長*寬*高:長數碼管正放時,水平方向的長度;寬數碼管正放時,垂直方向上的長度;高數碼管的厚度。時鐘點:四位數碼管中,第二位8與第三位8字中間的二個點。一般用于顯示時鐘中的秒。l 數碼管應用數碼管是一類顯示屏 通過對其不同的管腳輸入相對的電流 會使其發亮 從而顯示出 數字 能夠顯示 時間 日期 溫度 等所有可用數字表示的參數 由于它的價格便宜 使用簡單 在電器 特別是家電領域應用極為廣泛 空調 熱水器 冰箱 等等 絕大多

16、數 熱水器用的都是數碼管 其他家電 也用液晶屏與 熒光屏 l 數碼管使用的電流與電壓電流:靜態時,推薦使用10-15mA;動態時,16/1動態掃描時,平均電流為4-5mA,峰值電流50-60mA。電壓:查引腳排布圖,看一下每段的芯片數量是多少?當紅色時,使用1.9V乘以每段的芯片串聯的個數;當綠色時,使用2.1V乘以每段的芯片串聯的個數。l 怎樣測量數碼管引腳,分共陰和共陽?找公共共陰和公共共陽:首先,我們找個電源(3到5伏)和1個1K(幾百歐的也行)的電阻,VCC串接個電阻后和GND接在任意2個腳上,組合有很多,但總有一個LED會發光的,找到一個就夠了,然后GND不動,VCC(串電阻)逐個碰

17、剩下的腳,如果有多個LED(一般是8個),那它就是共陰的了。相反用VCC不動,GND逐個碰剩下的腳,如果有多個LED(一般是8個),那它就是共陽的。也可以直接用數字萬用表,紅表筆是電源的正極,黑表筆是電源的負極。2.3 其他元器件介紹及參數選擇本設計中還用到其他一些元器件,例如:晶振,電容,電阻排,電解電容,開關等等。晶振采用頻率為12MHZ,連接的兩個電容為30pF;電阻排為470*8,能夠實現8個470歐電阻的等效替換;電解電容為10u;開關功能是在仿真過程中,按下開關便能實現60秒復位。第3章 軟件設計3.1 程序框圖3.2 定時/計數器初值計算(1)本電路應用TIMER0 MODE 1

18、6位計數器的計時中斷法。 (2)1秒等于微秒,而每一計時脈沖是1微秒,因此需輸入個計時脈沖,方可達到1秒的時間。本設計中,設定中斷每次溢出時間50ms。(3)由上式得知,循環20次即可達到1秒定時,即: N=t/Tcy=0.05s/0.=5000X=65536-5000=15536=3CB0H(4)由上式得知5000個脈沖,首先需設定TL0=3CH,TH0=0B0H,此時第1次只要輸入5000個脈沖輸入,就會溢出;第2次至第20次,則需每個計時脈沖,定時1秒。(5)上電時,顯示60,開始倒數計時按下開關實現復位。3.3 軟件程序 ORG 0000H AJMP MAIN ORG 0030HMAI

19、N: MOV R2,#60 ;計數初值LOOP1: MOV A,R2 MOV B,#10 DIV AB MOV DPTR,#TABLE MOVC A,A+DPTR ;查表 MOV P1,A ;十位顯示 MOV A,B MOVC A,A+DPTR MOV P2,A ;個位顯示 MOV R7,#20LOOP0: MOV TMOD,#01H ;置T0工作于方式0 MOV TH0,#3CH ;裝入計數初值 MOV TL0,#0B0H SETB TR0 ;啟動定時器T0 JNB TF0,$ ;TF0=0,等待 CLR TF0 ;清TF0 DJNZ R7,LOOP0 ;循環20次 DEC R2 ;減一 C

20、JNE R2,#0FFH,LOOP1 ;倒計時 AJMP MAIN ;復位回到60秒初始TABLE: DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB 0C6H,0A1H,86H,8EH END第四章 軟件調試4.1 系統調試工具keil c51 Keil C51 仿真器是一款利用KEIL C51 的IDE 集成開發環境作為仿真環境的廉價仿真器,是利用SST公司具有IAP功能的單片機SST89C58制作而成,主要是利用了SST89C58的IAP功能,所謂IAP功能是In application program 的英

21、文縮寫,是在應用編程的意思,通俗一點講就是:它可以通過串口將用戶的程序下載到單片機中,可以通過串口對單片機進行編程。它之所以具有這種功能,實際上它有兩塊程序flash區,其中一塊flash中運行的程序可以更改另外的一塊程序flash區中的程序,正是利用這一特性才用它作成了仿真器,我們把仿真器的監控程序事先燒入SST89C58,監控程序通過SST89C58的串口和PC通訊,當使用KEIL C51的IDE環境仿真時,用戶的程序通過串口被監控程序寫入flash程序區中,當用戶設置斷點等操作仿真程序時,flash程序中的用戶程序也在相應的更改,從而實現了仿真功能 。調試的主要方法 :1. 啟動Keil

22、 c51 2. 新建一個工程。Project菜單New project ,選擇好我們要保存的文件夾后,鍵入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.2 PROTEUS Proteus是一款ED

溫馨提示

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

評論

0/150

提交評論