課程設計 多功能秒表報告_第1頁
課程設計 多功能秒表報告_第2頁
課程設計 多功能秒表報告_第3頁
課程設計 多功能秒表報告_第4頁
課程設計 多功能秒表報告_第5頁
已閱讀5頁,還剩27頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

武夷學院課程設計(論文)基于單片機的多功能秒表設計院系:電子工程系專業(班級):09電信(一)班姓名:鞠建龍學號:20094081009指導教師:邵海龍職稱:助教完成日期:2011年12月1日武夷學院教務處制摘要近年來隨著科技的飛速發展,單片機的應用正在不斷的走向深入。本文闡述了基于單片機的多功能電子秒表設計。本設計主要特點是具有倒計時功能,還可以按圈計時,而且誤差在0.01,,是各種體育競賽的必備設備之一,另外硬件部分設置了查看按鍵。本設計的數字電子秒表系統采用AT89C52單片機為中心器件,利用其定時器/計數器定時和記數的原理,結合顯示電路、數碼管以及外部中斷電路來設計計時器。將軟、硬件有機地結合起來,使得系統能夠實現8位LED顯示,顯示時間24小時內,計時精度為0.01秒,能正確地進行計時,同時能記錄一次時間,并在下一次計時后對上一次計時時間進行查詢。其中軟件系統采用C語言編寫程序,包括顯示程序,定時中斷服務延時程序等,并在KEIL中調試運行,硬件系統利用PROTEUS強大的功能來實現,簡單切易于觀察,在仿真中就可以觀察到實際的工作狀態。關鍵字:單片機;數字電子秒表;仿真AbstractWiththerapiddevelopmentofscienceandtechnologyinrecentyears,SCMapplicationsareconstant-depthmanner.Inthispaper,basedonsinglechipdesignofdigitalelectronicstopwatch.Themaincharacteristicsofthisdesigntimingaccuracyof0.01s,tosolvethetraditionalresultofalackaccuracyduetotimingerrorsandunfair,andisavarietyofsportscompetitions,oneoftheessentialequipment.InadditionthehardwarepartofthesetViewbuttononthestopwatchcanbethelasttimetosavetimeforuserqueries.Thedesignofthemulti-functionstopwatchsystemusesSTC89C52microcontrollerasthecentraldevice,anduseitstimer/countertimingandthecountprinciples,combinedwithdisplaycircuit,LEDdigitaltube,aswellastheexternalinterruptcircuittodesignatimer.Thesoftwareandhardwaretogetherorganically,allowingthesystemtoachievetwoLEDdisplayshowsthetimewithin24hours,Timingaccuracyof0.01seconds,Beabletocorrectlytimeatthesametimetorecordatime,andthenexttimeafterthelasttimethetimetosearch.automaticallyaddedasecondinwhichsoftwaresystemsusingassemblylanguageprogramming,includingthedisplayprogram,timing,interruptservice,externalinterruptserviceroutine,delayprocedures,keyconsumershakingprocedures,andWAVEinthecommissioning,operation,hardwaresystemusestoachievePROTEUSpowerful,simpleandeasytoobservethecutinthesimulationcanbeobservedontheactualworkingcondition.Keyword:LEDdisplay;High-precisionstopwatch;STC89C52目錄TOC\o"1-5"\h\z1硬件設計71.1總體方案的設計71.2單片機的選擇81.3顯示電路的選擇與設計101.4按鍵電路的選擇與設計101.5時鐘電路的選擇與設計111.6系統總電路的設計122軟件設計122.1程序設計思想132.2主程序設計132.3中斷程序設計143電子秒表的安裝與調試153.1軟件的仿真與調試153.2硬件的安裝與調試15致謝16附錄Ac語言程序17附錄B電路原理圖33基于單片機的多功能秒表設計一.引言秒表計時器是電器制造,工業自動化控制、國防、實驗室及科研單位理想的計時儀器,它廣泛應用于各種繼電器、電磁開關,控制器、延時器、定時器等的時間測試。奧運男子百米飛人大戰中,牙買加飛人博爾特以9秒69的成績奪得冠軍。而博爾特沖過終點的瞬間,熒屏顯示其成績為9秒68。相差的這個0.01秒,系由電子計時系統確認。奧運會男子100米蝶泳決賽上,美國選手菲爾普斯以50秒58的成績驚險奪冠,距離“八金夢想”僅一步之遙。塞爾維亞選手查維奇以50.59秒獲得銀牌,只比菲爾普斯慢0.01秒。這種細微的差距,即使是現場大屏幕用經典超慢鏡頭回放,也無法分辨。2004年8月28日15點15分,中國選手孟關良/楊文軍在雅典奧運會男子500米劃艇決賽中,以1分40秒278的成績獲得中國在雅典奧運會的第28金。這是中國皮劃艇項目的第一枚奧運金牌,也是中國水上項目在歷屆奧運會上所獲得的第一枚金牌。孟關良/楊文軍的成績比獲得銀牌的古巴選手只快了0.072秒,以至于兩人在奪冠之后還不敢相信。自首屆現代奧運會在希臘雅典舉辦以來,奧運計時技術一直在不斷地向前發展。一百多年過去了,首屆現代奧運會上計時所用的跑表如今換成了一系列高科技計時裝置,如高速數碼攝像機、電子觸摸墊、紅外光束、無線應答器等等。鑒于當今計時技術的快速發展,即便千分之一秒(為眨眼的40倍)的毫微差距,也決定著冠軍的歸屬。在現在的體育競技比賽中,隨著運動員的水平不斷提高,差距也在不斷縮小。有些運動對時間精度的要求也越來越高,有時比賽冠亞軍之間的差距只有幾毫秒,因此就需要高精度的秒表來記錄成績。有關計時鐘表的發展歷史,大致可以分為三個演變階段。一、從大型鐘向小型鐘演變。二、從小型鐘向袋表過渡。三、從袋表向腕表發展。每一階段的發展都是和當時的技術發明分不開的。1088年,當時我國宋朝的科學家蘇頌和韓工廉等人制造了水運儀象臺,它是把渾儀、渾象和機械計時器組合起來的裝置。它以水力作為動力來源,具有科學的擒縱機構,雖然幾十年后毀于戰亂,但它在世界鐘表史上具有極其重要的意義。1656年,荷蘭的科學家惠更斯應用伽利略的理論設計了鐘擺,第二年,在他的指導下年輕鐘匠S.Coster制造成功了第一個擺鐘。1675年,他又用游絲取代了原始的鐘擺,這樣就形成了以發條為動力、以游絲為調速機構的小型鐘,同時也為制造便于攜帶的袋表提供了條件。18世紀期間發明了各種各樣的擒縱機構,為袋表的進一步產生與發展奠定了基礎。英國人GeorgeGraham在1726年完善了工字輪擒縱機構,它和之前發明的垂直放置的機軸擒縱機構不同,所以使得袋表機芯相對變薄。20世紀初,尤其是第一次世界大戰的爆發,袋表已經不能適應作戰軍人的需要,腕表的生產成為大勢所趨。許多新的設計和技術也被應用在腕表上,成為真正意義上的帶在手腕上的計時工具。緊接著的二戰使腕表的生產量大幅度增加,價格也隨之下降,使普通大眾也可以擁有它。腕表的年代到來了!1998年:建立超冷銫原子鐘,比微微秒又要精確10萬倍。從我國水運儀像臺的發明到現在各國都在研制的原子鐘這幾百年的鐘表演變過程中,我們可以看到,各個不同時期的科學家和鐘表工匠用他們的聰明的智慧和不斷的實踐融合成了一座時間的隧道,同時也為我們勾勒了一條鐘表文化和科技發展的軌跡。此次設計的秒表主要實現的功能是倒計時、計時和時鐘顯示。因此設置了六個按鍵和八位數碼管顯示時間,六個按鍵中,按鍵4是模式調節:模式1為倒計時模式,按圈計時模式和時鐘模式;按鍵2為:要調節的位段的選擇,可以選擇小時,分鐘,秒;按鍵1和按鍵3分別為調節加和減;按鍵5為倒計時啟動,調節規定的時間,按下按鍵五啟動倒計時;按鍵6為模式2下按圈計時模式的啟動鍵,當按第一下時是開始計時,第二下記錄第一組數據,繼續按依次記錄6組,當記錄完6組后,繼續點擊則依次顯示六組的時間,,在繼續按按鍵6則復位到0,然后依次循環。利用這六個建來實現秒表的全部功能,而八個位數碼管則能顯示最多24小時的計時。本文主要內容包括三部分:第一部分介紹硬件部分設計思路及方案;第二部分介紹了軟件部分的設計思路和設計;最后一部分則是整個系統的安裝與調試過程。1硬件設計1.1總體方案的設計數字電子秒表具有顯示直觀、讀取方便、精度高等優點,在計時中廣泛使用。本設計用單片機組成數字電子秒表,力求結構簡單、精度高為目標。設計中包括硬件電路的設計和系統程序的設計。其硬件電路主要有主控制器,時鐘功能,倒計時,計時與顯示電路和回零、啟動和停表電路等。主控制器采用單片機AT89C52,顯示電路采用共陰極LED數碼管顯示計時時間。本設計利用AT89C52單片機的定時器/計數器定時和記數的原理,使其能精確計時。利用中斷系統使其能實現開始暫停的功能。P0口輸出段碼數據,P2口作列掃描輸出,PM7,P1A6,P1A5,P1A4,P1A3口接5個按鈕開關,分別實現調節加、位選擇、調節減,倒計時啟動和記圈時間啟動。電路原理圖設計最基本的要求是正確性,其次是布局合理,最后在正確性和布局合理的前提下力求美觀。硬件電路圖按照圖1.1進行設計。圖1.1數字秒表顯示硬件電路基本原理圖根據要求知道秒表設計主要實現的功能是倒計時、計時和時鐘顯示。因此設置了六個按鍵和八位數碼管顯示時間,六個按鍵中,按鍵4是模式調節:模式1為倒計時模式,按圈計時模式和時鐘模式;按鍵2為:要調節的位段的選擇,可以選擇小時,分鐘,秒;按鍵1和按鍵3分別為調節加和減;按鍵5為倒計時啟動;按鍵6為模式2下按圈計時模式的啟動鍵,當按第一下時是開始計時,第二下記錄第一組數據,繼續按依次記錄6組,當記錄完6組后,繼續點擊則依次顯示六組的時間,在繼續按按鍵6則復位到0。利用這六個建來實現秒表的全部功能,而八個位數碼管則能顯示最多的計時。計時采用定時器T0中斷完成,定時溢出中斷周期為50ms,當一處中斷后向CPU發出溢出中斷請求,每發出一次中斷請求就對毫秒計數單元進行加一,達到2次就對十毫秒位進行加一,就是進位0.01,然后按時鐘的取值范圍進行進位。再看按鍵的處理。這六個鍵可以采用中斷的方法,也可以采用掃描的方法來識別。設計中包括硬件電路的設計和系統程序的設計。其硬件電路主要有主控制器,顯示電路和回零、啟動、查看、停表電路等。主控制器采用單片機AT89C52,顯示電路采用共陰極LED數碼管顯示計時時間,六個按鍵均采用觸點式按鍵。1.2單片機的選擇本課題在選取單片機時,充分借鑒了許多成形產品使用單片機的經驗,并根據自己的實際情況,選擇了ATMEL公司的AT89S51。ATMEL公司的89系列單片機以其卓越的性能、完善的兼容性、快捷便利的電擦寫操作,低廉的價格、超強的加密功能,完全替代87C51/62和8751/52,低電壓、低電源、低功耗,有DIP、PLCC、QFP封裝,有民用型、工業級、汽車級、軍品級等多種溫度等級,是當今世界上性能最好、價格最低、最受歡迎的八位單片機[3]。AT89C52P為40腳雙列直插封裝的8位通用微處理器,采用工業標準的C51內核,在內部功能及管腳排布上與通用的8xc52相同,其主要用于會聚調整時的功能控制。功能包括對會聚主IC內部寄存器、數據RAM及外部接口等功能部件的初始化,會聚調整控制,會聚測試圖控制,紅外遙控信號IR的接收解碼及與主板CPU通信等。單片機的外部結構AT89S52單片機采用40引腳的雙列直插封裝方式。圖1.2為引腳排列圖,40條引腳說明如下:主電源引腳Vss和VccVss接地Vcc正常操作時為+5伏電源外接晶振引腳XTAL1和XTAL2XTAL1內部振蕩電路反相放大器的輸入端,是外接晶體的一個引腳。當采用外部振蕩器時,此引腳接地。XTAL2內部振蕩電路反相放大器的輸出端。是外接晶體的另一端。當采用外部振蕩器時,此引腳接外部振蕩源。2345678g102345678g1011121314151617181920P1.0Pl.lPl.2Pl.3Pl.4Pl.5Pl.6Pl.7RST/VPDBJCDP3.0TXDP3.1KT0P3.2miP3.3T0P3.4銅2KBP3.7XTAL2XTAL1VSSV'CCP0,,0P0,,1P0,,2P0,.3P0,.4P0,.540ATCO9S53P0.6P0.7EAWPALEffROGPSENP2.7P2.6單片機引腳圖:養P2.3P2.2P2.1P2.039383736353433323130292827262524232221控制或與其它電源復用引腳RST/VPD,ALE/PROG,PSEN和EA/VppRST/VPD當振蕩器運行時,在此引腳上出現兩個機器周期的高電平(由低到高跳變),將使單片機復位在Vcc掉電期間,此引腳可接上備用電源,由VPD向內部提供備用電源,以保持內部RAM中的數據。ALE/PROG正常操作時為ALE功能(允許地址鎖存)提供把地址的低字節鎖存到外部鎖存器,ALE引腳以不變的頻率(振蕩器頻率的1/6)周期性地發出正脈沖信號。因此,它可用作對外輸出的時鐘,或用于定時目的。但要注意,每當訪問外部數據存儲器時,將跳過一個ALE脈沖,ALE端可以驅動(吸收或輸出電流)八個LSTTL電路。對于EPROM型單片機,在EPROM編程期間,此引腳接收編程脈沖(PROG功能)PSE^部程序存儲器讀選通信號輸出端,在從外部程序存儲取指令(或數據)期間,PSEN在每個機器周期內兩次有效。PSEN同樣可以驅動八LSTTL輸入。④EA/Vpp、EA/Vpp為內部程序存儲器和外部程序存儲器選擇端。當EA/Vpp為高電平時,訪問內部程序存儲器,當EA/Vpp為低電平時,則訪問外部程序存儲器。對于EPROM型單片機,在EPROM編程期間,此引腳上加21伏EPROM編程電源(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口,在訪問外部存儲器時,它是分時傳送的低字節地址和數據總線,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負載⑹。AT89C52具有以下標準功能:8k字節Flash,256字節RAM,32位I/O口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89C52可降至0Hz靜態邏輯操作,支持2種軟件可選擇節電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。CPU是單片機的核心部件。它由運算器和控制器等部件組成⑵本設計采用ATMEL的AT89C52微處理器,主要基于以下幾個因素:AT89C52為51內核,仿真調試的軟硬件資源豐富。性價比高,貨源充足。功耗低,功能強,靈活性高。DIP40封裝,體積小,便于產品小型化。為EEPROM程序存儲介質,1000次以上擦寫周期,便于編程調試。工作電壓范圍寬:2.7V-6V,便于交直流供電。顯示電路的選擇與設計對于數字顯示電路,通常采用液晶顯示或數碼管顯示。對于一般的段式液晶屏,需要專門的驅動電路,而且液晶顯示作為一種被動顯示,可視性差,不適合遠距離觀看;對于具有驅動電路和單片機接口的液晶顯示模塊(字符或點陣),一般多采用并行接口,對單片機的接口要求較高,占用資源多;另外,AT89S52單片機本身無專門的液晶驅動接口。而數碼管作為一種主動顯示器件,具有亮度高、響應速度快、防潮防濕性能好、溫度特性極性、價格便宜、易于購買等優點,而且有遠距離視覺效果,很適合夜間或是遠距離操作。因此,本設計的顯示電路采用7段數碼管作為顯示介質。數碼管顯示可以分為靜態顯示和動態顯示兩種。由于本設計需要采用八位數碼管顯示時間,如果靜態顯示則占用的口線多,硬件電路復雜。所以采用動態顯示。通常各位數碼管的段選線相應并聯在一起,由一個8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動態方式顯示時,各數碼管分時輪流選通,要使其穩定顯示必須采用掃描方式,即在某一時刻只選通一位數碼管,并送出相應的段碼,在另一時刻選通另一位數碼管,并送出相應的段碼,依此規律循環,即可使各位數碼管顯示將要顯示的字符,雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可以給人同時顯示的感覺。按鍵電路的選擇與設計本設計中有四個按鍵,分別實現開始、暫停、復位和查看功能。這三個鍵可以采用中斷的方法,也可以采用查詢的方法來識別。對于復位鍵和查看鍵,主要功能在于數值復位和對上次計時時間的查看,對于時間的要求不是很嚴格,而開始和暫停鍵主要用于時間的鎖定,需要比較準確的控制。因此可以考慮,對復位鍵和查看鍵采用查詢的方式,而對于開始和暫停鍵采用外部中斷。四個按鍵均采用低電平有效,具體電路連接圖如圖1.5所示。當按鍵沒有按下時,單片機的I/O口直接連接電源,因此需要接上拉電阻來進行限流,本設計中選取阻值為2kQ的電阻作為上拉電阻,根據計算可知此時的灌電流為2.5mA,查看AT89C52的資料得知次電流在安全范圍內,符合安全設計要求。

