畢業(yè)設(shè)計基于單片機的秒表設(shè)計_第1頁
畢業(yè)設(shè)計基于單片機的秒表設(shè)計_第2頁
畢業(yè)設(shè)計基于單片機的秒表設(shè)計_第3頁
畢業(yè)設(shè)計基于單片機的秒表設(shè)計_第4頁
畢業(yè)設(shè)計基于單片機的秒表設(shè)計_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 摘 要數(shù)字電子秒表具有顯示直觀、讀取方便、精度高等優(yōu)點,在計時中廣泛使用。本設(shè)計用單片機組成數(shù)字電子秒表,力求結(jié)構(gòu)簡單、精度高為目標。設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,計時與顯示電路和回零、啟動和停表電路等。主控制器采用單片機AT89S51,顯示電路采用共陰極LED數(shù)碼管顯示計時時間。文中設(shè)計了一種以單片機為控制核心的數(shù)字秒表。該數(shù)字秒表采用C語言開發(fā),通過數(shù)碼管顯示計時結(jié)果。 關(guān)鍵字:AT89S51;數(shù)字秒表;LED數(shù)碼管顯示ABSTRACTDigital electronic stopwatch display intuitive, read the c

2、onvenient, 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 hardware circuit

3、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 digital stopwat

4、ch. The digital stopwatch using C language development, through the digital pipe display the time. Key words:AT89S51 Digital stopwatch The LED digital display 目 錄摘要IABSTRACTII前言IV1緒論11.1單片機的背景11.2 單片機的應(yīng)用領(lǐng)域22總體方案的設(shè)計42.1系統(tǒng)的組成模塊42.2工作原理43系統(tǒng)的硬件電路設(shè)計63.1單片機的選擇63.2  顯示電路的選擇與設(shè)計93.3  按鍵電路的選擇與設(shè)計103.

5、4  時鐘電路的選擇與設(shè)計113.5 復(fù)位電路的選擇與設(shè)計144 系統(tǒng)的軟件電路設(shè)計164.1  程序設(shè)計思想164.2  主程序設(shè)計164.3  中斷程序設(shè)計184.4 系統(tǒng)的程序設(shè)計21結(jié)  論25參考文獻26致謝27附錄28前言秒表計時器是電器制造,工業(yè)自動化控制、國防、實驗室及科研單位理想的計時儀器,它廣泛應(yīng)用于各種繼電器、電磁開關(guān),控制器、延時器、定時器等的時間測試。自首屆現(xiàn)代奧運會在希臘雅典舉辦以來,奧運計時技術(shù)一直在不斷地向前發(fā)展。一百多年過去了,首屆現(xiàn)代奧運會上計時所用的跑表如今換成了一系列高科技計時裝 置,如高速數(shù)碼

6、攝像機、電子觸摸墊、紅外光束、無線應(yīng)答器等等。鑒于當今計時技術(shù)的快速發(fā)展,即便千分之一秒(為眨眼的40倍)的毫微差距,也決定著冠軍的歸屬。在現(xiàn)在的體育競技比賽中,隨著運動員的水平不斷提高,差距也在不斷縮小。有些運動對時間精度的要求也越來越高,有時比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發(fā)展。每一階段的發(fā)展都是和當時的技術(shù)發(fā)明分不開的。1088年,當時我國宋朝的科學(xué)家蘇頌和韓工廉等人制造了水運儀象臺,它是把渾儀、渾象和機械計時器組合起來的裝置。它以水力作為動力來源,具有科學(xué)的擒縱機構(gòu),雖然幾十年后毀于戰(zhàn)亂

7、,但它在世界鐘表史上具有極其重要的意義。1656年,荷蘭的科學(xué)家惠更斯應(yīng)用伽利略的理論設(shè)計了鐘擺,第二年,在他的指導(dǎo)下年輕鐘匠S.Coster制造成功了第一個擺鐘。1675年,他又用游絲取代了原始的鐘擺,這樣就形成了以發(fā)條為動力、以游絲為調(diào)速機構(gòu)的小型鐘,同時也為制造便于攜帶的袋表提供了條件。18世紀期間發(fā)明了各種各樣的擒縱機構(gòu),為袋表的進一步產(chǎn)生與發(fā)展奠定了基礎(chǔ)。20世紀初,尤其是第一次世界大戰(zhàn)的爆發(fā),袋表已經(jīng)不能適應(yīng)作戰(zhàn)軍人的需要,腕表的生產(chǎn)成為大勢所趨。許多新的設(shè)計和技術(shù)也被應(yīng)用在腕表上,成為真正意義上的帶在手腕上的計時工具。緊接著的二戰(zhàn)使腕表的生產(chǎn)量大幅度增加,價格也隨之下降,使普通大

