單片機課程設計--數(shù)字時鐘_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  緒論</b></p><p>  1.1數(shù)字時鐘的介紹</p><p>  1.1.1 數(shù)字時鐘簡介 </p><p>  1957年,Ventura發(fā)明了世界上第一個電子表,從而奠定了電子時鐘的基礎,電子時鐘開始迅速發(fā)展起來?,F(xiàn)代的電

2、子時鐘是基于單片機的一種計時工具,采用延時程序產(chǎn)生一定的時間中斷,用于一秒的定義,通過計數(shù)方式進行滿六十秒分鐘進一,滿六十分小時進一,滿二十四小時小時清零。從而達到計時的功能,是人民日常生活補課缺少的工具。</p><p>  1.1.2 數(shù)字時鐘的基本特點 </p><p>  現(xiàn)在高精度的計時工具大多數(shù)都

3、使用了石英晶體振蕩器,走時精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調試,數(shù)字式電子鐘用集成電路計時時,譯碼代替機械式傳動,用LED顯示器代替指針顯示進而顯示時間,減小了計時誤差,這種表具有時、分、秒顯示時間的功能,還可以進行時和分的校對,片選的靈活性好。</p><p>  1.3.1 數(shù)字時鐘的原理 </p><p>  該電子時

4、鐘由89C51,BUTTON,六段數(shù)碼管等構成,采用晶振電路作為驅動電路,由延時程序和循環(huán)程序產(chǎn)生的一秒定時,達到時分秒的計時,六十秒為一分鐘,六十分鐘為一小時,滿二十四小時為一天。而電路中兩個控制鍵功能直接按下不松開,則可以通過按鍵實現(xiàn)分鐘的累加,每按一次分鐘加一;而另一按鍵按下又放松,則可實現(xiàn)小時的調節(jié),同樣每按一次小時加一。</p><p>  1.2 單片機識的相關知識</p><p

5、>  單片機全稱為單片機微型計算機(Single Chip Microsoftcomputer)。從應用領域來看,單片機主要用來控制,所以又稱為微控制器(Microcontroller Unit)或嵌入式控制器。單片機是將計算機的基本部件微型化并集成在一塊芯片上的微型計算機。</p><p>  單片機由運算器、控制器、存儲器、輸入輸出設備構成。 </p><p>  單片機自動完成

6、賦予它的任務的過程,也就是單片機執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單片機執(zhí)行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統(tǒng)所決定的,一條指令對應著一種基本操作;單片機所能執(zhí)行的全部指令,就是該單片機的指令系統(tǒng),不同種類的單片機,其指令系統(tǒng)亦不同。為使單片機能自動完成某一特定任務,必須把要解決的問題編成一系列指令(這些指令必須是選定單片機能識別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要

7、預先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然后再被執(zhí)行。程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,

8、單片機在執(zhí)行程序時要能把這些指令一條條取出并加以執(zhí)行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序</p><p>  1.3本次設計的要點</p><p>  本次設計中以單片機的發(fā)展過程和發(fā)展方向為背景,介紹了單片機的輸入輸出的工作原理和操作方法,中斷的工作原理和操作方法,LED連接的方法。</p><p>  本次做的數(shù)字鐘是以單片機(AT89C51)

9、為核心,結合相關的元器件(共陽極LED數(shù)碼顯示器、數(shù)碼管驅動器74LS164等),再配以相應的軟件,它具有:時,分,秒顯示的功能,并且時,分,秒還可以調整。此次設計電子數(shù)字鐘是為了了解電子數(shù)字鐘的原理,從而學會制作電子數(shù)字鐘。而且通過電子數(shù)字鐘的制作進一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實用方法。通過它可以進一步學習與掌握單片機原理與使用方法。</p><p>  第二章 方案總體設計</p

10、><p>  2.1數(shù)字時鐘整體設計</p><p>  本次設計課題為智能電子數(shù)字時鐘的設計,采用AT89C51單片機內部定時器實現(xiàn)數(shù)字時鐘的定時功能,采用單片機的串口和74LS164擴展并口實現(xiàn)LED靜態(tài)驅動。電子時鐘系統(tǒng)的整體框圖如圖2-1所示。</p><p>  圖2-1 電子時鐘的整體框圖</p><p>  2.2數(shù)字時鐘計時的基本

11、方法</p><p>  利用AT89C51單片機的可編程定時/計數(shù)器、中斷系統(tǒng)來實現(xiàn)時鐘計數(shù)。</p><p>  (1)計數(shù)初值計算:把定時器設為工作方式1,定時時間為50ms,則計數(shù)溢出20次即得時鐘計時最小單位秒,而計數(shù)可用軟件方法實現(xiàn)。假設使用T/C0,方式1,50ms定時,fosc=12MHz。則初值X滿足(216-X)×1/12MHz×12μs =5000

12、0μs</p><p>  X=15536→0011110010110000→3CB0H,則TH0=3CH,TL0=0BOH。</p><p>  (2)采用中斷方式進行溢出次數(shù)累計,計滿20次為秒計時(1秒),就讓秒計數(shù)單元加1,當秒計數(shù)達到60時,就自動返回到0,重新秒計數(shù);</p><p>  (4)從秒到分,從分到時的計時是通過累加和數(shù)值比較實現(xiàn)。</

13、p><p>  2.3數(shù)字時鐘程序流程框圖</p><p>  2.3.1主程序流程框圖</p><p>  主程序功能主要是初始化、正常顯示時間和判斷功能轉換鍵。初始化包括數(shù)據(jù)堆棧區(qū)、定時/計數(shù)器的初始化、AT89C51芯片的初始化及時間、顯示數(shù)據(jù)的初始化。定時/計數(shù)器的初始化:包括對TMOD、TCON以及根據(jù)定時時間對時間初值的設置。顯示時間調用顯示子程序。當P1.

14、0端口的S/H鍵按下時,轉入調時功能。主程序流程圖如圖2—2所示。</p><p>  圖2—2主程序流程框圖</p><p>  2.3.2鍵掃子程序流程框圖</p><p>  鍵盤掃描程序是通過CPU來對外圍鍵盤電路進行查詢。該程序能夠解決的問題有:</p><p>  (1)是否有鍵按下;</p><p>  

15、(2)若有鍵按下,判斷是哪一個鍵并確定其鍵值或鍵號;</p><p> ?。?)去抖動:一個電壓信號是通過機械觸點的閉合、斷開過程來實現(xiàn)信號傳遞的。抖動時間一般為5~10ms。按鍵的穩(wěn)定閉合期為幾百毫秒到幾秒鐘時間。為了保證CPU對按鍵閉合僅做一次鍵輸入處理,必須去除抖動影響,通常硬件或軟件延時10ms處理。</p><p>  去抖之后再次進行查詢。然后通過按鍵的鍵號執(zhí)行相應的功能。鍵掃