鍵電路中由于采用了外部中斷。使用程序先給P「2至P「7送數據1,然后檢測按鍵是否按下。時鐘電路的選擇與設計單片機的時鐘信號用來提供單片機內各種微操作的時間基準,89S52片內設有一個由反向放大器所構成的振蕩電路,XTAL1和XTAL2分別為振蕩電路的輸入和輸出端,89S52單片機的時鐘信號通常用兩種電路形式得到:內部振蕩方式與外部振蕩方式。外部方式的時鐘很少用,若要用時,只要將XTAL1接地,XTAL2接外部振蕩器就行。對外部振蕩信號無特殊要求,只要保證脈沖寬度,一般采用頻率低于12MHz的方波信號。時鐘發生器把振蕩頻率兩分頻,產生一個兩相時鐘信號匕和P2供單片機使用。匕在每一個狀態S的前半部分有效,P2在每個狀態的后半部分有效。本設計采用的內部振蕩方式,內部振蕩方式所得的時鐘信號比較穩定,實用電路中使用較多。本設計系統的時鐘電路如圖1.4所示。只要按照圖1.6所示電路進行設計連接就能使系統可靠起振并能穩定運行。圖中電容器C]、C2起穩定振蕩頻率、快速起振的作用,電容值一般為5?33pF。但在時鐘電路的實際應用中一定要注意正確選擇其大小,并保證電路的對稱性,盡可能匹配,選用正牌的瓷片或云母電容,如果可能的話,溫度系數盡可能低。本設計中采用大小為30pF的電容和12MHz的晶振[8]。圖1.6內部振蕩電路系統總電路的設計系統總電路由以上設計的顯示電路,時鐘電路,按鍵電路和復位電路組成,只要將單片機與以上各部分電路合理的連接就組成了系統總電路。系統總電路圖如圖1.11所示。AT89C52單片機為主電路的核心部分,各個電路均和單片機相連接,由單片機統籌和協調各個電路的運行工作。AT89C52單片機提供了XTAL1和XTAL2兩個專用引腳接晶振電路,因此只要將晶振電路接到兩個專用引腳即可為單片機提供時鐘脈沖,但在焊接晶振電路時要盡量使晶振電路靠近單片機,這樣可以為單片機提供穩定的始終脈沖。復位電路同晶振電路,單片機設有一個專用的硬件復位接口,并設置為高電平有效。按鍵電路與單片機的端口連接可以由用戶自己設定,本設計中軟件復位鍵和查看鍵為P1A2,均設為低電平有效。顯示電路由八位數碼管組成,采用動態顯示方式,因此有8位段控制端和8位位控制端,八位段控制接P0口,P0.0?P0.7分別控制數碼顯示管的a、b、c、d、e、f、g、dp顯示,AT89C52的P0口沒有集成上拉電阻,高電平的驅動能力很弱,所以需要接上拉電阻來提高P0的高電平驅動能力,然后接至741S164,段鎖存和位鎖存分別由P1A2和P1A3,對應的數碼管導通顯示。通過以上設計已經將各部分電路與單片機有機的結合到一起,硬件部分的設計以大功告成,剩下的部分就是對單片機的編程,使單片機按程序運行,實現數字電子秒表的全部功2軟件設計2.1程序設計思想本設計采用了C語言編寫,匯編語言由于采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發揮機器的特性,得到質量較高的程序。C語言具有下列特點:C是中級語言它把高級語言的基本結構和語句與低級語言的實用性結合起來。C語言可以象匯編語言一樣對位、字節和地址進行操作,而這三者是計算機最基本的工作單元。C是結構式語言結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環、條件語句控制程序流向,從而使程序完全結構化。C語言功能齊全C語言具有各種各樣的數據類型,并引入了指針概念,可使程序效率更高。另外C語言也具有強大的圖形功能,支持多種顯示器和驅動器。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的。C語言適用范圍大C語言還有一個突出的優點就是適合于多種操作系統如DOS、UNIX,也適用于多種機型。2.2主程序設計本系統程序主要模塊由主程序、定時中斷服務程序、外部中斷0服務程序和外部中斷1服務程序組成。其中主程序是整個程序的主體。可以對各個中斷程序進行調用。協調各個子程序之間的聯系。系統(上電)復位后,進入主程序,主程序流程圖如圖2.1