8、眾也可以擁有它。腕表的年代到來了!1998年:建立超冷銫原子鐘,比微微秒又要精確10萬倍。從我國水運儀像臺的發(fā)明到現(xiàn)在各國都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個不同時期的科學(xué)家和鐘表工匠用他們的聰明的智慧和不斷的實踐融合成了一座時間的隧道,同時也為我們勾勒了一條鐘表文化和科技發(fā)展的軌跡。1緒論1.1單片機的背景單片機即單片機微型計算機。用專業(yè)語言講,單片機就是在一塊硅片上集成了微處理器、存儲器及各種輸入輸出接口的芯片。這樣一塊芯片就具有了計算機的屬性,因為被稱為單片機微型計算機,簡稱單片機。單片機的前身叫做單板機,是將CPU芯片、存儲芯片、I/O接口和簡單的I/O設(shè)備等裝

9、配在一快印刷電路板上,在配上監(jiān)控程序,就構(gòu)成一塊單板機。單片機基本用于數(shù)學(xué),后來發(fā)展為單片機?,F(xiàn)在這種單片機的使用領(lǐng)域已十分廣泛,如智能儀表、實時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機,就能起到是產(chǎn)品更新?lián)Q代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”。 現(xiàn)在可以說單片機是百花齊放的時期,世界上各大芯片制造公司都推出了自己的單片機,從8位、16位到32位,數(shù)不勝數(shù),應(yīng)有盡有,它們各具特色,互成互補,為單片機的應(yīng)用提供廣闊的天地??v觀單片機的發(fā)展過程,可以預(yù)示單片機的發(fā)展趨勢 。 1.1.1、低功耗CMOS化 MCS-51系列的8031推出時的功耗達630mW,而現(xiàn)在的單片

10、機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導(dǎo)體工藝)。80C51就采用了HMOS(即高密度金屬氧化物半導(dǎo)體工藝)和CHMOS(互補高密度金屬氧化物半導(dǎo)體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,這些特征,更適合于在要求低功耗,電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。 1.1.2、微型單片化 現(xiàn)在常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、定時電

11、路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。甚至單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。 此外,現(xiàn)在的產(chǎn)品普遍要求體積小、重量輕,這就要求單片機除了功能強和功耗低外,還要求其體積要小。現(xiàn)在的許多單片機都具有多種封裝形式,其中SMD(表面封裝)越來越受歡迎,使得由單片機構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。 1.1.3、主流與多品種共存 現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以80C51為核心的單片機

12、占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的Winbond系列單片機。所以C8051為核心的單片機占據(jù)了半壁江山。而Microchip公司的PIC精簡指令集(RISC)也有著強勁的發(fā)展勢頭,中國臺灣的HOLTEK公司近年的單片機產(chǎn)量與日俱增,與其低價質(zhì)優(yōu)的優(yōu)勢,占據(jù)一定的市場分額。此外還有MOTOROLA公司的產(chǎn)品,日本幾大公司的專用單片機。在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補,相輔相成、共同發(fā)展的道路。1.1.4、大容量、高性能 以往單片機內(nèi)的ROM為1KB4KB,RAM 為64128B。但在需

13、要復(fù)雜控制的場合,該存儲容量是不夠的,必須進行外接擴充。為了適應(yīng)這種領(lǐng)域的要求,須運用新的工藝,使片內(nèi)存儲器大容量化。目前,單片機內(nèi)ROM 最大可達64KB,RAM 最大為2KB。另外單片機進一步改變CPU的性能,加快指令運算的速度和提高系統(tǒng)控制的可靠性。采用精簡指令集(RISC)結(jié)構(gòu)和流水線技術(shù),可以大幅度提高運行速度?,F(xiàn)指令速度最高者已達100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加強了位處理、中斷和定時控制功能。這類單片機的運算速度比標準的單片機高出10 倍以上。由于這類單片機有極高的指令速度,可以使用軟件模擬其I/O 功能,由此引入

14、了虛擬外設(shè)的新概念。 1.2 單片機的應(yīng)用領(lǐng)域單片機改變了我們生活,縱觀我們現(xiàn)在生活的各個領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機上各種儀表的控制,從計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動化過程的實時控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機, 單片機有著廣闊的應(yīng)用前景。目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:1、智能儀表上的應(yīng)用單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀

15、器儀表中,例如精密的測量設(shè)備。2、在工業(yè)控制中的應(yīng)用用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。3、在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,無所不在。4、在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,例如:手機,電話機、列車無線通信。5、單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用單片機在醫(yī)用設(shè)備中的用途亦相當廣泛,例如

16、醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。6、在各種大型電器中的模塊化應(yīng)用某些專用單片機設(shè)計用于實現(xiàn)特定功能,從而在各種電路中進行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機,在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。從無線電世界到單片機世界。本設(shè)計利用AT89S51單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),口作列掃描輸出,P1.1、P1.2、P1.3、P1.

17、4、P3.0、P3.1、RST分別接七個按鈕開關(guān),分別實現(xiàn)開始、暫停、存儲、清除當前數(shù)據(jù)、全部清零和查看上次時間和復(fù)位功能,顯示電路由八位共陰極數(shù)碼管組成。2 總體方案的設(shè)計設(shè)計中包括硬件電路的設(shè)計和系統(tǒng)程序的設(shè)計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器采用單片機AT89S51,顯示電路采用共陰極LED數(shù)碼管顯示計時時間,七個按鍵均采用觸點式按鍵。2.1系統(tǒng)的組成模塊系統(tǒng)總電路是由控制電路,顯示電路,時鐘電路,按鍵電路和復(fù)位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統(tǒng)總電路。系統(tǒng)總電路圖如 附表所示。AT89S51單片機為控制電路的核心部分,