16、子程序流程框圖圖2-3所示。</p><p>  圖2-3 鍵掃子程序流程框圖</p><p>  2.3.3調時程序流程框圖</p><p>  進行時間調整時,正在被調整的時間的間隔符以閃爍的形式表現(xiàn)。調整時間的方法是:按下S/H鍵,進入調時狀態(tài),按下W鍵,星期單元加1,加至8時變?yōu)?(7過后即顯示1,不顯示8);按下H鍵,時單元加1,在加至24時變?yōu)?0(23

17、過后即顯示0,不顯示24);按下M鍵,分單元加1,加至60時變?yōu)?0(59過后即顯示00,不顯示60);按下S鍵,秒單元加1,秒如分一樣,加至60時變?yōu)?0,在調節(jié)好時間后,按下S/H鍵,保存操作者對時鐘時間的修改并退出調時模式進入正常運行狀態(tài),時間正常顯示。調時程序流程圖如圖2-4所示</p><p>  2.3.4定時中斷程序流程框圖</p><p>  定時中斷是電子時鐘的核心。定時

18、/計數(shù)器T0和T1的工作方式設置為:</p><p>  (1)T0是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為fOSC/24,所以T1工作在定時狀態(tài)下,每定時1秒中到,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。</p><p> ?。?)T1工作在定時狀態(tài)下,最大定時時間為65ms,達不到1秒的定時,所以采用定時50

19、ms,共定時20次,即可完成1秒的定時功能。</p><p>  時鐘的最小計時單位是秒,60s進位為1min,60min進位為1h,24h進位為1天。T0用于產(chǎn)生最小單位1s,定時時間為50ms,中斷累計20次即為1s。計數(shù)單元中每逢60進位。定時中斷程序流程如圖2-5所示。</p><p>  圖2-5中斷服務程序流程框圖</p><p>  第三章 各個元件

20、的介紹</p><p>  3.1主控芯片AT89C51簡介</p><p>  AT89C51單片機的主要工作特性:</p><p>  ·內含4KB的FLASH存儲器,擦寫次數(shù)1000次;</p><p>  ·內含28字節(jié)的RAM;</p><p>  ·具有32根可編程I/O線;

21、</p><p>  ·具有2個16位可編程定時器;</p><p>  ·具有6個中斷源、5個中斷矢量、2級優(yōu)先權的中斷結構;</p><p>  ·具有1個全雙工的可編程串行通信接口;</p><p>  ·具有一個數(shù)據(jù)指針DPTR;</p><p>  ·兩種低功

22、耗工作模式,即空閑模式和掉電模式;</p><p>  ·具有可編程的3級程序鎖定定位;</p><p>  AT89C51的工作電源電壓為5(1±0.2)V且典型值為5V,最高工作頻率為24MHz.</p><p>  其引腳圖如圖3-1所示。</p><p>  圖3-1 AT89C51引腳圖</p>&

23、lt;p><b>  運算器</b></p><p>  運算器主要用來實現(xiàn)算術、邏輯運算和位操作。其中包括算術和邏輯運算單元ALU、累加器ACC、B寄存器、程序狀態(tài)字PSW和兩個暫存器等。</p><p>  ALU是運算電路的核心,實質上是一個全加器,完成基本的算術和邏輯運算。算術運算包括加、減、乘、除、增量、減量、BCD碼運算;邏輯運算包括“與”、“或”、

