




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于單片機LED 顯示器的數字鐘設計本設計基于8031單片機控制,采用LED顯示器設計一數字鐘的設計方案。該數字鐘能穩定顯示時分秒, 同時實現時分秒的數值調整。 本文詳細討論了具體硬件電路, 相關原器件的選擇以及軟件實現過程。 比較時鐘調整的查詢方式和中斷方式, 對數字鐘的穩定性和計時的精確性作了相關的討論。 在實驗室通過硬件電路和仿真器進行模擬實驗, 驗證電路和程序的正確性。 最后給出采用中斷方式實 現的數字鐘的源程序。1 .引 言在單片機技術日趨成熟的今天, 其靈活的硬件電路的設計和軟件的設計, 讓單片機得到了廣泛的應用, 幾乎是從小的電子產品, 到大的工業控制, 單片機都起到了舉足輕重的
2、作用。 單片機小的系統結構幾乎是所有具有可編程硬件的一個縮影,可謂是“麻雀雖小,肝膽俱全” ,單片機的學習和研究是對微機系統學習和研究的簡捷途徑。單片機以其體積小,使用靈活方便,成本低,易于產品化,抗干擾能力強,可在各種惡劣環境下工作等特點, 廣泛的應用于工業控制, 智能儀表, 家用電器,機器人,醫療儀器,軍事裝備等方面。為了加深對單片機應用的認識,鞏固所學的單片機知識,本次科研訓練特選題“基于單片機數碼管顯示的數字鐘設計”,嘗試基本電路設計和匯編語言編程以及鍛煉實踐動手能力。數字鐘的實現方法多種多樣,簡單的可以由一些集成電子電路實現,精確點的可以通過某些時鐘芯片,如 MSM5832, DS1
3、216,以及MC146818,結合相應的硬件電路和軟件實現。 本次科研訓練本著鍛煉為主的原則, 不采用任何現成的時鐘芯片, 通過簡單的硬件電路, 通過編寫相應程序進行計時與時間調整。 本文采用 8031 單片機,以 8255A 作其擴展, LED 顯示器采用共陰極的七段數碼管,驅動器采用 74LS07 芯片,以及普通的按鍵作為基本元器件。2 .數字鐘硬件電路設計數字鐘的整體框圖如圖 1 所示圖1整體框圖按鍵與8031的連接如圖2所示。VCCR122k2U6K1K2K3K4R132k2R142k2cR15t-I2k21INT2/P1.0P0.0/AD0INT3/P1.1P0.1/AD1INI4/
4、P1.2P0.2/AD239T338 . 45INI5/P1.3P0.3/AD3INT6/P1.4P0.4/AD4INT7/P1.5P0.5/AD5rNT8/P1.6P0.6/AD6INT9/P1.7P0.7/AD7363563478333210TARXD/DATA/P3.0ALETXD/CLOCK/P3.1PSEN31 TT29129INT0/P3.2RST13INT1/P3.3T0/P3.4P2.0/A8T1/P3.5P2.1/A9WR/P3.6P2.2/A10RD/P3.7P2.3/A11P2.4/A12P2.5/A13XTAL1P2.6/A14XTAL2P2.7/A1514211522
5、1617_23242526192718_2880CL31單片機8031與8255A的硬件連接如圖3所示:AoP1 2 3 4 5 6 7 AAAAAAA PPPPPPP9 01234567 u DDDDDDDD344321U75RDPB01836wrA0PB19PB28A1PB32135RESETPB46CSPB5PB62425PB714PC0FPC1PC216PC3PC4PC511PC6PC7D0Q0D1Q1D2Q2D3Q3D4Q4D5Q5D6Q6D7Q7OELE11174LS3738kwr一NT2/P1.0P0.0/AD0NT3/P1.1P0.1/AD1INT4/P1 2P0.2/AD2I
6、NT5/P1.3P0.3/AD3INT6/P1.4P0.4/AD4(NT7/P1.5P0.5/AD5INT8/P1.6FNT9/P1.7P0.6/AD6P0.7/AD7EARXD/DATA/P3.0TXD/CLOCK/P3.1ALEPSENNT0/P3.2RSTINTT/P3.3T0/P3.4P2.0/A8T1/P3.5P2.1/A9WR/P3.6P2.2/A10RD/P3.7P2.3/A11P2.4/A12P2.5/A13XTAL1P2.6/A14XTAL2P2.7/A1580CL3139/k635K 重3221123242532741-5-8 ; k-8255A圖3. 8031與8255A
7、的連接電路8255A是一種通用的可編程并行I/O接口芯片,在微型計算機系統中,可 不需要附加外部邏輯電路就可直接為 CPU與外設之間提供數據通道。在單片機8031與8255芯片連接中應接一個 74LS373譯碼器,8255A作為 8031的數據擴展口,輸出所顯示的段碼及位選信號。8255A的片選信號與8031的P2.7相連,所以P2.7作為8255A的片選信號, 所以8255A的控制口地址為:EFFFH,相應的,A 口的地址為:EFFCH, B 口 的地址為:EFFDH。8255A的讀寫信號分別與8031的讀寫信號相連,使其有效時CPU從8255A 讀取數據或狀態信息,或向8255A寫入數據或
8、控制字。RESET是復位控制信號, 高電平有效。該信號有效時,將 8255A控制寄存器內容都清零,并使所有餓斷 口都置成輸入方式。當引腳懸空時,芯片默認為高電平,所以,為了讓 8255A 在電路中正常工作,將 RESET接地,強制使復位控制位失效。8255A驅動數碼管的電路如圖4所示:U13431-30-2928-7D0D1D2D3D4D5D6D7RDWRA0A1 RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7PC0PC1PC2PC3PC4PC5PC6PC78255AVCCU2:C574LS04U2:D13U2:E9U2:F 74
9、LS04-R1470RR2470RR3470RR4470RR5470RR6470RR7470RU3:AA74LS04U4:A74LS00I3圖4. 8255A驅動數碼管電路圖8255A的A 口和B 口都作為輸出,根據 CPU輸出的BCD碼得到A 口相對 應的段碼,A 口將段碼通過一個同相驅動器(圖中因未找到同相驅動器而用反相 驅動器代替)給數碼管的abcdefg同時,由B 口輸出位選信號,因為本次設計中 使用的數碼管都是共陰極的,所以,當 B 口輸出為高電平時,經過74LS00與非 門后得到低電平,即選中數碼管。數字鐘顯示中有八個這樣的數碼管,他們的數 據端都是通過A 口獲得,其位選信號分別接
10、 B 口的八個口線。這樣,使PB0置 1,則最高位選中,然后將B 口數據循環左移,則可依次使各個數碼管選中顯示。3 .系統軟件設計3.1 軟件總體設計思想主程序主要由定時模塊,顯示模塊和調整模塊組成。定時部分采用經典的定 時器定時,結合相應的時鐘軟件實現計時功能。顯示模塊是實現數字鐘的另一重 要部分,其模塊的獨立程度直接影響到數字鐘的可視化程度。 調整模塊采用中斷 方式,通過按鍵可以調整數字鐘時分秒的數值。3.2 定時模塊程序中定時器,一直處于運行狀態,也就是說定時器是理想運作的,其中斷程序每隔 0.1 秒執行一次,在理想狀態下,定時器定時是沒有系統誤差的,但由于定時器中斷溢出后, 定時器從
11、0 開始計數, 直到被重新置數, 才開始正確定時, 這樣中斷溢出到中斷響應到定時器被重新置數, 其間消耗的時間就造成了定時器定時的誤差。 如果在前述定時器不關的情況下, 在中斷程序的一開始就給定時器置數,此時誤差最小,誤差大約為:每0.1 秒,誤差712 個機器周期。當然這是在定時器定時剛好為 0.1 秒時的情況,由以上分析,如果數字鐘設計為查詢的方式或是在中斷的方式下將定時器中斷設置為最高級, 我們在定時值設置時, 可以適當的扣除9 個機器周期的時間值。 但如果在中斷的情況下, 沒有將定時器中斷設置為最高級, 那就要視中斷程序的大小, 在定時值設置時, 扣除相應的時間值。3.3顯示模塊顯示模
12、塊的獨立性強,增強了數字鐘的可視化程度。在此模塊的設計中,設置專 用顯示數據緩沖區20H-27H與時分秒及其他數據緩沖區數據區別,在其中存放 的是各個數碼管要顯示數字,而其他緩沖區存放的是時間數據。在顯示時,首先 分別將時分秒BCD碼數據轉化為各個數碼管要顯示的數字,分別存儲于相應的 專用顯示區,然后通過8255A的A 口輸出段碼至數碼管,B 口輸出位選信號, 接著A 口輸出下一個段碼,B 口輸出下一個位選信號,依此循環則可實現八位數碼管的靜態輸出。但由于人眼視覺分辨率遠遠低于數碼管循環點亮的速度,所以人們看到的數字鐘還是相對穩定的圖6.顯示模塊流程圖3.4調整模塊數據調整有多種方式:可以直接
13、進入相關狀態進行有關操作;可將調整分 兩步,先進入狀態,然后執行操作,分別由兩個鍵控制。前者比較直接,設計思 想也比較簡單,但是,這種方式存在操作時間和控制鍵數目的矛盾。 如果用比較 少的鍵,那么可能會在進入狀態后處于數據調整等待狀態,這樣會影響到顯示的掃描速度。當然在這種方式下,還可以使用多個狀態鍵,每個狀態鍵,完成一個 對應數據的調整。后者則不同,因為狀態的調整,與狀態的操作可以分別由兩個 鍵控制,其狀態的調整數可以多達 256個(理論上),操作的完成是這樣的,一鍵控制狀態的調整, 一鍵控制數據的調整。 以上兩種方式的實現都可以采用查詢和中斷的方式,且兩者進行相關操作的過程不能太長否則會影
14、響顯示的掃描。本文中采用的方法是前者, 通過四個按鍵, 進行簡單的時分秒的調整。 當按鍵 K4 按下時啟動外中斷,然后通過按鍵 K1 , K2 , K3 即可調整時分秒的數值。另外,采用中斷的方式,最好將定時器中斷的優先級設置為最高級。中斷入口圖7.調整模塊流程圖3.5軟件消抖消抖可以采用硬件(施密特觸發器)的方式,也可以采用軟件的方式。在此只討 論軟件方式。軟件消抖有定時器定時,和利用延時子程序兩種方式。一,定時器 定時消抖可以不影響顯示模塊掃描速度, 其實現方法是:設置標志位,在定時器 中斷中將其置位,然后在程序中查詢。將其中斷優先級設置為低于時鐘定時中斷, 那么它就可以完全不影響時鐘定時
15、。 二,在采用延時子程序時,如果顯示模塊的 掃描速度本來就不是很快,此時可能會影響到顯示的效果,一般情況下,每秒的 掃描次數不應小于50次,否則,數碼的顯示會出現閃爍的情況。因此,延時子 程序的延時時間應該小于20毫秒,如果采用定時器定時的方式,延時時間不影 響時鐘。如果,設計時采用的是中斷的方式來完成有關操作,同樣可以采用軟件的方 式來消抖,其處理思想是:中斷不能連續執行,兩次之間有一定的時間問隔。a.子程序延時b.定時器延時圖8.查詢方式消抖流程圖中斷方式消抖流程圖圖9.3.6主程序流程圖圖10.主程序流程圖4.實驗在實驗中利用偉福仿真器及其仿真軟件,按照前述的硬件電路圖連接電路,按照上述
16、各步的軟件流程圖編寫匯編語言程序, 將軟硬件相連運行程序對軟硬件進行調試。觀察各位數碼管的顯示狀態,并與理論值進行比較分析。實驗過程中, 顯示模塊能很好的實現, 無論是在單步跟蹤還是全速執行的時候, LED 顯示器都能將要顯示的數值準確且穩定的顯示出來。雖然在硬件電路中增加了驅動電路,但是一個8255A芯片驅動8個LED顯示器效果仍然不是很好,特別是在全速執行時, LED 的亮度及穩定性仍有待改進。計時模塊的實驗過程不是很理想。 實驗中分別利用一個定時器T0 進行定時,定時 4000 微秒,一個計數器T1 進行計數,計數250 次。當 T0 定時一次后 T1計數一次,這樣T1 計數溢出時即可計
17、滿1 秒,然后對當前時間秒值進行加 1 處理,以及相應的分值時值處理。在程序運行中,可能由于程序編寫得具體細節,定時器中斷返回無法實現,從而導致全速執行后 LED 顯示器一直保持初始值不 變。數字鐘正常顯示時,按K4 鍵,啟動外部中斷子程序,按K1 鍵 K2 鍵 K3 鍵調整時間值,記錄調整后的時間值,與希望得到的時間值進行比較。調整模塊在實驗中得到較好的實現,調整相應按鍵后, LED 顯示器的顯示數值也隨之出現了相對應的調整。綜上所述, 本次科研訓練的實驗還是有所收獲, 雖然沒能將一個完整的數字鐘做出來,但也基本實現了數字鐘個部分的主要功SETB TR1ACALL DISPTIM0:CLR
18、P3.3MOV TH0,#0F0HMOV TL0,#74HCALL DISPJNB TF1,$CLR TF1SETB TR1MOV A,2CHADD A,#1DA AMOV 2CH,ACALL DISPCJNE A,#60H,X4MOV 2CH,#00HCALL DISPMOV A,2BHADD A,#1DA AMOV 2BH,ACALL DISPCJNE A,#60H,X4MOV 2BH,#00HCALL DISP附錄本文對應的匯編語言程序如下:ORG 0000HLJMP MAINORG 0003HLJMP INT0ORG 000BHLJMP TIM0ORG 0100HMAIN:MOV SP
19、,#70HMOV 2AH,#12HMOV 2BH,#34HMOV 2CH,#56HMOV DPTR,#7FFFHMOV A,#80HMOVX DPTR,AMOV TMOD,#51HMOV TH1,#0FFHMOV TL1,#06HMOV TH0,#0F0HMOV TL0,#74HMOV IP,#02HMOV IE,#13HMOV IP,#02HSETB TR0MOV A,2AHADD A,#1DA AMOV 2AH,ACALL DISPCJNE A,#24H,X4MOV 2AH,#00HCALL DISPX4: RETIDISP: MOV R1,#20HMOV R0,#2CHMOV R6,#03HDIS0:MOV A,R0MOV B,#10HDIV ABMOV R1,BINC R1MOV R1,AINC R1DEC R0DJNZ R6,DIS0MOV A,#0AHMOV R1,AINC R1MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 硫酸鋅生產工藝與環保處理考核試卷
- 森林改培與生態保護與森林資源合理開發考核試卷
- 玻璃泵閥制造考核試卷
- 空調器濕度傳感器的選型與優化考核試卷
- 紙板容器盈利模式分析考核試卷
- 森林資源調查方法與實務操作考核試卷
- 組織領導力發展與績效改進考核試卷
- 蘇州工藝美術職業技術學院《幼兒園課程與教學》2023-2024學年第二學期期末試卷
- 四川省自貢市普高2025年招生全國統一考試仿真卷(七)-高考物理試題仿真試題含解析
- 南京財經大學紅山學院《傳播中的法與理》2023-2024學年第二學期期末試卷
- 23G409先張法預應力混凝土管樁
- 【MOOC】知識創新與學術規范-南京大學 中國大學慕課MOOC答案
- 人教PEP版(一起)(2024)一年級上冊英語全冊教案(單元整體教學設計)
- DZ∕T 0219-2006 滑坡防治工程設計與施工技術規范(正式版)
- MOOC 大學體育-華中科技大學 中國大學慕課答案
- 《光伏發電工程工程量清單計價規范》
- 人工智能與知識產權保護的關系
- 三年級下冊口算天天100題(A4打印版)
- 全膝關節翻修術中骨缺損的治療進展
- 個人簡歷表格
- 民法典第三編第十四章租賃合同
評論
0/150
提交評論