單片機(jī)__基于PROTEUS的多功能數(shù)字電子鐘的設(shè)計_第1頁
單片機(jī)__基于PROTEUS的多功能數(shù)字電子鐘的設(shè)計_第2頁
單片機(jī)__基于PROTEUS的多功能數(shù)字電子鐘的設(shè)計_第3頁
單片機(jī)__基于PROTEUS的多功能數(shù)字電子鐘的設(shè)計_第4頁
單片機(jī)__基于PROTEUS的多功能數(shù)字電子鐘的設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計基于proteus的多功能數(shù)字電子鐘的設(shè)計 前 言單片機(jī)技術(shù)是現(xiàn)代電子工程領(lǐng)域一門迅速發(fā)展的技術(shù),它的應(yīng)用已經(jīng)滲透到各種嵌入式系統(tǒng)中??梢院敛豢鋸埖卣f:掌握單片機(jī)技術(shù)是電子信息類專業(yè)學(xué)生就業(yè)的一個重要條件。同時單片機(jī)技術(shù)又是一門實(shí)踐性很強(qiáng)的學(xué)科。課程設(shè)計教學(xué)環(huán)節(jié)的設(shè)計和實(shí)施,在很大程度上決定了學(xué)生對單片機(jī)技術(shù)的掌握程度。為了更好地完成課程設(shè)計這一重要教學(xué)環(huán)節(jié),我們采用proteus軟件與keil軟件整合構(gòu)建單片機(jī)虛擬實(shí)驗(yàn)平臺。學(xué)生首先在pc上利用proteus軟件自己搭建硬件電路,并利用系統(tǒng)提供的功能完成電路分析、系統(tǒng)調(diào)試和輸出顯示的硬件設(shè)計部分;同時在keil軟件中編制程序,進(jìn)

2、行相應(yīng)的編譯和仿真,完成系統(tǒng)的軟件設(shè)計部分。當(dāng)系統(tǒng)的設(shè)計工作完成后,學(xué)生可以在pc上看到最終的運(yùn)行效果。最后再通過proteus設(shè)計pcb,再完成真正硬件的調(diào)試。采用以上方案具有以下優(yōu)勢:有利于促進(jìn)課程和教學(xué)改革,更有利于人才的培養(yǎng);從經(jīng)濟(jì)性、可移植性、可推廣性角度講,建立這樣的課程設(shè)計平臺是非常有意義的;利用仿真系統(tǒng),可以節(jié)約開發(fā)時間和開發(fā)成本;利用仿真系統(tǒng),具有很大的靈活性和可擴(kuò)展性。第一章 概述proteus isis是英國labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于windows操作系統(tǒng)上,可以仿真、分析(spice)各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)

3、仿真和spice電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、rs232動態(tài)仿真、i2c調(diào)試器、spi調(diào)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境

4、,如keil c51 uvision2等軟件。具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和spice分析于一身的仿真軟件,功能極其強(qiáng)大。本章介紹proteus isis軟件的工作環(huán)境和一些基本操作。一、進(jìn)入proteus isis雙擊桌面上的isis 6 professional圖標(biāo)或者單擊屏幕左下方的“開始”“程序”“proteus 6 professional” “isis 6 professional”,出現(xiàn)如圖1-1所示屏幕,表明進(jìn)入proteus isis集成環(huán)境。圖1-1 啟動時的屏幕二、工作界面proteus isis的工作界面是一種標(biāo)準(zhǔn)的windows界面,如圖1-2

5、所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。圖1-2 proteus isis的工作界面第二章 基于單片機(jī)的仿真例子單片機(jī)電路設(shè)計如圖所示。電路的核心是單片機(jī)at89c51。單片機(jī)的p1口八個引腳接led顯示器的段選碼(a、b、c、d、e、f、g、dp)的引腳上,單片機(jī)的p2口六個引腳接led顯示器的位選碼(1、2、3、4、5、6)的引腳上,電阻起限流作用,總線使電路圖變得簡潔。程序設(shè)計實(shí)現(xiàn)led顯示器的選通并顯示字符。電路圖的繪制 1、將所需元器件加入到對象選擇器窗口。picking

