




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE26基于PC機(jī)和單片機(jī)控制的LED利率屏摘要本文介紹了一種可通過(guò)PC機(jī)修改數(shù)據(jù)的LED利率屏系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。該系統(tǒng)只需在PC機(jī)上操作便可實(shí)現(xiàn)對(duì)LED利率屏數(shù)據(jù)和顏色的修改。系統(tǒng)采用了VB(VisualBasic)語(yǔ)言編寫(xiě)PC機(jī)上位機(jī)界面,利用單片機(jī)作為下位機(jī)控制LED利率屏的顯示,通過(guò)MAX-232電平轉(zhuǎn)換電路將PC機(jī)串口與單片機(jī)串口相連,并結(jié)合上、下位機(jī)程序,實(shí)現(xiàn)了上、下位機(jī)之間進(jìn)行串口數(shù)據(jù)傳輸?shù)墓δ?。達(dá)到了在PC機(jī)上方便的控制LED利率屏數(shù)據(jù)和顏色修改的目的。關(guān)鍵詞可視化語(yǔ)言;串口通信;單片機(jī);數(shù)碼管AnInterestRatesLEDScreenBasedonPCandMCUAbstractAdesignandmethodoftheinterestratesLEDscreensystemisintroducedinthispaper.ThedataofthissystemcanbemodifiedbyPC.ThewayofmodifingthedataandcolorofitisoperatingonPC.ThissystemtakesVBlanguagetocompilethePCinterface,takesMCUasPLCtocontrolthedisplayofit,integratesthePCserialportandMCUserialportbylevelconvertingcircuitMAX-232,realizestheserialportdatatransmissionbetweenPCandPLCbycombiningthePCandPLCprogram.ThesystemachievesthegoalofmodifyingthedataandcolorofinterestratesLEDscreenconveniently.KeywordsVisuallanguage;serialportcommunication;MCU;digitron引言隨著社會(huì)的不斷進(jìn)步,人們對(duì)于廣告的需求不斷增多,戶(hù)外燈箱廣告扮演著越來(lái)越重要的宣傳角色,不論是汽車(chē)站,火車(chē)站,股市交易市場(chǎng),還是學(xué)校等公共場(chǎng)所都離不開(kāi)它。然而傳統(tǒng)的霓虹燈廣告牌不論是在顯示效果、耗電量還是可修改性上都無(wú)法滿(mǎn)足當(dāng)前社會(huì)的需求,傳統(tǒng)的霓虹燈廣告亟待改進(jìn)。由于單片機(jī)技術(shù)的不斷發(fā)展和高亮度LED發(fā)光管的出現(xiàn),促進(jìn)了大屏幕高亮度LED電子廣告屏的推廣。它與傳統(tǒng)的霓虹燈廣告在顯示效果以及可修改性上都有著無(wú)法比擬的優(yōu)勢(shì)。而且單片機(jī)的日益平民化以及LED技術(shù)的不斷創(chuàng)新,使得高亮度高清晰的LED點(diǎn)陣廣告牌與傳統(tǒng)霓虹燈廣告牌的成本日益接近。另外,SMT技術(shù)的飛速發(fā)展,開(kāi)關(guān)電源的大規(guī)模使用,使其在體積上和可靠性上都比傳統(tǒng)的霓虹燈廣告有明顯的優(yōu)勢(shì),為其在特殊領(lǐng)域的應(yīng)用奠定了基礎(chǔ)。這種新興的大屏幕顯示技術(shù)成為眾人目光的焦點(diǎn)。與傳統(tǒng)的顯示設(shè)備相比,具有以下幾個(gè)方面的優(yōu)勢(shì):首先,LED顯示屏色彩豐富、3基色的發(fā)光管可以顯示全彩色、顯示方式變化多樣(文字、圖形、動(dòng)畫(huà)、視頻、電視畫(huà)面等)、亮度高,是集光電子技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)、信息處理技術(shù)于一體的高技術(shù)產(chǎn)品、以及可用來(lái)顯示文字、計(jì)算機(jī)屏幕同步的圖形。其次,LED顯示屏的象素采用LED發(fā)光二極管,將多個(gè)發(fā)光二極管以序列的形式構(gòu)成LED顯示陣列,這種顯示屏具有耗電省、成本低、亮度清晰度高、壽命長(zhǎng)等優(yōu)點(diǎn),而且LED顯示屏以其受空間限制較小,并可以根據(jù)用戶(hù)要求設(shè)計(jì)屏的大小,較為靈活,是信息傳播設(shè)施劃時(shí)代的產(chǎn)品。再次,LED顯示屏應(yīng)用廣泛,金融證券、銀行利率、商業(yè)廣告、文化娛樂(lè)等方面,顯示效果清晰穩(wěn)定,越來(lái)越多的地方開(kāi)始使用LED電子顯示屏,帶來(lái)了巨大的社會(huì)效益和經(jīng)濟(jì)效益。它以其超大畫(huà)面、超寬視覺(jué)、靈活多變的顯示方式獨(dú)具一格的優(yōu)勢(shì),是目前國(guó)際上使用廣泛的顯示系統(tǒng)。1設(shè)計(jì)任務(wù)本系統(tǒng)采用VB編制PC機(jī)上位機(jī)人機(jī)操作界面,通過(guò)PC機(jī)鍵盤(pán)操作輸入和修改數(shù)據(jù),將輸入的數(shù)據(jù)快速、及時(shí)清晰地顯示在LED數(shù)碼管紅黃雙色屏上。該系統(tǒng)要求輸入的數(shù)據(jù)具有掉電保護(hù)和數(shù)據(jù)存儲(chǔ)功能。2總體方案論證2.1PC上位機(jī)程序方案論證基于本系統(tǒng)設(shè)計(jì)任務(wù)的要求,不得不利用PC機(jī)和單片機(jī)之間的通信。由于PC機(jī)和單片機(jī)(如MCS51)都具有串口,因此經(jīng)常使用串口完成而者之間的數(shù)據(jù)交換。這就需要在PC端設(shè)計(jì)相應(yīng)的串口通信程序。Windows為用戶(hù)提供了兩種方式實(shí)現(xiàn)串行通信:①使用串口通信控件針對(duì)串口通信,微軟公司專(zhuān)門(mén)提供了MSComm控件,使用該控件進(jìn)行串口通信設(shè)計(jì)是十分方便的,程序員不必花時(shí)間去了解較為復(fù)雜API函數(shù)。通過(guò)簡(jiǎn)單的修改控件的屬性和使用控件提供的方法,就可以實(shí)現(xiàn)對(duì)串口配置,完成串口接收和發(fā)送數(shù)據(jù)。②使用Windows的API應(yīng)用程序接口Windows中,串口是以文件形式被打開(kāi)和訪問(wèn)的。串口和串口通信驅(qū)動(dòng)需要使用設(shè)備控制塊(DCB,DeviceControlBlock)進(jìn)行配置。應(yīng)用程序使用API函數(shù)CreatFile讀串口,CreateEvent建立事件對(duì)象和CloseHandle關(guān)閉串口[5]。綜合考慮,使用串口通信控件進(jìn)行串口程序開(kāi)發(fā)較為方便。由于VisualBasic利用可視化技術(shù)進(jìn)行編程,使編程工作變得輕松快捷,擺脫了面向過(guò)程語(yǔ)言的許多細(xì)節(jié),而將主要精力集中在解決實(shí)際問(wèn)題和設(shè)計(jì)友好界面上。本設(shè)計(jì)在VB語(yǔ)言下使用MSComm控件進(jìn)行串口程序設(shè)計(jì)。在串口編程中,使用MSComm控件非常方便,僅需要通過(guò)簡(jiǎn)單的修改控件的屬性和使用控件提供的方法,就可以實(shí)現(xiàn)對(duì)串口的配置,完成串口接收和發(fā)送數(shù)據(jù)等任務(wù)。本系統(tǒng)上位機(jī)軟件主要包括:用戶(hù)界面的設(shè)計(jì)、程序的初始化、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)以及其他工作。2.2顯示部分方案論證方案一,靜態(tài)驅(qū)動(dòng)顯示方式:從理論上說(shuō),不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個(gè)點(diǎn)所在位置與LED發(fā)光器件相對(duì)應(yīng),就可以得到我們想要的顯示結(jié)果。這種同時(shí)控制各個(gè)發(fā)光點(diǎn)亮滅的方法稱(chēng)之為靜態(tài)驅(qū)動(dòng)顯示方式。本設(shè)計(jì)的LED利率屏共有20個(gè)數(shù)碼管,總計(jì)有20×8段發(fā)光二極管。顯然,單片機(jī)沒(méi)有這么多端口。如果我們采用鎖存器來(lái)擴(kuò)展端口,按8位的鎖存器來(lái)計(jì)算,160個(gè)發(fā)光二極管共需要20個(gè)鎖存器,這個(gè)數(shù)字比較大,而且成本很昂貴,而我們僅僅使用20個(gè)數(shù)碼管,在實(shí)際應(yīng)用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個(gè)很龐大的數(shù)字。方案二,動(dòng)態(tài)掃描的顯示方式:所謂動(dòng)態(tài)顯示,就是一位一位地輪流點(diǎn)亮各位顯示器。對(duì)每一位顯示器而言,每隔一段時(shí)間點(diǎn)亮一次。具體就是所有數(shù)碼管的8個(gè)段選端并聯(lián)在8位的數(shù)據(jù)線上,由軟件分別送各個(gè)數(shù)碼管該顯示的數(shù)字,一個(gè)一個(gè)點(diǎn)亮數(shù)碼管,延時(shí)一段時(shí)間后再送下一個(gè)數(shù)碼管的數(shù)字,同時(shí)熄滅除下一個(gè)該點(diǎn)亮的數(shù)碼管以外所有數(shù)碼管。顯示位的亮度既跟導(dǎo)通電流有關(guān),也和點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。這種方法為多位數(shù)碼管的段選端確實(shí)節(jié)省了不少的數(shù)據(jù)端口,同時(shí)也對(duì)省電起到了不小的作用(實(shí)際上數(shù)碼管是時(shí)亮是不亮的)。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺(jué)暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形了。動(dòng)態(tài)顯示器的硬件成本較低,但是動(dòng)態(tài)顯示有一個(gè)致命的缺點(diǎn)就是隨著顯示數(shù)碼管的增多,它顯示的亮度會(huì)明顯的較暗甚至出現(xiàn)閃爍的現(xiàn)象。因?yàn)閿?shù)碼管越多,那么在整個(gè)循環(huán)周期內(nèi),相對(duì)于每一個(gè)數(shù)碼管來(lái)說(shuō)它點(diǎn)亮的時(shí)間就會(huì)越短,數(shù)碼管亮度明顯降低也就順理成章了。一般,當(dāng)數(shù)碼管的位數(shù)大于12位時(shí),就會(huì)出現(xiàn)閃爍現(xiàn)象,這是所有動(dòng)態(tài)顯示方式共同的弱點(diǎn)。方案三,動(dòng)態(tài)掃描和靜態(tài)掃描相結(jié)合的方法:采用動(dòng)態(tài)掃描和靜態(tài)掃描相結(jié)合的方法顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,它每行5個(gè)數(shù)碼管的位選相并聯(lián),每列共用一個(gè)列驅(qū)動(dòng)器,它每列4個(gè)數(shù)碼管的段選相并聯(lián)。行驅(qū)動(dòng)器采用74LS138譯碼器,它可以控制4行8種情況(每行數(shù)碼管的位選有紅色位選和綠色位選之分),數(shù)碼管的位選采用動(dòng)態(tài)掃描的方法。列驅(qū)動(dòng)采用74HC595移位寄存器,先送高位再送低位,數(shù)碼管的段選采用靜態(tài)掃描的方法。這樣只需要給單片機(jī)6個(gè)數(shù)據(jù)線就可以完成20個(gè)數(shù)碼管的顯示,74LS138三個(gè)數(shù)據(jù)輸入線,74HC595一根數(shù)據(jù)線、一根時(shí)鐘線和一個(gè)使能線。采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥?根線:數(shù)據(jù)線、時(shí)鐘線。將行數(shù)據(jù)一位一位傳往行驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。位選G位選R段選段選段選段選段選位選G位選R段選段選段選段選段選位選G3-8譯碼器位選G3-8譯碼器位選R段選段選段選段選段選位選R段選段選段選段選段選位選G位選G位選R段選段選段選位選R段選段選段選位選R段選段選位選R段選段選位選G位選G段選段選段選段選段選段選段選段選段選段選DATA4DATA3DATA2DATA1DATA0DATA4DATA3DATA2DATA1DATA0SCKEN595595595595595SCKEN595595595595595圖2.1動(dòng)靜態(tài)結(jié)合顯示原理框圖這樣,對(duì)于一行的顯示過(guò)程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個(gè)部分。采用重疊處理的方法。即在顯示本行數(shù)據(jù)的同時(shí),傳送下一行的數(shù)據(jù)。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入移位存儲(chǔ)器74HC595進(jìn)行鎖存輸出時(shí),串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),直到下一行的數(shù)據(jù)輸送完畢后,即可熄滅第一行的數(shù)碼管進(jìn)而點(diǎn)亮第二行的數(shù)碼管,進(jìn)行動(dòng)態(tài)顯示。一定的刷新頻率保證了各行的數(shù)碼管顯示不同的數(shù)字。綜合以上幾點(diǎn),本設(shè)計(jì)方案采用動(dòng)態(tài)掃描和靜態(tài)驅(qū)動(dòng)顯示相結(jié)合的方法,在數(shù)據(jù)串行傳輸過(guò)程中采用重疊處理的方法,這樣既節(jié)省硬件資源又保證了LED顯示的亮度。[10]動(dòng)靜態(tài)顯示原理框圖如圖2.1所示。2.3通信方式方案論證CPU與外部設(shè)備交換數(shù)據(jù)有并行和串行通信兩種方式。并行通信時(shí)指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的方式。其特點(diǎn)是數(shù)據(jù)的傳送速度快、效率高,顯然并行傳送的數(shù)據(jù)有多少位,就要有多少根傳輸線。當(dāng)傳送距離較遠(yuǎn)時(shí),位數(shù)較多就會(huì)導(dǎo)致通信線路成本的大幅度提高,因此它僅適合于短距離傳輸。串行通信時(shí)指數(shù)據(jù)的各位按順序一位一位地傳送的通信方式。其特點(diǎn)時(shí)只要一對(duì)傳輸線就可以實(shí)現(xiàn)通信,對(duì)傳輸?shù)臄?shù)據(jù)較多、距離很遠(yuǎn)時(shí),它可以大量節(jié)約系統(tǒng)的硬件投資。因此,在遠(yuǎn)距離的數(shù)據(jù)通信系統(tǒng)中一般采用串行通信方式?;谠O(shè)計(jì)要求,本設(shè)計(jì)的整體方案為:使用VB編制PC機(jī)上位機(jī)人際界面操作窗口,用于數(shù)據(jù)的輸入和修改。然后使PC機(jī)和單片機(jī)進(jìn)行串口通信,把從PC機(jī)鍵盤(pán)輸入或修改的數(shù)據(jù)送往單片機(jī),單片機(jī)再將送過(guò)來(lái)的數(shù)據(jù)進(jìn)行存儲(chǔ)和送LED顯示屏進(jìn)行顯示。系統(tǒng)整體框圖2.2所示。圖2.2基于PC機(jī)和單片機(jī)控制的LED利率屏系統(tǒng)框圖3系統(tǒng)硬件設(shè)計(jì)該系統(tǒng)主要由電源模塊電路、單片機(jī)系統(tǒng)及外圍電路、PC機(jī)組成。3.1電源電路電源模塊由12V變壓器構(gòu)成的降壓電路、整流橋堆構(gòu)成的整流電路、電容構(gòu)成濾波電路以及7805和7808穩(wěn)壓塊穩(wěn)壓電路構(gòu)成,為單片機(jī)提供5V直流電壓以及為L(zhǎng)ED顯示屏提供7.4V直流電壓。具體電源模塊電路框圖和硬件電路原理圖3.1和圖3.2所示。變壓器整流電路濾波電路穩(wěn)壓電路220V變壓器整流電路濾波電路穩(wěn)壓電路220V交流電直流電壓直流電壓圖3.1電源模塊框圖圖3.2電源電路原理圖3.2單片機(jī)系統(tǒng)及外圍電路由于LED顯示屏由單片機(jī)控制部分和顯示驅(qū)動(dòng)部分組成,本設(shè)計(jì)單片機(jī)選擇最常見(jiàn)的ATMEL公司的AT89C51單片機(jī)。此單片機(jī)與MCS-51產(chǎn)品指令系統(tǒng)完全兼容,由4K字節(jié)可重擦寫(xiě)Flash閃速存儲(chǔ)器,128*8字節(jié)內(nèi)部RAM,32個(gè)可編程I/O口線,2個(gè)16位定時(shí)/計(jì)數(shù)器和6個(gè)中斷源。并且該單片機(jī)經(jīng)濟(jì)實(shí)用,使用廣泛。我們使用的是由AT89C51構(gòu)成的系統(tǒng)電路,包括:復(fù)位電路、時(shí)鐘脈沖、外部程序存儲(chǔ)器設(shè)定電路[3]和串口通信電路。具體介紹如下:①?gòu)?fù)位電路:?jiǎn)纹瑱C(jī)在開(kāi)機(jī)時(shí)都需要復(fù)位,以便中央處理器CPU以及其他功能部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。51的RST引腳是復(fù)位信號(hào)的輸入端。復(fù)位電平是高電平有效,持續(xù)時(shí)間要有24個(gè)時(shí)鐘周期以上。本系統(tǒng)中單片機(jī)時(shí)鐘頻率為12MHz則復(fù)位脈沖至少應(yīng)為2us。本設(shè)計(jì)采用上電復(fù)位電路。上電瞬間,RST端的電位與Vcc相同,隨著電容的逐步充電,充電電流減小,RST電位逐漸下降。上電復(fù)位所需的最短時(shí)間是振蕩器建立時(shí)間加上二個(gè)機(jī)器周期,在這段時(shí)間里,振蕩建立時(shí)間不超過(guò)10ms。復(fù)位電路的典型參數(shù)為:C取10uF,R取8.2k,故時(shí)間常數(shù)=RC=10108.210=82ms以滿(mǎn)足要求。圖3.3上電復(fù)位②時(shí)鐘電路:AT89C51單片機(jī)的時(shí)鐘頻率為11.0592MHz,它內(nèi)部已經(jīng)具備了振蕩電路,只要在AT89C51的兩個(gè)引腳(即19、18腳)連接到簡(jiǎn)單的石英振蕩晶體的2個(gè)管腳即可,同時(shí)晶體的2個(gè)管腳也要用30pF的電容耦合到地。③外部程序存儲(chǔ)器電路X24C02是CMOS2048位串行,在內(nèi)部組織成256×8位。X24C02的特點(diǎn)是具有允許在簡(jiǎn)單的二線總線上工作的串行接口和軟件協(xié)議??梢越鉀Q89C51系列單片機(jī)片內(nèi)EEPROM不足的問(wèn)題,用以保存諸如用戶(hù)設(shè)置參數(shù)、采集和接收到的數(shù)據(jù),用以對(duì)數(shù)據(jù)實(shí)施掉電保護(hù)等。具體電路圖如圖3.4所示。圖3.4外部存儲(chǔ)器電路圖3.5X24C02引腳排列圖3.6X24c02引腳名稱(chēng)該存儲(chǔ)芯片引腳功能介紹如下:串行時(shí)鐘(SCL):SCL輸入用于使所有數(shù)據(jù)能與時(shí)鐘同步地輸入和輸出器件。串行數(shù)據(jù)(SDA):SDA是雙向引腳,用于把數(shù)據(jù)送入器件和從器件送出。且與任何數(shù)目的漏極開(kāi)路或集電極開(kāi)路輸出“線或”(wire-ORed)連接。漏極開(kāi)路輸出要求使用上拉電阻。地址(A0,A1,A2):地址輸入用于設(shè)置七位從地址的最低三個(gè)有效位。這些輸入端可以靜態(tài)或動(dòng)態(tài)驅(qū)動(dòng)。如果是靜態(tài)使用,那么必須按要求接至Vss或Vcc。若是動(dòng)態(tài)驅(qū)動(dòng),必須把它們驅(qū)動(dòng)至Vss或Vcc。寫(xiě)控制輸入控制對(duì)器件的寫(xiě)入的能力。當(dāng)WC為低電平時(shí)(連接至VSS),X24C02將被允許執(zhí)行寫(xiě)操作。當(dāng)WC為高電平(連接至VCC)時(shí),內(nèi)部高電壓電路被禁止且所有寫(xiě)操作均被禁止。X24C02支持面向雙向總線的協(xié)議。協(xié)議規(guī)定任何發(fā)送數(shù)據(jù)到總線上的器件為發(fā)送器而接收器件為接收器??刂苽魉偷钠骷侵鳈C(jī),被控制的器件為從機(jī)。主機(jī)總是啟動(dòng)數(shù)據(jù)的傳送并提供用于發(fā)送和接收操作的時(shí)鐘。因此,在所有的應(yīng)用中X24C02被認(rèn)為是從機(jī)。④串口通信電路:上位PC機(jī)通過(guò)串口發(fā)送數(shù)據(jù),由MAX232轉(zhuǎn)換TTL電平后經(jīng)過(guò)SPI串行輸入到51單片機(jī)中,51單片機(jī)將接收到的數(shù)據(jù)經(jīng)MXA232轉(zhuǎn)換成RS232電平后發(fā)送至上位PC機(jī)。串口波特率設(shè)置為1200。具體電路圖如圖3.7所示。圖3.7串口通信電路3.3LED顯示屏電路3.3.1總體規(guī)劃及實(shí)現(xiàn)電路每個(gè)漢字需要4個(gè)8*8的LED點(diǎn)陣,要想實(shí)現(xiàn)8行掃描驅(qū)動(dòng),上下2行必須都有1個(gè)74HC595接到LED點(diǎn)陣模塊上,而每個(gè)漢字是按照16*16取模,所以需要4個(gè)74HC595來(lái)驅(qū)動(dòng)一個(gè)漢字,我的電路設(shè)計(jì)的是8個(gè)漢字,所以需要8*4=32個(gè)74HC595來(lái)實(shí)現(xiàn)8行掃描顯示。設(shè)計(jì)好的列驅(qū)動(dòng)電路的部分如圖3.8所示。圖3.8列驅(qū)動(dòng)部分電路圖串入并出移位寄存器74HC595:列驅(qū)動(dòng)電路由集成電路74HC595構(gòu)成。它具有一個(gè)8位串入并出的移位寄存器和一個(gè)8位輸出鎖存器,而且移位寄存器和輸出鎖存器的控制是各自獨(dú)立的,可以實(shí)現(xiàn)在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù),即達(dá)到重疊處理的目的。74HC595的外形及內(nèi)部結(jié)構(gòu)如圖3.9所示。它的輸入端有8個(gè)串行移位寄存器,每個(gè)移位寄存器的輸出都連接一個(gè)輸出鎖存器。引腳SI是串行數(shù)據(jù)的輸入端。引腳SCK是移位寄存器的移位時(shí)鐘脈沖,在其上升沿發(fā)生移位,并將SI的下一個(gè)數(shù)據(jù)打入最低位。移位圖3.974HC595外形及內(nèi)部邏輯結(jié)構(gòu)圖后的各位信號(hào)出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCK是輸出鎖存器的打入信號(hào),其上升沿將移位寄存器的輸出打入到輸出鎖存器。引腳G是輸出三態(tài)門(mén)的開(kāi)放信號(hào),只有當(dāng)其為低時(shí)鎖存器的輸出才開(kāi)放,否則輸出端為高阻狀態(tài)。SCLR信號(hào)是移位寄存器的清0輸入端,當(dāng)其為低時(shí)移位寄存器的輸出全部為0。由于SCK和RCK兩個(gè)信號(hào)是互相獨(dú)立的,所以能夠做到輸入串行移位與輸出鎖存互不干擾。芯片的輸出端為QA~QH,最高位QH可作為多片74HC595級(jí)聯(lián)應(yīng)用時(shí)向上一級(jí)的級(jí)聯(lián)輸出。但因QH受輸出鎖存器打人控制,所以還從輸出鎖存器前引出了QH’,作為與移位寄存器完全同步的級(jí)聯(lián)輸出。由74HC595在4.5V供電的情況下(25℃),可以達(dá)到21MHz以上的時(shí)鐘頻率,而我們采用的89C51的時(shí)鐘頻率只有11.0592Hz,串口方式0的時(shí)鐘頻率只有fosc/12﹦1MHz,所以74HC595完全勝任;由于74HC595輸出高電平時(shí)每個(gè)管腳的驅(qū)動(dòng)電流只有20mA,而每個(gè)LED發(fā)光管的驅(qū)動(dòng)電流也是20mA,要是8個(gè)發(fā)光管同時(shí)輪流點(diǎn)亮的時(shí)候瞬間電流必定大于20mA,所以我們采用是采用吸收電流的方式直驅(qū)LED發(fā)光管。3.3.2行驅(qū)動(dòng)電路單片機(jī)P0口低4譯碼位輸出的行選信號(hào)經(jīng)74LS244八位數(shù)據(jù)緩沖器將數(shù)據(jù)緩沖后送往4/10譯碼器的輸入端,生成10條行選通信號(hào)線,再經(jīng)過(guò)ULN2803擴(kuò)流后將信號(hào)去驅(qū)動(dòng)對(duì)應(yīng)的行LED顯示。我們?yōu)榱烁綦x外界的干擾信號(hào),使用了74LS244八位數(shù)據(jù)緩沖器。因?yàn)槿魏螘r(shí)候74HC595里面的數(shù)據(jù)是不確定的,只要顯示屏只要稍微有一點(diǎn)外界干擾,導(dǎo)致CD4028BM/CD4028BC譯碼器使能端E變低,進(jìn)而使數(shù)據(jù)不夠穩(wěn)定。74LS244是一個(gè)常用的八緩沖器,它的管腳圖以及控制表如圖3.10所示。圖3.1074LS244外部管腳圖以及門(mén)控制端的真值表4系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件包括PC機(jī)上位機(jī)數(shù)據(jù)輸入和修改界面的設(shè)計(jì),系統(tǒng)主程序的設(shè)計(jì),系統(tǒng)顯示程序的設(shè)計(jì),系統(tǒng)串口中斷程序的設(shè)計(jì)。4.1PC機(jī)上位機(jī)數(shù)據(jù)修改和顏色控制PC機(jī)上位機(jī)軟件的編寫(xiě)流程是并行的,所以只要任何一個(gè)鍵按下,它都能執(zhí)行相應(yīng)的操作。PC機(jī)上位機(jī)軟件流程圖如圖4.1和圖4.2所示。圖4.1是PC機(jī)上位機(jī)實(shí)現(xiàn)功能鍵鍵的操作。如果有確認(rèn)鍵按下,那么它馬上鎖定確定鍵的再次按下,而允許修改鍵的按下,同時(shí)串口發(fā)送顯示的數(shù)據(jù)和顏色的控制字,并保存數(shù)據(jù)。如果是修改鍵的按下,那么它馬上鎖定修改鍵的再次按下,而允許確認(rèn)鍵的按下,同時(shí)禁止退出。如果有退出鍵的按下,那么判斷接下來(lái)是否有確認(rèn)鍵的按下,開(kāi)始開(kāi)始退出退出確認(rèn)修改確認(rèn)修改NNNYYYNNNYYY判斷確認(rèn)鍵是否按下判斷確認(rèn)鍵是否按下禁止按確認(rèn)鍵允許按修改鍵禁止按修改鍵允許按確認(rèn)鍵禁止按確認(rèn)鍵允許按修改鍵禁止按修改鍵允許按確認(rèn)鍵NYNY串口發(fā)送顯示數(shù)據(jù)和顏色控制字禁止退出串口發(fā)送顯示數(shù)據(jù)和顏色控制字禁止退出彈出提示,選擇是否退出彈出提示,選擇是否退出NNYY退出界面退出界面圖4.1PC機(jī)上位機(jī)軟件流程圖1開(kāi)始開(kāi)始改綠色改數(shù)據(jù)改黃色改綠色改數(shù)據(jù)改黃色NNNYYYNNNYYY改變數(shù)碼管數(shù)據(jù)置顏色控制字為黃置顏色控制字為綠改變數(shù)碼管數(shù)據(jù)置顏色控制字為黃置顏色控制字為綠禁止按黃,允許按綠禁止按綠,允許按黃禁止按黃,允許按綠禁止按綠,允許按黃圖4.2PC機(jī)上位機(jī)軟件流程圖2如果沒(méi)有,那么馬上彈出提示選擇是否退出,如果是,那么退出界面,如果不是,那么返回程序開(kāi)始的地方。如果退出鍵按下后,接下來(lái)有確認(rèn)鍵的按下,那么直接退出界面。圖4.2是三個(gè)具體操作鍵的流程圖。具體思路是這樣的:如果按下了改數(shù)據(jù)的鍵,那么數(shù)碼管的數(shù)據(jù)實(shí)時(shí)更新。如果有改換色的鍵按下,那么程序馬上置顏色控制字為黃色,同時(shí)禁止修改黃色的鍵按下,而允許綠色鍵的按下。如果改綠色的鍵按下,那么馬上置顏色控制字為綠色,同時(shí)禁止改綠色的鍵按下,而允許黃色鍵的按下。4.2下位機(jī)主程序的設(shè)計(jì)本論文只要求在LED利率屏上固定的輸出不同的數(shù)字,所以如圖4.3所示。下位機(jī)的主程序也就是只要不斷的讀24c02存儲(chǔ)器中存儲(chǔ)的數(shù)字并不斷的更新即可。開(kāi)始系統(tǒng)初始化系統(tǒng)初始化讀24C02讀24C02顯示程序顯示程序圖4.3下位機(jī)主程序流程圖4.3下位機(jī)顯示驅(qū)動(dòng)程序的設(shè)計(jì)將數(shù)據(jù)讀取到緩沖區(qū)將數(shù)據(jù)讀取到緩沖區(qū)將緩沖區(qū)數(shù)據(jù)調(diào)整后發(fā)送到模擬串口將緩沖區(qū)數(shù)據(jù)調(diào)整后發(fā)送到模擬串口發(fā)送完畢?N發(fā)送完畢?YY返回關(guān)閉4028,鎖存595,輸出行號(hào)返回關(guān)閉4028,鎖存595,輸出行號(hào)圖4.4下位機(jī)顯示驅(qū)動(dòng)流程圖如圖4.4所示,下位機(jī)的顯示必須要等到所有實(shí)時(shí)更新的數(shù)據(jù)發(fā)送完畢以后才能鎖存輸出。首先,將在上位機(jī)上實(shí)時(shí)更新了的數(shù)據(jù)分4批存到數(shù)據(jù)緩沖區(qū),一批一批發(fā)送到模擬串口,每一批次發(fā)送完畢以后,74HC595開(kāi)始鎖存輸出,并動(dòng)態(tài)掃描行的顯示,如此循環(huán)。4.4系統(tǒng)串口中斷程序的設(shè)計(jì)串行口方式設(shè)置串行口方式設(shè)置指向下一個(gè)地址將接收的字節(jié)發(fā)送并等待接收等待發(fā)送應(yīng)答接收正確?應(yīng)答接收置發(fā)送和接收數(shù)據(jù)的首地址波特率設(shè)置指向下一個(gè)地址將接收的字節(jié)發(fā)送并等待接收等待發(fā)送應(yīng)答接收正確?應(yīng)答接收置發(fā)送和接收數(shù)據(jù)的首地址波特率設(shè)置NY接收完?接收完?NY寫(xiě)24C02寫(xiě)24C02圖4.5系統(tǒng)串口中斷流程圖在單片機(jī)與PC機(jī)的通訊中,單片機(jī)一般作為下位機(jī)負(fù)責(zé)從控制對(duì)象采集數(shù)據(jù)(如壓力、流量等),上位機(jī)則進(jìn)行現(xiàn)場(chǎng)可視化檢測(cè)。本文在雙方通訊中通訊協(xié)議采用半雙工異步串行通訊方式,通過(guò)MAX232的RTS信號(hào)進(jìn)行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進(jìn)制數(shù)據(jù),上位機(jī)與下位機(jī)之間采用主從式通訊。對(duì)串行口的操作可分為以下幾步進(jìn)行:①串行口初始化;②發(fā)送聯(lián)絡(luò)信號(hào);③接收聯(lián)絡(luò)信號(hào);④發(fā)送數(shù)據(jù)。如圖4.5所示,波特率為1200b/s,無(wú)奇偶校驗(yàn)位,傳輸?shù)臄?shù)據(jù)位為8位,停止位為1位,用串行口工作于方式1。單片機(jī)的晶振頻率fosc=11.0592MHZ,定時(shí)器T1工作于方式2作為波特率發(fā)生器,根據(jù)計(jì)數(shù)初值的計(jì)算公式X=256-(fosc×2smod)/(384×baud)可得計(jì)數(shù)初值為0FDH將上位機(jī)更新的數(shù)據(jù)接收到并寫(xiě)入24C02中[4]。5調(diào)試調(diào)試主要圍繞以下幾個(gè)步驟進(jìn)行:①下位機(jī)驅(qū)動(dòng)顯示②檢查MAX232通訊電路③使用串口調(diào)試精靈發(fā)送單字節(jié)數(shù)據(jù)給下位機(jī)顯示④使用串口調(diào)試精靈發(fā)送多自己數(shù)據(jù)給下位機(jī)顯示⑤使用串口調(diào)試精靈發(fā)送顏色控制子改變利率屏的顏色⑥用VB編寫(xiě)上位機(jī)軟件界面,并進(jìn)行界面調(diào)試⑦使用VB中的串口控件進(jìn)行上位機(jī)和下位機(jī)的聯(lián)機(jī)調(diào)試5.1硬件調(diào)試用示波器檢測(cè)單片機(jī)的XTAL1腳和XTAL2腳是否有正弦波形,即檢測(cè)單片機(jī)是否起振,起振是單片機(jī)運(yùn)行的基礎(chǔ)部分。5.2復(fù)位電路的檢測(cè)此電路能糾正程序的跑飛,一旦程序跑飛,按此鍵能使程序從頭開(kāi)始。注意復(fù)位電路的R1和R2的比例要大于10。5.3MAX232電路檢測(cè)用外用表測(cè)量MAX232各引腳之間的電壓,看是否是出現(xiàn)正負(fù)對(duì)稱(chēng)的電壓情況,電壓大概在±9V~±12V之間則驗(yàn)證了MAX232的工作電路是正常的[11]。5.4下位機(jī)軟件調(diào)試根據(jù)系統(tǒng)軟件流程圖的算法,把編寫(xiě)好的程序利用串口調(diào)試精靈發(fā)送到下位機(jī),看是否出現(xiàn)預(yù)想的效果,如果不能出現(xiàn)則,則繼續(xù)調(diào)整軟件程序,直到滿(mǎn)意為止。6使用方法先將單片機(jī)的串行輸入口與PC機(jī)的串行輸出口連接,單片機(jī)的串行輸出口與PC機(jī)的串行輸入口連接,然后再插上電源插頭。這個(gè)時(shí)候可以看到LED顯示屏顯示上一次保存的數(shù)據(jù)(顏色為紅色或黃色)。硬件電路準(zhǔn)備就緒后,打開(kāi)PC機(jī)里面的利率屏調(diào)整系統(tǒng)文件夾里面的利率屏調(diào)整系統(tǒng).exe文件,可以看到如圖7.1所示。圖7.1上位機(jī)界面點(diǎn)擊修改,這時(shí)PC機(jī)發(fā)出語(yǔ)音報(bào)告:請(qǐng)修改您的數(shù)據(jù)!接著你可以對(duì)已有的數(shù)據(jù)進(jìn)行修改了。具體的操作是:用鼠標(biāo)點(diǎn)擊相應(yīng)的要修改的數(shù)據(jù),用PC機(jī)鍵盤(pán)的刪除鍵刪除已有的數(shù)據(jù),然后通過(guò)鍵盤(pán)輸入你想要顯示的數(shù)據(jù),倘若你想要LED顯示屏顯示黃色,點(diǎn)擊顯示黃色按鍵,待數(shù)據(jù)輸入完畢之后,點(diǎn)擊確定,PC機(jī)會(huì)語(yǔ)音提示:您修改的數(shù)據(jù)已確認(rèn)。這時(shí)LED顯示屏上顯示的是已經(jīng)修改的數(shù)據(jù)和顏色了。擊退出,就可以退出利率屏調(diào)整界面了。7結(jié)論本文通過(guò)使用VB(VisualBaisc)語(yǔ)言編制PC機(jī)上位機(jī)程序界面,該界面可用于數(shù)據(jù)的輸入和修改,操作直觀快捷。在PC機(jī)與單片機(jī)之間采用串行通信數(shù)據(jù)傳輸?shù)姆椒?,將PC機(jī)鍵盤(pán)輸入或修改的數(shù)據(jù)快速地傳送到單片機(jī),單片機(jī)再將該數(shù)據(jù)存儲(chǔ)到外部存儲(chǔ)器并送LED顯示屏進(jìn)行顯示。數(shù)據(jù)顯示時(shí),本設(shè)計(jì)采用靜態(tài)驅(qū)動(dòng)顯示和動(dòng)態(tài)掃描相結(jié)合的方法,在數(shù)據(jù)傳輸過(guò)程中采用重疊處理的方法,解決了串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾問(wèn)題。在此過(guò)程中成功引入74HC595作為列數(shù)據(jù)的顯示驅(qū)動(dòng)電路。該芯片具有串入并出移位和并行鎖存的功能。參考文獻(xiàn)[1]余錫存.單片機(jī)原理與接口技術(shù)[M].西安:西安電子科技大學(xué),2004-01.[2]李華等.MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出社,1993.[3]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)——系統(tǒng)配置與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,1996.[4]李長(zhǎng)林VisualBasic.串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社.2006.4.[5]石東海.單片機(jī)數(shù)據(jù)通信技術(shù)從入門(mén)到精通[M].西安:西安電子科技大學(xué)出版社.2002.11.[6]甄任賀,愈壽益.單片機(jī)與PC機(jī)串行通信的實(shí)現(xiàn)方法[J].廣東師范學(xué)院學(xué)報(bào),2004(6).[7]陳三風(fēng),劉曉波.基于VB6·0與單片機(jī)串行通信的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2004(1).[8]李長(zhǎng)林VisualBasic.串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)出版社.2006.4.[9]鄔寬明·80C51系列微控制器系統(tǒng)原理、功能集成與應(yīng)用·北京航空航天大學(xué)出版社,1995·1.[10]范秋梅.LED大屏幕空間顯色恒定性[J].光學(xué)技術(shù),2002,28(3):264-266.[11].Max232.2002.3.附錄A系統(tǒng)原理圖與PCB圖圖A1系統(tǒng)SCH原理圖圖A2系統(tǒng)PCB圖附錄B系統(tǒng)實(shí)物圖圖B1系統(tǒng)正面圖圖B2系統(tǒng)背面圖附錄C上位機(jī)VB源程序'//利率屏調(diào)整系統(tǒng)2008年1月制作'//串口波特率1200下位機(jī)晶振11.0592'//功能:實(shí)現(xiàn)電腦上修改4行*5列的利率屏數(shù)據(jù)和數(shù)據(jù)顯示的顏色PublicpdAsInteger'定義全局變量DimsjAsStringDimkAsIntegerDimnAsIntegerPrivateSubCommand1_Click()'修改鍵subwave2'播放"修改"音subwaveplaypd=0'置修改標(biāo)志為0Command1.Enabled=False'屏蔽修改建,開(kāi)放確定鍵Command2.Enabled=TrueIfText2.Text="H"Then'如果保存的顏色標(biāo)志為紅則屏蔽紅色按鈕,并顯示紅色DoWhilek<20Text1(k).Locked=FalseText1(k).ForeColor=&HFF&k=k+1Loopk=0Command4.Enabled=FalseCommand3.Enabled=TrueElse'如果保存顏色標(biāo)志不為紅則屏蔽黃色按鈕,并顯示黃色DoWhilek<20Text1(k).Locked=FalseText1(k).ForeColor=&H80FFFFk=k+1Loopk=0Command3.Enabled=FalseCommand4.Enabled=TrueEndIfEndSubPrivateSubCommand2_Click()'確定鍵DimrezultAsIntegerDoWhilek<20rezult=IsNumeric(Text1(k).Text)'如果輸入不為0~9之間的數(shù)則警告Ifrezult=0Thensubwave5'播放"警告"音subwaveplayMsgBox"您輸入的數(shù)據(jù)有誤,請(qǐng)輸入0~9之間的數(shù)據(jù)",0,"提示"GoToline'跳到退出事件EndIfk=k+1Loopk=0subwave3'播放"數(shù)據(jù)確定"音subwaveplaypd=1'置確定標(biāo)志為1,表示修改后已按確定Command2.Enabled=False'開(kāi)放修改鍵,屏蔽其他鍵Command1.Enabled=TrueCommand3.Enabled=FalseCommand4.Enabled=FalseDimmAsInteger'所有字變成灰色,表示已確定DoWhilem<20Text1(m).Locked=TrueText1(m).ForeColor=&H8000000Am=m+1Loopm=0MSComm1.CommPort=1'確定后把更新的數(shù)據(jù)從串口發(fā)送出去并保存到cksj.txt中MSComm1.InputMode=comInputModeTextMSComm1.SThreshold=21MSComm1.Settings="1200,n,8,1"MSComm1.PortOpen=TrueMSComm1.Output=Text1(0)+Text1(1)+Text1(2)+Text1(3)+Text1(4)+Text1(5)+Text1(6)+Text1(7)+Text1(8)+Text1(9)+Text1(10)+Text1(11)+Text1(12)+Text1(13)+Text1(14)+Text1(15)+Text1(16)+Text1(17)+Text1(18)+Text1(19)+Text2MSComm1.PortOpen=Falsesj=Text1(0)+Text1(1)+Text1(2)+Text1(3)+Text1(4)+Text1(5)+Text1(6)+Text1(7)+Text1(8)+Text1(9)+Text1(10)+Text1(11)+Text1(12)+Text1(13)+Text1(14)+Text1(15)+Text1(16)+Text1(17)+Text1(18)+Text1(19)Open"cksj.txt"ForOutputAs#1Len=21Print#1,sj+Text2.TextClose#1line:EndSubPrivateSubCommand3_Click()'顯示黃色按鍵DimhAsInteger'按下此鍵后字變黃,并屏蔽黃色鍵,開(kāi)放紅色鍵DoWhileh<20Text1(h).ForeColor=&H80FFFFh=h+1Looph=0Command3.Enabled=FalseCommand4.Enabled=TrueText2.Text="L"'4chEndSubPrivateSubCommand4_Click()'顯示紅色按鍵DimsAsInteger'按下此鍵后字變紅,并屏蔽紅色鍵,開(kāi)放黃色鍵DoWhiles<20Text1(s).ForeColor=&HFF&s=s+1Loops=0Command4.Enabled=FalseCommand3.Enabled=TrueText2.Text="H"'48hEndSubPrivateSubCommand5_Click()'退出鍵DimzAsLongIfpd=0Then'按下此鍵后如果之前未按確定鍵則彈出提示,如已按過(guò)確定則直接關(guān)閉窗口退出subwave5'修改未確定,彈出對(duì)話(huà)框,并發(fā)警告音subwaveplayz=MsgBox("信息修改后未確定,是否退出!",4,"提示")Ifz=6Thensubwave4'播放"正常退出"音subwaveplayTimer1.Enabled=TrueEndIf'如果按下的是"否"則退出此事件(取消本次退出操作)ElseTimer1.Enabled=True'播放"正常退出"音subwave4subwaveplayEndIfEndSubPrivateSubForm_Load()'窗體加載事件subwave1'播放"歡迎使用"音subwaveplaypd=1'窗體加載將確定標(biāo)志置1,表示已按確定Open"cksj.txt"ForInputAs#1Len=21Input#1,sjClose#1Text2.Text=Mid(sj,21,1)'第21字節(jié)為顏色標(biāo)志Command4.Enabled=False'開(kāi)放修改鍵,屏蔽其他鍵Command3.Enabled=FalseCommand2.Enabled=FalseCommand1.Enabled=TrueDoWhilen<20'窗體加載鎖定所有數(shù)據(jù)并使所有數(shù)據(jù)顯示淡紅色Text1(n).Text=Mid(sj,n+1,1)Text1(n).Locked=TrueText1(n).ForeColor=&HC0C0FFn=n+1Loopn=0DoWhilea<20Text1(a).BackColor=&H404040a=a+1LoopEndSubSubsubwave1()MMC.UpdateInterval=100MMC.Command="stop"MMC.Command="close"MMC.Wait=TrueMMC.DeviceType="WaveAudio"MMC.FileName=App.Path&"\加載.wav"MMC.Command="open"EndSubSubsubwave2()MMC.UpdateInterval=100MMC.Command="stop"MMC.Command="close"MMC.Wait=TrueMMC.DeviceType="WaveAudio"MMC.FileName=App.Path&"\修改.wav"MMC.Command="open"EndSubSubsubwave3()MMC.UpdateInterval=100MMC.Command="stop"MMC.Command="close"MMC.Wait=TrueMMC.DeviceType="WaveAudio"MMC.FileName=App.Path&"\確認(rèn).wav"MMC.Command="open"EndSubSubsubwave4()MMC.UpdateInterval=100MMC.Command="stop"MMC.Command="close"MMC.Wait=TrueMMC.DeviceType="WaveAudio"MMC.FileName=App.Path&"\正常退出.wav"MMC.Command="open"EndSubSubsubwave5()MMC.UpdateInterval=100MMC.Command="stop"MMC.Command="close"MMC.Wait=TrueMMC.DeviceType="WaveAudio"MMC.FileName=App.Path&"\警告.wav"MMC.Command="open"EndSubSubsubwaveplay()MMC.Notify=TrueMMC.Command="play"EndSubPrivateSubTimer1_Timer()'播放"正常退出"語(yǔ)音的延時(shí)EndEndSub附錄D下位機(jī)匯編源程序;//利率屏調(diào)整系統(tǒng)下位機(jī)軟件2008年1月;//CPU89S51晶振11.0592串口波特率1200;//功能:能將PC機(jī)傳來(lái)的數(shù)據(jù)按要求顯示在LED數(shù)碼管屏上.有掉電數(shù)據(jù)保存,可以顯示紅黃雙色;24c02定義:SCLbitp1.2 ;2402SDAbitp1.3 ;MTDEQU65H ;寫(xiě)2402的單片機(jī)起始單元MRDEQU66H ;讀2402的值的存到單片機(jī)的存放單元SLAEQU67H ;控制字的存放單元F00BIT20H.7 ;ACK應(yīng)答信號(hào)的存儲(chǔ)標(biāo)志NUMBYTEQU68H ;讀寫(xiě)字節(jié)總數(shù)《8ckyjsBIT20H.6;顯示面板定義:sckbitp0.0;上升延移位,高位先進(jìn)rckbitp0.1;平時(shí)置低,數(shù)據(jù)不變,上升延更新dssbitp0.2;數(shù)據(jù)腳aaabitp0.5;4028的地址c,b,abbbbitp0.6cccbitp0.7org0000hajmpmainorg0023h;串口中斷入口ajmpckzdorg0030hmain:movsp,#10h;重設(shè)堆棧指針clrckyjsmovth1,#0e8hmovtl1,#0e8h;1.2kmovtmod,#20hmovscon,#50h;串口方式1,8位數(shù)據(jù),1位停止movpcon,#00hsetbea;開(kāi)總中斷setbes;開(kāi)串口中斷setbtr1;開(kāi)定時(shí)器1clrticlrrimov40h,#00h;顯示緩沖單元40h~55hmov41h,#00hmov42h,#00hmov43h,#00hmov44h,#00hmov45h,#00hmov46h,#00hmov47h,#00hmov48h,#00hmov49h,#00hmov4ah,#00hmov4bh,#00hmov4ch,#00hmov4dh,#00hmov4eh,#00hmov4fh,#00hmov50h,#00hmov51h,#00hmov52h,#00hmov53h,#00hmov54h,#00hmov55h,#02h;00000010紅色callre2402movr0,#3fhmov79h,#21;串口接收字節(jié)數(shù)限制start:mov23h,#40hvvvv:mova,23hmovr1,acalldispmov23h,#40hjbckyjs,baocunajmpvvvvbaocun:clrckyjscallwr2402ajmpvvvv;//顯示程序disp:movp2,#0ffh;全滅callyiweiclraaa;第一行亮clrbbbclrcccmovp2,55hcalldelaymovp2,#0ffhcallyiweisetbaaa;第二行亮movp2,55hcalldelaymovp2,#0ffhcallyiweiclraaa;第三行亮setbbbbmovp2,55hcalldelaymovp2,#0ffhcallyiweisetbaaa;第四行亮movp2,55hcalldelaymovp2,#0ffhret;//查表移位送顯示程序yiwei:clrrckmov61h,#5ssd:mov60h,#8mova,@r1movdptr,#tabmovca,@a+dptrjxyw:rlcaclrsckmovdss,cnopsetbsckdjnz60h,jxywincr1djnz61h,ssdclrscksetbrcknopclrsckret;//延時(shí)程序delay:mov63h,#1del1:mov62h,#255del:djnz62h,deldjnz63h,del1ret;//LED段碼表tab:DB07EH;0DB00AH;1DB0B6H;2DB09EH;3DB0CAH;4DB0DCH;5DB0FCH;6DB00EH;7DB0FEH;8DB0DEH;9db000h;滅db000hret;//串口中斷讀數(shù)據(jù)程序ckzd:pushaccpushpswpushdplpushdphdjnz79h,jxjsmova,sbufcjnea,#4ch,hongsemov55h,#00000001bajmpffhhhongse:mov55h,#00000010bffhh:movr0,#3fhmov79h,#21setbckyjsajmpfhjxjs:incr0mova,sbufclrcsubba,#30hmov@r0,afh:clrticlrripopdphpopdplpoppswpopaccretiwr2402:clrrs1setbrs0 MOVSLA,#0A2H ;10100010 MOVMTD,#40h;40H~47H 寫(xiě)入2402的數(shù)據(jù) MOVNUMBYT,#8;8BYTmov6ah,#00CALLWRNBYTmov6ah,#08movmtd,#48h;48h~4fh寫(xiě)入2402的數(shù)據(jù)MOVNUMBYT,#8;8BYTCALLWRNBYTmovmtd,#50h;50h~57h寫(xiě)入2402的數(shù)據(jù)mov6ah,#10hMOVNUMBYT,#8;8BYTCALLWRNBYTclrrs0clrrs1retre2402:clrrs1setbrs0 MOVSLA,#0A2H ;10100010 MOVMRD,#40h;40H~47H 從2402中讀出來(lái)的數(shù)據(jù) MOVNUMBYT,#8;8BYTmov6ah,#00CALLRDNBYTMOVSLA,#0A2H ;10100010mov6ah,#08movmrd,#48h;48h~4fh從2402中讀出來(lái)的數(shù)據(jù)MO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 七月份業(yè)務(wù)員工作計(jì)劃書(shū)
- 叉車(chē)出售合同違約合同范本
- 倉(cāng)庫(kù)保潔勞務(wù)合同范本
- 《神州謠》教學(xué)反思
- 鹵貨店加盟合同范本
- 《極地地區(qū)》教案
- 叫特許經(jīng)營(yíng)合同范本
- 《春》音樂(lè)教案五篇
- 化驗(yàn)器具銷(xiāo)售合同范本
- 拉鏈購(gòu)銷(xiāo)合同范本
- 《服裝市場(chǎng)營(yíng)銷(xiāo)》課件
- 網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估報(bào)告模板
- 什么是法律談判課件
- 成考教材-數(shù)學(xué)教程(文史財(cái)經(jīng)類(lèi))
- 保安服務(wù)管理制度范文
- 汽車(chē)行業(yè)維修記錄管理制度
- 老年護(hù)理團(tuán)隊(duì)建設(shè)方案
- 《跨學(xué)科實(shí)踐活動(dòng)3 水質(zhì)檢測(cè)及自制凈水器》教學(xué)設(shè)計(jì)
- 開(kāi)塞露的使用
- 公務(wù)員2022年國(guó)考申論試題(行政執(zhí)法卷)及參考答案
- IQC檢驗(yàn)作業(yè)指導(dǎo)書(shū)
評(píng)論
0/150
提交評(píng)論