圖2.1主程序流程圖2.3圖2.1主程序流程圖2.3中斷程序設計現在方案中采用了定時中斷TO。CPU在響應中斷時,先處理高級中斷,在處理低級中斷,若有多個同級中斷時,則按自然優先順序處理。例如當CPU正在處理一個中斷申請時,有出現了另一個優先級比它高的中斷請求,這是,CPU就暫停終止對當前優先級較低的中斷源的服務,轉去響應優先級比它高的中斷請求,并為其服務。待服務結束,再繼續執行原來較低級的中斷服務程序。而當CPU為級別高的終端服務程序服務時,如果級別低的中斷發出中斷請求,此時CPU是不會響應的,所以為了避免開始和暫停兩個按鍵中的一個出現沒有響應的情況,在進行程序編輯時要注意對中斷的使用,避免出現中斷的嵌套。,合理分配中斷對本設計的實現是至關重要的。另外由于數字式電子秒表的最小精度位100ms。定時器T0的定時周期也為50ms,為了使電子秒表暫停鍵按下后CPU能馬上進行數據調整3電子秒表的安裝與調試3.1軟件的仿真與調試ProteusISIS是英國Labcenter公司開發的電路分析與實物仿真軟件,它可以仿真、分析(SPICE)各種模擬器件和集成電路。該軟件的主要特點總結后有以下四點:①實現了單片機仿真和SPICE電路仿真相結合的功能。②支持目前主流單片機系統的仿真。③提供了軟件調試功能,并可以與WAVE聯合仿真調試。④具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。在電子領域中也起到了很大的作用,它的出現仿真不需要先焊接電路,可以先仿真調試通過后在焊電路,節省了不少在硬件調試上所花的時間。ProteusISIS的工作界面是一種標準的Windows界面,如圖1.19所示。它包括標題欄、主菜單、狀態欄、標準工具欄、繪圖工具欄、對象選擇按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選擇器窗口、圖形編輯窗口等十幾個工具,方便了使用者的使用。ProteusISIS繪制原理圖的操作與Protel99se繪制原理圖的操作基本相同,在這里就不再作贅述。下面拿本設計中的一個仿真例子作簡述說明。運行ProteusISIS后,繪制病床呼叫系統的原理圖。首先打開已經畫好的proteusDSN文件,雙擊圖中的AT89S52芯片,就彈出一個窗口,在ProgramFile項中通過路徑選擇在WAVE中生成的HEX文件,雙擊選中后確定,這樣仿真圖中的AT89S52芯片就已經讀取了本設計中的HEX文件。單擊“三角形按鈕”進行仿真。通過對仿真結果的觀察來對程序進行修改,最終使程序到達設計要求。3.2硬件的安裝與調試按照之前設計好的數字電子秒表原理圖,詳細計算系統中各個元件的參數,選擇相應器件,制作實際電路板。由于考慮到萬能板大小的問題及元件之間連線的方便,在焊接元器件前必須考慮元件的布局然后進行實際操作。制作好的電路板可以用萬用表(200歐姆檔)的紅、黑表筆測試電路板的每條走線,當其電阻非常小時,證明走線沒有斷開,當其電阻很大時,證明該條走線斷了,應該重新走線,使電路板在電氣上得到正確地連接。選用萬用表的20K歐姆檔,檢測電路中是否存在短路。因為系統采用的是共陰極數碼管作為顯示電路,必須確保數碼管的公共端接的是低電平。結論本設計的數字電子秒表是由AT89S52單片機、共陰數碼顯示管、控制按鍵、三極管等器件構成的,設有五位計時顯示,開始、暫停、復位、查看按鍵以及一個系統整機復位按鈕。計時精度能到達1ms,能調看上一次計時時間,設計精簡,使用簡單易懂。系統設計合理,線路簡單、功能先進,性能穩定,程序精簡。并給出了詳細的電路設計方法。本系統是以單片機為核心,僅單片機方面知識是不夠的,還應根據具體硬件結構,以及針對具體應用對象特點的軟件結合,以作完善。所以采用匯編語言來進行軟件設計,利用匯編語言面向機器并能較好的發揮機器的特性,得到較高的程序,同時匯編語言目標代碼簡短,占用內存少,執行速度快,能提高秒表的精度。本系統主要由3章組成,第一章中,主要是硬件組成部分和其實現的功能,在本此實驗中各部分都實現了其功能。在第二章中,主要介紹的是軟件實現過程的框圖。在第三章中,主要是對硬件和軟件的調試,最終保證了系統的正常運行。通過畢業設計,復習鞏固我們以前所學習的數字、模擬電子技術、單片機原理及接口等課程知識,加深對各門課程及相互關系的理解,并成功使用了Wave、Protel99se和ProteusISIS三款電子軟件,使理論知識系統化、實用化,系統地掌握微機應用系統的一般設計方法,培養較強的編程能力、開發能力。同時,在畢業設計的過程中,我也發現了本系統的許多不足和可以改進的地方。但因時間緊迫等原因沒能改進。本設計的數字電子秒表缺少對多次計時時間進行記錄的功能。應給在單片機的內部存儲區多設置一些存儲空間,用來存儲多次計時時間。并在程序中編入對多次計時時間的調用顯示。雖然存在不足,但本設計開發的數字電子秒表仍具有它的實用性。致謝我這次畢業設計是在唐朝仁老師的精心指導下完成的,唐朝仁老師為我對本文的完成提供了良好的設施和環境,從論文的選定到實驗研究,從資料收集到方案確定,唐朝仁老師都給了我大量的中肯的建議和意見,我的每步工作都凝聚了呂老師的辛勤汗水。同時,唐朝仁老師的嚴謹的治學態度和忘我的工作精神以及高尚的師德給我留下了深深的影響,這將激勵我更好地完成今后的學習和工作。借此機會對唐朝仁老師的精心教育和指導表示忠心的感謝;也借此機會,感謝大學四年來辛勤教育指導我的各科任老師。我也很感謝論文答辯的各位評委老師,感謝他們在百忙之中抽出時間幫我們答辯。還要感謝班里的同學對我不懈的支持與幫助。通過這次設計,我學到了很多知識,同時也認識到在團隊工作中需要有合作精神,我想這會為今后自己踏上工作崗位、更好地融入新的團隊打下良好的基礎。附錄Ac語言程序#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharhour,min,sec,msec,hour1,min1,sec1,msec1;ucharshi,ge,option,aa,bb,shunxu,flag,direction,flag1;uchara,b,c,d,a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3,a4,b4,c4,d4,a5,b5,c5,d5;sbitwela=P2人3;sbitdula=P2A2;sbitkeyl=PlA7;sbitkey2=P1A6;sbitkey3=PlA5;sbitkey4=PlA4;sbitkey5=PlA3;sbitkey6=PM2;//啟動按圈計時功能sbitleden=P2A6;sbitzhishi=PlA0;ucharcodedu[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodewe[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};voiddelay(uint);voiddisplay(uchar,uint);voidtiaojia();voidtiaojian();voiddstart();voidquanstart();voidfenpei();voidmodel();voidinit();voidmain(){init();while(1){model();if(shunxu==0){direction++;if(direction==3)direction=0;}fenpei();dstart();quanstart();if(direction==0)zhishi=0;elsezhishi=1;}}voidquanstart()〃按圈計時啟動與分段(在模式0下應用){if(key6==0&&shunxu==1){delay(8);〃消抖if(key6==0){flag1++;if(flag1==2){a=msec1;b=sec1;c=min1;d=hour1;}if(flag1==3){a1=msec1;b1=sec1;c1=min1;d1=hour1;}if(flag1==4){a2=msec1;b2=sec1;c2=min1;d2=hour1;}if(flag1==5){a3=msec1;b3=sec1;c3=min1;d3=hour1;}if(flag1==6){a4=msec1;b4=sec1;c4=min1;d4=hour1;}if(flag1==7){a5=msec1;b5=sec1;c5=min1;d5=hour1;}if(flag1==1){msec1=0;sec1=0;min1=0;hour1=0;}}if(flag1==14)flag1=0;if(flag1==0){msec1=0;sec1=0;min1=0;hour1=0;}while(!key6);delay(5);〃消抖if(key6==1)while(!key6);}}voiddstart()〃倒計時啟動與暫停(在模式0下應用){if(key5==0&&shunxu==0){delay(8);〃消抖if(key5==0)flag++;if(flag==2)flag=0;while(!key5);delay(5);〃消抖}}if(key5==1)while(!key5);}voidtimer0()interrupt1{TH0=(65536-5000)/256;TL0=(65536-5000)%256;bb++;if(bb==2){msec++;bb=0;if(shunxu==0&&msec1==0&&min1==0&&sec1==0&&hour1==0&&flag==0)msec1=msec1;if(shunxu==0&&(msec1!=0|min1!=0|sec1!=0|hour1!=0)&&flag==0)msec1--;if(shunxu==1&&flag1!=0)msec1++;}if(msec==100)〃限制順序數值范圍{msec=0;sec++;if(sec==60){sec=0;min++;if(min==60){min=0;hour++;if(hour==24)hour=0;(l-==lUTUI)JTi—Xutui}([-==[Q0S)J!〉-[O0S:66=[O0sui}IS蟲甸糜田惕韋皙〃(【-=【”SUI)J!:0=[』noq(竝==【moq)j!:++[』noq冷=[11凹}(09==[11凹)異i++Xuiui:0=[O0S}(O9=[2s)j!:++[O0S:O=[O0sui}IS蟲甸糜査Oft皙〃(OOI=20SUI)J!min1=59;

