




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、安陽師范學(xué)院單片機技術(shù)課程實踐基于89C51單片機可調(diào)數(shù)字鐘的仿真設(shè)計班級: 姓名:學(xué)號:輔導(dǎo)老師:設(shè)計時間:1.設(shè)計目的1.1設(shè)計目的(1)掌握51系列內(nèi)部定時/計數(shù)器的原理和基本應(yīng)用;(2)掌握使用單片機處理復(fù)雜邏輯的方法;(3)掌握多位數(shù)碼管動態(tài)顯示的方法;(4)掌握獨立式(和矩陣)鍵盤的編程方法;(5)掌握利用匯編語言編寫單片機系統(tǒng)的應(yīng)用軟件的方法;(6)鞏固,加深和擴大單片機應(yīng)用的知識面,提高綜合及靈活運用所學(xué)知識解 決工業(yè)控 制的能力;(7)培養(yǎng)針對課題需要,選擇和查閱有關(guān)手冊,圖表及文獻資料的自學(xué)能力,提高 組成系統(tǒng),編程,調(diào)試的動手能力;(8)熟悉單片機用系統(tǒng)開發(fā),研制的過程,
2、軟硬件設(shè)計方法,內(nèi)容及步驟(9)了解數(shù)字鐘的組成及工作原理1. 2設(shè)計性能(1)用51單片機的定時/計數(shù)器TMRO產(chǎn)生一秒的定時時間,作為秒計數(shù)時間;(2)當一秒產(chǎn)生時,秒計數(shù)加1;(3)開機時,顯示00.00.00,并開始連續(xù)計時;(4)計時滿23. 29. 59時,返回00. 00. 00重新開始計時;(5)在以上設(shè)計基礎(chǔ)上,在單片機的I/O口上分別接入四個按鍵:K0控制“秒”的調(diào)整,每按一次加1秒;K1控制“分”的調(diào)整,每按一次加1分;K2控制“時”的調(diào)整,每按一次加1小時;K3時間復(fù)位按鍵。2.系統(tǒng)電路的方案2. 1實現(xiàn)時鐘計時的基本方法用AT89C51單片機的定時/計數(shù)器TO產(chǎn)生一秒
3、的定時時間,作為秒計數(shù)時間,當一 秒產(chǎn)生時,秒計數(shù)加1開機時。顯示00-00-00的時間,開始計時;計時滿23-59-59時,返回00-00-00重新計時AT89C51單片機的內(nèi)部16位定時/計數(shù)器是一個可編程定時/計數(shù)器,它既可以工作 在13位定時方式,也可以工作在16位定時方式和8位定時方式。只要通過設(shè)置特殊功能寄 存器TMOD ,即可完成。定時/計數(shù)器何時工作也是通過TCON特殊功能寄存器來設(shè)置的。在此設(shè)計中,選擇16位定時工作方式。對于T0來說,系統(tǒng)時鐘為12MHz ,最大定 時也只有65536us ,即65. 536ms,無法達到我們所需要的1秒的定時,因此,必須通過 軟件來處理這個
4、問題,假設(shè)取T0的最大定時為50ms ,即要定時1秒需要經(jīng)過20次的50ms的定時。對于這20次計數(shù),就可以采用軟件的方法來統(tǒng)計了。設(shè)定TMOD二01H,設(shè)置定時/計數(shù)器0工作在方式1。給TO定時/計數(shù)器的THO , TLO裝入預(yù)置初值,通過下面的公式可以計算出:N=t/Ty= (50X10A-3)/(l X10A-6) =50000X二65536-50000二15536二3CB0H即TH0=3CH, TLO=OBOH.這樣,當定時/計數(shù)器0計滿50ms時,產(chǎn)生一個中斷,我們可以在中斷服務(wù)程序中,對 中斷次數(shù)加以統(tǒng)計,以實現(xiàn)數(shù)字鐘的邏輯功能。2 2數(shù)字鐘的時間顯示顯示器的時間顯示采用動態(tài)掃描電
5、路驅(qū)動形式,以達到簡化電路的目的。但要注意所需的驅(qū)動電流比靜態(tài)驅(qū)動時要大,因此要增加驅(qū)動電路。可采用74LS244或者晶體管;其中74LS244是用來驅(qū)動段選碼,晶體管是驅(qū)動位選碼。電子鐘的時鐘時間在六位數(shù)碼管上進行顯示,因此,在內(nèi)部RAM中設(shè)置顯示緩沖區(qū)共8個單元LED8LED7LED6LED5LED4LED3LED2LED137H36H35H34H33H32H31H30H小時分隔符分鐘分隔符秒3系統(tǒng)的硬件設(shè)計3. 1單片機的功能介紹AT89C51是一種帶4K字節(jié)FLASH存儲器的低電壓、高性能CMOS 8位 微處理器,俗 稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲
6、器的單片機。單片機的可 擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸岀管腳相兼 容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高 效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形及引腳排列如圖所示U119XTAL2F i D/AD0PO 1/AD1PC 2/AD2PC 3/AD3 re4VAD4PO 5/AD5POE/ADBPC A AD/3A,37送35TH32P2. Q/WP2. 1/A9-2
7、 2 y J =2禺iM 1 P2.W12 P2.5/A13 P2.&/A14 P2.715L1F1 2 ri 3ri 4 r is lieli:TT1?irieI?PS. TRLjXDXD而T門TIOR/T係4/3.s 32 3 gj口P3旳飛圖3. 1單片機AT89C52引腳功能簡化圖3 2時鐘振蕩電路時鐘振蕩器即時鐘脈沖發(fā)生器,產(chǎn)生整個芯片內(nèi)部各功能電路正常操作所需的時鐘脈沖和 定時信號。最常用的一種電路連接方法是,在XTAL1和XTAL2這2只引腳之間外接一只晶體 振蕩器XTAL和2只電容C1和C2到地(如圖5-3所示),與片內(nèi)電路共同構(gòu)成一個多諧振 蕩器電路。其振蕩頻率取決于
8、外接石英晶體振蕩器元件XTAL的固有頻率,常選取12MHZ或6MHZ的晶振。典型的晶振取11. 0592MHz(因為可以準確地得到9600波特率和19200波 特率,用于 有串口通訊的場合)/12MHz(產(chǎn)生精確的uS級時歇,方便定時操作)特別注意對于31腳(EA/Vpp),當接高電平時,單片機在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;當接低電平 時,復(fù)位后直接從外部ROM的0000H開始執(zhí)行。3 3鍵盤控制電路鍵盤分編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵編碼號或鍵值的稱為編碼鍵盤,如計算機鍵盤 別的稱為非編碼鍵盤;C2亠C1C2C1.而靠軟件編程來識在單片機
9、組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤。也有用到編碼鍵盤的。非編碼鍵盤有分為:獨立鍵盤和行列式(又稱為矩陣式)鍵盤。下圖是非編碼鍵盤式5-6控制電路。圖3. 3鍵盤控制電路按鍵在閉合和斷開時,觸點會存在抖動現(xiàn)象為使CPU能正確地讀出端口的狀態(tài),對每一次按鍵只作一次響應(yīng),就必須考慮如何去除抖動,常用的去抖動的方法有兩種: 硬件方法和軟件方法。單片機中常用軟件法,軟件法其實很簡單,就是在單片機獲得端口為低 的信息后,不是立即認定按鍵已被按下,而是延時10毫秒或更長一些時間后再次檢測端口,如 果仍為低,說明按鍵的確按下了,這實際上是避開了按鍵按下時的抖動時間。而在檢測到按鍵 釋放后(端口為高)再延
10、時5-10個毫秒,消除后沿的抖動,然后再對鍵值處理。不過一般情 況下,我們通常不對按鍵釋放的后沿進行處理,實踐證明,也能滿足一定的要求。4系統(tǒng)的軟件設(shè)計4. 1系統(tǒng)軟件設(shè)計流程圖這次的數(shù)字鐘設(shè)計用到很多子程序,最好將它們分為若干個相對獨立且相互聯(lián)系的部分。主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,開始小時計數(shù)值清0圖4.1數(shù)字鐘工作流程圖4 2系統(tǒng)中斷流程圖單片機一般允許有多個中斷源,當幾個中斷源同時向CPU請求中斷時,就存在CPU優(yōu)先響應(yīng)哪一個中斷檢測完后,就可以顯不時間O以下是數(shù)字鐘工作的流程圖。 顯示初始化,設(shè)置定時器,定時50毫秒,根據(jù)計數(shù)值顯示時間請求源的問題(優(yōu)先
11、級問題),一般根據(jù)中斷源的輕重緩急排隊,優(yōu)先 處理最緊急事件的中斷請求,于是便規(guī)定每一個中斷源都有一個中斷優(yōu)先級別,并且CPU總 是響應(yīng)級別最高的中斷請求。當CPU正在處理一個中斷源請求的時候,又發(fā)生了另一個優(yōu)先級比它高的中斷源請求, 如果CPU能夠暫時中止對原來中斷處理程序的執(zhí)行,轉(zhuǎn)而去處理優(yōu)先級更高的中斷源請求, 待處理完以后,再繼續(xù)執(zhí)行原來的低級中斷處理程序,這樣的過程稱為中斷嵌套。以下圖是定時器中斷服務(wù)子程序流程圖圖4. 2定時器屮斷服務(wù)子程序流程圖4. 3子程序說明4. 3. 1按鍵掃描按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢 測分按鍵是否按下,分
12、按鍵如果按下,分就加1;如果沒有按下,就 檢測時按鍵是否按下,時 按鍵如果按下,時就加1;如果沒有按下,就檢測復(fù)位鍵是否按下,復(fù)位健按鍵如果按下, 時鐘就復(fù)位。如果沒有按下,把時間顯示出來。4. 3. 2數(shù)碼管動態(tài)掃描時間顯示是先秒個位計算顯示,然后是秒十位計算顯示,再是分個位計算顯 示,再然后 是分十位顯示,再就是時個位計算顯示,最后是時十位顯示。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管 有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和 相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留特性,使人的感覺好像各位數(shù)碼管同時都在 顯刀
13、J5.數(shù)字鐘元件清單和軟件介紹5. 1數(shù)字鐘元件清單列元件清單的主要目的是為了更好地理論聯(lián)系實際,為了硬件設(shè)計和仿真起到了不可磨滅的作用,做到心中有數(shù)。以下是數(shù)字鐘的元件清單兀件名稱規(guī)格型號數(shù)量(個)單片機AT89C511電阻RES/10K, RES/2205,8晶振11.0592MHz1電容30pF/220uf2,1按鍵BUTTON4排阻RESPACK-8/10K1鎖存器74LS2451液晶顯示7SEG-MPX6-CC1二極管1N41484表5.1電子鐘元器件清單5. 2軟件調(diào)試打開程序調(diào)試軟件keil uVision3,在里面新建一個工程,接著新建文件,編寫相應(yīng)程序。編寫好的各個程序進行編
14、譯與連接。但若是在該過程中,看見我們編好的程序 有錯誤,那么根據(jù)他相應(yīng)的提示來修改錯誤,直到該程序能夠正確 編譯為止。能夠正常編譯的 程序說明沒有什么問題了,此時我們在點擊相關(guān)欄目,讓它生成我們在硬件仿真時所需要 的.HEX文件。5. 3硬件調(diào)試打開Proteus仿真軟件,按照方案所選的電路元件來設(shè)計整體電路,先把芯片按一定的 位置放好,然后按相應(yīng)的對象進行連接,連接時需仔細,以免調(diào)試 時發(fā)生錯誤。做好之后把編 程所生成的。HEX文件加載到AT89C52中,運行仿真軟件,查看運行效果。如果運行出錯那 么就根據(jù)他相應(yīng)的提示來修改錯誤,直 到仿真成功為止。總結(jié)通過本次仿真的設(shè)計,我遇到很多自己不理
15、解的問題及書本上或是我以前沒 有看見過的 知識點。在面對這些問題時,我首先采用的是上網(wǎng)搜尋的方法,在根 據(jù)別人的提示,想想 自己的問題出在哪里,該怎么解決。當我還是無法想到解決的辦法時,我就帶著自己的問題 到圖書館查閱資料或找同學(xué)互相交流,如果我的問題還是沒有解決,我就帶著問題去問我們 的指導(dǎo)老師,讓他幫我解決。采用這樣的方法,我的很多問題都迎刃而解了!其次,我不但 努力解決自己遇到的問題,還幫助同學(xué)解決他們遇到的問題。這樣一來,我的知識得到了進 一步的鞏固,同學(xué)的問題也得到了相應(yīng)的解決,我達到了一舉雙收的效果,我為此而感到高 興。讓我覺得仿真的最大成果是:知道了將理論用到實際當中時,會遇到很
16、多的問題。需要 我們一個一個地把它解決,根據(jù)自己所學(xué)的專業(yè)基礎(chǔ)知識分析具體原因,具體問題具體分 析,再逐一把它克服掉。知道理論與實際的差距,所以以后 要多加強實際動手的能力。因 此,學(xué)習(xí)就應(yīng)該采取理論與實踐相結(jié)合的方式,理 論的問題,也就是實踐性的課題。這種做 法既有助于完成理論知識的鞏固,又有助于帶動實踐,解決實際問題,加強我們的動手能力和 解決問題的能力。最后,我相信以后不管遇到什么困難和挫折,不要畏懼,要敢于向前探 索。這樣問題才能迎刃而解附錄一系統(tǒng)程序源代碼START:MOVDPTR, STABLEMOVHOUR, #0;初始化MOVMINUTE, #0MOVSECOND,#0S_SE
17、T BIT Pl. 0;數(shù)字鐘秒控制位M_SET BIT Pl. 1;分鐘控制位H_SET BIT Pl. 2;小時控制位RESET BIT Pl. 3;復(fù)位鍵SECONDEQU30HMINUTEEQU31HHOUREQU32HTCNTEQU34H0000HORGSJMPSTARTORGOBHLJMPINT TO;定時器0溢出中斷矢量MOVTCNT, #0;計數(shù)值賦0MOVTMOD, #01H;定時器/計數(shù)器工作在方式1MOVTHO, #3CH;定時50毫秒MOVTLO, #0B0HMOV IE, #82H ;EA中斷總允許位置1 SETB TRO;允許TO累加計數(shù)。;判斷是否有控制鍵按下,是
18、哪一個鍵按下Al: LCALLDISPLAYMOVPl, #OFFH;把Pl腳置成高電平JNBS_SET, SIJNBM_SET, S2JNBH_SET, S3JNBRESET, S4LJMPAl;如果沒有鍵按下重新檢測SI: LCALLDELAY;有$SET鍵按下去抖動JB S_SET, Al;確實有鍵按下進入下面處理,否則為干擾重新檢測INCSECOND;秒值加1LCALLDISPLAYMOVA, SECONDCJNEA, #60, JO;判斷是否加到60秒MOVSECOND, #0LJMPJO;等待按鍵彈起來,按一次,只加一次S2: LCALL DELAY;有M_SET鍵按下去抖動JB
19、M_SET, AlINCMINUTE;分鐘值加1LCALLDISPLAYMOVA, MINUTECJNEA, #60, JI;判斷是否加到60分MOVMINUTE, #0LJMPJIS3: LCALL DELAY;有H_SET鍵按下去抖動JB H_SET, AlINCHOUR;小時值加1LCALLDISPLAYMOVA, HOURCJNEA, #24, J2;判斷是否加到24小時MOVHOUR, #0LJMPJ2S4: LCALL DELAY有RESET鍵按下去抖動JB RESET, AlLJMP STARTJO: JB S_SET, AlLCALL DISPLAYSJMP JOJI: JB
20、M_SET, AlLCALL DISPLAYSJMP JIJ2: JB H_SET, AlLCALL DISPLAYSJMP J2;定時器中斷服務(wù)程序(每50ms中斷一次),對秒,分鐘和小時的計數(shù)INT_T0: MOVTHO, #3CHMOVTLO, #OBOHINCTCNTMOVA, TCNTCJNEA, #20, RETUNE;計時1秒INCSECONDMOVTCNT, #0MOVA, SECONDCJNEA, #60, RETUNEINCMINUTEMOVSECOND, #0MOV A, MINUTECJNE A, #60, RETUNEINCHOURMOVMINUTE, #0MOVA, HOURCJNEA, #24, RETUNEMOVHOUR, #0MOVMINUTE, #0MOVSECOND, #0MOVTCNT, #0RETUNE: RETI;顯示控制子程序DISPLAY:MOVA, SECOND:顯示秒MOVB, #10DIVAB;商和余數(shù)分別保留在A和BCLRP3. 6MOVCA, A+DPTR;把A+DPTR指定單元內(nèi)容復(fù)制到AMOVPO, A;將A中查得結(jié)果送PO端口顯示LCALLDELAYSETBP3. 6MOVA, BCLRP3. 7MOVCA,
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鋁擠壓行業(yè)市場運營狀況及發(fā)展趨勢分析報告
- 2025-2030年中國金屬波紋補償器市場發(fā)展狀況及前景趨勢分析報告
- 2025天津市安全員《B證》考試題庫及答案
- 2025-2030年中國聚對苯二甲酸丁行業(yè)投資戰(zhàn)略決策研究報告
- 2025-2030年中國紡織機械制造產(chǎn)業(yè)十三五規(guī)劃及投資戰(zhàn)略研究報告
- 2025-2030年中國石斑魚市場運行狀況與十三五規(guī)劃研究報告
- 2025-2030年中國電熱水器行業(yè)競爭格局及投資戰(zhàn)略研究報告
- 2025年江西省建筑安全員A證考試題庫附答案
- 欽州幼兒師范高等??茖W(xué)校《新能源汽車結(jié)構(gòu)與原理》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025浙江省安全員考試題庫
- 康復(fù)醫(yī)學(xué)題庫與答案
- 1、DL-T5113.1-2019 水利水電工程單元工程質(zhì)量等級評定標準第一部分:土建工程用表
- 2024年醫(yī)院感染管理制度(四篇)
- 部編版語文三年級下冊綜合性閱讀-理解人物情感-課件-(共32張課件).課件
- 2024年中國甜瓜市場調(diào)查研究報告
- (中級)航空油料特設(shè)維修員(四級)理論考試題庫-上(單選題)
- 部編人教版六年級道德與法治下冊全冊完整版課件
- 電動車輛動力電池系統(tǒng)及應(yīng)用技術(shù) 第3版 課件全套 王震坡 第1-11章 動力電池及其驅(qū)動的電動車輛- 動力電池充電方法與基礎(chǔ)設(shè)施
- 【獨立儲能】山西省獨立儲能政策及收益分析-中國能建
- (正式版)CB∕T 4550-2024 船舶行業(yè)企業(yè)安全設(shè)備設(shè)施管理規(guī)定
- 新入職員工廉政談話
評論
0/150
提交評論