《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 顯示光電 > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的點(diǎn)陣式LED滾動(dòng)漢字顯示屏仿真設(shè)計(jì)
基于單片機(jī)的點(diǎn)陣式LED滾動(dòng)漢字顯示屏仿真設(shè)計(jì)
摘要: 點(diǎn)陣顯示器的特點(diǎn)是可以按照需要的大小,、形狀和顏色進(jìn)行組合,,用單片機(jī)控制實(shí)行各種文字或圖型的變化,達(dá)到廣告宣傳和提示的目的。
Abstract:
Key words :

      1.引言

  點(diǎn)陣式LED組成的漢字顯示屏在公共場(chǎng)所應(yīng)用非常廣泛,。例如,車站發(fā)車時(shí)間提示,、股票大廳中的股票價(jià)格顯示板,、商場(chǎng)的活動(dòng)廣告欄、候機(jī)廳的起飛時(shí)間表,。點(diǎn)陣顯示器的特點(diǎn)是可以按照需要的大小,、形狀和顏色進(jìn)行組合,用單片機(jī)控制實(shí)行各種文字或圖型的變化,,達(dá)到廣告宣傳和提示的目的,。

  Proteus是一款新穎的嵌入式系統(tǒng)軟硬件設(shè)計(jì)仿真平臺(tái),特別適用于單片機(jī)仿真,,能夠在線,、實(shí)時(shí)仿真多種類型的單片機(jī),諸如MCS-51系列單片機(jī),、PIC單片機(jī),、AVR單片機(jī)等,能夠像硬件仿真器一樣進(jìn)行軟硬件調(diào)試,,而沒(méi)必要花錢去購(gòu)買和維護(hù)價(jià)格不菲的仿真器,,對(duì)于初學(xué)單片機(jī)的人來(lái)說(shuō),既減少了學(xué)習(xí)成本,,又達(dá)到了良好的學(xué)習(xí)效果,。

  2.硬件電路設(shè)計(jì)

  點(diǎn)陣式LED滾動(dòng)漢字顯示屏硬件電路設(shè)計(jì)框圖如圖1所示,。電路包括單片機(jī)、電源電路,、時(shí)鐘電路,、復(fù)位電路、驅(qū)動(dòng)電路和LED點(diǎn)陣電路等,。本設(shè)計(jì)的核心是利用單片機(jī)讀取顯示字型碼,,通過(guò)驅(qū)動(dòng)電路對(duì)16×16 LED點(diǎn)陣進(jìn)行動(dòng)態(tài)列掃描,以實(shí)現(xiàn)漢字的滾動(dòng)顯示,。本設(shè)計(jì)選用的單片機(jī)為ATMEL公司的AT89C52,,顯示屏采用16×16 LED點(diǎn)陣。電源電路通過(guò)變壓整流元件為單片機(jī)和其他電路提供穩(wěn)定的+5V工作電壓,。時(shí)鐘電路是單片機(jī)的驅(qū)動(dòng)電路,,復(fù)位電路可在需要時(shí),手動(dòng)使單片機(jī)程序計(jì)數(shù)器復(fù)位清零,。通過(guò)陽(yáng)極驅(qū)動(dòng)電路向16×16點(diǎn)陣送字型碼,,本設(shè)計(jì)采用74LS273。通過(guò)陰極驅(qū)動(dòng)電路對(duì)16×16點(diǎn)陣進(jìn)行列掃描,,本設(shè)計(jì)采用74HC138,。

圖1 <a class=LED顯示屏硬件電路設(shè)計(jì)框圖" height="167" src="http://files.chinaaet.com/images/20101129/b3ee782e-ae08-47b6-bff1-dc65fe150e31.jpg" width="430" />