6、 components into the schematic 單擊對象選擇器按鈕,如圖所示彈出“pick devices”頁面,在“keywords”輸入at89c51,系統(tǒng)在對象庫中進(jìn)行搜索查找,并將搜索結(jié)果顯示在“results”中,如圖所示。在“results”欄中的列表項(xiàng)中,雙擊“at89c51”,則可將“at89c51”添加至對象選擇器窗口。 接著在“keywords”欄中重新輸入7seg,如圖所示。雙擊“7seg-mpx6-ca-blue”,則可將“7seg-mpx6-ca-blue”(6位共陽7段led顯示器)添加至對象選擇器窗口。最后,在“keywords”欄中重新輸入res,

7、選中“match whole words”,如圖所示。在“results”欄中獲得與res完全匹配的搜索結(jié)果。雙擊“res”,則可將“res”(電阻)添加至對象選擇器窗口。單擊“ok”按鈕,結(jié)束對象選擇。經(jīng)過以上操作,在對象選擇器窗口中,已有了7seg-mpx6-ca-blue、at89c51、res三個元器件對象,若單擊at89c51,在預(yù)覽窗口中,見到at89c51的實(shí)物圖,如圖所示;若單擊res或7seg-mpx6-ca-blue,在預(yù)覽窗口中,見到res和7seg-mpx6-ca-blue的實(shí)物圖,如圖所示。此時,我們已注意到在繪圖工具欄中的元器件按鈕處于選中狀態(tài)。 2、放置元器件至圖

8、形編輯窗口placing components onto the schematic在對象選擇器窗口中,選中7seg-mpx6-ca-blue,將鼠標(biāo)置于圖形編輯窗口該對象的欲放位置、單擊鼠標(biāo)左鍵,該對象被完成放置。同理,將at89c51和res放置到圖形編輯窗口中。如圖所示。若對象位置需要移動,將鼠標(biāo)移到該對象上,單擊鼠標(biāo)右鍵,此時我們已經(jīng)注意到,該對象的顏色已變至紅色,表明該對象已被選中,按下鼠標(biāo)左鍵,拖動鼠標(biāo),將對象移至新位置后,松開鼠標(biāo),完成移動操作。由于電阻r1r8的型號和電阻值均相同,因此可利用復(fù)制功能作圖。將鼠標(biāo)移到r1,單擊鼠標(biāo)右鍵,選中r1,在標(biāo)準(zhǔn)工具欄中,單擊復(fù)制按鈕,拖動

9、鼠標(biāo),按下鼠標(biāo)左鍵,將對象復(fù)制到新位置,如此反復(fù),直到按下鼠標(biāo)右鍵,結(jié)束復(fù)制。此時我們已經(jīng)注意到,電阻名的標(biāo)識,系統(tǒng)自動加以區(qū)分。3、放置總線至圖形編輯窗口單擊繪圖工具欄中的總線按鈕,使之處于選中狀態(tài)。將鼠標(biāo)置于圖形編輯窗口,單擊鼠標(biāo)左鍵,確定總線的起始位置;移動鼠標(biāo),屏幕出現(xiàn)粉紅色細(xì)直線,找到總線的終了位置,單擊鼠標(biāo)左鍵,再單擊鼠標(biāo)右鍵,以表示確認(rèn)并結(jié)束畫總線操作。此后,粉紅色細(xì)直線被藍(lán)色的粗直線所替代,如圖所示。4、元器件之間的連線wiring up components on the schematicproteus的智能化可以在你想要畫線的時候進(jìn)行自動檢測。下面,我們來操作將電阻r1的

10、右端連接到led顯示器的a端。當(dāng)鼠標(biāo)的指針靠近r1右端的連接點(diǎn)時,跟著鼠標(biāo)的指針就會出現(xiàn)一個“”號,表明找到了r1的連接點(diǎn),單擊鼠標(biāo)左鍵,移動鼠標(biāo)(不用拖動鼠標(biāo)),將鼠標(biāo)的指針靠近led顯示器的a端的連接點(diǎn)時,跟著鼠標(biāo)的指針就會出現(xiàn)一個“”號,表明找到了led顯示器的連接點(diǎn),同時屏幕上出現(xiàn)了粉紅色的連接,單擊鼠標(biāo)左鍵,粉紅色的連接線變成了深綠色,同時,線形由直線自動變成了90的折線,這是因?yàn)槲覀冞x中了線路自動路徑功能。proteus具有線路自動路徑功能(簡稱war),當(dāng)選中兩個連接點(diǎn)后,war將選擇一個合適的路徑連線。war可通過使用標(biāo)準(zhǔn)工具欄里的“war”命令按鈕來關(guān)閉或打開,也可以在菜單欄