18、各個電路均和單片機相連接,由單片機統(tǒng)籌和協(xié)調(diào)各個電路的運行工作。AT89S51單片機提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩(wěn)定的始終脈沖。復(fù)位電路同晶振電路,單片機設(shè)有一個專用的硬件復(fù)位接口,并設(shè)置為高電平有效。按鍵電路與單片機的端口連接可以由用戶自己設(shè)定,本設(shè)計中軟件復(fù)位鍵和查看鍵分別接單片機的RST和P3.1,均設(shè)為高電平有效。顯示電路由八位數(shù)碼管組成,采用動態(tài)顯示方式,因此有8位段控制端和8位位選控制端,八位段控制接P0口,P0.0P0.7分別控制數(shù)

19、碼顯示管的a、b、c、d、e、f、g、dp顯示,AT89S51的P0口沒有集成上拉電阻,高電平的驅(qū)動能力很弱,所以需要接上拉電阻來提高P0的高電平驅(qū)動能力。八位位控制則由低位到高位分別接到P2.0P2.7口,當P2.0P2.7端口任意一個端口為高電平時,與其相對應(yīng)的數(shù)碼管導(dǎo)通顯示。2.2工作原理本設(shè)計利用AT89S51單片機的定時器/計數(shù)器定時和記數(shù)的原理,使其能精確計時。利用中斷系統(tǒng)使其能實現(xiàn)開始暫停的功能。P0口輸出段碼數(shù)據(jù),口作列掃描輸出,P1.1、P1.2、P1.3、P1.4、P3.0、P3.1、RST分別接七個按鈕開關(guān),分別實現(xiàn)開始、暫停、存儲、清除當前數(shù)據(jù)、全部清零和查看上次時間和

20、復(fù)位功能,電路原理圖設(shè)計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。根據(jù)要求知道秒表設(shè)計主要實現(xiàn)的功能是計時和顯示。因此設(shè)置了七個按鍵和八位數(shù)碼管顯示時間,七個按鍵分別是開始,暫停、存儲、清除當前數(shù)據(jù)、全部清零、復(fù)位和查看上次計時時間按鍵。利用這七個建來實現(xiàn)秒表的全部功能,而八位數(shù)碼管則能顯示最多99分59.999秒的計時。計時采用定時器T0中斷完成,定時溢出中斷周期為1ms,當一處中斷后向CPU發(fā)出溢出中斷請求,每發(fā)出一次中斷請求就對毫秒計數(shù)單元進行加一,達到10次就對十毫秒位進行加一,依次類推,直到99分59.999秒重新復(fù)位。再看按鍵的處理。這七個鍵可以

21、采用中斷的方法,也可以采用掃描的方法來識別。復(fù)位鍵和查看主要功能在于數(shù)值復(fù)位和查詢上次計時時間,對于時間的要求不是很嚴格。而開始和停止鍵則是用于對時間的鎖定,需要比較準確的控制。因此可以對復(fù)位和查看按鍵采取掃描的方式。而對開始和停止鍵采用外部中斷的方式。3系統(tǒng)的硬件電路設(shè)計 3.1單片機的選擇本課題在選取單片機時,充分借鑒了許多成形產(chǎn)品使用單片機的經(jīng)驗,并根據(jù)自己的實際情況,選擇了ATMEL公司的AT89S51。ATMEL公司的89系列單片機以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價格、超強的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP

22、、PLCC、QFP封裝,有民用型、工業(yè)級、汽車級、軍品級等多種溫度等級,是當今世界上性能最好、價格最低、最受歡迎的八位單片機3。AT89S51為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標準的C51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的80C51 相同,下面介紹一下單片機的外部結(jié)構(gòu):AT89S51單片機采用40引腳的雙列直插封裝方式。圖1為引腳排列圖, 40條引腳說明如下:主電源引腳Vss和Vcc  Vss接地  Vcc正常操作時為+5伏電源外接晶振引腳XTAL1和XTAL2  XTAL1內(nèi)部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當采用外部振蕩器

23、時,此引腳接地。  XTAL2內(nèi)部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。圖1 單片機引腳圖控制或與其它電源復(fù)用引腳RST/VPD,ALE/,和/Vpp  RST/VPD  當振蕩器運行時,在此引腳上出現(xiàn)兩個機器周期的高電平(由低到高跳變),將使單片機復(fù)位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內(nèi)部提供備用電源,以保持內(nèi)部RAM中的數(shù)據(jù)。  ALE/正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節(jié)鎖存到外部鎖存器,ALE 引腳以不變的頻率(振蕩器頻率的1/6)周期性地發(fā)出正脈沖信號。因此,

