• <del id="qqie6"><sup id="qqie6"></sup></del>
  • <tfoot id="qqie6"></tfoot>
  • <ul id="qqie6"></ul>
  • 產(chǎn)品推薦:水表|流量計(jì)|壓力變送器|熱電偶|液位計(jì)|冷熱沖擊試驗(yàn)箱|水質(zhì)分析|光譜儀|試驗(yàn)機(jī)|試驗(yàn)箱


    儀表網(wǎng)>技術(shù)中心>技術(shù)原理>正文

    歡迎聯(lián)系我

    有什么可以幫您? 在線咨詢

    基于單片機(jī)和可編程邏輯器件的LED顯示屏顯示

       2012年05月23日 16:08  
      LED顯示屏主要由電流驅(qū)動(dòng)電路及LED點(diǎn)陣陣列、控制系統(tǒng)和PC端管理軟件三部分構(gòu)成(圖1)。控制系統(tǒng)負(fù)責(zé)接收、轉(zhuǎn)換和處理各種外部信號(hào),并實(shí)現(xiàn)掃描控制,然后驅(qū)動(dòng)LED點(diǎn)陣顯示需要的文字或圖案。控制系統(tǒng)作為LED顯示屏的核心部分,直接決定了顯示屏的顯示效果和性能的優(yōu)劣。本文詳細(xì)分析采用VerilogHDL對(duì)ATF1508AS進(jìn)行編程,實(shí)現(xiàn)雙口RAM訪問和產(chǎn)生LED點(diǎn)陣驅(qū)動(dòng)電路所需的各種時(shí)序信號(hào)。
      
      1、LED顯示屏的基本結(jié)構(gòu)及關(guān)鍵技術(shù)
      
      本系統(tǒng)設(shè)計(jì)中,控制系統(tǒng)采用單片機(jī)+CPLD的方案來實(shí)現(xiàn),整個(gè)控制系統(tǒng)可分為:信號(hào)接收及處理模塊和CPLD的掃描控制模塊和LED點(diǎn)陣驅(qū)動(dòng)模塊,如圖1所示。本系統(tǒng)的關(guān)鍵技術(shù)是使用雙口RAM和CPLD芯片,解決LED顯示屏中高速數(shù)據(jù)傳輸和快速掃描控制的難題,大大提高了動(dòng)態(tài)顯示的刷新率。
      
      信號(hào)接收與處理模塊的功能是AT89S52單片機(jī)通過串口接收PC送來的點(diǎn)陣信息,同時(shí)對(duì)點(diǎn)陣信息做各種不同的處理。利用雙口RAMIDT7007在單片機(jī)和ATF1508AS之間以共享的方式建立高速的數(shù)據(jù)交換通道。
      
      CPLD的掃描控制模塊采用ATF1508AS芯片實(shí)現(xiàn)。其功能是從雙口RAM讀取點(diǎn)陣信息,串行化后送顯示掃描驅(qū)動(dòng)電路,同時(shí)輸出各種所需的控制信號(hào)。CPLD具有掃描速度快,延時(shí)短等特點(diǎn),克服了單片機(jī)由于傳輸速率慢而造成在大屏幕顯示時(shí)產(chǎn)生的閃爍效應(yīng)。
      
      2、基于CPLD的掃描控制模塊的設(shè)計(jì)
      
      2.1設(shè)計(jì)思想
      
      本模塊的功能是從存儲(chǔ)器中讀取數(shù)據(jù),將數(shù)據(jù)輸送到顯示屏體上,同時(shí)產(chǎn)生各種控制信號(hào)。時(shí)序產(chǎn)生模塊由兩部分構(gòu)成,一是產(chǎn)生訪問雙口RAM的時(shí)序,二是產(chǎn)生LED顯示屏接口所需的各種信號(hào)。
      
      硬件電路我們采用較常見的CPLD芯片ATF1508來實(shí)現(xiàn)控制系統(tǒng)中的時(shí)序產(chǎn)生部分。CPLD是一種具有豐富的可變成I/O引腳的可編程邏輯器件,不僅可以實(shí)現(xiàn)常規(guī)的邏輯器件功能,還可以實(shí)現(xiàn)復(fù)雜而*的時(shí)序邏輯功能。軟件我們采用VerilogHDL語言來進(jìn)行設(shè)計(jì)。VerilogHDL是用于邏輯設(shè)計(jì)的硬件描述語言,已成為IEEE標(biāo)準(zhǔn)。利用VerilogHDL語言對(duì)ATF1508AS進(jìn)行編程,實(shí)現(xiàn)掃描控制模塊所需的功能。
      
      掃描控制部分的原理電路如圖2所示,ATF1508AS是核心部分,需要根據(jù)系統(tǒng)需要定義ATF1508AS的各個(gè)I/O端口,下面是I/O端口定義和內(nèi)部寄存器定義的VerilogHDL語言代碼。
      
      moduleLedSequ(color,datain,addrout,CE,OE,SEMR,RWC,sdr,sdb,sck,le,oe1,cs,clk,counter);
      
      inputclk;//系統(tǒng)時(shí)鐘
      
      input[7:0]datain;//RAM數(shù)據(jù)輸入
      
      input[1:0]color;//顏色控制
      
      output[13:0]addrout;//地址輸出口
      
      outputSEMR,RWC;
      
      outputCE,OE,sdr,sdb,sck,le,oe1,cs;
      
      output[3:0]counter;
      
      reg[3:0]hcnt;//38譯碼器計(jì)數(shù)器
      
      reg[7:0]data1;//數(shù)據(jù)寄存器
      
      reg[3:0]counter;//38翻碼器輸出端
      
      regSEMR,RWC;
      
      regSDA,SDC;
      
      reg[13:0]addrout,addr;//addr地址計(jì)數(shù)器
      
      reg[3:0]state;//狀態(tài)寄存器
      
      reg[2:0]shcnt;//移位脈沖讀數(shù)器
      
      regCE,OE,sdr,sdb,sck,le,oe1,cs;
      
      reg[8:0]byte;
      
      parameters0=1'd0,s1=1'd1,s2=1'd2,s3=1'd3,s4=1'd4,s5=1'd5;//狀態(tài)常量
      
      2.2訪問雙口RAM時(shí)序的產(chǎn)生
      
      IDT7007是具有32KB的雙口RAM電路,與ATF1508AS的連接電路如圖2所示,其中:為片選信號(hào),為讀寫控制信號(hào),為輸出使能信號(hào),A0R-A13R為右端口地址總線,D0R-D7R為右端口數(shù)據(jù)總線,其右端口讀寫時(shí)序如圖4所示。我們采用有限狀態(tài)機(jī)實(shí)現(xiàn),其基本工作原理是:S0狀態(tài)進(jìn)行初始化,S1狀態(tài)時(shí)ATF1508AS首先輸出地址信號(hào)addrout,然后置相有效,S2狀態(tài)讀取雙口RAM的數(shù)據(jù),并存儲(chǔ)到內(nèi)容寄存器datain中,從而完成雙口RAM的讀數(shù)據(jù)過程。下面給出ATF1508AS讀取雙口RAM數(shù)據(jù)的主要代碼:
      
      always@(posedgeclk)
      
      begin//每個(gè)時(shí)鐘周期,狀態(tài)變化一次
      
      case(state)
      
      s0:begin//初始化狀態(tài)
      
      CE=1'b0;//IDT7007片選
      
      OE=1'b1;//IDT7007讀選通
      
      le=1'b0;
      
      oe1=1'b0;
      
      cs=1'b0;
      
      addr=14'b0;
      
      SEMR=1'b1;//IDT7007置1有
      
      RWC=1'b1;//寫控制1
      
      hcnt=4'b0000;
      
      counter=4'b0000;
      
      state=s1;
      
      end
      
      s1:begin//輸出RAM地址
      
      CE=1'b0;
      
      addrout=addr;//輸出地址
      
      OE=1'b0;
      
      SEMR=1'b1;
      
      RWC=1'b1;
      
      shcnt=3'b000;
      
      state=s2;
      
      end
      
      s2:begin//讀雙口RAM數(shù)據(jù)
      
      oe1=1'b0;
      
      data1=datain;
      
      state=s3;
      
      end
      
      ……(顯示掃描及LED驅(qū)動(dòng)代碼部分)
      
      endcase
      
      end
      
      2.3LED顯示驅(qū)動(dòng)時(shí)序信號(hào)的產(chǎn)生
      
      CPLD與LED點(diǎn)陣的驅(qū)動(dòng)電路接口如圖所示,其中:CS為3-8譯碼器片選信號(hào);OE為BMI5026輸出使能信號(hào),控制LED點(diǎn)陣是否能被點(diǎn)亮;LE為驅(qū)動(dòng)芯片數(shù)據(jù)鎖存信號(hào);sck為移位脈沖,將CPLD串行輸出的紅綠數(shù)據(jù)串行移入MBI5026(移位寄存器);A-D為雙3-8譯碼器構(gòu)成的4-16譯碼器的數(shù)據(jù)輸入,實(shí)現(xiàn)顯示行選通控制;sdr為紅數(shù)據(jù)信號(hào)線;sdb為綠數(shù)據(jù)信號(hào)線。
      
      其工作過程為:S3狀態(tài),sck脈沖置0,sdr和sdb分別輸出一位數(shù)據(jù);S4狀態(tài)時(shí),sck置1,紅和綠數(shù)據(jù)分別移入相應(yīng)移位寄存器BMI5026,若不足8位時(shí),返回S3狀態(tài),若不足一行時(shí),返回S1狀態(tài),讀下一個(gè)字節(jié),若完成一行數(shù)據(jù)移位過程,則轉(zhuǎn)S5狀態(tài);S5狀態(tài)時(shí),置le為0,將BMI5026的緩沖寄存中一個(gè)顯示行的點(diǎn)陣數(shù)據(jù)送輸出寄存器,同時(shí)置cs1有效,控制第hcnt行的點(diǎn)陣顯示,然后判斷一屏內(nèi)容是否顯示完成,返回s1狀態(tài)。圖4為完整的有限狀態(tài)機(jī)的狀態(tài)圖。
      
      下面給出LED顯示屏體驅(qū)動(dòng)時(shí)序信號(hào)對(duì)應(yīng)的VerilogHDL程序代碼:
      
      s3:begin
      
      sck=1'b0;
      
      sdr=SDA&&color[0];
      
      sdb=SDC&&color[1];
      
      OE=1'b1;CE=1'b1;
      
      state=s4;
      
      end
      
      s4:begin//移位輸出到LED顯示屏
      
      sck=1'b1;
      
      shcnt=shcnt+1'b1;
      
      if(shcnt==0)
      
      begin
      
      addr=addr+1'b1;//讀完一個(gè)字節(jié)地址記數(shù)器加1
      
      byte=byte+8'b1;
      
      if(byte==nrow)//如果讀完一行數(shù)據(jù)
      
      begin
      
      oe1=1'b1;//關(guān)LED顯示
      
      cs=1'b1;
      
      le=1'b0;//驅(qū)動(dòng)芯片寫入數(shù)據(jù)
      
      byte=8'b0;
      
      state=s5;//讀完一行數(shù)據(jù)則顯示
      
      end
      
      elsestate=s1;
      
      end
      
      elsestate=s3;//當(dāng)前字節(jié)移位輸出
      
      end
      
      s5:begin
      
      sck=1'b0;
      
      le=1'b0;
      
      counter=hcnt;
      
      OE=1'b1;
      
      CE=1'b0;
      
      if(addr==nscreen)
      
      addr=0;
      
      oe1=1'b0;
      
      cs=1'b0;
      
      state=s1;
      
      end
      
      4、系統(tǒng)測試及仿真
      
      系統(tǒng)的開發(fā)調(diào)試環(huán)境是:單片機(jī)部分在KeilC51下調(diào)試,CPLD部分在Maxplus10下調(diào)試。LED顯示屏的掃描控制模塊的VerilogHDL源程序編寫完成后,在ALTERA公司Maxplus10可以*行軟件仿真,以觀察各信號(hào)是否符合硬件電路所需的時(shí)序要求。圖5為掃描模塊CLPD仿真結(jié)果,符合設(shè)計(jì)要求。通過JTAG接口下載到ATF1508AS后,系統(tǒng)工作正常。
      
      5、結(jié)束語
      
      基于VerilogHDL實(shí)現(xiàn)的LED顯示屏掃描控制模塊,應(yīng)用于我們開發(fā)LED大屏幕電子信息顯示屏系統(tǒng),簡化了系統(tǒng)結(jié)構(gòu),提高性了性價(jià)比。該LED顯示屏在實(shí)際應(yīng)用中具有良好的顯示效果,畫面清晰、性能穩(wěn)定,已經(jīng)在學(xué)校的多個(gè)部門得到應(yīng)用。

    免責(zé)聲明

    • 凡本網(wǎng)注明“來源:儀表網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-儀表網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:儀表網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
    • 本網(wǎng)轉(zhuǎn)載并注明自其它來源(非儀表網(wǎng))的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來源,并自負(fù)版權(quán)等法律責(zé)任。
    • 如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
    聯(lián)系我們

    客服熱線: 15024464426

    加盟熱線: 15024464426

    媒體合作: 0571-87759945

    投訴熱線: 0571-87759942

    關(guān)注我們
    • 下載儀表站APP

    • Ybzhan手機(jī)版

    • Ybzhan公眾號(hào)

    • Ybzhan小程序

    企業(yè)未開通此功能
    詳詢客服 : 0571-87759942
    主站蜘蛛池模板: 国产成人亚洲毛片| 欧美成人全部免费观看1314色| 国产成人亚洲精品无码av大片| 成人综合在线视频| 成人亚洲欧美日韩在线| 国产成人yy精品1024在线| 亚洲AV一二三区成人影片| 成人怡红院视频在线观看| 国产精品成人va在线播放| 亚洲2022国产成人精品无码区| 成人综合激情另类小说| 四虎影视成人永久在线观看| 成人污视频在线观看| 亚洲精品无码乱码成人| 成人爽a毛片在线视频| 亚洲AV成人片无码网站| 国产成人精品久久综合| 最新69成人精品毛片| 久久成人国产精品| 国产成人精品久久综合| 成人欧美一区二区三区的电影| 亚洲2022国产成人精品无码区| 国产成人精品免费视频大全| 成人影院久久久久久影院| 欧美成人在线网站| A级毛片成人网站免费看| 亚洲精品成人av在线| 国产成人午夜精华液| 成人免费一级片| 在线观看国产成人AV片| 成人午夜看片在线观看| 成人私人影院在线版| 日本成人在线看| 成人国产一区二区三区| 成人观看天堂在线影片| 色偷偷成人网免费视频男人的天堂 | 成人看的午夜免费毛片| 亚洲精品成人a| 69成人免费视频无码专区| 91香蕉视频成人| 成人男女网18免费视频|