24、“異或”、左移位、右移位和半字節(jié)交換,以及位操作中的位置位、位復位等。</p><p>  暫存器1和暫存器2是ALU的兩個輸入,用于暫存參與運算的數(shù)據(jù)。ALU的輸出也是兩個:一個是累加器,數(shù)據(jù)經(jīng)運算后,其結果又通過內部總線返回到累加器;另一個是程序狀態(tài)字PSW,用于存儲運算和操作結果的狀態(tài)。</p><p>  累加器是CPU使用最頻繁的一個寄存器。ACC既是ALU處理數(shù)據(jù)的來源,又是A

25、LU運算結果的存放單元。單片機與片外RAM或I/O擴展口進行數(shù)據(jù)交換必須通過ACC來進行。</p><p>  B寄存器在乘法和除法指令中作為ALU的輸入之一,另一個輸入來自ACC。運算結果存于AB寄存器中。</p><p><b> ?。?)控制器</b></p><p>  控制器是識別指令并根據(jù)指令性質協(xié)調計算機內各組成單元進行工作的部件

26、,主要包括程序計數(shù)器PC、PC增量器、指令寄存器、指令譯碼器、定時及控制邏輯電路等,其功能是控制指令的讀入、譯碼和執(zhí)行,并對指令執(zhí)行過程進行定時和邏輯控制。AT89C51單片機中,PC是一個16位的計數(shù)器,可對64KB程序存儲器進行尋址。復位時PC的內容是0000H.</p><p><b>  (3)存儲器</b></p><p>  單片機內部的存儲器分為程序存儲

27、器和數(shù)據(jù)存儲器。AT89C51單片機的程序存儲器采用4KB的快速擦寫存儲器Flash Memory,編程和擦除完全是電器實現(xiàn)。</p><p><b> ?。?)外圍接口電路</b></p><p>  AT89C51單片機的外圍接口電路主要包括:4個可編程并行I/O口,1個可編程串行口,2個16位的可編程定時器以及中斷系統(tǒng)等。</p><p>

28、;<b>  3.2晶振電路</b></p><p>  晶振電路如圖3-2所示。XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p&

29、gt;<b>  圖3-2晶振電路圖</b></p><p>  單片機系統(tǒng)里都有晶振,在單片機系統(tǒng)里晶振作用非常大,全稱叫晶體振蕩器,他結合單片機內部電路產(chǎn)生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,那么單片機運行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。</p><p>  單片機晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個

30、系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調整頻率的方法保持同步。</p><p>  晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時鐘頻率。如果不同子系統(tǒng)需要不同頻率的時鐘信號,可以用與同一個晶振相連的不同鎖相環(huán)來提供。</p><p><b>  3.3復位電路</b></p><p>  復

31、位是單片機的初始化操作,單片機在啟動運行時,都需要先復位,它的作用是使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。例如復位后,PC初始化為0,于是單片機自動從0單元開始執(zhí)行程序。因而復位是一個很重要的操作方式。80C51系列單片機本身,一般是不能自動進行復位的,必須配合相應的外部電路才能實現(xiàn)。</p><p><b>  3.3.1復位分類</b></p>

32、;<p>  單片機的整個復位電路包括芯片內、外兩部分,外部電路產(chǎn)生的復位信號通過復位引腳RST進入片內一個施密特觸發(fā)器(抑制噪聲作用)再與片內復位電路相連,80C51內部電路原理圖見圖3-3。復位電路每個機器周期對施密特觸發(fā)器的輸出采樣一次,當RST引腳端保持兩個機器周期(24個時鐘周期)以上的高電平時,80C51進入復位狀態(tài)。</p><p><b>  圖3-3復位電路</b&

33、gt;</p><p><b>  3.3.2復位狀態(tài)</b></p><p>  復位后片內各專用寄存器的狀態(tài)如表3-4所示,表中X為不確定數(shù)。</p><p>  3.3.3 外部復位電路設計</p><p><b>  1、手動按鈕復位 </b></p><p>  手

34、動按鈕復位需要人為在復位輸入端RST上加入高電平(圖1)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由于人的動作再快也會使按鈕保持接通達數(shù)十毫秒,所以,完全能夠滿足復位的時間要求。 </p><p><b>  2、上電復位 </b></p><p>  AT89C51

35、的上電復位電路如圖2所示,只要在RST復位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。對于CMOS型單片機,由于在RST端內部有一個下拉電阻,故可將外部電阻去掉,而將外接電容減至1?F。上電復位的工作過程是在加電時,復位電路通過電 容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復位,RST端的高電平信號必須維持足夠長的時

36、間。上電時,Vcc的上升時間約為10ms,而振蕩器的起振時間取決于振蕩頻率,如晶振頻率為10MHz,起振時間為1ms;晶振頻率為1MHz,起振時間則為10ms。在圖2的復位電路中,當Vcc掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內部電路的限制作用,這個負電壓將不會對器件產(chǎn)生損害。另外,在復位期間,端口引腳處于隨機狀態(tài),復位后,系統(tǒng)將端口置為全“l(fā)”態(tài)。如果系統(tǒng)在上電時得不到有效的復位,則程序計數(shù)器PC將得不到一個合適的