11、的“tools”下找到這個圖標(biāo)。同理,我們可以完成其它連線。在此過程的任何時刻,都可以按esc鍵或者單擊鼠標(biāo)的右鍵來放棄畫線。 5、元器件與總線的連線畫總線的時候?yàn)榱撕鸵话愕膶?dǎo)線區(qū)分,我們一般喜歡畫斜線來表示分支線。此時我們需要自己決定走線路徑,只需在想要拐點(diǎn)處單擊鼠標(biāo)左鍵即可,如圖所示。6、給與總線連接的導(dǎo)線貼標(biāo)簽part labels單擊繪圖工具欄中的導(dǎo)線標(biāo)簽按鈕,使之處于選中狀態(tài)。將鼠標(biāo)置于圖形編輯窗口的欲標(biāo)標(biāo)簽的導(dǎo)線上,跟著鼠標(biāo)的指針就會出現(xiàn)一個“”號,如圖所示。表明找到了可以標(biāo)注的導(dǎo)線,單擊鼠標(biāo)左鍵,彈出編輯導(dǎo)線標(biāo)簽窗口,如圖所示。 在“string”欄中,輸入標(biāo)簽名稱(如a),單擊

12、“ok”按鈕,結(jié)束對該導(dǎo)線的標(biāo)簽標(biāo)定。同理,可以標(biāo)注其它導(dǎo)線的標(biāo)簽,如圖所示。注意,在標(biāo)定導(dǎo)線標(biāo)簽的過程中,相互接通的導(dǎo)線必須標(biāo)注相同的標(biāo)簽名。 至此,完成了整個電路圖的繪制。源程序。源程序如下:#define leds 6#include reg51.h/led燈選通信號unsigned char code select=0x01,0x02,0x04,0x08,0x10,0x20;unsigned char code led_codes= 0xc0,0xf9,0xa4,0xb0,0x99,/0-4 0x92,0x82,0xf8,0x80,0x90,/5-9 0x88,0x83,0xc6,0x

13、a1,0x86,/a,b,c,d,e 0x8e,0xff,0x0c,0x89,0x7f,0xbf/f,空格,p,h,.,- ;void main() char i=0; long int j; while(1) p2=0; p1=led_codesi; p2=selecti; for(j=3000;j0;j-); /該led模型靠脈沖點(diǎn)亮,第i位靠脈沖點(diǎn)亮后,會自動熄來頭。/修改循環(huán)次數(shù),改變點(diǎn)亮下一位之前的延時,可得到不同的顯示效果。 i+; if(i5) i=0; 第三章 基于51單片機(jī)的數(shù)字鐘的設(shè)計任 務(wù) 書一、 任務(wù) 設(shè)計一款電子鐘。二、 設(shè)計要求(一)合格要求:用proteus畫出原

14、理圖和pcb圖,并完成下列任務(wù): 用4只led數(shù)碼管輸出顯示時和分。 可通過按鍵設(shè)置鬧鐘功能,且停鬧無須手工操作。 可通過按鍵設(shè)置分校時。(4) 寫出詳細(xì)的設(shè)計報告。(5) 給出電路的原理圖、pcb圖和源程序。(二)優(yōu)秀要求:根據(jù)pcb圖制作pcb板,并焊接元件調(diào)試13數(shù)字電子鐘 目前市場上提供的無論是機(jī)械鐘還是石英鐘在晚上無照明的情況下都是不可見的。要知道當(dāng)前的時間,必須先開燈,故較為不便。現(xiàn)在市場上也出現(xiàn)了一些電子鐘,它以六只led數(shù)碼管來顯示時分秒,與傳統(tǒng)的以指針顯示秒的方式不同,違背了人們傳統(tǒng)的習(xí)慣與理念,而且這類電子鐘一般是采用大型顯示器件,適用于銀行、車站等公共場所,且外觀設(shè)計欠美