圖1 硬件電路設(shè)計(jì)框圖

  利用Proteus軟件設(shè)計(jì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏硬件電路原理圖如圖2所示。在Proteus軟件中,,單片機(jī)模型本身包含了工作電源和可改變的工作頻率,,因此在仿真時(shí)無(wú)需設(shè)計(jì)電源電路和時(shí)鐘電路。需要說(shuō)明的是在Proteus軟件目前版本中還沒(méi)有16×16點(diǎn)陣模塊,,本設(shè)計(jì)中采用Proteus軟件中現(xiàn)有的8×8點(diǎn)陣模塊組合成一個(gè)16×16點(diǎn)陣模塊,。從圖2中可以看出,16×16點(diǎn)陣的陽(yáng)極驅(qū)動(dòng)由P0口經(jīng)輸出緩沖器74LS273構(gòu)成,,在本設(shè)計(jì)中需要用兩片,分別送出上8行和下8行的字型碼,。16×16點(diǎn)陣的陰極驅(qū)動(dòng)由P2口經(jīng)74HC138譯碼后動(dòng)態(tài)掃描16×16點(diǎn)陣的各列,,本設(shè)計(jì)中需要四片74HC138譯碼器,循環(huán)掃描各列,,顯示一個(gè)完整的漢字需要掃描32次,。RP3為排阻,含有8個(gè)電阻,,作P0口各位的上拉電阻,,以保證P0口能夠輸出高電平。復(fù)位電路的作用是,,在任何時(shí)刻可以手動(dòng)復(fù)位單片機(jī),,使程序重新執(zhí)行,。

圖2.LED顯示屏硬件電路原理圖

圖2.硬件電路原理圖

      1.引言

  點(diǎn)陣式LED組成的漢字顯示屏在公共場(chǎng)所應(yīng)用非常廣泛。例如,,車站發(fā)車時(shí)間提示,、股票大廳中的股票價(jià)格顯示板、商場(chǎng)的活動(dòng)廣告欄,、候機(jī)廳的起飛時(shí)間表,。點(diǎn)陣顯示器的特點(diǎn)是可以按照需要的大小、形狀和顏色進(jìn)行組合,,用單片機(jī)控制實(shí)行各種文字或圖型的變化,,達(dá)到廣告宣傳和提示的目的。

  Proteus是一款新穎的嵌入式系統(tǒng)軟硬件設(shè)計(jì)仿真平臺(tái),,特別適用于單片機(jī)仿真,,能夠在線、實(shí)時(shí)仿真多種類型的單片機(jī),,諸如MCS-51系列單片機(jī),、PIC單片機(jī)、AVR單片機(jī)等,,能夠像硬件仿真器一樣進(jìn)行軟硬件調(diào)試,,而沒(méi)必要花錢去購(gòu)買和維護(hù)價(jià)格不菲的仿真器,對(duì)于初學(xué)單片機(jī)的人來(lái)說(shuō),,既減少了學(xué)習(xí)成本,,又達(dá)到了良好的學(xué)習(xí)效果。

  2.硬件電路設(shè)計(jì)

  點(diǎn)陣式LED滾動(dòng)漢字顯示屏硬件電路設(shè)計(jì)框圖如圖1所示,。電路包括單片機(jī),、電源電路、時(shí)鐘電路,、復(fù)位電路,、驅(qū)動(dòng)電路和LED點(diǎn)陣電路等。本設(shè)計(jì)的核心是利用單片機(jī)讀取顯示字型碼,,通過(guò)驅(qū)動(dòng)電路對(duì)16×16 LED點(diǎn)陣進(jìn)行動(dòng)態(tài)列掃描,,以實(shí)現(xiàn)漢字的滾動(dòng)顯示。本設(shè)計(jì)選用的單片機(jī)為ATMEL公司的AT89C52,,顯示屏采用16×16 LED點(diǎn)陣,。電源電路通過(guò)變壓整流元件為單片機(jī)和其他電路提供穩(wěn)定的+5V工作電壓。時(shí)鐘電路是單片機(jī)的驅(qū)動(dòng)電路,,復(fù)位電路可在需要時(shí),,手動(dòng)使單片機(jī)程序計(jì)數(shù)器復(fù)位清零。通過(guò)陽(yáng)極驅(qū)動(dòng)電路向16×16點(diǎn)陣送字型碼,本設(shè)計(jì)采用74LS273,。通過(guò)陰極驅(qū)動(dòng)電路對(duì)16×16點(diǎn)陣進(jìn)行列掃描,,本設(shè)計(jì)采用74HC138。

圖1 LED顯示屏硬件電路設(shè)計(jì)框圖

圖1 硬件電路設(shè)計(jì)框圖

  利用Proteus軟件設(shè)計(jì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏硬件電路原理圖如圖2所示,。在Proteus軟件中,,單片機(jī)模型本身包含了工作電源和可改變的工作頻率,因此在仿真時(shí)無(wú)需設(shè)計(jì)電源電路和時(shí)鐘電路,。需要說(shuō)明的是在Proteus軟件目前版本中還沒(méi)有16×16點(diǎn)陣模塊,,本設(shè)計(jì)中采用Proteus軟件中現(xiàn)有的8×8點(diǎn)陣模塊組合成一個(gè)16×16點(diǎn)陣模塊。從圖2中可以看出,,16×16點(diǎn)陣的陽(yáng)極驅(qū)動(dòng)由P0口經(jīng)輸出緩沖器74LS273構(gòu)成,,在本設(shè)計(jì)中需要用兩片,分別送出上8行和下8行的字型碼,。16×16點(diǎn)陣的陰極驅(qū)動(dòng)由P2口經(jīng)74HC138譯碼后動(dòng)態(tài)掃描16×16點(diǎn)陣的各列,,本設(shè)計(jì)中需要四片74HC138譯碼器,循環(huán)掃描各列,,顯示一個(gè)完整的漢字需要掃描32次,。RP3為排阻,含有8個(gè)電阻,,作P0口各位的上拉電阻,,以保證P0口能夠輸出高電平。復(fù)位電路的作用是,,在任何時(shí)刻可以手動(dòng)復(fù)位單片機(jī),,使程序重新執(zhí)行。

圖2.LED顯示屏硬件電路原理圖

圖2.硬件電路原理圖

  3. 軟件設(shè)計(jì)

  AT89C51單片機(jī)是8位機(jī),,每次只能送出8位數(shù)據(jù),,因此要向16×16點(diǎn)陣送出16行陽(yáng)極驅(qū)動(dòng),需要送兩次,,或先送上8行,,或先送下8行,為了能夠?qū)崿F(xiàn)每一列字型碼的完整顯示,,采用74LS273進(jìn)行鎖存,,否則會(huì)出現(xiàn)字型殘缺現(xiàn)象。根據(jù)設(shè)計(jì)要求并結(jié)合圖2的硬件連接進(jìn)行程序設(shè)計(jì),,程序設(shè)計(jì)流程圖如圖3所示。

  利用單片機(jī)C語(yǔ)言實(shí)現(xiàn)“2008北京歡迎您!”10個(gè)字的滾動(dòng)顯示,,阿拉伯?dāng)?shù)字和標(biāo)點(diǎn)符號(hào)按16×8點(diǎn)陣編碼,,漢字按16×16點(diǎn)陣編碼, “2008北京歡迎您!”字型碼表如下:

  {0x00,0x00,0x0C,0x1C,0x10,0x24,0x10,0x24,0x10,0x44,0x10,0x84,0x0F,0x0E,0x00,0x00},

  {0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},

  {0x00,0x00,0x07,0xF0,0x08,0x08,0x10,0x04,0x10,0x04,0x08,0x08,0x07,0xF0,0x00,0x00},

  {0x00,0x00,0x0E,0x38,0x11,0x44,0x10,0x84,0x10,0x84,0x11,0x44,0x0E,0x38,0x00,0x00},

  {0x00,0x00,0x0E,0x04,0x08,0x0C,0x08,0x0C,0x08,0x08,0x08,0x10,0xFF,0xFE,0x00,0x00},

  {0x00,0x00,0x3F,0xFC,0x41,0x02,0x42,0x02,0x06,0x02,0x0E,0x06,0x0C,0x0C,0x00,0x00},

  {0x00,0x00,0x20,0x04,0x20,0x08,0x27,0x98,0x24,0xB0,0x24,0x82,0xA4,0x81,0x64,0xFE},

  {0x24,0x80,0x24,0x80,0x24,0xA0,0x27,0xB0,0x60,0x1C,0x20,0x08,0x00,0x00,0x00,0x00},

  {0x28,0x04,0x24,0x08,0x22,0x32,0x21,0xC2,0x26,0xC2,0x38,0x34,0x04,0x04,0x18,0x08},

  {0xF0,0x30,0x17,0xC0,0x10,0x60,0x10,0x18,0x14,0x0C,0x18,0x06,0x10,0x04,0x00,0x00},

  {0x02,0x02,0x82,0x04,0x73,0xF8,0x20,0x04,0x00,0x02,0x3F,0xE2,0x20,0x42,0x40,0x82},

  {0x40,0x02,0x3F,0xFA,0x20,0x02,0x20,0x42,0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00},

  {0x01,0x00,0x02,0x04,0x0C,0x1C,0x3F,0xC0,0xC0,0x1C,0x09,0x02,0x16,0x02,0x60,0x92},

  {0x20,0x4A,0x2F,0x82,0x20,0x02,0x24,0x0E,0x22,0x00,0x31,0x90,0x20,0x0C,0x00,0x00},

  {0x00,0x00,0x00,0x08,0x1F,0xDC,0x3F,0x08,0x3C,0x00,0x30,0x00,0x00,0x00,0x00,0x00},

  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}。

