新聞中心

EEPW首頁 > 光電顯示 > 設計應用 > 基于移動數(shù)據的LED顯示屏設計與仿真

基于移動數(shù)據的LED顯示屏設計與仿真

作者: 時間:2010-04-20 來源:網絡 收藏

  2.2 單片機及顯示驅動電路

  由于通過網絡短消息得到的只是漢字的內碼,而屏幕顯示需要漢字的點陣信息,所以在本系統(tǒng)中必須存放GB2312漢字點陣字庫,再加上屏幕顯示時需要存放大量的顯示,所以在單片機AT89C51的外圍擴展了64 KB的RAM(62256)和512 KB的Flash 存儲器(29F040)。其中29F040存放點陣字庫(HZK16、ASC16)和Unicode轉GB2312碼表,62256做顯示緩存。單片機收到短消息后先把待顯示信息轉換成GB2312碼,顯示時再從29F040中讀出對應點陣信息存儲在62256中。

  單片機P1口用于控制LED屏幕的顯示,其中P1.0~P1.3腳分別輸出4位行選信號A、B、C、D,ABCD從0000變到1111,逐行掃描1~16行點,將顯示依次顯示出來;P1.4腳輸出移位時鐘信號SHCLK,使得顯示可以依次進入LED單元板;P1.5腳輸出鎖存信號STB,使得顯示數(shù)據可以穩(wěn)定輸出;P1.6腳輸出LED單元板的上16行的顯示數(shù)據R1,P1.7腳輸出LED單元板的下16行的顯示數(shù)據R2。

  32×64點陣的LED單元板用于顯示16點陣的漢字時,可以顯示2行,每行4個漢字。其組成電路如圖3。行驅動電路使用了2片74HC138芯片,上、下16行的列驅動電路都使用了8片74HC595芯片。具體顯示時采用動態(tài)掃描方式,單片機輸出的4位行選信號A、B、C、D經2片74HCl38譯碼后逐行掃描LED單元板的1~16行和17~32行;上16行的顯示數(shù)據R1及下16行的顯示數(shù)據R2在同一移位時鐘信號SHCLK的作用下分別依次打入各自的74HC595,最后在共同鎖存信號STB的作用下穩(wěn)定輸出在74HC595的并行輸出端。

  在實際制作LED單元板時,往往在74HCl38芯片輸出的行掃描線上再加上4953芯片以增加驅動能力。

  3 程序

  3.1 短消息收發(fā)控制

  單片機通過AT命令控制TC35I模塊進行初始化和短消息的收發(fā),對短消息的控制共有3種模式:Block模式、PDU模式和Text模式。Text模式不支持中文,而使用Block模式需要手機生產廠家提供驅動支持,本系統(tǒng)使用PDU模式進行短消息接收和發(fā)送。

  系統(tǒng)上電以后首先對TC35I進行初始化,內容主要包括:

  (1)設置短消息中心號碼AT+CSCA=“+8613800250500”

  (該號碼因地區(qū)不同而設置不同)。

  (2)設置短消息格式AT+CMGF=0(0代表PDU格式)。

  (3)設置短消息存放的位置AT+CPMS=“SM”(SM表示將短消息存放在SIM卡中)。

  (4)設置短信到達通知AT+CNMI=1,1,0,0,1。此命令可使模塊在短消息到達后向單片機發(fā)送指令+CMTI:“SM”,INDEX(信息存儲位置)。

  系統(tǒng)操作過程中,單片機通過AT命令控制TC35I模塊接收或發(fā)送短消息。命令格式如下:

  (1)讀取短消息指令AT+CMGR=INDEX。

  (2)發(fā)送短消息指令AT+CMGS=<length><CR>。

  (3)刪除短消息指令AT+CMGD=INDEX。

  (4)SIM卡狀態(tài)查詢命令AT^SCKS。

  接收和發(fā)送的短消息均以PDU串的數(shù)據形式被單片機處理,PDU串由數(shù)字“0”~“9”和字母“A”~“F”組成,是十六進制數(shù)或者BCD碼十進制數(shù)。PDU串不僅包含可顯示的消息本身,還包含很多其他信息,如SMS服務中心號碼、目標號碼、回復號碼、編碼方式和服務時間等。發(fā)送和接收的PDU串結構不完全相同。下面用2個實例說明PDU串的結構和編排方式。

  例1:接收。SMSC號碼是+8613800-

  250500,對方號碼是13851872468,消息內容是“你好!”。單片機從TC35模塊讀取到的PDU串是――08 91 68 31 08 20 05 05 F0 84 0D 91 68 31 58 81 27 64 F8 00 08 30 30 21 80 63 54 80 0*F 60 59 7D 00 21。

  例2:發(fā)送。SMSC號碼是+8613800-

  250500,對方號碼是13851872468,消息內容是“你好!”。單片機向TC35模塊發(fā)出的PDU串是――08 91 68 31 08 20 05 05 F0 11 00 0D 91 68 31 58 81 27 64 F8 00 08 00 0*F 60 59 7D 00 21。

  3.2 LED顯示控制程序

  LED的動態(tài)掃描功能通過使用單片機的定時器0中斷實現(xiàn)。定時器0計數(shù)初值的設定滿足每秒中斷1 000次以上,每次中斷掃描顯示一行,這樣每行在每秒鐘內至少被掃描60次以上。根據人眼的視覺暫留效應,達到了較理想的顯示效果。

  定時器0中斷服務程序:

  void int0(void) interrupt 1

  {

  TR0=0; //關定時器T1

  TL0=0x80; //設置初值的低8位

  TH0=0xff; //設置初值的高8位

  TR0=1; //開定時器T1

  if(i16) //i為掃描的行號,取值0~15,

  //依次掃描1~16行

  {

  P1_5=0; //關HC595鎖存

  while(z8) //z為上下各8片HC595按

  //從左到右的編號,取值0~7。

  //每片HC595都經8次循環(huán),

  //實現(xiàn)8位數(shù)據的串/并轉換

  { a=disp[i*2+k];//取上16行的8位顯示數(shù)據a

  b=disp[i*2+k+128]; //取下16行的8位

  //顯示數(shù)據b

  if(z%2!=0) k+=32-1;

  else k++;

  while(j8) //循環(huán)8次,將a通過P1.6

  //腳依次移入上面的HC595,

  //將b通過P1.7腳依次

  //移入下面的HC595

  {

  P1_4=0; //將P1.4口線拉低,

  //產生移位脈沖SHCLK

  if((aau)>0) //假串口P1.6,輸出上16行

  //的顯示數(shù)據a

  P1_6=1;

  else

  P1_6=0;

  if((bau)>0) //假串口P1.7,輸出下16行

  //的顯示數(shù)據b

  P1_7=1;

  else

  P1_7=0;

電子鎮(zhèn)流器相關文章:電子鎮(zhèn)流器工作原理


電子鎮(zhèn)流器相關文章:




評論


相關推薦

技術專區(qū)

關閉