15、觀,很少進(jìn)入百姓家庭。此外,無論是機(jī)械鐘、石英鐘還是電子鐘,都存在著共同的問題:時間誤差。針對以上存在的問題,我們設(shè)計了一款采用led顯示器件顯示的電子時鐘,有效克服了時鐘存在的誤差問題。1 系統(tǒng)主要功能 電子鐘的主要功能有:整點(diǎn)報時;四只led數(shù)碼管顯示當(dāng)前時分;并且具有鬧鐘功能。2 系統(tǒng)的硬件構(gòu)成及功能電腦鐘的原理框圖如圖1所示。它由以下幾個部件組成:單片機(jī)89c2051、電源、時分顯示部件。時分顯示采用動態(tài)掃描,以降低對單片機(jī)端口數(shù)的要求,同時也降低系統(tǒng)的功耗。時分顯示模塊以及顯示驅(qū)動都通過89c2051的i/o口控制。電源部分:電源部分有二部分組成。一部分是由220v的市電通過變壓、整

16、流穩(wěn)壓來得到+5v電壓,維持系統(tǒng)的正常工作。 圖1 電子鐘系統(tǒng)原理框圖21 at89c2051單片機(jī)及其引腳說明at89c2051單片機(jī)是51系列單片機(jī)的一個成員,是8051單片機(jī)的簡化版。內(nèi)部自帶2k字節(jié)可編程flash存儲器的低電壓、高性能coms八位微處理器,與intel mcs-51系列單片機(jī)的指令和輸出管腳相兼容。由于將多功能八位cpu和閃速存儲器結(jié)合在單個芯片中,因此,at89c2051構(gòu)成的單片機(jī)系統(tǒng)是具有結(jié)構(gòu)最簡單、造價最低廉、效率最高的微控制系統(tǒng),省去了外部的ram、rom和接口器件,減少了硬件開銷,節(jié)省了成本,提高了系統(tǒng)的性價比。at89c2051是一個有20個引腳的芯片,

17、引腳配置如圖3所示。與8051相比,at89c2051減少了兩個對外端口(即p0、p2口),使它最大可能地減少了對外引腳下,因而芯片尺寸有所減小。圖2 at89c2051引腳配置at89c2051芯片的20個引腳功能為:vcc 電源電壓。gnd 接地。rst 復(fù)位輸入。當(dāng)rst變?yōu)楦唠娖讲⒈3?個機(jī)器周期時,所有i/o引腳復(fù)位至“1”。xtal1 反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。xtal2 來自反向振蕩放大器的輸出。p1口 8位雙向i/o口。引腳p1.2p1.7提供內(nèi)部上拉,當(dāng)作為輸入并被外部下拉為低電平時,它們將輸出電流,這是因內(nèi)部上拉的緣故。p1.0和p1.1需要外部上拉,可

18、用作片內(nèi)精確模擬比較器的正向輸入(ain0)和反向輸入(ain1),p1口輸出緩沖器能接收20ma電流,并能直接驅(qū)動led顯示器;p1口引腳寫入“1” 后,可用作輸入。在閃速編程與編程校驗(yàn)期間,p1口也可接收編碼數(shù)據(jù)。p3口 引腳p3.0p3.5與p3.7為7個帶內(nèi)部上拉的雙向i/0引腳。p3.6在內(nèi)部已與片內(nèi)比較器輸出相連,不能作為通用i/o引腳訪問。p3口的輸出緩沖器能接收20ma的灌電流;p3口寫入“1”后,內(nèi)部上拉,可用輸入。p3口也可用作特殊功能口,其功能見表1。p3口同時也可為閃速存儲器編程和編程校驗(yàn)接收控制信號。22 時分顯示部件由于系統(tǒng)要顯示的內(nèi)容較簡單,顯示量不多,所以選用數(shù)