37、初值,因此,CPU可能會從一個未被定義的位置開始執(zhí)行程序。</p><p><b>  3.4按鍵接口</b></p><p>  3.4.1鍵盤工作原理</p><p>  在單片機系統(tǒng)中,除了復位鍵有專門的復位電路以及專一的復位功能外,其他的按鍵都是以開關的狀態(tài)來設置控制功能或輸入數(shù)據(jù)的。</p><p>  鍵盤中

38、每個按鍵都是一個常開的開關電路,當所設置的功能鍵或數(shù)字鍵按下時,則處于閉合狀態(tài),對于一組鍵或一個鍵盤,需要通過接口電路與單片機相連,以便把鍵的開關狀態(tài)通知單片機。單片機可以采用查詢或中斷方式了解有無鍵輸入并檢查是哪一個鍵被按下,并通過轉移指令轉入執(zhí)行該鍵的功能程序,執(zhí)行完又返回到原始狀態(tài)。</p><p>  3.4.2獨立式按鍵</p><p> ?。?)獨立式按鍵電路結構如圖3-4所示

39、,圖中每個I/O口上都加了上拉電阻。在實際應用中,如I/O口內部已有上拉電阻,可以省去。</p><p><b>  圖3-4按鍵原理圖</b></p><p>  獨立式按鍵電路配置靈活,硬件結構簡單,但每個按鍵必須占用一根I/O口線,在按鍵數(shù)量較多時,浪費較多。故只有在按鍵數(shù)量不多時采用這種按鍵電路。</p><p>  3.4.3行列式鍵

40、盤</p><p> ?。?)單片機系統(tǒng)鍵盤原理</p><p>  行列式鍵盤的接法比獨立式鍵盤的接法復雜,編程實現(xiàn)上也會比較復雜。但是,在占用相同的I/O端口的情況下,行列式鍵盤的接法會比獨立式接法允許的按鍵數(shù)量多,其原理圖如圖3-5所示。</p><p>  圖3-5 4×4行列式鍵盤的原理圖</p><p>  實際的工程

41、中,可能會使用PIC16C5X這種通用的可編程的鍵盤、顯示接口器件,使用PIC16C5X單片器件就能夠完成鍵盤輸入和顯示控制兩種功能。</p><p>  行列式鍵盤的工作方式是先用列線發(fā)送掃描字,然后讀取行線的狀態(tài),查看是否有按鍵按下。鍵盤部分提供一種掃描的工作方式,可以和具有64個按鍵的矩陣鍵盤相連接,能對鍵盤不斷掃描、自動消抖、自動識別按下的鍵,并給出編碼,能對雙鍵或n個鍵同時按下的情況實行保護。</

42、p><p>  鍵盤中哪一個鍵按下可由列線逐列置低電平后,檢查行輸入狀態(tài)來判斷,其方法是依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為1,則所按下的鍵不在此列,如果不全為1,則所按下的鍵必在此列,而且是在與0電平線相交的交點上的那個鍵。</p><p> ?。?)單片機鍵盤掃描法</p><p>  掃描法是在判定有鍵按下后逐列果行(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),如果

43、(或列)的狀態(tài)出現(xiàn)非全1狀態(tài),這時0狀態(tài)的行、列交點的鍵就是所按下的鍵。</p><p>  掃描法的特點是逐行(或逐列)掃描查詢,這時相應行(或列)應有上拉電阻接高電平。行列式鍵盤掃描程序就是采用掃描法來確定哪個鍵按下的,圖1中行線上拉電阻接+5V,列線逐列掃描。</p><p>  ①逐行(或列)掃描查詢法。</p><p>  確定矩陣式鍵盤上哪個鍵被按下時運

44、用掃描法,又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,過程如下。</p><p>  判斷鍵盤中有無鍵按下,將全部行線Y0~Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。</p><p>  判斷閉合鍵所在的位置,在確認有鍵按下后,即可進入確定具體

45、閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其他線為高電平,在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài),若某列為低,則該列線與置為低電平的行線交叉處的按鈕就是閉合的按鍵。</p><p><b> ?、诜崔D法。</b></p><p>  掃描法要逐列(行)掃描查詢,當按下的鍵在最后行(列),要經(jīng)過多次掃描才能獲得鍵值/鍵號。

46、而反轉法只要經(jīng)過兩個步驟就可獲得鍵值,原理如圖3-6所示。</p><p>  圖3-6 線反轉法原理</p><p>  圖中硬件采用中斷方式工作,用一個8位I/O口構成4×4鍵盤。假定圖中虛線為所按下的鍵,其反轉法的步驟如下。</p><p>  將D3~D0設為列輸入線,D7~D4設為行輸出線,并使I/O輸出信號D7~D4為0000。若有鍵按下,與門

47、的輸出端變?yōu)榈碗娖剑駽PU申請中斷,表示鍵盤中有鍵按下。與此同時,D3~D0的數(shù)據(jù)輸入到內存中的某一單元中,其中0位對應的是被按下鍵的列位置。</p><p>  將第一步中的傳送方向反轉過來,即將D7~D4設為輸入線,D3~D0設為輸出線。使I/O口輸出數(shù)據(jù)為N單元中的數(shù)(即D3~D0為按下鍵的列位置),然后讀入I/O口數(shù)據(jù),并送入內存N+1單元中存放,該數(shù)據(jù)的D7~D4位中0電平對應的位是按下鍵的行位置。最