24、它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當訪問外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖,ALE 端可以驅(qū)動(吸收或輸出電流)八個LSTTL電路。對于EPROM型單片機,在EPROM編程期間,此引腳接收編程脈沖(功能)  外部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數(shù)據(jù))期間,在每個機器周期內(nèi)兩次有效。同樣可以驅(qū)動八LSTTL輸入。  /Vpp、/Vpp為內(nèi)部程序存儲器和外部程序存儲器選擇端。當/Vpp為高電平時,訪問內(nèi)部程序存儲器,當/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM型單片機,在EPROM編程期間,此引腳上加21伏EPROM編程

25、電源(Vpp)。輸入/輸出引腳P0.0 - P0.7,P1.0 - P1.7,P2.0 - P2.7,P3.0 - P3.7。  P0口(P0.0 - P0.7)是一個8位漏極開路型雙向I/O口,在訪問外部存儲器時,它是分時傳送的低字節(jié)地址和數(shù)據(jù)總線,P0口能以吸收電流的方式驅(qū)動八個LSTTL負載。  P1口(P1.0 - P1.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載。  P2口(P2.0 - P2.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口,在訪問外部存儲器時,它輸出高8位地址。P2口可以驅(qū)動(吸收或輸出電

26、流)四個LSTTL負載。  P3口(P3.0 - P3.7)是一個帶有內(nèi)部提升電阻的8位準雙向I/O口。能驅(qū)動(吸收或輸出電流)四個LSTTL負載6。AT89S51具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S51可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬

27、件復(fù)位為止。CPU是單片機的核心部件。它由運算器和控制器等部件組成2。(1) 運算器運算器的功能是進行算術(shù)運算和邏輯運算。可以對半字節(jié)(4位)、單字節(jié)等數(shù)據(jù)進行操作。例如能完成加、減、乘、除、加1、減1、BCD碼十進制調(diào)整、比較等算術(shù)運算和與、或、異或、求補、循環(huán)等邏輯操作,操作結(jié)果的狀態(tài)信息送至狀態(tài)寄存器。AT89S51運算器還包含有一個布爾處理器,用來處理位操作。它是以進位標志位C為累加器的,可執(zhí)行置位、復(fù)位、取反、等于1轉(zhuǎn)移、等于0轉(zhuǎn)移、等于1轉(zhuǎn)移且清0以及進位標志位與其他可尋址的位之間進行數(shù)據(jù)傳送等位操作,也能使進位標志位與其他可移位尋址的位之間進行邏輯與、或操作5。(2) 程序計數(shù)器

28、PC程序計數(shù)器PC用來存放即將要執(zhí)行的指令地址,共16位,可對64K程序存儲器直接尋址。執(zhí)行指令時,PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。(3) 令寄存器指令寄存器中存放指令代碼。CPU執(zhí)行指令時,由程序存儲器中讀取的指令代碼送入指令寄存器,經(jīng)譯碼后由定時與控制電路發(fā)出相應(yīng)的控制信號,完成指令功能。本設(shè)計采用ATMEL的AT89S51微處理器,主要基于以下幾個因素:  AT89S51為51內(nèi)核,仿真調(diào)試的軟硬件資源豐富。  性價比高,貨源充足。  功耗低,功能強,靈活性高。  DIP40封裝,體積小,便于產(chǎn)品小型化。  為EEPRO

29、M程序存儲介質(zhì),1000次以上擦寫周期,便于編程調(diào)試。  工作電壓范圍寬:2.7V6V,便于交直流供電。3.2  顯示電路的選擇與設(shè)計對于數(shù)字顯示電路,通常采用液晶顯示或數(shù)碼管顯示。對于一般的段式液晶屏,需要專門的驅(qū)動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠距離觀看;對于具有驅(qū)動電路和單片機接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89S51單片機本身無專門的液晶驅(qū)動接口。而數(shù)碼管作為一種主動顯示器件,具有亮度高、響應(yīng)速度快、防潮防濕性能好、溫度特性極性、價格便宜、易于購買等優(yōu)點,而且有遠距離視覺效果,

30、很適合夜間或是遠距離操作。因此,本設(shè)計的顯示電路采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動態(tài)顯示兩種。由于本設(shè)計需要采用八位數(shù)碼管顯示時間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜。所以采用動態(tài)顯示。動態(tài)顯示是一位一位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管,并送出相應(yīng)的段碼,在另一時刻選通另一位數(shù)碼管,并送出相應(yīng)的段碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將

31、要顯示的字符,雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時顯示的感覺。數(shù)碼顯示管分為共陽數(shù)碼管和共陰數(shù)碼管兩種,共陰極數(shù)碼管的8個發(fā)光二極管的陽極(二極管正端)連接在一起,通常,公共陰極接高電平(一般接電源),其它管腳接段驅(qū)動電路輸出端。當某段驅(qū)動電路的輸出端為低電平時,則該端所連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。共陰極數(shù)碼管的8個發(fā)光二極管的陰極(二極管負端)連接在一起,通常,公共陰極接低電平(一般接地),其

32、它管腳接段驅(qū)動電路輸出端,當某段驅(qū)動電路的輸出端為高電平時,則該端所連接的字段導(dǎo)通并點亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時,要求段驅(qū)動電路能提供額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來確定相應(yīng)的限流電阻。本設(shè)計采用共陰極數(shù)碼顯示管做顯示電路,數(shù)碼管引腳圖如圖2所示:圖2數(shù)碼管引腳圖 由于采用的是共陰的數(shù)碼顯示管,所以只要數(shù)碼管的a、b、c、d、e、f、g、h引腳為高電平,那么其對應(yīng)的二極管就會發(fā)光,使數(shù)碼顯示管顯示09的編碼見表1。表1 共陰極數(shù)碼顯示管字型代碼字型共陰極代碼字型共陰極代碼03FH56DH106H67DH25BH707H34FH87FH466H96

33、FH動態(tài)顯示電路由顯示塊、字形碼驅(qū)動模塊、字位驅(qū)動模塊三部分組成。圖中,8個數(shù)碼管的8段段選線分別與外接上拉電阻的單片機P0口對應(yīng)相連,而8個數(shù)碼管的位控制端則和單片機的P2口相連。單片機的P2.0P2.7口則分別對應(yīng)數(shù)碼顯示管的最低位到最高位,另外數(shù)碼管顯示是采用動態(tài)顯示。由于數(shù)碼管是有P0口來驅(qū)動,它內(nèi)部沒有上拉電阻,作為輸出口時驅(qū)動能力比較弱,不能點亮數(shù)碼顯示管,因此P0口必須接上拉電阻來提高驅(qū)動能力。另外一位共陰數(shù)碼管的驅(qū)動電流一般為20mA左右,如果電流太大容易造成數(shù)碼管損壞,所以也需要根據(jù)電源的電壓值來確定上拉電阻的大小。如果電阻過小,勢必會形成灌電流過大,造成單片機IO的損壞,如

34、果電阻過大,那么對拉電流沒有太大的影響。電源供電電壓為5V,當上拉電阻選用220電阻時灌電流為22mA。不會損壞單片機的I/O口,同時也可以為數(shù)碼顯示管起到限制電流的保護作用。3.3  按鍵電路的選擇與設(shè)計本設(shè)計中有七個按鍵,分別實現(xiàn)開始、暫停、存儲、清除當前數(shù)據(jù)、查看、全部清零復(fù)位功能。這七個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。對于復(fù)位和查看鍵,主要功能在于數(shù)值復(fù)位和對上次計時時間的查看,對于時間的要求不是很嚴格,而開始和暫停鍵主要用于時間的鎖定,需要比較準確的控制。因此可以考慮,對復(fù)位鍵和查看鍵采用查詢的方式,而對于開始和暫停鍵采用外部中斷。七個按鍵均采用低電平有效

35、。當按鍵沒有按下時,單片機的I/O口直接連接電源,因此需要接上拉電阻來進行限流,本設(shè)計中選取阻值為2k 的電阻作為上拉電阻,根據(jù)計算可知此時的灌電流為2.5mA,查看AT89S51的資料得知次電流在安全范圍內(nèi),符合安全設(shè)計要求。按鍵電路中由于采用了外部中斷,所以需要用到P3口的第二功能。P3口引腳的第二功能如表2:表2 P3口引腳第二功能表P3口引腳特殊功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外部中斷0請求輸入端)P3.3INT1(外部中斷1請求輸入端)P3.4T0(定時器/計數(shù)器0計數(shù)脈沖輸入端)P3.5T1(定時器/計數(shù)器1計數(shù)脈沖輸入端)P3.6WR

36、(片外數(shù)據(jù)存儲器寫選通信號輸出端)P3.7RD(片內(nèi)數(shù)據(jù)存儲器讀選通信號輸出端)3.4  時鐘電路的選擇與設(shè)計單片機的時鐘信號用來提供單片機內(nèi)各種微操作的時間基準,AT89S51片內(nèi)設(shè)有一個由反向放大器所構(gòu)成的振蕩電路,XTAL1和 XTAL2分別為振蕩電路的輸入和輸出端,AT89S51單片機的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式與外部振蕩方式。外部方式的時鐘很少用,若要用時,只要將XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。時鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個兩相時鐘信號P1和P2供單片機使用

37、。P1在每一個狀態(tài)S的前半部分有效,P2在每個狀態(tài)的后半部分有效。本設(shè)計采用的內(nèi)部振蕩方式,內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路中使用較多。本設(shè)計系統(tǒng)的時鐘電路如圖3所示。只要按照圖3所示電路進行設(shè)計連接就能使系統(tǒng)可靠起振并能穩(wěn)定運行。圖中,電容器C1 、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為533pF。但在時鐘電路的實際應(yīng)用中一定要注意正確選擇其大小,并保證電路的對稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數(shù)盡可能低。本設(shè)計中采用大小為30pF的電容和12MHz的晶振8。圖3 內(nèi)部振蕩電路(4) 時序AT89S51典型的指令周期(執(zhí)行一條指令

38、的時間稱為指令周期)為一個機器周期,一個機器周期由六個狀態(tài)(十二振蕩周期)組成。每個狀態(tài)又被分成兩個時相P1和P2。所以,一個機器周期可以依次表示為S1P1,S1P2,S6P1,S6P2。圖4  AT89S51時序圖4給出了AT89S51單片機的取指和執(zhí)行指令的定時關(guān)系。這些內(nèi)部時鐘信號不能從外部觀察到,所用XTAL2振蕩信號作參考。在圖中可看到,低8位地址的鎖存信號ALE在每個機器周期中兩次有效:一次在S1P2與S2P1期間,另一次在S4P2與S5P1期間。對于單周期指令,當操作碼被送入指令寄存器時,便從S1P2開始執(zhí)行指令。如果是雙字節(jié)單機器周期指令,則在同一機器周期的S4期間讀

39、入第二個字節(jié),若是單字節(jié)單機器周期指令,則在S4期間仍進行讀,但所讀的這個字節(jié)操作碼被忽略,程序計數(shù)器也不加1,在S6P2結(jié)束時完成指令操作。圖4的(a)和(b)給出了單字節(jié)單機器周期和雙字節(jié)單機器周期指令的時序。AT89S51指令大部分在一個機器周期完成。乘(MUL)和除(DIV)指令是僅有的需要兩個以上機器周期的指令,占用4個機器周期。對于雙字節(jié)單機器周期指令,通常是在一個機器周期內(nèi)從程序存儲器中讀入兩個字節(jié),唯有MOVX指令例外。MOVX是訪問外部數(shù)據(jù)存儲器的單字節(jié)雙機器周期指令。在執(zhí)行MOVX指令期間,外部數(shù)據(jù)存儲器被訪問且被選通時跳過兩次取指操作。圖4中(c)給出了一般單字節(jié)雙機器周

40、期指令的時序9。3.5 復(fù)位電路的選擇與設(shè)計關(guān)于單片機的置位和復(fù)位,都是為了把電路初始化到一個確定的狀態(tài),一般來說,單片機復(fù)位電路作用是把一個例如狀態(tài)機初始化到空狀態(tài),而在單片機內(nèi)部,復(fù)位的時候單片機是把一些寄存器以及存儲設(shè)備裝入廠商預(yù)設(shè)的一個值,復(fù)位是一個很重要的操作方式。但單片機本身是不能自動進行復(fù)位的,必須配合相應(yīng)的外部電路才能實現(xiàn)。當AT89S51單片機的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個機器周期以上的高電平時,單片機就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序。因此要求單片機復(fù)位后能脫離復(fù)位狀態(tài)。而本系統(tǒng)選用的是12MHz的晶振,因此一個機

41、器周期為1s,那么復(fù)位脈沖寬度最小應(yīng)為2s。在實際應(yīng)用系統(tǒng)中,考慮到電源的穩(wěn)定時間,參數(shù)漂移,晶振穩(wěn)定時間以及復(fù)位的可靠性等因素,必須有足夠的余量。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位、手動復(fù)位。上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作。AT89S51單片機的上電復(fù)位POR(Power On Reset)實質(zhì)上就是上電延時復(fù)位,也就是在上電延時期間把單片機鎖定在復(fù)位狀態(tài)上。在單片機每次初始加電時,首先投入工作的功能部件是復(fù)位電路。復(fù)位電路把單片機鎖定在復(fù)位狀態(tài)上并且維持一個延時(記作TRST),以便給予電源電壓從上升到穩(wěn)定的一個等待時間;在電源電壓穩(wěn)定之后,再插入一個延時,給予

42、時鐘振蕩器從起振到穩(wěn)定的一個等待時間;在單片機開始進入運行狀態(tài)之前,還要至少推遲2個機器周期的延時。上述一系列的延時,都是利用在單片機RST引腳上外接一個RC支路的充電時間而形成的。典型復(fù)位電路,其中的阻容值是原始手冊中提供的。在經(jīng)歷了一系列延時之后,單片機才開始按照時鐘源的工作頻率,進入到正常的程序運行狀態(tài)。在電源電壓以及振蕩器輸出信號穩(wěn)定之后,又等待了一段較長的延時才釋放RST信號,使得CPU脫離復(fù)位鎖定狀態(tài);而RST信號一旦被釋放,立刻在ALE引腳上就可檢測到持續(xù)的脈沖信號8。由于標準AT89S51的復(fù)位邏輯相對簡單,復(fù)位源只有RST一個(相對新型單片機來說,復(fù)位源比較單一),因此各種原

43、因所導(dǎo)致的復(fù)位活動以及復(fù)位狀態(tài)的進入,都要依靠在外接引腳RST上施加一定時間寬度的高電平信號來實現(xiàn)。標準AT89S51不僅復(fù)位源比較單一,而且還沒有設(shè)計內(nèi)部上電復(fù)位的延時功能,因此必須借助于外接阻容支路來增加延時環(huán)節(jié),其實,外接電阻R還是可以省略的,理由是一些CMOS單片機芯片內(nèi)部存在一個現(xiàn)成的下拉電阻Rrst。例如,AT89系列的Rrst阻值約為50200 k。在每次單片機斷電之后,須使延時電容C上的電荷立刻放掉,以便為隨后可能在很短的時間內(nèi)再次加電作好準備。否則,在斷電后C還沒有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應(yīng)有的延遲功能。手動復(fù)位要求在電源接通的條件下,在單片機

44、運行期間,如果發(fā)生死機,用按鈕開關(guān)操作使單片機復(fù)位。單片機要完成復(fù)位,必須向復(fù)位端輸出并持續(xù)兩個機器周期以上的高電平,從而實現(xiàn)復(fù)位操作。本設(shè)計采用上電且開關(guān)復(fù)位電路,如圖5所示上電后,由于電容充電,使RST持續(xù)一段高電平時間。當單片機已在運行之中時,按下復(fù)位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關(guān)復(fù)位的操作。通常選擇C=1030F,本設(shè)計采用的電容值為10F的電容和電阻為4.7K的電阻。圖5 單片機復(fù)位電路4 系統(tǒng)的軟件電路設(shè)計4.1  程序設(shè)計思想本設(shè)計采用了C語言編寫,C語言由于采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡

45、化了編程過程。C語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應(yīng),基本保留了機器語言的靈活性。使用C語言能面向機器并較好地發(fā)揮機器的特性,得到質(zhì)量較高的程序。C語言的特點:(1).面向機器的低級語言,通常是為特定的計算機或系列計算機專門設(shè)計的。(2).保持了機器語言的優(yōu)點,具有直接和簡捷的特點。(3).可有效地訪問、控制計算機的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等。(4).目標代碼簡短,占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計語言。(5).經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛。在程序設(shè)計過程中,為了有效地完成任務(wù),把所要完成的任務(wù)精心的分割成若干個相互獨立但相互

46、又仍可有聯(lián)系的任務(wù)模塊,這些任務(wù)模塊使得任務(wù)變得相對單純,對外的數(shù)據(jù)交換相對簡單,容易編寫,容易檢測,容易閱讀和維護。這種程序設(shè)計思想稱為模塊化程序設(shè)計思想。模塊化結(jié)構(gòu)程序的設(shè)計,可以使系統(tǒng)軟件便于調(diào)試與優(yōu)化,也使其他人更好地理解和閱讀系統(tǒng)的程序設(shè)計。因此,本醫(yī)院病床呼叫系統(tǒng)在軟件的設(shè)計上,運用了模塊化程序的結(jié)構(gòu)對軟件進行設(shè)計,使得程序變得更加直觀易懂。程序的主要模塊有:主程序、顯示程序、定時溢出中斷服務(wù)程序、外部中斷服務(wù)程序。4.2  主程序設(shè)計本系統(tǒng)程序主要模塊由主程序、定時中斷服務(wù)程序、外部中斷0服務(wù)程序組成。其中主程序是整個程序的主體??梢詫Ω鱾€中斷程序進行調(diào)用。協(xié)調(diào)各個子程

47、序之間的聯(lián)系。系統(tǒng)(上電)復(fù)位后,進入主程序,主程序流程圖如圖6。首先對系統(tǒng)進行初始化,包括設(shè)置各入口地址、中斷的開啟、對各個數(shù)據(jù)緩存區(qū)清“0”、賦定時器初值,初始化完畢后,就進入數(shù)碼管顯示程序。數(shù)碼管顯示程序?qū)︼@示緩存區(qū)內(nèi)的數(shù)值進行調(diào)用并在數(shù)碼管上進行動態(tài)顯示。顯示一次就對各個按鍵進行一次掃描,查詢復(fù)位鍵RST是否按下,當復(fù)位鍵按下后,程序返回開始,重新對系統(tǒng)進行初始化。當沒有按下復(fù)位鍵時,程序則掃描各個接口按鍵,若沒有按下則返回顯示程,不斷地調(diào)用顯示緩存區(qū)的數(shù)據(jù)進行顯示。使用戶能清楚的看到當前電子秒表所記錄的時間。當查詢到有按鍵按下后則跳轉(zhuǎn)到另外一段顯示程序并調(diào)用最紅緩存區(qū)的數(shù)據(jù)進行顯示,

