版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘 要本系統(tǒng)是基于at89s52單片機設計的,由2片74hc138八位地址鎖存驅(qū)動led的行信號,由2片74hc595八位串入并出驅(qū)動led的列信號。16*16led的點陣由4塊8*8的sz41288k點陣拼接成。在本次的設計中主要是思路是通過定時器定時行掃描時間為1ms,這樣人眼由于延時看到的顯示就是連續(xù)的。在進行掃描的時候,是先送每行的列信號,然后選中當前需要掃描的行。每完成一次行的信號掃描,就跳出定時中斷,定時一秒后又重復下一行的掃描。當一個字的16行都掃描完后,延時一段時間,然后對下一個字進行上述的重復掃描。關(guān)鍵詞:16*16led點陣;at89s52;74hc138驅(qū)動行;74hc5
2、95驅(qū)動列1.設計任務及要求題目9:1616 led點陣顯示漢字 設計要求:通過單片機利用1616 led點陣循環(huán)顯示漢字“我愛單片機”。2.方案選擇: 1、采用32個io口分為兩組16個io口,分別驅(qū)動行和列。這種方法需要注意p0口外接上拉電阻,并且全部io都占用,不能使led電路模塊化。 2、使用鎖存器驅(qū)動行信號,串入并出移位寄存器驅(qū)動列信號,這種方法能夠使io的使用減少,只需要8個io口,可以實現(xiàn)led部分的模塊化。 本次課程設計采用的是方案22.1總體設計方案用兩片片74hc138控制行信號,在對進行片選控制的時候保證,每當?shù)谝黄?4hc138的y0-y7掃描完畢(點陣的第一至八行的掃
3、描),進入下一片74hc138進行y0-y7的掃描(點陣的第九行至十六行的掃描)。用兩片74hc595采用級聯(lián)的方式,保證一次輸出16列的字碼信號。整體通過定時器定時1ms產(chǎn)生中斷,每1ms就掃描一行,當一個字16行掃描完畢后,重復掃描一段時間,用于延時。直到掃描完“我愛單片機”五個字后程序重復執(zhí)行,這樣就能實現(xiàn)“我愛單片機”循環(huán)顯示。 圖2.1 整體設計 3.硬件電路設計 整體原理圖見仿真圖附件(在仿真中單片機最小系統(tǒng)沒有接復位電路,和晶振電路,三極管開關(guān)電路用非門代替以及電阻未接)其實際硬件細化模塊如下:3.1單片機最小系統(tǒng)模塊 圖3.1 單片機最小系統(tǒng)最小系統(tǒng)主要包括復位電路,晶振電路,
4、但注意單片機的ea端必須接高電平,否則在做實體時,不會讀片內(nèi)的程序。 圖3.2晶振電路 圖3.3復位電路3.2 16*16led驅(qū)動模塊: 整個設計,拋開單片機最小系統(tǒng),剩下部分作為一個整體led點陣模塊。其整體硬件原理如圖。 圖3.4 16*16點陣模塊3.2.1 行信號驅(qū)動74hc138譯碼器的管腳圖: 圖3.5 74hc138管腳圖其工作功能表如下: 圖3.6 74hc138真值表 e1、e2、e3用于74hc138的信號使能端。只有當e1、e2為低電平,e3為高電平的時候,片選才能被選中,通過a2-a0的組合,可以選擇性的控制y0-y7的某一個口輸出低電平。本次課程設計行驅(qū)動的方式及原
5、理 圖中的線上的標號a,b,c,d,en分別與p2口的p2.0,p2.1,p2.2,p2.3,p2.4相連。en用于74138的行信號的總開關(guān)信號。d用于控制兩片138的工作順序,當p2口為xxxx0000至xxxx0111時保證選中的第1片74138,當p2口輸出xxxx1000-xxxx1111時保證的是選擇的第2片74138.第1片控制1-8行,第2片控制9-16行。 圖3.7兩片74hc138的連接方法74hc138的輸出全部接三極管的開關(guān)電路,當輸出為低電平的時候才能使三極管導通,所選的行才能選中。 圖3.8 三極管開關(guān)電路3.2.2 列信號驅(qū)動 74hc595管腳圖 圖3.9 74
6、hc595管腳圖管腳含義圖 圖3.10 74hc595管腳含義功能真值表 圖3.11 74hc595真值表本次課程設計列驅(qū)動的方式及原理 圖3.12兩片74hc595級聯(lián)每次采用串行輸入,當74hc595有上跳時鐘信號時,串入一位。當移入16位數(shù)據(jù)時,就開通數(shù)據(jù)輸出驅(qū)動列信號。其所傳入的數(shù)據(jù)是每個字每行的列碼。3.2.3 16*16led本設計通過4塊88單色共陽點陣拼接。單個點陣有64個發(fā)光二極管組成,且每個二極管是放置在行線與列線的叉點上。8*8點陣內(nèi)部結(jié)構(gòu)如圖 3.13 8*8led點陣的內(nèi)部原理圖4個8*8點陣級聯(lián)構(gòu)成16*16點陣如下圖 圖3.13 led點陣的級聯(lián)原理led驅(qū)動顯示
7、采用動態(tài)掃描方法,動態(tài)掃描方式是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行的同名列共用一套列驅(qū)動器。以1616點陣為例,把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽的接法),先送出對應第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定的時間,然后熄滅;再送出第2行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;.第16行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒?,控制電路可以spi總線的方法,將列數(shù)據(jù)一位一位移入列驅(qū)動器。但由于采
8、購的8*8led點陣的管腳圖與理論上的管腳有出入,所以通過測試,得到其管腳分布如下 圖3.14 8*8led的實際管腳在拼接的過程中,上面兩塊行行相連,下面兩塊行行相連,左面兩塊列列相連,右面兩塊列列相連 16*16共陽型點陣顯示字的原理 行對應的給led的陽極,先給第一行以高電平,如果送給16列的代碼為efff,則第一行的第4個led被點亮,再給第二行以高電平,如果送給16列的代碼為ef07,則第二行的第4、9、10、11、12、13個被點亮,接著給第三行以高電平,同時給列以驅(qū)動代碼,這樣不斷地進行行行的掃描,只要速度夠快,由于人的視覺暫留作用,就不會感覺到明顯的閃爍感。點陣上會看到一個清晰
9、的“機”字。 圖3.15顯示字的原理圖字模提取軟件截圖 圖3.16 字模提取軟件4.軟件設計(程序以及流程框圖)4.1程序流程圖 圖4.1 程序流程圖 4.2程序清單:見附件一4.3程序模塊及其之間的關(guān)系:1.主程序:主要是對定時器的計數(shù)初值以及方式進行初始化,開定時器中斷以及寫語句實現(xiàn)真?zhèn)€顯示程序的重復運行。2.顯示子程序:用于初始化行掃描開始的地址以及對每個字的16行重復掃描延時3.時器中斷服務程序:定時1ms,定時的時間就是行掃描的間隔時間,在掃描過程中進行行驅(qū)動信號的改變和列信號的改變4.74hc595串入并出子程序:主要是將字的代碼通過串行的方式,移入74hc595進行暫存。程序之間
10、的具體調(diào)用是通過主程序調(diào)用顯示程序,開始進行定時,當定時時間到,進入中斷服務,進行列信號的查表以及對應行的通斷送點陣顯示。之后調(diào)回顯示子程序進行每個字的一段時間的延遲,當“我愛單片機”五個字整體顯示完一次,就再調(diào)用顯示子程序重復運行。5.檢測與調(diào)試 在仿真的過程中,由于簡化了電路,用非門代替了三極管開關(guān)電路,以及單片機最小系統(tǒng)的簡化,在仿真的過程中沒有出現(xiàn)大的問題。但在實際電路的焊接好后,由于經(jīng)驗不足,加上平時都是在protues中進行仿真,實際電路中在檢查和調(diào)試過程中出現(xiàn)了以下問題: 1.8*8的點陣的管腳和理論上的管腳不一樣,第一次焊接的時候,忽略了管腳的問題,當焊接好后,出現(xiàn)了不按照預定
11、的程序進行顯示。通過萬用表對點陣的二極管通斷進行檢測,將管腳的各行各列依次檢查出來后再進行拼接。 2.在單片機最小系統(tǒng)部分,在最開始沒有將ea管腳接高電平,導致一開始程序不運行,一開始以為是電路沒有連接通,反復查找,在師姐的幫助下,最終發(fā)現(xiàn)是ea沒接高。當接高后問題解決,程序正常運行。6.總結(jié) 通過本次的課程設計,我組織并參與了整個過程,從最開始的編程和仿真的聯(lián)調(diào),已經(jīng)后來的焊接實物和檢查實物的故障。在這個過程中,我明白了要想學好嵌入式系統(tǒng)必須要有耐心和細心。在對元件的選擇方面必須要細心,所有的參數(shù)需要通過計算或者類比,在對元件的焊接方面必須要耐心。清楚的記得在拼接16*16的led點陣的時候
12、,急躁之后換回來的是重新焊接,在焊接方面一定需要耐心。在查元件的各管腳的含義的時候一定要細心,要領(lǐng)會所有管腳的含義,最重要的是功能作用表和時序圖,這兩個也就是描述芯片的作用,我們本次采用的74hc138和74hc595.通過這兩個芯片我對譯碼器的作用有了更深的理解,不再停留在譯碼器只用在地址的譯碼。也對單片機的串行通信有了更熟悉的理解,一定要用cy作為過渡寄存器,這樣能保證是每到一個脈沖信號就串行通信一位數(shù)據(jù)。 這里感謝小組同學的付出,特別感謝黃地陪我一起焊接硬件。在這里也感謝簡毅老師對我們的幫助和支持。7參考文獻 1李朝青單片機原理及接口技術(shù)北京北京航空航天大學出版社. 2005.10 2閻
13、石數(shù)字電子技術(shù)基礎(chǔ)北京清華大學出版社 . 1998.123楊欣. 電子設計從零開始(第2版).北京. 清華大學出版社. 2010.10附件一:(本次課程設計程序) sdata_595 equ p2.5 ;串行數(shù)據(jù)輸入 sclk_595 equ p2.7 ;移位時鐘脈沖 rck_595 equ p2.6 ;輸出鎖存器控制脈沖 g_74138 equ p2.4 ;顯示允許控制信號端口 row_end bit 20h.0 ;行掃描完畢標志 coun_comp equ 30h ;計數(shù)比較值單元;* org 0000h ajmp main org 000bh ajmp timer0;*main: mov
14、 sp,#70h mov a,#0ffh mov p1,a mov p2,a mov p3,a mov p0,a clr row_end clr rck_595 mov tmod,#01h ;設置定時器0工作在定時方式1 mov th0,#0fch ;1ms定時常數(shù) mov tl0,#18h mov ie,#82h ;允許總中斷,允許定時器0中斷 mov dptr,#tab mov r0,#00h main1: lcall display ajmp main1;*; 顯示子程序; r1 文字列碼的偏址; r2 行掃描地址 r3 每個字循環(huán)掃描的次數(shù); b 暫存r1的過程數(shù)據(jù);*display:
15、 mov b,#00h ;查表偏址暫存(從00開始) mov r1,b mov coun_comp,#0a0hd_loop: mov r3,#5ah ;控制每個字的顯示速度d_loop1: mov r2,#00h ;第0行開始 mov r1,b setb tr0 ;開掃描d_loop2: jbc row_end,d_loop3 ;標志為1掃描一個字16行結(jié)束 ajmp d_loop2d_loop3: djnz r3,d_loop1 ;每個字重復掃描 mov a,r1 mov b,a cjne a,coun_comp,d_loop ;5個字是否顯示完? ret ;*; t0中斷掃描子程序; r1
16、 取數(shù)據(jù)地址; r2 行掃描地址;*timer0: push acc mov th0,#0fch ;1ms定時常數(shù) mov tl0,#18h inc r1 ;取每行右邊字節(jié)偏址 mov a,r1 movc a,a+dptr ;取每行右邊字節(jié)數(shù)據(jù) lcall wr_595 dec r1 ;取每行左邊字節(jié)偏址 mov a,r1 movc a,a+dptr ;取每行左邊字節(jié)數(shù)據(jù) lcall wr_595 setb g_74138 ;關(guān)行顯示,準備刷新 nop nop setb rck_595 ;產(chǎn)生上升沿,數(shù)據(jù)打入輸出端 nop nop clr rck_595 ;恢復低電平 mov a,r2 ; m
17、ov p2,a ;行輸出 clr g_74138 ;開行顯示 inc r1 inc r1 ;下一行數(shù)據(jù)地址 inc r2 ;修改顯示行地址 mov a,r2 anl a,#0fh jnz t0_end ;一個字的16行掃描是否完畢? setb row_end ;一個字的16行掃描完,置標記 clr tr0 ;一個字的16行掃描完,關(guān)掃描t0_end: pop acc reti;*;移位寄存器接收數(shù)據(jù)子程序;*wr_595: mov r4,#08hwr_loop: rlc a mov sdata_595,c setb sclk_595 ;上升沿發(fā)生移位 nop nop clr sclk_595
18、djnz r4,wr_loop ret;*tab:;我db 0fbh,7fh,0f1h,5fh,87h,6fh,0f7h,6fh,0f7h,7bh,00h,01h,0f7h,7fh,0f7h,6fhdb 0f5h,6fh,0f3h,9fh,0e7h,0bfh,97h,5fh,0f6h,0dfh,0f5h,0ebh,0d7h,0ebh,0efh,0f3h;愛db 0ffh,87h,0c0h,7fh,0eeh,0efh,0f6h,0dfh,80h,01h,0bdh,0fdh,7dh,0fbh,80h,07h db 0fbh,0ffh,0f8h,0fh,0f5h,0dfh,0f6h,0bfh,0efh,7fh,0eeh,9fh,0ddh,0e3h,0f3h,0f7h;單db 0efh,0efh,0f7h,0dfh,0fbh,0b7h,0c0h,03h,0deh,0f7h,0deh,0f7h,0c0h,07h,0deh,0f7hdb 0deh,0f7h,0c0h,07h,0deh,0ffh,0feh,0fbh,00h,01h,0f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 煉油廠每日安全分享
- 糖尿病胰島素種類
- 術(shù)后肺部感染如何預防與護理
- 廚房規(guī)劃方案總結(jié)
- 4-2-2 元素周期表及元素周期律的應用 課件 高一上學期化學人教版(2019)必修第一冊
- 黑客攻擊解決方案
- 消化道大出血的應急流程演練
- 消防安全知識演練
- 氧化硫說課稿
- 化簡比說課稿人教版
- 酒店安全設施及安全制度
- 近代化的早期探索與民族危機的加劇 單元作業(yè)設計
- 租賃機械設備施工方案
- 屋面融雪系統(tǒng)施工方案
- 二年級家長會語文老師課件
- 結(jié)構(gòu)加固改造之整體結(jié)構(gòu)加固教學課件
- 巰基乙醇化學品安全技術(shù)說明書
- 教堂安全風險分級管控體系方案全套資料(2019-2020新標準完整版)
- 歷史(心得)之在歷史教學中培養(yǎng)學生生態(tài)環(huán)境意識
- 有機磷農(nóng)藥中毒課件-整理
- 輪對故障發(fā)生的原因和危害分析及其防范措施
評論
0/150
提交評論