48、后,將N單元中的D3~D0與N+1單元中的D7~D4拼接起來就是按下鍵的鍵值。</p><p><b>  3.5顯示接口</b></p><p>  3.5.1LED顯示器的結構</p><p>  (1)七段LED顯示器(數(shù)碼管)系發(fā)光器件的一種。常用的LED發(fā)光器件有兩類:數(shù)碼管和點陣。</p><p> ?。?)

49、數(shù)碼管內部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。根據(jù)內部發(fā)光二極管的接線形式可分為共陰極和共陽極兩種。</p><p> ?。?)使用時,共陰極數(shù)碼管公共端接地,共陽極數(shù)碼管公共端接電源。每段發(fā)光二極管需5~10mA的驅動電流才能正常發(fā)光,一般需加限流電阻控制電流的大小。</p><p>  3.5.2. 靜態(tài)顯示</p><p>

50、;  靜態(tài)顯示就是顯示驅動電路具有輸出鎖存功能,單片機將所要顯示的數(shù)據(jù)送出去后,數(shù)碼管始終顯示該數(shù)據(jù)(不變),CPU不再控制LED。到下一次顯示時,再傳送一次新的顯示數(shù)據(jù)。</p><p>  靜態(tài)顯示的接口電路采用一個并行口接一個數(shù)碼管,數(shù)碼管的公共端按共陰極或共陽極分別接地或接VCC。這種接法,每個數(shù)碼管都要單獨占用一個并行I/O口,以便單片機傳送字形碼到數(shù)碼管控制數(shù)碼管的顯示。顯然其缺點就是當顯示位數(shù)多時,

51、占用I/O口過多。</p><p>  為了解決靜態(tài)顯示I/O口占用過多的問題,可采用串行接口擴展LED數(shù)碼管的技術。</p><p>  靜態(tài)顯示方式的優(yōu)點是顯示的數(shù)據(jù)穩(wěn)定,無閃爍,占用CPU時間少。其缺點是由于數(shù)碼管始終發(fā)光,功耗比較大。 </p><p><b>  3.5.3動態(tài)顯示</b></p><p>  

52、動態(tài)掃描方法是用其接口電路把所有數(shù)碼管的8個筆劃段a~g和dp同名端連在一起,而每一個數(shù)碼管的公共極COM各自獨立地受I/O線控制。CPU向字段輸出口送出字形碼時,所有數(shù)碼管接收到相同的字形碼。但究竟是哪個數(shù)碼管亮,則取決于COM端,COM端與單片機的I/O口相連接,由單片機輸出位碼到I/O控制何時哪一位數(shù)碼管亮。</p><p>  動態(tài)掃描用分時的方法輪流控制各個數(shù)碼管的COM端,使各個數(shù)碼管輪流點亮。在輪流

53、點亮數(shù)碼管的掃描過程中,每位數(shù)碼管的點亮時間極為短暫。但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù)。</p><p>  優(yōu)點:當顯示位數(shù)較多時,采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示簡單。</p><p>  缺點:其穩(wěn)定度不如靜態(tài)顯示方式。而且在顯示位數(shù)較多時CPU要輪番掃描,占用CPU較多的時間。 </p><p>

54、;  第四章 proteus硬件的介紹</p><p>  Proteus是目前最好的模擬單片機外圍器件的工具,可以仿真51系列、AVR,PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達,LED,AD/DA,部分SPI器件,部分IIC器件,...)其Proteus與其它單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其它電路的工作情況。因

55、此在仿真和程序調試時,關心的不再是某些語句執(zhí)行時單片機寄存器和存儲器內容的改變,而是從工程的角度直接看程序運行和電路工作的過程和結果。對于這樣的仿真實驗,從某種意義上講,是彌補了實驗和工程應用間脫節(jié)的矛盾和現(xiàn)象。 </p><p>  4.1proteus的功能特點</p><p>  Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: </p>

56、;<p><b> ?。?)原理布圖 </b></p><p>  (2)PCB自動或人工布線 </p><p> ?。?)SPICE電路仿真 </p><p><b>  革命性的特點 </b></p><p>  (1)互動的電路仿真 </p><p>  

57、用戶甚至可以實時采用諸如RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 </p><p> ?。?)仿真處理器及其外圍電路 </p><p>  可以仿真51系列、AVR、PIC、ARM、等常用主流單片機。還可以直接在基于原理圖的虛擬原型 </p><p>  上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。配合系統(tǒng)配

58、置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設計開發(fā)環(huán)境。 </p><p>  4.2proteus的功能模塊</p><p> ?。?)智能原理圖設計(ISIS)</p><p>  豐富的器件庫:超過27000種元器件,可方便地創(chuàng)建新元件; </p><p>  智能的器件搜索:通過模糊搜索可以快速定位所需要的器件; &

59、lt;/p><p>  智能化的連線功能:自動連線功能使連接導線簡單快捷,大大縮短繪圖時間; </p><p>  支持總線結構:使用總線器件和總線布線使電路設計簡明清晰; </p><p>  可輸出高質量圖紙:通過個性化設置,可以生成印刷質量的BMP圖紙,可以方便地供WORD、POWERPOINT等多種文檔使用。 </p><p> ?。?)