48、此時顯示的時間即為上一次計時的時間。與此同時,在按鍵按下后單片機執(zhí)行顯示程序的同時也在對當前按鍵進行掃描,當該按鍵斷開后立即跳轉(zhuǎn)回之前的顯示程序顯示當前的計時時間。在主程序中還進行了賦寄存區(qū)的初始值、設(shè)置定時器初值以及開啟外部中斷等操作,當定時時間到后就轉(zhuǎn)去執(zhí)行定時中斷程序。當外部中斷有請求則去執(zhí)行外部中斷服務(wù)程序。并在執(zhí)行完后返回主程序。開始數(shù)碼顯示賦初始值其他按鍵是否按下否按下RST鍵是否按下調(diào)用緩存數(shù)據(jù)進行顯示按鍵是否抬起是否否是是否圖6 主程序流程圖4.3  中斷程序設(shè)計現(xiàn)在方案中采用了一個中斷,外部中斷INT0。CPU在響應(yīng)中斷時,先處理高級中斷,在處理低級中斷,若有多個同

49、級中斷時,則按自然優(yōu)先順序處理。例如當CPU正在處理一個中斷申請時,有出現(xiàn)了另一個優(yōu)先級比它高的中斷請求,這是,CPU就暫停終止對當前優(yōu)先級較低的中斷源的服務(wù),轉(zhuǎn)去響應(yīng)優(yōu)先級比它高的中斷請求,并為其服務(wù)。待服務(wù)結(jié)束,再繼續(xù)執(zhí)行原來較低級的中斷服務(wù)程序。而當CPU為級別高的終端服務(wù)程序服務(wù)時,如果級別低的中斷發(fā)出中斷請求,此時CPU是不會響應(yīng)的,所以為了避免開始和暫停兩個按鍵中的一個出現(xiàn)沒有響應(yīng)的情況,在進行程序編輯時要注意對中斷的使用,避免出現(xiàn)中斷的嵌套。,合理分配中斷對本設(shè)計的實現(xiàn)是至關(guān)重要的。另外由于數(shù)字式電子秒表的最小精度位1ms,屬于高精度電子秒表。定時器T0的定時周期也為1ms,為了