hour1--;if(hour1==-1)hour1=23;}}}}voidmodel(){if(key4==0)/*模式:*/{delay(lO);//消抖if(key4==0){shunxu++;if(shunxu==l)option=0;if(shunxu==3){shunxu=0;}}while(!key4);delay(5);〃消抖if(key4==l)while(!key4);}}voiddelay(uintx){uinty,z;for(y=x;y>0;y--)for(z=110;z>0;z--);}voiddisplay(ucharx,uintz)〃(顯示位段的第一位,數值){shi=z/10;ge=z%10;P0=we[x];wela=1;wela=0;P0=du[shi];dula=1;dula=0;delay(7);P0=we[x+1];wela=1;wela=0;P0=du[ge];dula=1;dula=0;delay(7);}voidtiaojia(){if(key2==0){delay(8);〃消抖if(key2==0)option++;if(option==4)option=0;while(!key2);delay(5);〃消抖if(key2==1)while(!key2);}if(key1==0&&option==1){delay(lO);//消抖if(key1==0){if(shunxu==0)hourl++;if(shunxu==2)hour++;}if(hour==24)hour=0;if(hourl==24)hourl=0;while(!keyl);delay(5);〃消抖if(keyl==l)while(!keyl);}if(keyl==0&&option==2){delay(lO);//消抖if(keyl==0){if(shunxu==0)minl++;if(shunxu==2)min++;}if(min==60)min=0;if(min1==60)min1=0;while(!key1);delay(5);〃消抖if(key1==1)while(!key1);}if(key1==0&&option==3){delay(lO);//消抖if(key1==0){if(shunxu==0)secl++;if(shunxu==2)sec++;}if(sec==60)sec=0;if(secl==60)secl=0;while(!keyl);delay(5);〃消抖if(keyl==l)while(!keyl);}}voidtiaojian(){if(key2==0){delay(8);〃消抖if(key2==0)option++;if(option==4)option=0;while(!key2);delay(5);〃消抖if(key2==1)while(!key2

溫馨提示

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

評論

0/150

提交評論