【正文】
償方法,并給出了實(shí)現(xiàn)程序。 another way for the interruption of the way from time to time when to start opening up the appropriate timing interruption, and will deal with overflow from time to time for the interruption of programming procedures adopted in the form of disruption in the corresponding entries (000b, 001b) Jump to place orders regularly overflow into the process.The work of the selected timer mode, the timer overflow time of the initial value only depends on the counter, depending on the application need to determine how to counter the initial value, the timer is also an important issue in the application. Assumed that the singlechip machine cycle for k0, selected from time to time for the nbit counter mode, the timing to achieve the length of time for t, are:(2nx) k0 = t (1)One of the initial value x for the counter, according to 1 can be calculated initial value x as follows:x = 2n(t/k0) (2)4 Timer39。 the way is a structure of 16 counts, counters th and tl from all eight were posed of 16。所有的MCS51系列單片機(jī)都有一個(gè)相同的8位微處理器CPU,它由算術(shù)邏輯運(yùn)算部件ALU、布爾處理器、控制器和工作寄存器組成。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS51指令集和輸出管腳相兼容。在這短短一個(gè)半月里,我覺的自己的收獲很大,不僅僅專業(yè)知識得到進(jìn)一步的鞏固,而且使我懂得了理論結(jié)合實(shí)踐的重要性。致 謝在這里,我首先感謝我的指導(dǎo)老師于洪亮老師在這段時(shí)間里對我的關(guān)心和指導(dǎo),從剛開始選題到中期的硬件設(shè)計(jì)、軟件編寫和后期的檢查工作,他都能在第一時(shí)間通知我們,協(xié)助我們力求把每件事盡量做到最好,使我在制作的過程中,對原理圖以及硬件的設(shè)計(jì)有了很深的理解,對現(xiàn)在廣泛應(yīng)用的51系列單片機(jī)的設(shè)計(jì)已能初步掌握,在軟件編寫和硬件設(shè)計(jì)及論文的撰寫的過程中也給予我很大的幫助。(2) 在增強(qiáng)圖文屏顯示效果上,可使用雙色或多色顯示屏,以滿足顯示更加豐富多彩的圖形和文字。因此,在以后的研制過程中,還需要做大量的工作,比如:(1)在解決設(shè)計(jì)問題的同時(shí)自己也在其中有所收獲,我們這次設(shè)計(jì)的這個(gè)LED顯示屏,以時(shí)鐘電路和復(fù)位電路為控制電路,以單片機(jī)AT89C51為控制核心,兩個(gè)驅(qū)動(dòng)電路分別控制行信號和列信號,驅(qū)動(dòng)LED顯示屏的漢字顯示。在這次的畢業(yè)設(shè)計(jì)中,我對單片機(jī)匯編語言和硬件的設(shè)計(jì)有了很深的學(xué)習(xí)和理解,原理圖的設(shè)計(jì),元器件的焊接等基本方法得到進(jìn)一步的掌握,也對LED顯示屏有了進(jìn)一步的認(rèn)識。把存在問題的導(dǎo)線換掉,重新焊接上新線。可以通過以下的方法去改進(jìn)此電路:使用萬用表檢和5V電源測每個(gè)點(diǎn),查看有無搭焊、虛焊、短路現(xiàn)象。焊接中使用的線質(zhì)量太差,可能存在中間斷開的現(xiàn)象,導(dǎo)致點(diǎn)無法被電亮。通過不斷的調(diào)整、調(diào)試,最后確定。程序設(shè)計(jì)屏幕的顯示順序是從左到右,先下后上,一列一列的掃描過去。導(dǎo)致在軟硬件調(diào)試過程中,出現(xiàn)有好多點(diǎn)不亮的現(xiàn)象,最后檢測出是焊接出現(xiàn)了假焊和搭焊的現(xiàn)象。其次,買到的88的和書本上介紹的有很大的區(qū)別!共陰極端和和共陽極端不是在同一端,必須用萬用表一個(gè)腳一個(gè)腳的檢測。二、LED點(diǎn)陣數(shù)碼管顯示錯(cuò)誤分析 在1616LED顯示屏的制作中,我遇到了很大的問題。這些都需要細(xì)心的檢測和調(diào)試以后才能使用,所以在調(diào)試之前要對板子上所有的元器件進(jìn)行檢查,導(dǎo)線與焊點(diǎn)的檢測:制作完板子,焊上插槽后要檢查導(dǎo)線是否導(dǎo)通以及是否有虛焊,這可以借助5V電源和萬用表來測量,元器件的引腳上已經(jīng)焊好了焊錫,但是如果你用萬用表測量他的引腳和旁邊的導(dǎo)線,有時(shí)你會發(fā)現(xiàn)本來該導(dǎo)通的,卻不導(dǎo)通,這有可能是虛焊,這是我們新手經(jīng)常出現(xiàn)的問題。本章就重點(diǎn)來介紹硬件制作的過程及其遇到的問題與覺得有待改進(jìn)的地方。 } } } }}第四章 結(jié)果調(diào)試與討論 故障分析因?yàn)檐浖O(shè)計(jì)部分我在實(shí)習(xí)期間就已經(jīng)完成,所以焊接及其調(diào)試是本次設(shè)計(jì)我最關(guān)心和重視的一部分。 P0=0x00。 P2=text[n]。//i=j時(shí)的行掃描輸出 // n=30+2*j2*i。 } else{ P1=a[i]。 m++。 //送入列掃描信號 // P0=text[2*j2*i2]。i16。sspeed。j64。uchar i,s。j)。i)for(j=50。for(i=z。uchar code a[]={0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0}。在顯示過程中,多采用掃描方式,利用人的視覺暫停效應(yīng),只要刷新速率不小于25幀/秒,就不會有閃爍的感覺。當(dāng)相應(yīng)的行接高電平是,對應(yīng)的發(fā)光二極管被點(diǎn)亮。在顯示過程中,多采用掃描方式,利用人的視覺暫停效應(yīng),只要刷新速率不小于25幀/秒,就不會有閃爍的感覺。當(dāng)相應(yīng)的行接高電平,列接低電平時(shí),對應(yīng)的發(fā)光二極管被點(diǎn)亮。在顯示過程中,多采用掃描方式,利用人的視覺暫停效應(yīng),只要刷新速率不小于25幀/秒,就不會有閃爍的感覺。當(dāng)相應(yīng)的行接高電平,列接低電平時(shí),對應(yīng)的發(fā)光二極管被點(diǎn)亮。而且程序也支持西文字符的現(xiàn)實(shí),顯示時(shí)也讓其占用一個(gè)漢字的空間。根據(jù)漢字識別一節(jié)所述,不經(jīng)過文本編輯器,直接將動(dòng)態(tài)編碼(十六進(jìn)制數(shù))定改磁盤文件對應(yīng)位置即可,但是處理過后的漢字在文本編輯器里會顯示出亂碼。 編碼改寫 機(jī)內(nèi)碼是PC機(jī)識別處理漢字用的,單片機(jī)只能處理我們建立起來的動(dòng)態(tài)編碼,還得把程序中漢字的僅機(jī)碼根據(jù)編碼字典改成對應(yīng)的動(dòng)態(tài)編碼才行。 注:N為一個(gè)漢字點(diǎn)陣字模的字節(jié)數(shù)。 提取字模、建立動(dòng)態(tài)字庫 漢字機(jī)內(nèi)碼與點(diǎn)陣字庫的詳細(xì)關(guān)系可參考有關(guān)資料,它們存在如下聯(lián)系: 字模首地址=((機(jī)內(nèi)碼高字節(jié)1)94+(機(jī)內(nèi)碼低字節(jié)1))N偏移量一般可設(shè)為0A0H。設(shè)某漢字在編碼字典中的序號為Num,則該漢字的動(dòng)態(tài)編碼為: 動(dòng)態(tài)編碼高字節(jié)=頁偏移量+Num/8 動(dòng)態(tài)編碼低字節(jié)=偏移量+(Num%8)32可以優(yōu)化設(shè)計(jì)動(dòng)態(tài)編碼的高字節(jié)指向字模的頁地址(DPH),低字節(jié)指向字模在該頁的首地址(DPL)。以MCS51系列單片機(jī)和1616點(diǎn)陣漢字做一優(yōu)化編碼示例:8051的地址指針DPTR是16位指針,由高、低2字節(jié)指針DPH、DPL組合而成,如果將存儲器按0FFH(256)字節(jié)分布,修改DPH即可直接尋址到任一頁,修改DPL可尋址該頁的任一字節(jié)。由于每個(gè)字符都是從尾部添加的,它們的序號也是依次遞增的,根據(jù)序號就可以進(jìn)行動(dòng)態(tài)編碼了。 在C和匯編程序中表示字符的方式有所不同,但最終字符在文件中的存儲格式是一樣的。每個(gè)漢字的機(jī)內(nèi)碼是唯一的,由2個(gè)字節(jié)組成,分區(qū)碼和位碼,為了和西文的ASCII碼有區(qū)別,漢字機(jī)內(nèi)碼的區(qū)碼和位碼的取值都大于0A0H。顯示方式的實(shí)現(xiàn)取決于數(shù)據(jù)放入顯示緩沖區(qū)的順序,左移使從數(shù)據(jù)存儲區(qū)取出一位數(shù)放入顯示緩沖區(qū),上移使每次取出一行數(shù)據(jù)放到緩沖區(qū),時(shí)間顯示時(shí)先把實(shí)時(shí)時(shí)鐘的數(shù)據(jù)放到顯示緩沖區(qū),顯示時(shí)并不識別顯示緩沖區(qū)的數(shù)據(jù),只是依次從顯示緩沖區(qū)提取數(shù)據(jù)向顯示屏發(fā)送并送入相應(yīng)的鎖存消隱和行值信號,完成掃描。程序中將數(shù)據(jù)存儲器分為三個(gè)區(qū):顯示緩沖區(qū),數(shù)據(jù)存儲區(qū)和接收緩沖區(qū)。 時(shí)鐘電路 16*16LED點(diǎn)陣顯示屏硬件電路圖 由以上分析可得出我所設(shè)計(jì)的點(diǎn)陣顯示屏硬件電路圖,此硬件電路圖以89C51單片機(jī)為核心,輔以外圍電路連接到16*16LED點(diǎn)陣顯示屏上。晶振的頻率越高,則系統(tǒng)的時(shí)鐘頻率也就越高,單片機(jī)的運(yùn)行速度也越快,所以我選用的晶振是12MHZ晶振。這兩個(gè)引腳跨接石英晶體振蕩器(簡稱晶振)和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器,如圖3時(shí)鐘電路所示,是89C51內(nèi)部時(shí)鐘方式的振蕩器電路。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,始終電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。 電平復(fù)位電路 時(shí)鐘電路 89C51單片機(jī)的時(shí)鐘信號通常有兩種方式產(chǎn)生:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方式。電平復(fù)位是通過RET端經(jīng)電阻與電源VCC接通而實(shí)現(xiàn)的。我采用的是按鈕復(fù)位—按鍵手動(dòng)復(fù)位。AT89C51的復(fù)位引腳RST通過一個(gè)施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來控制噪音,當(dāng)在80C51單片機(jī)的RST引腳入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)就執(zhí)行復(fù)位操作(若引腳持續(xù)保持高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài))施密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。變壓器次級線圈輸出的9V交流電壓經(jīng)過全橋QD2進(jìn)行全波整流,C19濾波,LM7805穩(wěn)壓后,輸出穩(wěn)定的+5V直流工作電壓。 LED點(diǎn)陣外圍電路 電源電路電路主要分為:變壓、整流、濾波、穩(wěn)壓四個(gè)部分。在維持時(shí)間恒定的情況下,電流越大(不超過額定電流),點(diǎn)陣亮度也越亮,而在電流恒定的情況下,需要一段維持時(shí)間來保持亮度。16=,同時(shí)也不是每行的掃描時(shí)間越短越好,因?yàn)長ED的亮度同電流的大小和維持時(shí)間的長短有關(guān)[4]。根據(jù)視覺滯留原理,根據(jù)視覺滯留原理,每屏的完整的顯示時(shí)間應(yīng)控制在20ms之內(nèi),即50Hz,人眼看上去才不會覺得閃爍。需要注意的是,每次只能選通一行數(shù)據(jù),即要通過不斷的逐行掃描來實(shí)現(xiàn)漢字或字符的顯示。工作時(shí),由單片機(jī)從緩沖區(qū)取出第一行需要顯示的8字節(jié)點(diǎn)陣數(shù)據(jù),其數(shù)據(jù)輸入的順序與顯示內(nèi)容的順序相反。靜態(tài)顯示只需在定時(shí)中斷處理程序中從顯示緩沖區(qū)調(diào)入相應(yīng)的一行顯示數(shù)據(jù),然后選中該行即可實(shí)現(xiàn)該行的顯示,如此循環(huán),便可顯示整個(gè)內(nèi)容。而列驅(qū)動(dòng)部分則用兩個(gè)74LS138譯碼,將列選通信號作為兩個(gè)譯碼器地址輸入,可以得到16列的列值信號。系統(tǒng)由單片機(jī)控制。 LED點(diǎn)陣顯示系統(tǒng)的硬件設(shè)計(jì) 顯示驅(qū)動(dòng)部分 LED點(diǎn)陣選用2*4模塊,每4塊排列成一個(gè)16*16的點(diǎn)陣,用于顯示一個(gè)漢字。時(shí)鐘電路采用了兩個(gè)30皮法的電容和一個(gè)12MHz晶振。 單片機(jī)電路的工作原理該電