60、完善的電路仿真功能(Prospice)</p><p>  ProSPICE混合仿真:基于工業(yè)標準SPICE3F5,實現(xiàn)數(shù)字/模擬電路的混合仿真; </p><p>  超過27000個仿真器件:可以通過內部原型或使用廠家的SPICE文件自行設計仿真器件,Labcenter也在不斷地發(fā)布新的仿真器件,還可導入第三方發(fā)布的仿真器件; </p><p>  多樣的激勵源

61、:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用wav文件)、指數(shù)信號、單頻FM、數(shù)字時鐘和碼流,還支持文件形式的信號輸入; </p><p>  豐富的虛擬儀器:13種虛擬儀器,面板操作逼真,如示波器、邏輯分析儀、信號發(fā)生器、直流電壓/電流表、交流電壓/電流表、數(shù)字圖案發(fā)生器、頻率計/計數(shù)器、邏輯探頭、虛擬終端、SPI調試器、I2C調試器等; </p><p>  生動的仿真顯示:用色點

62、顯示引腳的數(shù)字電平,導線以不同顏色表示其對地電壓大小,結合動態(tài)器件(如電機、顯示器件、按鈕)的使用可以使仿真更加直觀、生動; </p><p>  高級圖形仿真功能(ASF):基于圖標的分析可以精確分析電路的多項指標,包括工作點、瞬態(tài)特性、頻率特性、傳輸特性、噪聲、失真、傅立葉頻譜分析等,還可以進行一致性分析; </p><p> ?。?)獨特的單片機協(xié)同仿真功能(VSM)</p&g

63、t;<p>  支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級還在繼續(xù)增加,如即將支持CORTEX、DSP處理器; </p><p>  支持通用外設模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/

64、步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COMPIM(COM口物理接口模型)還可以使仿真電路通過PC機串口和外部電路實現(xiàn)雙向異步串行通信; </p><p>  實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真; </p><p>  編譯及調試:支持單片機匯編語言的編

65、輯/編譯/源碼級仿真,內帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結合,進行高級語言的源碼級仿真和調試; </p><p>  (4)實用的PCB設計平臺</p><p>  原理圖到PCB的快速通道: 原理圖設計完成后,一鍵便可進入ARES的PCB設計環(huán)境,實現(xiàn)從概念到產(chǎn)品的完整設計; </p><p>

66、  先進的自動布局/布線功能:支持器件的自動/人工布局;支持無網(wǎng)格自動布線或人工布線;支持引腳交換/門交換功能使PCB設計更為合理; </p><p>  完整的PCB設計功能:最多可設計16個銅箔層,2個絲印層,4個機械層(含板邊),靈活的布線策略供用戶設置,自動設計規(guī)則檢查,3D 可視化預覽; </p><p>  多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導入或

67、導出,便利與其它PCB設計工具的互轉(如protel)和PCB板的設計和加工。 </p><p>  第五章 Keil uvision2仿真軟件的介紹</p><p>  Keil uVision2是德國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng)c語言的語法來開發(fā),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用

68、,而且大大的提高了工作效率和項目開發(fā)周期,他還能嵌入?yún)R編,您可以在關鍵的位置嵌入,使程序達到接近于匯編的工作效率。KEILC51標準C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時保留了匯編代碼高效,快速的特點。C51編譯器的功能不斷增強, 使你可以更加貼近CPU本身,及其它的衍生產(chǎn)品。C51已被完全集成到uVision2的集成開發(fā)環(huán)境中,這個集成開發(fā)環(huán)境包含:編譯器,匯編器,實時操作系統(tǒng),項目管理器,調試器。uVision2

69、 IDE可為它們提供單一而靈活的開發(fā)環(huán)境。 </p><p><b>  系統(tǒng)功能</b></p><p>  Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面,使您能在很短的時間內就能學會使用keil c51來開發(fā)您的單片機應用程序 。 </p><p>  另外重要的一點,只要看一下編譯后生成的匯編代碼

70、,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。</p><p>  5.1 Keil uVision2軟件仿真</p><p><b>  1.軟件設置</b></p><p>  點擊按鈕,按照圖3-1 里面的圖示方法,進行端口設置:</p>

71、<p>  圖5-1 設置Debug 選項卡</p><p><b>  2.編譯</b></p><p>  點擊按鈕,無誤后點擊按鈕,如圖3-2。編譯無誤后點擊按鈕開始調試。</p><p><b>  圖5-2 編譯</b></p><p><b>  3.調試&l

72、t;/b></p><p>  打開View 菜單下 Memory Window (存儲器窗口),在存儲器窗口的Address 輸入框中輸入: </p><p>  X:0x8000 (如需查看單片機內RAM單元則輸入D:0x**,如:D:0x30)</p><p>  接著按回車鍵,存儲器窗口顯示8000H 起始的存儲數(shù)據(jù)(都為0)。點擊按鈕,運行程序,如圖