50、使電子秒表暫停鍵按下后CPU能馬上去響應(yīng)中斷程序,必須將暫停的外部中斷級別高于定時計數(shù)器的中斷級別。避免出現(xiàn)CPU執(zhí)行完定時溢出中斷程序后再響應(yīng)外部中斷程序,影響計時精度。AT89S51的自然優(yōu)先級順序排列如下:外部中斷0 、定時/計數(shù)器0 、外部中斷1、定時/計數(shù)器1、串行口中斷  。                        &#

51、160;       (1)外部中斷0服務(wù)程序:外部中斷0服務(wù)程序結(jié)合外部停止鍵實現(xiàn)數(shù)字電子秒表的停止功能,具體流程圖如圖7。當有按鍵按下向CPU發(fā)出外部中斷請求,CPU轉(zhuǎn)向外部中斷0服務(wù)程序執(zhí)行,停止定時器。另外將當前顯示的時間進行一次存儲,存進中間寄存區(qū),最后中斷返回。圖7 外部中斷0服務(wù)程序流程圖(2)定時中斷服務(wù)程序當定時/計數(shù)器T0器溢出后,向CPU發(fā)出中斷請求信號。CPU跳轉(zhuǎn)到定時中斷程序執(zhí)行,具體流程如圖8。定時中斷程序是一個進位程序,主要負責(zé)對1ms的加一。1ms位沒有滿十就跳出中斷程序,返回顯示程序。當1ms位滿十后