圖3. LED顯示屏程序流程圖


(a)主程序流程圖                    (b)中斷服務(wù)程序流程圖

圖3. 程序流程圖

  動(dòng)態(tài)掃描顯示程序代碼如下:

  while (1)

  {for (i=0;i<8;i++) //顯示左半邊屏幕

  { P0=*(p+offset+2*i);

  P2=i|0x90; //P2.4=1,P2.3=0 選中U3, 輸出掃描碼給U7

  delay();

  P0=*(p+offset+2*i+1);

  P2=i|0x08; //P2.4=0,P2.3=1 選中U2, 輸出掃描碼給U6

  delay(); }

  for (i=8;i<16;i++) //顯示右半邊屏幕

  { P0=*(p+offset+2*i);

  P2=(i-8)|0xC0; //P2.6=1 P2.5=0, P2.4=0 選中U5,輸出掃描碼U9

  delay();

  P0=*(p+offset+2*i+1);

  P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 選中U4,輸出掃描碼U8

  delay();

  } }

  4. 調(diào)試與仿真

  Proteus仿真時(shí),,單片機(jī)需要加載程序,,加載程序?yàn)?HEX文件。本設(shè)計(jì)利用Keil μVision2,, 在新建Keil項(xiàng)目時(shí)選擇AT89C52單片機(jī)作為CPU,,將C語(yǔ)言源程序?qū)耄?ldquo;Options For Target”對(duì)話窗口中,,選中“Output”選項(xiàng)中的“Create HEX File”,,編譯鏈接后就可以生成.HEX文件。在Proteus ISIS中,,選中AT89C52并單擊鼠標(biāo)左鍵,,對(duì)AT89C52進(jìn)行設(shè)置,設(shè)置單片機(jī)時(shí)鐘頻率為12MHz,,按照正確的文件路徑加載.HEX文件,。對(duì)單片機(jī)設(shè)置完畢后就可以開始仿真了。仿真過(guò)程中如有硬件問(wèn)題可在Proteus ISIS中直接修改,,如有軟件問(wèn)題可在Keil μVision2中直接修改,,通過(guò)Keil與Proteus的聯(lián)合調(diào)試就可以得到滿意的結(jié)果。本設(shè)計(jì)的仿真結(jié)果如圖4所示,。