73、3-3。</p><p>  程序運行結束后,存儲器窗口顯示8000H 起始的20 個單元的數(shù)據(jù)變?yōu)椤?FFH”,如圖3-4。</p><p><b>  圖5-3 調試窗口</b></p><p><b>  4.設置斷點</b></p><p>  在需設斷點的指令行的空白處雙擊左鍵,指令行的前

74、端出現(xiàn)紅色方塊即可。同樣,取消斷點設置,也在空白處雙擊左鍵,紅色方塊消失。如圖3-5。</p><p><b>  圖5-4 調試窗口</b></p><p>  按鈕分別為:復位CPU、運行、停止、單步執(zhí)行程序(遇到子程序則進入)和單步執(zhí)行程序(跳過子程序)。</p><p>  5.如何生成.HEX格式文件</p><p

75、>  因為燒錄器一般只支持.HEX格式文件,而Keil uVision2的默認設置中不會生成該格式的文件,這就需要我們來設置了。如圖3.6設置Output選項卡中的選中“Create HEX Fi:”前的復選框,然后在編譯后就會生成和項目主文件名同名擴展名為“.HEX”的文件。</p><p>  圖5-5 設置Output選項卡</p><p>  5.2THKL-C51 仿真器介

76、紹仿真器復位按鈕的作用</p><p>  在仿真器的右側下方有一個小的按紐,這個按鈕用來給整個仿真器硬件系統(tǒng)復位,什么時候需要按這個按鈕呢?設置好KEIL的硬件環(huán)境后,在每次點擊進入仿真環(huán)境之前,需要按一下這個復位按紐,這樣KEIL啟動后,軟件和已復位的硬件仿真器就會順利聯(lián)機。在點擊進入仿真環(huán)境之后,仿真器完全由KEIL控制,此時不要按這個按鈕,否則在仿真過程中系統(tǒng)將會提示聯(lián)機中斷。如果需要給硬件復位的話,請先

77、點擊退出KEIL仿真調試環(huán)境。</p><p>  仿真器使用注意事項:在打開PC機之前請把仿真器和PC機的串口連好。在聯(lián)機后,請千萬不要帶電插拔仿真器和PC機的接口,如果帶電插拔仿真器就可能導致接口電路MAX232 損壞。注意插拔的時候仿真器或者PC機至少有一方的電源是斷開的。</p><p>  斷開連接之前推薦步驟:</p><p> ?。?)按一下仿真器硬件

78、復位按紐;</p><p> ?。?)按退出仿真環(huán)境;</p><p> ?。?)關閉KEIL,關閉PC機,最后再斷開硬件連接,如果要經(jīng)常使用則不用斷開硬件連接。</p><p><b>  5.3仿真結果圖</b></p><p><b>  圖5-6原始參照圖</b></p>&l

79、t;p><b>  圖5-7調秒圖</b></p><p><b>  圖5-8調分圖</b></p><p><b>  圖5-9調時圖</b></p><p><b>  第六章 設計心得</b></p><p>  通過這次課程設計,我們進一步

80、掌握了單片機的一些構成部件以及顯示接口、按鍵接口等,最主要的是掌握了我們單片機學習的主要元件AT89C51的引腳的作用以及連接方式。將理論知識付諸于實踐,又鞏固了理論知識。</p><p>  在本次實踐中劉老師盡心盡力,著重我們自己掌握并弄懂程序的作用以及編寫。雖然我們平時編寫的程序很少,編程有點困難,但劉老師為我們把每一條語句仔細講解,讓我們弄懂才讓我們編寫。從中我們鞏固了大部分指令的用法和編程的基本格式,體

81、會到編程的不易以及編程成功的喜悅。不管哪個同學有問題,劉老師都會耐心地為我們解決問題。比如我,編程好了之后就是只有三個數(shù)碼管亮,自己找了好久就是找不出問題,老師來了幫我找了好久才找出:原來我每次為時、分、秒分配數(shù)碼管時忘了加#,害的老師找了老半天,謝謝老師為我們的付出,老師,你辛苦了。</p><p>  這次設計采用AT89S51與顯示驅動芯片74LS245作為主控芯片與數(shù)據(jù)存儲器單元,結合外圍的鍵盤輸入、顯示

82、、電源輸入等電路并用匯編編寫主控芯片的控制程序,設計了一款可以調時功能的數(shù)字時鐘。數(shù)字時鐘嚴格按照要求設計,基本達到了預期效果,能夠正確的顯示時分秒的計時,并且可以調時,算得上是一次比較成功的設計了。</p><p>  通過這次的課程設計,使我明白:知識,不僅僅是要學會,更重要的是要會用,要懂得怎么用。作為專科生的我們,理論知識不是很牢固,所以在加強理論的同時還要提高動手能力,在以后的工作中,注重的更是動手能力

83、,用實踐鞏固理論知識,使理論知識更加扎實,用起來更加得心應手。</p><p>  這次也是我們第一次做課程設計,算是一個較好的開始吧,也可以說是為畢業(yè)設計做一次鋪墊,寫報告是一大難點,只要用心都會解決,到時畢業(yè)設計的論文比這還要難,一步步解決,總會做好的。</p><p>  附錄1 參考源程序</p><p>  ORG 0000

84、H</p><p>  LJMP MAIN</p><p>  ORG 0003H</p><p>  LJMP MIAO</p><p>  ORG 000BH</p><p>  LJMP FEN</p><p>  ORG 0013H</p>