19、碼管既方便又經(jīng)濟(jì)。led有共陰極和共陽極兩種。如圖7所示。二極管的陰極連接在一起,通常此公共陰極接地,而共陽極則將發(fā)光二極管的陽極連接在一起,接入+5v的電壓。一位顯示器由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆劃(段)ag,另一個小數(shù)點(diǎn)為dp發(fā)光二極管。當(dāng)在某段發(fā)光二極管施加一定的正向電壓時,該段筆劃即亮;不加電壓則暗。為了保護(hù)各段led不被損壞,需外加限流電阻。圖3 led數(shù)碼管結(jié)構(gòu)原理圖眾所周知,led顯示數(shù)碼管通常由硬件7段譯碼集成電路,完成從數(shù)字到顯示碼的譯碼驅(qū)動。本系統(tǒng)采用軟件譯碼,以減小體積,降低成本和功耗,軟件譯碼的另一優(yōu)勢還在于比硬件譯碼有更大的靈活性。所

20、謂軟件譯碼,即由單片機(jī)軟件完成從數(shù)字到顯示碼的轉(zhuǎn)換。從led數(shù)碼管結(jié)構(gòu)原理可知,為了顯示字符,要為led顯示數(shù)碼管提供顯示段碼,組成一個“8”字形字符的7段,再加上1個小數(shù)點(diǎn)位,共計8段,因此提供給led數(shù)碼管的顯示段碼為1個字節(jié)。各段碼位與顯示段的對應(yīng)關(guān)系如表1。表1 各段碼位的對應(yīng)關(guān)系段碼位d7d6d5d4d3d2d1d0顯示段dpgfedcba需說明的是當(dāng)用數(shù)據(jù)口連接led數(shù)碼管adp引腳時,不同的連接方法,各段碼位與顯示段有不同的對應(yīng)關(guān)系。通常數(shù)據(jù)口的d0位與a段連接,d1位與b段連接,d7位與dp段連接,如表1所示,表2為用于led數(shù)碼管顯示的十六進(jìn)制數(shù)和空白字符與p的顯示段碼。表2

21、 led顯示段碼字型共陽極段碼共陰極段碼字型共陽極段碼共陰極段碼0c0h3fh990h6fh1f9h06ha88h77h2a4h5bhb83h7ch3boh4fhcc6h39h499h66hda1h5eh592h6dhe86h79h682h7dhf84h71h7f8h07h空白ffh00h880h7fhp8ch73h注:(1)本表所列各字符的顯示段碼均為小數(shù)點(diǎn)不亮的情況。 (2)“空白”字符即沒有任何顯示。根據(jù)at89c2051單片機(jī)灌電流能力強(qiáng),拉電流能力弱的特點(diǎn),我們選用共陽數(shù)碼管。將at89c2051的p1.0p1.7分別與共陽數(shù)碼管的ag及dp相連,高電平的位對應(yīng)的led數(shù)碼管的段暗,

22、低電平的位對應(yīng)的led數(shù)碼管的段亮,這樣,當(dāng)p0口輸出不同的段碼,就可以控制數(shù)碼管顯示不同的字符。例如:當(dāng)p0口輸出的段碼為1100 0000,數(shù)碼管顯示的字符為0。數(shù)碼管顯示器有二種工作方式,即靜態(tài)顯示方式和動態(tài)掃描顯示方式。為節(jié)省端口及降低功耗,本系統(tǒng)采用動態(tài)掃描顯示方式。動態(tài)掃描顯示方式需解決多位led數(shù)碼管的“段控”和“位控”問題,本電路的“段控”(即要顯示的段碼的控制)通過p0口實(shí)現(xiàn);而每一位的公共端,即led數(shù)碼管的“位控”,則由p3口控制。這種連接方式由于多位字段線連在一起,因此,要想顯示不同的內(nèi)容,必然要采取輪流顯示的方式,即在某一瞬間,只讓其中的某一位的字位線處于選通狀態(tài),其它各位的字位線處于斷開狀態(tài),同時字段線上輸出這一位相應(yīng)要顯示字符的字段碼。在這一瞬時,只有這一位在顯示,其他幾位則暗。在本系統(tǒng)中,字位線的選通與否是通過pnp三極管的導(dǎo)通與截止來控制,即三極管處于“開關(guān)”狀態(tài)。系統(tǒng)的時分顯示部件由4只7段共陽led數(shù)碼管構(gòu)成,前兩只用于時的顯示,后兩只用于分的顯示。值得一提的是,在設(shè)計中需要實(shí)現(xiàn)時與

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論