52、就對1ms位清零,向10ms位加一,同時檢測10ms位是否滿十,沒有滿十就跳出中斷程序,返回顯示程序。如果滿十就向100ms位加一,依次類推,最終達到99分59.999秒后歸零,從零開始再次計時。13 個。但如果定時計數(shù)器如果每次都固定從0開始計數(shù),到計滿后,再向CPU發(fā)出溢出中斷請求信號那是毫無意義的。為了使定時計數(shù)器在規(guī)定的計數(shù)脈沖個數(shù)字之后(此時應(yīng)小于213  個脈沖),向CPU發(fā)出溢出中斷請求,可采取預(yù)先向TH0和TL0中放入一個初值X的方法,使計數(shù)器以X值為起始值開始計數(shù),即X+1,X+2,直至計數(shù)器計滿,從1全變?yōu)?。設(shè)需要計數(shù)的脈沖個數(shù)為Y,則有:X+Y=213在定時方

53、式下:定時時間間隔位t=(213X)*振蕩周期*12現(xiàn)在本設(shè)計要求1ms實現(xiàn)一次中斷,選擇定時器T0工作在方式0。所以需要根據(jù)以上條件計算出T0的初值。設(shè)T0的初值為X,則(213X)*12/12*106 =1*10-3。由于定時1ms只是一個理想化的時間,其中并沒有考慮到中斷后單片機執(zhí)行語句所花的時間。雖然執(zhí)行語句所花的時間很短只有即微秒,但積少成多,數(shù)字秒表一秒中要溢出中斷1000次,積累起來誤差就能達到毫秒級,這對于精度到達毫秒級的數(shù)字電子秒表來說是很大的誤差。所以要在后期編程時還要將單片機讀程序的時間考慮進去,在對定時器賦初值時將單片機需要執(zhí)行的語句所花的時間加上,這樣就能使數(shù)字電子秒

54、表的誤差達到最小。圖8 定時中斷服務(wù)程序4.4 系統(tǒng)的程序設(shè)計#include<reg52.h>#define uchar unsigned char#define uint unsigned 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,

55、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;b0<b;b0+) for(b1=0;b1<100;b1+); void show(uchar a0,uchar a1,uchar f) P2=0xff;P0=DIS_SEG7a0;if(f=1) dot=1;P2=a1;delay(1); void main() TMOD=0X01; TL0=(65536-1000)%256; TH0=(65536-1000)/256; ET0=1; TR0=0; EX0=1; IT0=0; EA=1

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論