圖4. LED顯示屏仿真結(jié)果

圖4. 仿真結(jié)果

  5.結(jié)論

  利用Proteus實(shí)現(xiàn)了對(duì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏的仿真,,完成了“2008北京歡迎您!”10個(gè)字的滾動(dòng)顯示,達(dá)到了良好的設(shè)計(jì)效果,。該仿真電路接近實(shí)際電路,,可以直接由該電路利用相關(guān)軟件設(shè)計(jì)印制電路板,加上電源電路和時(shí)鐘電路,,就可以制作出實(shí)際的點(diǎn)陣式LED滾動(dòng)漢字顯示屏,。通過(guò)前期仿真縮短了開發(fā)周期,降低了開發(fā)成本,,達(dá)到事半功倍之成效,。

  6.本文作者創(chuàng)新點(diǎn)

  本文作者創(chuàng)新點(diǎn)在于:在深入研究嵌入式系統(tǒng)軟硬件設(shè)計(jì)仿真平臺(tái)Proteus的基礎(chǔ)上,成功完成了對(duì)點(diǎn)陣式LED滾動(dòng)漢字顯示屏的設(shè)計(jì)仿真,,為單片機(jī)設(shè)計(jì)開發(fā)提供了一種新的方法和手段,。

  參考文獻(xiàn)

  [1].韓志軍等.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].機(jī)械工業(yè)出版社,2004

  [2].周潤(rùn)景等. Proteus在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例[M].電子工業(yè)出版社,,2006

  [3].馬忠梅等.單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京航空航天大學(xué)出版社,,2006

  [4].劉樹中,孫書膺,,王春平.單片機(jī)和液晶顯示驅(qū)動(dòng)器串行接口的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,,2007,,02:137-138。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。