85、<p>  LJMP SHI</p><p>  ORG 0001BH</p><p><b>  LJMP ZJ</b></p><p>  MAIN: MOV R7,#20</p><p>  MOV R4,#00H</p><p>  MOV R5,#00H&l

86、t;/p><p>  MOV R6,#00H</p><p>  MOV TMOD,#16H</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,#0B0H</p><p>  MOV TH0,#0FFH</p><p>  MOV TL0,#0FFH</p>

87、;<p><b>  CLR EX1</b></p><p><b>  CLR EX0</b></p><p><b>  CLR ET0</b></p><p><b>  SETB ET1</b></p><p><b>

88、;  SETB IT1</b></p><p><b>  SETB IT0</b></p><p><b>  SETB TR1</b></p><p><b>  SETB TR0</b></p><p><b>  SETB PT1</b>

89、;</p><p><b>  SETB EA</b></p><p><b>  LOOP:</b></p><p><b>  MOV A,R4</b></p><p><b>  MOV B,#10</b></p><p>&

90、lt;b>  DIV AB</b></p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,#40H</p><p><b>  MOV P0,A</b></p><p>  LCALL DELA

91、Y</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,#80H</p><p><b>  MOV P0,A</b></p>&l

92、t;p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p>  MOV P2,#0FFH</p><p>  JNB P2.0, TIAOJIE</p><p>  MOV P1,#20H</p><p>  MOV P0,#0F6H</p><p>

93、  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,R5</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p> 

94、 MOVC A,@A+DPTR</p><p>  MOV P1,#08H</p><p><b>  MOV P0,A</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,B</b>

95、;</p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,#10H</p><p><b>  MOV P0,A</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p>  MOV P2

96、,#0FFH </p><p>  JNB P2.0, TIAOJIE</p><p>  MOV P1,#04H</p><p>  MOV P0,#0F6H</p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV

97、 A,R6</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,#01H</p><p><b>  

98、MOV P0,A</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR</p><p>  MOV P1,#02H</p>

99、<p><b>  MOV P0,A</b></p><p>  LCALL DELAY</p><p>  MOV P0,#0FFH</p><p>  MOV P2,#0FFH</p><p>  JNB P2.0, TIAOJIE</p><p><b>  LJMP L

100、OOP</b></p><p>  TIAOJIE: CPL EX1</p><p><b>  CPL EX0</b></p><p><b>  CPL ET0</b></p><p><b>  CPL ET1</b></p><p>

101、;<b>  LJMP LOOP</b></p><p>  DELAY:MOV R3,#100</p><p>  DEL:MOV R2,#10</p><p><b>  NOP</b></p><p><b>  DJNZ R2,$</b></p><

102、p>  DJNZ R3,DEL</p><p><b>  RET</b></p><p><b>  ORG 0100H</b></p><p>  ZJ: PUSH ACC</p><p>  MOV TH1,#3CH</p><p>  MOV TL1,

103、#0B0H</p><p>  DJNZ R7,FANHUI</p><p>  MOV R7,#20</p><p><b>  INC R4</b></p><p><b>  MOV A,R4</b></p><p>  CJNE A,#60,FANHUI</p

104、><p>  MOV R4,#00H</p><p><b>  INC R5</b></p><p><b>  MOV A,R5</b></p><p>  CJNE A,#60,FANHUI </p><p>  MOV R5,#00H</p><p&

105、gt;<b>  INC R6</b></p><p><b>  MOV A,R6</b></p><p>  CJNE A,#24,FANHUI</p><p>  MOV R6,#00H</p><p>  FANHUI: POP ACC </p><p><b&

106、gt;  RETI</b></p><p><b>  ORG 0200H</b></p><p>  MIAO:CLR EA</p><p><b>  INC R4</b></p><p><b>  SETB EA</b></p><p&g

107、t;<b>  RETI</b></p><p>  ORG 0400H</p><p>  FEN: CLR EA</p><p><b>  INC R5</b></p><p><b>  SETB EA</b></p><p><b>

108、;  RETI</b></p><p>  ORG 0500H</p><p>  SHI: CLR EA</p><p><b>  INC R6</b></p><p><b>  SETB EA</b></p><p><b>  RETI<

109、;/b></p><p><b>  ORG 0300H</b></p><p>  TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p><b>  END</b></p><p>  附錄2 元件列

110、表</p><p><b>  參考文獻</b></p><p>  [1] 張文灼.單片機應用技術.機械工業(yè)出版社,2009</p><p>  [2] 張 偉.Protel 99SE實用教程.人民郵電出版社,2008</p><p>  [3] 童詩白 華成英.模擬電子技術基礎.北京:高等教育出版社,2000<

111、;/p><p>  [4] 李 華.MCS-51系列單片機使用接口技術.北京航空航天大學出版社,1993.</p><p>  [5] 邱關源.電路.北京:高等教育出版社,1999</p><p>  [6] 何立民.單片機應用技術選編.北京:北京航空大學出版社,1998</p><p>  [7] 李瀚蓀.電路分析基礎.北京:高等教育出版社1

溫馨提示

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

評論

0/150

提交評論