




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要摘要數字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛使用。本設計用單片機組成數字電子秒表,力求結構簡單、精度高為目標。設計中包括硬件電路的設計和系統(tǒng)程序的設計。其硬件電路主要有主控制器,計時與顯示電路和回零、啟動和停表電路等。主控制器采用單片機AT89S51,顯示電路采用共陰極LED數碼管顯示計時時間。文中設計了一種以單片機為控制核心的數字秒表。該數字秒表采用C語言開發(fā),通過數碼管顯示計時結果。 關鍵字:AT89S51;數字秒表;LED數碼管顯示28 ABSTRACTABSTRACTDigital electronic stopwatch display intuitive,
2、 read the convenient, high precision of advantages, widely used in time. The design of digital electronic stopwatch by single chip, and strive to simple structure, high precision for the target. Design including the design of the system hardware circuit and the design of the program. The main hardwa
3、re circuit is the main controller, timing and display circuit and back to zero, start and stop watch circuit, etc. Lord AT89S51 single-chip controller, show circuit of the cathode LED digital pipe display time clock. This paper designs a with the single chip processor as the core to control the digi
4、tal stopwatch. The digital stopwatch using C language development, through the digital pipe display the time. Key words:AT89S51 Digital stopwatch The LED digital display ABSTRACT目錄摘要IABSTRACTII前言IV1緒論11.1單片機的背景11.2 單片機的應用領域22總體方案的設計42.1系統(tǒng)的組成模塊42.2工作原理43系統(tǒng)的硬件電路設計63.1單片機的選擇63.2 顯示電路的選擇與設計93.3 按鍵電路的選擇與
5、設計103.4 時鐘電路的選擇與設計113.5 復位電路的選擇與設計144系統(tǒng)的軟件電路設計164.1 程序設計思想164.2 主程序設計164.3 中斷程序設計184.4 系統(tǒng)的程序設計21結 論25參考文獻26致謝27附錄28前言前言秒表計時器是電器制造,工業(yè)自動化控制、國防、實驗室及科研單位理想的計時儀器,它廣泛應用于各種繼電器、電磁開關,控制器、延時器、定時器等的時間測試。自首屆現代奧運會在希臘雅典舉辦以來,奧運計時技術一直在不斷地向前發(fā)展。一百多年過去了,首屆現代奧運會上計時所用的跑表如今換成了一系列高科技計時裝 置,如高速數碼攝像機、電子觸摸墊、紅外光束、無線應答器等等。鑒于當今計
6、時技術的快速發(fā)展,即便千分之一秒(為眨眼的40倍)的毫微差距,也決定著冠軍的歸屬。在現在的體育競技比賽中,隨著運動員的水平不斷提高,差距也在不斷縮小。有些運動對時間精度的要求也越來越高,有時比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發(fā)展。每一階段的發(fā)展都是和當時的技術發(fā)明分不開的。1088年,當時我國宋朝的科學家蘇頌和韓工廉等人制造了水運儀象臺,它是把渾儀、渾象和機械計時器組合起來的裝置。它以水力作為動力來源,具有科學的擒縱機構,雖然幾十年后毀于戰(zhàn)亂,但它在世界鐘表史上具有極其重要的意義。1656年,荷蘭
7、的科學家惠更斯應用伽利略的理論設計了鐘擺,第二年,在他的指導下年輕鐘匠S.Coster制造成功了第一個擺鐘。1675年,他又用游絲取代了原始的鐘擺,這樣就形成了以發(fā)條為動力、以游絲為調速機構的小型鐘,同時也為制造便于攜帶的袋表提供了條件。18世紀期間發(fā)明了各種各樣的擒縱機構,為袋表的進一步產生與發(fā)展奠定了基礎。20世紀初,尤其是第一次世界大戰(zhàn)的爆發(fā),袋表已經不能適應作戰(zhàn)軍人的需要,腕表的生產成為大勢所趨。許多新的設計和技術也被應用在腕表上,成為真正意義上的帶在手腕上的計時工具。緊接著的二戰(zhàn)使腕表的生產量大幅度增加,價格也隨之下降,使普通大眾也可以擁有它。腕表的年代到來了!1998年:建立超冷銫
8、原子鐘,比微微秒又要精確10萬倍。從我國水運儀像臺的發(fā)明到現在各國都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個不同時期的科學家和鐘表工匠用他們的聰明的智慧和不斷的實踐融合成了一座時間的隧道,同時也為我們勾勒了一條鐘表文化和科技發(fā)展的軌跡。黑龍江八一農墾大學畢業(yè)設計(論文)1緒論1.1單片機的背景單片機即單片機微型計算機。用專業(yè)語言講,單片機就是在一塊硅片上集成了微處理器、存儲器及各種輸入輸出接口的芯片。這樣一塊芯片就具有了計算機的屬性,因為被稱為單片機微型計算機,簡稱單片機。單片機的前身叫做單板機,是將CPU芯片、存儲芯片、I/O接口和簡單的I/O設備等裝配在一快印刷電路板上,
9、在配上監(jiān)控程序,就構成一塊單板機。單片機基本用于數學,后來發(fā)展為單片機?,F在這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統(tǒng)、家用電器等。各種產品一旦用上了單片機,就能起到是產品更新換代的功效,常在產品名稱前冠以形容詞“智能型”。 現在可以說單片機是百花齊放的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數不勝數,應有盡有,它們各具特色,互成互補,為單片機的應用提供廣闊的天地??v觀單片機的發(fā)展過程,可以預示單片機的發(fā)展趨勢 。 1.1.1、低功耗CMOS化 MCS-51系列的8031推出時的功耗達630mW,而現在的單片機普遍都在100mW左
10、右,隨著對單片機功耗要求越來越低,現在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。80C51就采用了HMOS(即高密度金屬氧化物半導體工藝)和CHMOS(互補高密度金屬氧化物半導體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗,電池供電的應用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。 1.1.2、微型單片化 現在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數據存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電路、時鐘電路集成在一塊
11、單一的芯片上,增強型的單片機集成了如A/D轉換器、PMW(脈寬調制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據用戶的要求量身定做,制造出具有自己特色的單片機芯片。 此外,現在的產品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小?,F在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構成的系統(tǒng)正朝微型化方向發(fā)展。 1.1.3、主流與多品種共存 現在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機占主流,兼容其結構和指
12、令系統(tǒng)的有PHILIPS公司的產品,ATMEL公司的產品和中國臺灣的Winbond系列單片機。所以C8051為核心的單片機占據了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強勁的發(fā)展勢頭,中國臺灣的HOLTEK公司近年的單片機產量與日俱增,與其低價質優(yōu)的優(yōu)勢,占據一定的市場分額。此外還有MOTOROLA公司的產品,日本幾大公司的專用單片機。在一定的時期內,這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補,相輔相成、共同發(fā)展的道路。1.1.4、大容量、高性能 以往單片機內的ROM為1KB4KB,RAM 為64128B。但在需要復雜控制的場合,該存
13、儲容量是不夠的,必須進行外接擴充。為了適應這種領域的要求,須運用新的工藝,使片內存儲器大容量化。目前,單片機內ROM 最大可達64KB,RAM 最大為2KB。另外單片機進一步改變CPU的性能,加快指令運算的速度和提高系統(tǒng)控制的可靠性。采用精簡指令集(RISC)結構和流水線技術,可以大幅度提高運行速度?,F指令速度最高者已達100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加強了位處理、中斷和定時控制功能。這類單片機的運算速度比標準的單片機高出10 倍以上。由于這類單片機有極高的指令速度,可以使用軟件模擬其I/O 功能,由此引入了虛擬外設的新概念。
14、1.2 單片機的應用領域單片機改變了我們生活,縱觀我們現在生活的各個領域,從導彈的導航裝置,到飛機上各種儀表的控制,從計算機的網絡通訊與數據傳輸,到工業(yè)自動化過程的實時控制和數據處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機, 單片機有著廣闊的應用前景。目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分如下幾個范疇:1、智能儀表上的應用單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應用于儀器儀表中,例如精密的測
15、量設備。2、在工業(yè)控制中的應用用單片機可以構成形式多樣的控制系統(tǒng)、數據采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯網構成二級控制系統(tǒng)等。3、在家用電器中的應用可以這樣說,現在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,無所不在。4、在計算機網絡和通信領域中的應用現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,現在的通信設備基本上都實現了單片機智能控制,例如:手機,電話機、列車無線通信。5、單片機在醫(yī)用設備領域中的應用單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀
16、,監(jiān)護儀,超聲診斷設備及病床呼叫系統(tǒng)等等。6、在各種大型電器中的模塊化應用某些專用單片機設計用于實現特定功能,從而在各種電路中進行模塊化應用,而不要求使用人員了解其內部結構。如音樂集成單片機,在大型電路中,這種模塊化應用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。從無線電世界到單片機世界。本設計利用AT89S51單片機的定時器/計數器定時和記數的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現開始暫停的功能。P0口輸出段碼數據,P2.0-P2.7口作列掃描輸出,P1.1、P1.2、P1.3、P1.4、
17、P3.0、P3.1、RST分別接七個按鈕開關,分別實現開始、暫停、存儲、清除當前數據、全部清零和查看上次時間和復位功能,顯示電路由八位共陰極數碼管組成。2 總體方案的設計設計中包括硬件電路的設計和系統(tǒng)程序的設計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器采用單片機AT89S51,顯示電路采用共陰極LED數碼管顯示計時時間,七個按鍵均采用觸點式按鍵。2.1系統(tǒng)的組成模塊系統(tǒng)總電路是由控制電路,顯示電路,時鐘電路,按鍵電路和復位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如 附表所示。AT89S51單片機為控制電路的核心部分,各個
18、電路均和單片機相連接,由單片機統(tǒng)籌和協調各個電路的運行工作。AT89S51單片機提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩(wěn)定的始終脈沖。復位電路同晶振電路,單片機設有一個專用的硬件復位接口,并設置為高電平有效。按鍵電路與單片機的端口連接可以由用戶自己設定,本設計中軟件復位鍵和查看鍵分別接單片機的RST和P3.1,均設為高電平有效。顯示電路由八位數碼管組成,采用動態(tài)顯示方式,因此有8位段控制端和8位位選控制端,八位段控制接P0口,P0.0P0.7分別控制數碼顯
19、示管的a、b、c、d、e、f、g、dp顯示,AT89S51的P0口沒有集成上拉電阻,高電平的驅動能力很弱,所以需要接上拉電阻來提高P0的高電平驅動能力。八位位控制則由低位到高位分別接到P2.0P2.7口,當P2.0P2.7端口任意一個端口為高電平時,與其相對應的數碼管導通顯示。2.2工作原理本設計利用AT89S51單片機的定時器/計數器定時和記數的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現開始暫停的功能。P0口輸出段碼數據,口作列掃描輸出,P1.1、P1.2、P1.3、P1.4、P3.0、P3.1、RST分別接七個按鈕開關,分別實現開始、暫停、存儲、清除當前數據、全部清零和查看上次時間和復位
20、功能,電路原理圖設計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。根據要求知道秒表設計主要實現的功能是計時和顯示。因此設置了七個按鍵和八位數碼管顯示時間,七個按鍵分別是開始,暫停、存儲、清除當前數據、全部清零、復位和查看上次計時時間按鍵。利用這七個建來實現秒表的全部功能,而八位數碼管則能顯示最多99分59.999秒的計時。計時采用定時器T0中斷完成,定時溢出中斷周期為1ms,當一處中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次中斷請求就對毫秒計數單元進行加一,達到10次就對十毫秒位進行加一,依次類推,直到99分59.999秒重新復位。再看按鍵的處理。這七個鍵可以采用
21、中斷的方法,也可以采用掃描的方法來識別。復位鍵和查看主要功能在于數值復位和查詢上次計時時間,對于時間的要求不是很嚴格。而開始和停止鍵則是用于對時間的鎖定,需要比較準確的控制。因此可以對復位和查看按鍵采取掃描的方式。而對開始和停止鍵采用外部中斷的方式。3系統(tǒng)的硬件電路設計 3.1單片機的選擇本課題在選取單片機時,充分借鑒了許多成形產品使用單片機的經驗,并根據自己的實際情況,選擇了ATMEL公司的AT89S51。ATMEL公司的89系列單片機以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價格、超強的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP、P
22、LCC、QFP封裝,有民用型、工業(yè)級、汽車級、軍品級等多種溫度等級,是當今世界上性能最好、價格最低、最受歡迎的八位單片機3。AT89S51為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標準的C51內核,在內部功能及管腳排布上與通用的80C51 相同,下面介紹一下單片機的外部結構:AT89S51單片機采用40引腳的雙列直插封裝方式。圖1為引腳排列圖, 40條引腳說明如下:主電源引腳Vss和Vcc Vss接地 Vcc正常操作時為+5伏電源外接晶振引腳XTAL1和XTAL2 XTAL1內部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當采用外部振蕩器時,此引腳接地。 XTAL2內部振蕩電路
23、反相放大器的輸出端。是外接晶體的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。圖1 單片機引腳圖控制或與其它電源復用引腳RST/VPD,ALE/,和/Vpp RST/VPD 當振蕩器運行時,在此引腳上出現兩個機器周期的高電平(由低到高跳變),將使單片機復位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內部提供備用電源,以保持內部RAM中的數據。 ALE/正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當訪問外部數據存儲器時,將跳過一個A
24、LE脈沖,ALE 端可以驅動(吸收或輸出電流)八個LSTTL電路。對于EPROM型單片機,在EPROM編程期間,此引腳接收編程脈沖(功能) 外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數據)期間,在每個機器周期內兩次有效。同樣可以驅動八LSTTL輸入。 /Vpp、/Vpp為內部程序存儲器和外部程序存儲器選擇端。當/Vpp為高電平時,訪問內部程序存儲器,當/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM型單片機,在EPROM編程期間,此引腳上加21伏EPROM編程電源(Vpp)。輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0
25、- P3.7。 P0口(P0.0 - P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數據總線,P0口能以吸收電流的方式驅動八個LSTTL負載。 P1口(P1.0 - P1.7)是一個帶有內部提升電阻的8位準雙向I/O口。能驅動(吸收或輸出電流)四個LSTTL負載。 P2口(P2.0 - P2.7)是一個帶有內部提升電阻的8位準雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅動(吸收或輸出電流)四個LSTTL負載。 P3口(P3.0 - P3.7)是一個帶有內部提升電阻的8位準雙向I/O口。能驅動(吸收或輸出電流)四個LSTTL負載6。
26、AT89S51具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S51可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。CPU是單片機的核心部件。它由運算器和控制器等部件組成2。(1) 運算器運算器的功能是進行算術運算和邏輯運算??梢詫Π胱止?jié)(4位)、單字節(jié)等數據進行
27、操作。例如能完成加、減、乘、除、加1、減1、BCD碼十進制調整、比較等算術運算和與、或、異或、求補、循環(huán)等邏輯操作,操作結果的狀態(tài)信息送至狀態(tài)寄存器。AT89S51運算器還包含有一個布爾處理器,用來處理位操作。它是以進位標志位C為累加器的,可執(zhí)行置位、復位、取反、等于1轉移、等于0轉移、等于1轉移且清0以及進位標志位與其他可尋址的位之間進行數據傳送等位操作,也能使進位標志位與其他可移位尋址的位之間進行邏輯與、或操作5。(2) 程序計數器PC程序計數器PC用來存放即將要執(zhí)行的指令地址,共16位,可對64K程序存儲器直接尋址。執(zhí)行指令時,PC內容的低8位經P0口輸出,高8位經P2口輸出。(3) 令
28、寄存器指令寄存器中存放指令代碼。CPU執(zhí)行指令時,由程序存儲器中讀取的指令代碼送入指令寄存器,經譯碼后由定時與控制電路發(fā)出相應的控制信號,完成指令功能。本設計采用ATMEL的AT89S51微處理器,主要基于以下幾個因素: AT89S51為51內核,仿真調試的軟硬件資源豐富。 性價比高,貨源充足。 功耗低,功能強,靈活性高。 DIP40封裝,體積小,便于產品小型化。 為EEPROM程序存儲介質,1000次以上擦寫周期,便于編程調試。 工作電壓范圍寬:2.7V6V,便于交直流供電。3.2 顯示電路的選擇與設計對于數字顯示電路,通常采用液晶顯示或數碼管顯示。對于一般的段式液晶屏,需要專門的驅動電路,
29、而且液晶顯示作為一種被動顯示,可視性差,不適合遠距離觀看;對于具有驅動電路和單片機接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89S51單片機本身無專門的液晶驅動接口。而數碼管作為一種主動顯示器件,具有亮度高、響應速度快、防潮防濕性能好、溫度特性極性、價格便宜、易于購買等優(yōu)點,而且有遠距離視覺效果,很適合夜間或是遠距離操作。因此,本設計的顯示電路采用7段數碼管作為顯示介質。數碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設計需要采用八位數碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復雜。所以采用動態(tài)顯示。動態(tài)顯示是一位一位地輪流點亮
30、各位數碼管,這種逐位點亮顯示器的方式稱為位掃描。通常各位數碼管的段選線相應并聯在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數碼管分時輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數碼管,并送出相應的段碼,在另一時刻選通另一位數碼管,并送出相應的段碼,依此規(guī)律循環(huán),即可使各位數碼管顯示將要顯示的字符,雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可以給人同時顯示的感覺。數碼顯示管分為共陽數碼管和共陰數碼管兩種,共陰極數碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起,通常,公共陰極接
31、高電平(一般接電源),其它管腳接段驅動電路輸出端。當某段驅動電路的輸出端為低電平時,則該端所連接的字段導通并點亮,根據發(fā)光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能吸收額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻。共陰極數碼管的8個發(fā)光二極管的陰極(二極管負端)連接在一起,通常,公共陰極接低電平(一般接地),其它管腳接段驅動電路輸出端,當某段驅動電路的輸出端為高電平時,則該端所連接的字段導通并點亮,根據發(fā)光字段的不同組合可顯示出各種數字或字符。此時,要求段驅動電路能提供額定的段導通電流,還需根據外接電源及額定段導通電流來確定相應的限流電阻。本設計采用
32、共陰極數碼顯示管做顯示電路,數碼管引腳圖如圖2所示:圖2數碼管引腳圖 由于采用的是共陰的數碼顯示管,所以只要數碼管的a、b、c、d、e、f、g、h引腳為高電平,那么其對應的二極管就會發(fā)光,使數碼顯示管顯示09的編碼見表1。表1 共陰極數碼顯示管字型代碼字型共陰極代碼字型共陰極代碼03FH56DH106H67DH25BH707H34FH87FH466H96FH動態(tài)顯示電路由顯示塊、字形碼驅動模塊、字位驅動模塊三部分組成。圖中,8個數碼管的8段段選線分別與外接上拉電阻的單片機P0口對應相連,而8個數碼管的位控制端則和單片機的P2口相連。單片機的P2.0P2.7口則分別對應數碼顯示管的最低位到最高位
33、,另外數碼管顯示是采用動態(tài)顯示。由于數碼管是有P0口來驅動,它內部沒有上拉電阻,作為輸出口時驅動能力比較弱,不能點亮數碼顯示管,因此P0口必須接上拉電阻來提高驅動能力。另外一位共陰數碼管的驅動電流一般為20mA左右,如果電流太大容易造成數碼管損壞,所以也需要根據電源的電壓值來確定上拉電阻的大小。如果電阻過小,勢必會形成灌電流過大,造成單片機IO的損壞,如果電阻過大,那么對拉電流沒有太大的影響。電源供電電壓為5V,當上拉電阻選用220電阻時灌電流為22mA。不會損壞單片機的I/O口,同時也可以為數碼顯示管起到限制電流的保護作用。3.3 按鍵電路的選擇與設計本設計中有七個按鍵,分別實現開始、暫停、
34、存儲、清除當前數據、查看、全部清零復位功能。這七個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。對于復位和查看鍵,主要功能在于數值復位和對上次計時時間的查看,對于時間的要求不是很嚴格,而開始和暫停鍵主要用于時間的鎖定,需要比較準確的控制。因此可以考慮,對復位鍵和查看鍵采用查詢的方式,而對于開始和暫停鍵采用外部中斷。七個按鍵均采用低電平有效。當按鍵沒有按下時,單片機的I/O口直接連接電源,因此需要接上拉電阻來進行限流,本設計中選取阻值為2k 的電阻作為上拉電阻,根據計算可知此時的灌電流為2.5mA,查看AT89S51的資料得知次電流在安全范圍內,符合安全設計要求。按鍵電路中由于采用了外部中斷
35、,所以需要用到P3口的第二功能。P3口引腳的第二功能如表2:表2 P3口引腳第二功能表P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請求輸入端)P3.3INT1(外部中斷1請求輸入端)P3.4T0(定時器/計數器0計數脈沖輸入端)P3.5T1(定時器/計數器1計數脈沖輸入端)P3.6WR(片外數據存儲器寫選通信號輸出端)P3.7RD(片內數據存儲器讀選通信號輸出端)3.4 時鐘電路的選擇與設計單片機的時鐘信號用來提供單片機內各種微操作的時間基準,AT89S51片內設有一個由反向放大器所構成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路
36、的輸入和輸出端,AT89S51單片機的時鐘信號通常用兩種電路形式得到:內部振蕩方式與外部振蕩方式。外部方式的時鐘很少用,若要用時,只要將XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。時鐘發(fā)生器把振蕩頻率兩分頻,產生一個兩相時鐘信號P1和P2供單片機使用。P1在每一個狀態(tài)S的前半部分有效,P2在每個狀態(tài)的后半部分有效。本設計采用的內部振蕩方式,內部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。本設計系統(tǒng)的時鐘電路如圖3所示。只要按照圖3所示電路進行設計連接就能使系統(tǒng)可靠起振并能穩(wěn)定運行。圖中,電容器C1、C2起
37、穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為533pF。但在時鐘電路的實際應用中一定要注意正確選擇其大小,并保證電路的對稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數盡可能低。本設計中采用大小為30pF的電容和12MHz的晶振8。圖3 內部振蕩電路(4) 時序AT89S51典型的指令周期(執(zhí)行一條指令的時間稱為指令周期)為一個機器周期,一個機器周期由六個狀態(tài)(十二振蕩周期)組成。每個狀態(tài)又被分成兩個時相P1和P2。所以,一個機器周期可以依次表示為S1P1,S1P2,S6P1,S6P2。圖4 AT89S51時序圖4給出了AT89S51單片機的取指和執(zhí)行指令的定時關系。這些內部時
38、鐘信號不能從外部觀察到,所用XTAL2振蕩信號作參考。在圖中可看到,低8位地址的鎖存信號ALE在每個機器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。對于單周期指令,當操作碼被送入指令寄存器時,便從S1P2開始執(zhí)行指令。如果是雙字節(jié)單機器周期指令,則在同一機器周期的S4期間讀入第二個字節(jié),若是單字節(jié)單機器周期指令,則在S4期間仍進行讀,但所讀的這個字節(jié)操作碼被忽略,程序計數器也不加1,在S6P2結束時完成指令操作。圖4的(a)和(b)給出了單字節(jié)單機器周期和雙字節(jié)單機器周期指令的時序。AT89S51指令大部分在一個機器周期完成。乘(MUL)和除(DIV)指令是僅
39、有的需要兩個以上機器周期的指令,占用4個機器周期。對于雙字節(jié)單機器周期指令,通常是在一個機器周期內從程序存儲器中讀入兩個字節(jié),唯有MOVX指令例外。MOVX是訪問外部數據存儲器的單字節(jié)雙機器周期指令。在執(zhí)行MOVX指令期間,外部數據存儲器被訪問且被選通時跳過兩次取指操作。圖4中(c)給出了一般單字節(jié)雙機器周期指令的時序9。3.5 復位電路的選擇與設計關于單片機的置位和復位,都是為了把電路初始化到一個確定的狀態(tài),一般來說,單片機復位電路作用是把一個例如狀態(tài)機初始化到空狀態(tài),而在單片機內部,復位的時候單片機是把一些寄存器以及存儲設備裝入廠商預設的一個值,復位是一個很重要的操作方式。但單片機本身是不
40、能自動進行復位的,必須配合相應的外部電路才能實現。當AT89S51單片機的復位引腳RST(全稱RESET)出現2個機器周期以上的高電平時,單片機就完成了復位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復位狀態(tài),而無法執(zhí)行程序。因此要求單片機復位后能脫離復位狀態(tài)。而本系統(tǒng)選用的是12MHz的晶振,因此一個機器周期為1s,那么復位脈沖寬度最小應為2s。在實際應用系統(tǒng)中,考慮到電源的穩(wěn)定時間,參數漂移,晶振穩(wěn)定時間以及復位的可靠性等因素,必須有足夠的余量。根據應用的要求,復位操作通常有兩種基本形式:上電復位、手動復位。上電復位要求接通電源后,自動實現復位操作。AT89S51單片機的上電復位POR(
41、Power On Reset)實質上就是上電延時復位,也就是在上電延時期間把單片機鎖定在復位狀態(tài)上。在單片機每次初始加電時,首先投入工作的功能部件是復位電路。復位電路把單片機鎖定在復位狀態(tài)上并且維持一個延時(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個等待時間;在電源電壓穩(wěn)定之后,再插入一個延時,給予時鐘振蕩器從起振到穩(wěn)定的一個等待時間;在單片機開始進入運行狀態(tài)之前,還要至少推遲2個機器周期的延時。上述一系列的延時,都是利用在單片機RST引腳上外接一個RC支路的充電時間而形成的。典型復位電路,其中的阻容值是原始手冊中提供的。在經歷了一系列延時之后,單片機才開始按照時鐘源的工作頻率,進入到
42、正常的程序運行狀態(tài)。在電源電壓以及振蕩器輸出信號穩(wěn)定之后,又等待了一段較長的延時才釋放RST信號,使得CPU脫離復位鎖定狀態(tài);而RST信號一旦被釋放,立刻在ALE引腳上就可檢測到持續(xù)的脈沖信號8。由于標準AT89S51的復位邏輯相對簡單,復位源只有RST一個(相對新型單片機來說,復位源比較單一),因此各種原因所導致的復位活動以及復位狀態(tài)的進入,都要依靠在外接引腳RST上施加一定時間寬度的高電平信號來實現。標準AT89S51不僅復位源比較單一,而且還沒有設計內部上電復位的延時功能,因此必須借助于外接阻容支路來增加延時環(huán)節(jié),其實,外接電阻R還是可以省略的,理由是一些CMOS單片機芯片內部存在一個現
43、成的下拉電阻Rrst。例如,AT89系列的Rrst阻值約為50200 k。在每次單片機斷電之后,須使延時電容C上的電荷立刻放掉,以便為隨后可能在很短的時間內再次加電作好準備。否則,在斷電后C還沒有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應有的延遲功能。手動復位要求在電源接通的條件下,在單片機運行期間,如果發(fā)生死機,用按鈕開關操作使單片機復位。單片機要完成復位,必須向復位端輸出并持續(xù)兩個機器周期以上的高電平,從而實現復位操作。本設計采用上電且開關復位電路,如圖5所示上電后,由于電容充電,使RST持續(xù)一段高電平時間。當單片機已在運行之中時,按下復位鍵也能使RST持續(xù)一段時間的高電平
44、,從而實現上電且開關復位的操作。通常選擇C=1030F,本設計采用的電容值為10F的電容和電阻為4.7K的電阻。圖5 單片機復位電路4系統(tǒng)的軟件電路設計4.1 程序設計思想本設計采用了C語言編寫,C語言由于采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。C語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用C語言能面向機器并較好地發(fā)揮機器的特性,得到質量較高的程序。C語言的特點:(1).面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。(2).保持了機器語言的優(yōu)點,具有直接和簡捷的特點。(
45、3).可有效地訪問、控制計算機的各種硬件設備,如磁盤、存儲器、CPU、I/O端口等。(4).目標代碼簡短,占用內存少,執(zhí)行速度快,是高效的程序設計語言。(5).經常與高級語言配合使用,應用十分廣泛。在程序設計過程中,為了有效地完成任務,把所要完成的任務精心的分割成若干個相互獨立但相互又仍可有聯系的任務模塊,這些任務模塊使得任務變得相對單純,對外的數據交換相對簡單,容易編寫,容易檢測,容易閱讀和維護。這種程序設計思想稱為模塊化程序設計思想。模塊化結構程序的設計,可以使系統(tǒng)軟件便于調試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設計。因此,本醫(yī)院病床呼叫系統(tǒng)在軟件的設計上,運用了模塊化程序的結構對
46、軟件進行設計,使得程序變得更加直觀易懂。程序的主要模塊有:主程序、顯示程序、定時溢出中斷服務程序、外部中斷服務程序。4.2 主程序設計本系統(tǒng)程序主要模塊由主程序、定時中斷服務程序、外部中斷0服務程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進行調用。協調各個子程序之間的聯系。系統(tǒng)(上電)復位后,進入主程序,主程序流程圖如圖6。首先對系統(tǒng)進行初始化,包括設置各入口地址、中斷的開啟、對各個數據緩存區(qū)清“0”、賦定時器初值,初始化完畢后,就進入數碼管顯示程序。數碼管顯示程序對顯示緩存區(qū)內的數值進行調用并在數碼管上進行動態(tài)顯示。顯示一次就對各個按鍵進行一次掃描,查詢復位鍵RST是否按下,當復
47、位鍵按下后,程序返回開始,重新對系統(tǒng)進行初始化。當沒有按下復位鍵時,程序則掃描各個接口按鍵,若沒有按下則返回顯示程,不斷地調用顯示緩存區(qū)的數據進行顯示。使用戶能清楚的看到當前電子秒表所記錄的時間。當查詢到有按鍵按下后則跳轉到另外一段顯示程序并調用最紅緩存區(qū)的數據進行顯示,此時顯示的時間即為上一次計時的時間。與此同時,在按鍵按下后單片機執(zhí)行顯示程序的同時也在對當前按鍵進行掃描,當該按鍵斷開后立即跳轉回之前的顯示程序顯示當前的計時時間。在主程序中還進行了賦寄存區(qū)的初始值、設置定時器初值以及開啟外部中斷等操作,當定時時間到后就轉去執(zhí)行定時中斷程序。當外部中斷有請求則去執(zhí)行外部中斷服務程序。并在執(zhí)行完
48、后返回主程序。開始數碼顯示賦初始值其他按鍵是否按下否按下RST鍵是否按下調用緩存數據進行顯示按鍵是否抬起是否否是是否圖6 主程序流程圖4.3 中斷程序設計現在方案中采用了一個中斷,外部中斷INT0。CPU在響應中斷時,先處理高級中斷,在處理低級中斷,若有多個同級中斷時,則按自然優(yōu)先順序處理。例如當CPU正在處理一個中斷申請時,有出現了另一個優(yōu)先級比它高的中斷請求,這是,CPU就暫停終止對當前優(yōu)先級較低的中斷源的服務,轉去響應優(yōu)先級比它高的中斷請求,并為其服務。待服務結束,再繼續(xù)執(zhí)行原來較低級的中斷服務程序。而當CPU為級別高的終端服務程序服務時,如果級別低的中斷發(fā)出中斷請求,此時CPU是不會響
49、應的,所以為了避免開始和暫停兩個按鍵中的一個出現沒有響應的情況,在進行程序編輯時要注意對中斷的使用,避免出現中斷的嵌套。,合理分配中斷對本設計的實現是至關重要的。另外由于數字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時器T0的定時周期也為1ms,為了使電子秒表暫停鍵按下后CPU能馬上去響應中斷程序,必須將暫停的外部中斷級別高于定時計數器的中斷級別。避免出現CPU執(zhí)行完定時溢出中斷程序后再響應外部中斷程序,影響計時精度。AT89S51的自然優(yōu)先級順序排列如下:外部中斷0 、定時/計數器0 、外部中斷1、定時/計數器1、串行口中斷。 (1)外部中斷0服務程序:外部中斷0服務程序結合外部停
50、止鍵實現數字電子秒表的停止功能,具體流程圖如圖7。當有按鍵按下向CPU發(fā)出外部中斷請求,CPU轉向外部中斷0服務程序執(zhí)行,停止定時器。另外將當前顯示的時間進行一次存儲,存進中間寄存區(qū),最后中斷返回。圖7 外部中斷0服務程序流程圖(2)定時中斷服務程序當定時/計數器T0器溢出后,向CPU發(fā)出中斷請求信號。CPU跳轉到定時中斷程序執(zhí)行,具體流程如圖8。定時中斷程序是一個進位程序,主要負責對1ms的加一。1ms位沒有滿十就跳出中斷程序,返回顯示程序。當1ms位滿十后就對1ms位清零,向10ms位加一,同時檢測10ms位是否滿十,沒有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次
51、類推,最終達到99分59.999秒后歸零,從零開始再次計時。定時/計數器T0工作在方式0下,TH0和TL0組成一個13位的二進制數計數器。單片機開機或復位時,它的值為00H,當T0啟動后,從第一個輸入脈沖開始計時,每來一個脈沖計數加一,即從0000000000000開始計數到1111111111111,再計數一個脈沖時TH0和TL0組成的13位計數器將會從13個1變成13個0,并產生溢出,溢出位將被送到TF0標志位,通過溢出標志產生溢出中斷請求。顯然,T0定時器在方式0下引起一次中斷所允許計數的最多脈沖個數為213 個。但如果定時計數器如果每次都固定從0開始計數,到計滿后,再向CPU發(fā)出溢出中
52、斷請求信號那是毫無意義的。為了使定時計數器在規(guī)定的計數脈沖個數字之后(此時應小于213 個脈沖),向CPU發(fā)出溢出中斷請求,可采取預先向TH0和TL0中放入一個初值X的方法,使計數器以X值為起始值開始計數,即X+1,X+2,直至計數器計滿,從1全變?yōu)?。設需要計數的脈沖個數為Y,則有:X+Y=213在定時方式下:定時時間間隔位t=(213X)*振蕩周期*12現在本設計要求1ms實現一次中斷,選擇定時器T0工作在方式0。所以需要根據以上條件計算出T0的初值。設T0的初值為X,則(213X)*12/12*106 =1*10-3轉換位十六進制數X=7192=1110000011000B即TH0=0E
53、0H(取X的高8位)TL0=18H(取X的低5位)。由于定時1ms只是一個理想化的時間,其中并沒有考慮到中斷后單片機執(zhí)行語句所花的時間。雖然執(zhí)行語句所花的時間很短只有即微秒,但積少成多,數字秒表一秒中要溢出中斷1000次,積累起來誤差就能達到毫秒級,這對于精度到達毫秒級的數字電子秒表來說是很大的誤差。所以要在后期編程時還要將單片機讀程序的時間考慮進去,在對定時器賦初值時將單片機需要執(zhí)行的語句所花的時間加上,這樣就能使數字電子秒表的誤差達到最小。圖8 定時中斷服務程序4.4 系統(tǒng)的程序設計#include#define uchar unsigned char#define uint unsign
54、ed intsbit begin=P11;sbit stop=P12;sbit save=P13;sbit clear=P14;sbit dot=P07;sbit L_A=P37;sbit L_B=P36;sbit L_C=P35;sbit L_D=P34;sbit S_save=P31;sbit S_c=P30;uchar a0,a1,a2,a3,a4,a5,a6;uchar j=0, i=0,S_f=0;uchar code DIS_SEG711=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf;unsigned char store107;void delay(uint b) /0.05s uchar b0,b1; for(b0=0;b0b;b0+) for(b1=0;b1100;b1+); void show(uchar a0,uchar a1,uc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自家租房合同范本
- 2025-2030年中國化學試驗室設備項目投資可行性研究分析報告
- 2025年智慧醫(yī)療項目可行性研究報告
- 2025年中國叉車出租行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略規(guī)劃研究報告
- 環(huán)保彩色釉料項目可行性研究報告立項模板
- 2024山東石墨及碳素制品制造市場前景及投資研究報告
- 中國農資流通服務行業(yè)投資分析及發(fā)展戰(zhàn)略研究咨詢報告
- 2025年消毒折疊袋行業(yè)深度研究分析報告
- 代寫贈與合同范本
- 方餐墊行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 鞋業(yè)-品質培訓
- 中級會計實務所得稅課件
- 起重指揮人員安全操作規(guī)程
- 精神分裂癥的護理PPT
- JJG875-2005數字壓力計檢定規(guī)程
- 中小學生安全教育手冊全面版
- 09《馬克思主義政治經濟學概論(第二版)》第九章
- 公司與個人合伙買車經營協議書
- DDI-能力解構詞典
- 2015-2022年江西電力職業(yè)技術學院高職單招語文/數學/英語筆試參考題庫含答案解析
- 1 聚聚散散 教案人教版美術四年級下冊
評論
0/150
提交評論