2282 1616點陣LED電子顯示屏
2282 1616點陣LED電子顯示屏,點陣,led,電子顯示屏
第 7 章 16×16 點陣 LED 電子顯示屏的設(shè)計7.1 功能要求設(shè)計一個室內(nèi)用 16×16 點陣 LED 圖文顯示屏,要求在目測條件下 LED 顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形或文字應(yīng)穩(wěn)定、清晰無串?dāng)_。圖形或文字顯示有靜止、移入移出等顯示方式。7.2 方案論證從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個點所在位置相對應(yīng)的 LED 器件發(fā)光,就可以得到我們想要的顯示結(jié)果,這種同時控制各個發(fā)光點亮滅的方法稱為靜態(tài)驅(qū)動顯示方式。16×16 的點陣共有 256 個發(fā)光二極管,顯然單片機沒有這么多端口,如果我們采用鎖存器來擴展端口,按 8 位的鎖存器來計算,16×16 的點陣需要 256/8=32 個鎖存器。這個數(shù)字很龐大,因為我們僅僅是 16×16 的點陣,在實際應(yīng)用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個很龐大的數(shù)字。因此在實際應(yīng)用中的顯示屏幾乎都不采用這種設(shè)計,而采用另一種稱為動態(tài)掃描的顯示方法。動態(tài)掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅(qū)動電路就可以實現(xiàn)多行(比如 16 行)的同名列共用一套列驅(qū)動器。具體就 16×16 的點陣來說,我們把所有同一行的發(fā)光管的陽極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽的接法) ,先送出對應(yīng)第一行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第一行使其燃亮一定的時間,然后熄滅;再送出第二行的數(shù)據(jù)并鎖存,然后選通第二行使其燃亮相同的時間,然后熄滅;…… 第十六行之后又重新燃亮第一行,這樣反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒 24 次以上) ,由于人眼的視覺暫留現(xiàn)象,我們就能看到顯示屏上穩(wěn)定的圖形了。采用掃描方式進(jìn)行顯示時,每行有一個行驅(qū)動器,各行的同名列共用一個列驅(qū)動器。顯示數(shù)據(jù)通常存儲在單片機的存儲器中,按 8 位一個字節(jié)的形式順序排放。顯示時要把一行中各列的數(shù)據(jù)都傳送到相應(yīng)的列驅(qū)動器上去,這就存在一個顯示數(shù)據(jù)傳輸?shù)膯栴}。從控制電路到列驅(qū)動器的數(shù)據(jù)傳輸可以采用并行方式或串行方式。顯然,采用并行方式時,從控制電路到列驅(qū)動器的線路數(shù)量大,相應(yīng)的硬件數(shù)目多。當(dāng)列數(shù)很多時,并行傳輸?shù)姆桨甘遣豢扇〉摹2捎么袀鬏數(shù)姆椒?,控制電路可以只用一根信號線,將列數(shù)據(jù)一位一位傳往列驅(qū)動器,在硬件方面無疑是十分經(jīng)濟(jì)的。但是,串行傳輸過程較長,數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。這樣,對于一行的顯示過程就可以分解成列數(shù)據(jù)準(zhǔn)備(傳輸)和列數(shù)據(jù)顯示兩個部分。對于串行傳輸方式來說,列數(shù)據(jù)準(zhǔn)備時間可能相當(dāng)長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響到 LED 的亮度。解決串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時,傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要具有鎖存功能。經(jīng)過上述分析,可以歸納出列驅(qū)動器電路應(yīng)具備的主要功能。對于列數(shù)據(jù)準(zhǔn)備來說,它應(yīng)能實現(xiàn)串入并出的移位功能;對于列數(shù)據(jù)顯示來說,應(yīng)具有并行鎖存的功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時,串并移位寄存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會影響本行的顯示。圖 7.1 為顯示屏電路實現(xiàn)的結(jié)構(gòu)框圖。列 驅(qū) 動 器LED顯 示 點 陣電 源單片機 行驅(qū)動器圖 7.1 顯示屏電路框圖7.3 系統(tǒng)硬件電路的設(shè)計硬件電路大致上可以分成單片機系統(tǒng)及外圍電路、列驅(qū)動電路和行驅(qū)動電路三部分。7.3.1 單片機系統(tǒng)及外圍電路單片機采用 89C51 或其兼容系列的芯片,采用 24M 或更高頻率的晶振,以獲得較高的刷新頻率,使顯示更穩(wěn)定。單片機的串口與列驅(qū)動器相連,用來送顯示數(shù)據(jù)。P1 口低 4位與行驅(qū)動器相連,送出行選信號;P1.5~P1.7 口則用來發(fā)送控制信號。P0 和 P2 口空著,在有必要時可以擴展系統(tǒng)的 ROM 和 RAM。16×16 點陣顯示屏的硬件原理圖如圖 7.2。1 2 3 4ABCD4321DCBA TitleNumber RevisionSizeA4Date: 9-Jan-2004 Sheet of File: F:\temp\MyDesign.ddb Drawn By:EA/VP31X119X218RESET9INT012 INT113T014 T115P1.01 P1.12P1.23 P1.34P1.45 P1.56P1.67 P1.78P0.0 39P0.1 38P0.2 37P0.3 36P0.4 35P0.5 34P0.6 33P0.7 32P2.0 21P2.1 22P2.2 23P2.3 24P2.4 25P2.5 26P2.6 27P2.7 28RD 17WR 16PSEN 29ALE/P 30TXD 11RXD 10U187C51Y112.000MHZC133PC233PR18.2KGNDGNDVCCVCCA23 B22C21 D20G118 G2190 11 22 33 44 55 66 77 88 99 1010 1111 1312 1413 1514 1615 17U274LS154D?LEDQ?8550R?200|?VCCD?LEDD?LEDD?LED16?á16 LEDμ??óR?47|?SER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U3 74HC595 SER14SRCLK11SRCLR10RCLK12E13O015O11O22O33O44O55O66O77Q79U4 74HC595GND GNDGNDC310uF圖 7.2 16×16 點陣顯示屏硬件原理圖7.3.2 列驅(qū)動電路列驅(qū)動電路由集成電路 74HC595 構(gòu)成,它具有一個 8 位串入并出的移位寄存器和一個8 位輸出鎖存器的結(jié)構(gòu),而且移位寄存器和輸出鎖存器的控制是各自獨立的,可以實現(xiàn)在顯示本行各列數(shù)據(jù)的同時,傳送下一行的列數(shù)據(jù),即達(dá)到重疊處理的目的。74HC595 的外形及內(nèi)部結(jié)構(gòu)如圖 7.3 所示。它的輸入側(cè)有 8 個串行移位寄存器,每個移位寄存器的輸出都連接一個輸出鎖存器。引腳 SI 是串行數(shù)據(jù)的輸入端。引腳 SCK 是移位寄存器的移位時鐘脈沖,在其上升沿發(fā)生移位,并將 SI 的下一個數(shù)據(jù)打入最低位。移位后的各位信號出現(xiàn)在各移位寄存器的輸出端,也就是輸出鎖存器的輸入端。RCK 是輸出鎖存器的打入信號,其上升沿將移位寄存器的輸出打入到輸出鎖存器。引腳 G 是輸出三態(tài)門的開放信號,只有當(dāng)其為低時鎖存器的輸出才開放,否則為高阻態(tài)。SCLR 信號是移位寄存器的清零輸入端,當(dāng)其為低時移位寄存器的輸出全部為零。由于 SCK 和 RCK 兩個信號是互相獨立的,所以能夠做到輸入串行移位與輸出鎖存互不干擾。芯片的輸出端為QA~QH,最高位 QH 可作為多片 74HC595 級聯(lián)應(yīng)用時,向上一級的級聯(lián)輸出。但因 QH受輸出鎖存器打入控制,所以還從輸出鎖存器前引出了 QH’,作為與移位寄存器完全同步的級聯(lián)輸出。圖 7.3 74HC595 外形及內(nèi)部邏輯結(jié)構(gòu)圖7.3.3 行驅(qū)動電路單片機 P1 口低 4 位輸出的行號經(jīng) 4/16 線譯碼器 74LS154 譯碼后生成 16 條行選通信號線,再經(jīng)過驅(qū)動器驅(qū)動對應(yīng)的行線。一條行線上要帶動 16 列的 LED 進(jìn)行顯示,按每一LED 器件 20mA 電流計算,16 個 LED 同時發(fā)光時,需要 320mA 電流,選用三極管 8550作為驅(qū)動管可滿足要求。7.4 系統(tǒng)程序的設(shè)計顯示屏軟件的主要功能是向屏體提供顯示數(shù)據(jù),并產(chǎn)生各種控制信號,使屏幕按設(shè)計的要求顯示。根據(jù)軟件分層次設(shè)計的原理,我們可把顯示屏的軟件系統(tǒng)分成兩大層:第一層是底層的顯示驅(qū)動程序,第二層是上層的系統(tǒng)應(yīng)用程序。顯示驅(qū)動程序負(fù)責(zé)向屏體送顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號和其它控制信號,配合完成 LED 顯示屏的掃描顯示工作。顯示驅(qū)動程序由定時器 T0 中斷程序?qū)崿F(xiàn)。系統(tǒng)應(yīng)用程序完成系統(tǒng)環(huán)境設(shè)置(初始化) 、顯示效果處理等工作,由主程序來實現(xiàn)。從有利于實現(xiàn)較復(fù)雜的算法(顯示效果處理)和有利于程序結(jié)構(gòu)化考慮,顯示屏程序適宜采用 C 語言編寫。7.4.1 顯示驅(qū)動程序顯示驅(qū)動程序在進(jìn)入中斷后首先要對定時器 T0 重新賦初值以保證顯示屏刷新率的穩(wěn)定,1/16 掃描的顯示屏的刷新率(幀頻)的計算公式如下:式 7-1)653(121600 tfTosc?????溢 出 率刷 新 率 ( 幀 頻 )其中 fosc為晶振頻率,t 0為定時器 T0 初值(工作在 16 位定時器模式) 。然后顯示驅(qū)動程序查詢當(dāng)前燃亮的行號,從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時候產(chǎn)生拖尾現(xiàn)象,驅(qū)動程序先要關(guān)閉顯示屏,即消隱,等顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。圖 7.4 為顯示驅(qū)動程序(顯示屏掃描函數(shù))流程圖。7.4.2 系統(tǒng)主程序系統(tǒng)主程序開始以后首先是對系統(tǒng)環(huán)境初始化,包括設(shè)置串口、定時器、中斷和端口。然后以“卷簾出”效果顯示一個圖形(?) ,停留約 3 秒,接著向上滾動顯示“我愛單片機?”五個漢字及一個圖形,停留約 3 秒,再向左跑馬顯示“我愛單片機?”這五個漢字及一個圖形,然后以“卷簾入”效果隱去圖形(?) 。由于單片機沒有停機指令,所以我們可以設(shè)置系統(tǒng)程序不斷地循環(huán)執(zhí)行上述顯示效果。圖 7.5 是系統(tǒng)主程序的流程圖。7.5 調(diào)試及性能分析LED 顯示屏硬件電路只要器件質(zhì)量可靠,管腳焊接正確,一般無需調(diào)試即可正常工作。軟件部分需要調(diào)試的主要有顯示屏刷新頻率及顯示效果兩部分。顯示屏刷新率由定時器 T0的溢出率和單片機的晶振頻率決定,表 7.1 給出了實驗調(diào)試時采用的頻率及其對應(yīng)的定時器 T0 初值。定時器賦初值讀取行號并增 1送新行顯示數(shù)據(jù)消隱切換顯示數(shù)據(jù)送新行號、打開顯示進(jìn)入中斷退出中斷圖 7.4 顯示驅(qū)動程序流程圖系統(tǒng)初始化“卷簾出”顯示效果“上滾屏”顯示效果“左跑馬”顯示效果“卷簾入”顯示效果開始圖 7.5 系統(tǒng)主程序流程圖表 7.1 顯示屏刷新率(幀頻)與 T0 初值關(guān)系表(24M 晶振)刷新率(Hz) 25 50 62.5 75 85 100 120T0 初值 0xec78 0xf63c 0xf830 0xf97e 0xfa42 0xfb1e 0xfbee從理論上來說,24Hz 以上的刷新率就能看到連續(xù)穩(wěn)定的顯示,刷新率越高,顯示越穩(wěn)定,同時刷新率越高,顯示驅(qū)動程序占用的 CPU 時間也越多。實驗證明,在目測條件下刷新率 40Hz 以下的畫面看起來閃爍較嚴(yán)重,刷新率 50Hz 以上的已基本覺察不出畫面閃爍,刷新率達(dá)到 85Hz 以上時再增加畫面閃爍將沒有明顯改善。顯示效果處理程序的內(nèi)容及方法非常廣泛,其調(diào)試過程在此不作具體討論,讀者可對照源程序自行分析。這個方案設(shè)計的 16×16 點陣 LED 圖文顯示屏,電路簡單,成本較低,且較容易擴展成更大的顯示屏;顯示屏各點亮度均勻、充足;顯示圖形或文字穩(wěn)定、清晰無串?dāng)_;可用靜止、移入移出等多種顯示方式顯示圖形或文字。7.6 控制源程序清單以下是 16×16 點陣 LED 電子顯示屏的源程序,分別采用 C 及匯編編寫,C 程序在Keil uVision2 V2.30(C51.exe V7.0 )環(huán)境下調(diào)試通過。/*--------------------------------------16×16 點陣 LED 顯示屏程序MCU AT89C51 XAL 24MHzBuilde by Gavin Hu, 2003.8.15--------------------------------------*/#include #define BLKN 2 //列鎖存器數(shù)sbit G = 0x97; //P1.7 為顯示允許控制信號端口sbit RCLK = 0x96; //P1.6 為輸出鎖存器時鐘信號端sbit SCLR = 0x95; //P1.5 為移位寄存器清○端void delay(unsigned int); //延時函數(shù)unsigned char data dispram[32]; //顯示緩存/*--------------------------------------主函數(shù) void main(void)--------------------------------------*/void main(void){ unsigned char code Bmp[][32]={//字模表{0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7,0xF1,0xD7,0xC7,0xCF,0x37,0xDF,0xF7,0xAF,0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD}/*我*/,{0xFF,0x07,0xC0,0x6F,0xED,0xEF,0xF6,0xDF,0xC0,0x01,0xDD,0xFD,0xBD,0xFF,0xC0,0x03,0xFB,0xFF,0xF8,0x0F,0xF3,0xDF,0xF4,0xBF,0xEF,0x3F,0x9C,0xCF,0x73,0xF1,0xCF,0xFB}/*愛*/,{ 0xF7,0xDF,0xF9,0xCF,0xFB,0xBF,0xC0,0x07,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF}/*單*/,{0xFF,0xBF,0xEF,0xBF,0xEF,0xBF,0xEF,0xBB,0xE0,0x01,0xEF,0xFF,0xEF,0xFF,0xEF,0xFF,0xE0,0x0F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xDF,0xEF,0xDF,0xEF,0xBF,0xEF,0x7F,0xEF}/*片*/,{0xEF,0xFF,0xEF,0x07,0xEF,0x77,0x01,0x77,0xEF,0x77,0xEF,0x77,0xC7,0x77,0xCB,0x77,0xAB,0x77,0xAF,0x77,0x6E,0xF7,0xEE,0xF5,0xED,0xF5,0xED,0xF5,0xEB,0xF9,0xEF,0xFF}/*機*/,{0xF8,0x3F,0xE7,0xCF,0xDF,0xF7,0xBF,0xFB,0xB3,0x9B,0x73,0x9D,0x7F,0xFD,0x7F,0xFD,0x6F,0xED,0x67,0xCD,0xB3,0x9B,0xB8,0x3B,0xDF,0xF7,0xE7,0xCF,0xF8,0x3F,0xFF,0xFF}/*?*/};register unsigned char i,j,k,l;SCON = 0x00; //串口工作模式 0:移位寄存器方式TMOD = 0x01; //定時器 T0 工作方式 1:16 位方式TR0 = 1; //啟動定時器 T0P1 = 0x3f; //P1 端口初值:允許接收、鎖存、顯示IE = 0x82; //允許定時器 T0 中斷while (1){delay(2000); //延時 2 秒for (i=0;i>7;dispram[l*BLKN+1] = dispram[l*BLKN+1]>(8-k);}delay(100);}//end (k=0; k<16; k++)}//end for (i=0; i<; i++)//━━━━━━━┛delay(3000);for (i=0;i<32;i++) //顯示效果:卷簾入┓{dispram[i] = 0x00;if (i%2) delay(100);} //━━━━━━━━┛}//end while (1)}/*延時函數(shù)*/void delay(unsigned int dt){register unsigned char bt;for (; dt; dt--)for (bt=0; bt<255; bt++);}/*顯示屏掃描(定時器 T0 中斷)函數(shù)*/void leddisplay(void) interrupt 1 using 1{register unsigned char i, j=BLKN;TH0 = 0xF8; //設(shè)定顯示屏刷新率每秒 62.5 幀TL0 = 0x30;i = P1; //讀取當(dāng)前顯示的行號i = ++i & 0x0f; //行號加 1,屏蔽高 4 位do {j--;SBUF = dispram[i*BLKN + j]; //送顯示數(shù)據(jù) while (!TI); TI = 0;}while (j); //完成一行數(shù)據(jù)的發(fā)送G = 1; //消隱(關(guān)閉顯示)P1 &= 0xf0; //行號端口清○RCLK = 1; //顯示數(shù)據(jù)打入輸出鎖存器P1 |= i; //寫入行號RCLK = 0; //鎖存顯示數(shù)據(jù)G = 0; //打開顯示}以下為用匯編編寫的字符顯示控制程序:; ************************************; * *; * 單個 16*16 點陣電子屏字符顯示器 *; * AT89C52 12MHZ 晶振 *; * 2004.2.11 LRM *; ************************************;顯示字用查表法,不占內(nèi)存,字符用 16*16 共陽 LED 點陣,;效果:向上滾動顯示 19 個字,再重復(fù)循環(huán)。;R1:查表偏址寄存器,B:查表首址,R2:掃描地址(從 00-0FH)。;R3:滾動顯示時控制移動速度,單字顯示可控制靜止顯示的時間。;************;;中斷入口程序;;************;;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHLJMP INTT0ORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;;************;; 初始化程序 ;;************;;;;************;; 主程序 ;;************;;START: MOV 20H,#00H ;清標(biāo)志,00H 為第 16 行開始掃描標(biāo)志,01 為 1 幀掃描結(jié)束標(biāo)志MOV A,#0FFH ;端口初始化MOV P1,AMOV P2,AMOV P3,AMOV P0,ACLR P1.6 ;串行寄存器輸入打入輸出控制位MOV TMOD,#01H ;使用 T0 作 16 位定時器,行掃描用。MOV TH0,#0FCH ;1ms 初值(12MHZ)MOV TL0,#18HMOV SCON,#00H ;串口 0 方式傳送顯示字節(jié)MOV IE,#82H ;T0 中斷允許,總中斷允許MOV SP,#70HMAIN: LCALL DIS1 ;顯示準(zhǔn)備,黑屏,1.5 秒MOV DPTR,#TABLCALL MOVDISP ;向上滾動顯示一頁(8 個字)INC DPHLCALL MOVDISP ;向上滾動顯示一頁(8 個字)INC DPHLCALL MOVDISP ;向上滾動顯示一頁(8 個字)AJMP MAIN;;;********************;; 多字滾動顯示子程序 ;;********************;;每次 8 個字,入口時定義好 DPTR 值;MOVDISP: MOV B,#00H ;向上移動顯示,查表偏址暫存(從 00 開始)DISLOOP: MOV R3,#07H ;移動速度DISMOV: MOV R2,#00H ;第 0 行開始MOV R1,B ;SETB TR0 ;開掃描(每次一幀)WAITMOV: JBC 01H,DISMOV1 ;標(biāo)志為 1 掃描一幀結(jié)束(16 毫秒為 1 幀,每行 1 毫秒)AJMP WAITMOVDISMOV1: DJNZ R3,DISMOV ;1 幀重復(fù)顯示(控制移動速度)INC B ;顯示字的下一行(每行 2 字節(jié))INC B ; MOV A,R1 ;R1 為 0,8 個字顯示完JZ MOVOUT ;AJMP DISLOOP ;MOVOUT: RET ;移動顯示結(jié)束;;;*****************;; 單字顯示子程序 ;;*****************;;顯示表中某個字DIS1: MOV R3,#5AH ;靜止顯示時間控制(16MS*#=1.6 秒)DIS11: MOV R2,#00H ;一幀掃描初始值(行地址從 00-0FH)MOV DPTR,#TAB ;取表首址MOV R1,#00H ;查表偏址(顯示第一個字)SETB TR0 ;開掃描(每次一幀)WAIT11: JBC 01H,DIS111 ;為 1,掃描一幀結(jié)束AJMP WAIT11DIS111: DJNZ R3,DIS11RET;;;************;; 掃描程序 ;;************;;1MS 刷新一次,每行顯示 1 秒INTT0: PUSH ACCMOV TH0,#0FCH ;1ms 初值重裝MOV TL0,#18HJBC 00H,GOEND ;16 行掃描標(biāo)志為 1,結(jié)束INC R1 ;取行右邊字節(jié)偏址MOV A,R1MOVC A,@A+DPTR ;查表MOV SBUF,A ;串口 0 方式發(fā)送WAIT: JBC TI,GO ;等待發(fā)送完畢AJMP WAIT ;GO: DEC R1 ;取行左邊字節(jié)偏址MOV A,R1MOVC A,@A+DPTRMOV SBUF,AWAIT1: JBC TI,GO1AJMP WAIT1GO1: SETB P1.7 ;關(guān)行顯示,準(zhǔn)備刷新NOP ;串口寄存器數(shù)據(jù)穩(wěn)定SETB P1.6 ;產(chǎn)生上升沿,行數(shù)據(jù)打入輸出端 NOP ;NOP ;CLR P1.6 ;恢復(fù)低電平MOV A,R2 ;修改顯示行地址ORL A,#0F0H ;修改顯示行地址MOV R2,A ;修改顯示行地址MOV A,P1 ;修改顯示行地址ORL A,#0FH ;修改顯示行地址ANL A,R2 ;修改顯示行地址MOV P1,A ;修改完成CLR P1.7 ;開行顯示INC R2 ;下一行掃描地址值INC R1 ;INC R1 ;下一行數(shù)據(jù)地址MOV A,R2ANL A,#0FHJNZ GO2SETB 00H ;R2 為 10H,現(xiàn)為末行掃描,置標(biāo)志GO2: POP ACCRETIGOEND: CLR TR0 ;一幀掃描完,關(guān)掃描SETB 01H ;一幀掃描完,置結(jié)束標(biāo)志POP ACCRETI ;退出;;;***************;; 掃描文字表 ;;***************;; TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H ;單 DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFHDB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ; 片 DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFHDB 0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H ; 機DB 0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFHDB 0FFH,0FFH,0F0H,00FH,0F7H,0EFH,0F0H,00FH,0F7H,0EFH,0F0H,00FH,0FFH,0FFH,000H,001H ;是 DB 0FEH,0FFH,0F6H,0FFH,0F6H,007H,0F6H,0FFH,0EAH,0FFH,0DCH,0FFH,0BFH,001H,0FFH,0FFHDB 0FFH,0FFH,0C0H,003H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH ;工DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,000H,001H,0FFH,0FFH,0FFH,0FFHDB 0FBH,0BFH,0FBH,0BFH,0FBH,0BFH,0FBH,0BBH,0BBH,0B9H,0DBH,0B3H,0DBH,0B7H,0EBH,0AFH ;業(yè)DB 0E3H,0AFH,0EBH,09FH,0FBH,0BFH,0FBH,0BFH,0FBH,0BBH,000H,001H,0FFH,0FFH,0FFH,0FFH DB 0FEH,0FFH,0FEH,0FFH,0DEH,0F7H,0C0H,003H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H ;中DB 0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH ;DB 0FEH,0FFH,0FEH,0FFH,0DEH,0F7H,0C0H,003H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H,0DEH,0F7H ; 中 DB 0DEH,0F7H,0C0H,007H,0DEH,0F7H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH DB 0E0H,00FH,0EFH,0EFH,0E0H,00FH,0EFH,0EFH,0E0H,00FH,0FFH,0FFH,000H,001H,0DDH,0FFH ; 最 DB 0C1H,003H,0DDH,077H,0C1H,0AFH,0DCH,0DFH,0C1H,0AFH,01DH,071H,0FCH,0FBH,0FDH,0FFHDB 0F7H,0DFH,0F7H,0DFH,080H,003H,0F7H,0DFH,0F0H,01FH,0F7H,0DFH,0F0H,01FH,0F7H,0DFH ; 基 DB 000H,001H,0F7H,0DFH,0EEH,0E7H,0C0H,011H,03EH,0FBH,0FEH,0FFH,080H,003H,0FFH,0FFHDB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,000H,001H,0FCH,07FH,0FCH,0BFH,0FAH,0BFH,0FAH,0DFH ; 本 DB 0F6H,0EFH,0EEH,0E7H,0D0H,011H,03EH,0FBH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FFH,0FFHDB 0EFH,07FH,0EFH,07FH,0DFH,07FH,083H,003H,0BAH,0FBH,0BAH,0FBH,0B9H,0FBH,083H,07BH ; 的 DB 0BBH,0BBH,0BBH,09BH,0BBH,0DBH,0BBH,0FBH,083H,0FBH,0BBH,0D7H,0BFH,0EFH,0FFH,0FFHDB 0FEH,0FFH,0FFH,07FH,0C0H,003H,0DFH,0FFH,0DDH,0FFH,0DEH,0F7H,0CFH,073H,0D7H,037H ;應(yīng)DB 0DBH,06FH,0DBH,06FH,0D9H,0DFH,0BBH,0DFH,0BFH,0BFH,0A0H,001H,07FH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0E0H,003H,0EFH,07BH,0EFH,07BH,0EFH,07BH,0E0H,003H,0EFH,07BH,0EFH,07BH ;用DB 0EFH,07BH,0E0H,003H,0EFH,07BH,0EFH,07BH,0DFH,07BH,0DFH,07BH,0BFH,06BH,07FH,077HDB 0FDH,0FFH,0FEH,0FFH,0FFH,07FH,000H,001H,0FDH,0FFH,0FDH,0FFH,0FCH,00FH,0FDH,0EFH ; 方DB 0FBH,0EFH,0FBH,0EFH,0F7H,0EFH,0F7H,0EFH,0EFH,0EFH,0DFH,06FH,03FH,09FH,0FFH,0FFH ;DB 0FDH,0FFH,0FEH,0FFH,0FFH,07FH,000H,001H,0FDH,0FFH,0FDH,0FFH,0FCH,00FH,0FDH,0EFH ; 方DB 0FBH,0EFH,0FBH,0EFH,0F7H,0EFH,0F7H,0EFH,0EFH,0EFH,0DFH,06FH,03FH,09FH,0FFH,0FFH DB 0FFH,05FH,0FFH,067H,0FFH,06FH,080H,003H,0FFH,07FH,0FFH,07FH,0FFH,07FH,0C1H,07FH ; 式DB 0F7H,0BFH,0F7H,0BFH,0F7H,0BFH,0F4H,0DFH,0E3H,0DDH,08FH,0EDH,0DFH,0F5H,0FFH,0FBHDB 0F9H,0BFH,0C7H,0AFH,0F7H,0B7H,0F7H,0B7H,0F7H,0BFH,000H,001H,0F7H,0BFH,0F7H,0B7H ; 我 DB 0F1H,0D7H,0C7H,0CFH,037H,0DFH,0F7H,0AFH,0F6H,06DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDHDB 0FFH,007H,0C0H,06FH,0EDH,0EFH,0F6H,0DFH,0C0H,001H,0DDH,0FDH,0BDH,0FFH,0C0H,003H ; 愛 DB 0FBH,0FFH,0F8H,00FH,0F3H,0DFH,0F4H,0BFH,0EFH,03FH,09CH,0CFH,073H,0F1H,0CFH,0FBHDB 0F7H,0DFH,0F9H,0CFH,0FBH,0BFH,0C0H,007H,0DEH,0F7H,0C0H,007H,0DEH,0F7H,0DEH,0F7H ;單DB 0C0H,007H,0DEH,0F7H,0FEH,0FFH,000H,001H,0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0FEH,0FFHDB 0FFH,0BFH,0EFH,0BFH,0EFH,0BFH,0EFH,0BBH,0E0H,001H,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH ; 片DB 0E0H,00FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0DFH,0EFH,0DFH,0EFH,0BFH,0EFH,07FH,0EFHDB 0EFH,0FFH,0EFH,007H,0EFH,077H,001H,077H,0EFH,077H,0EFH,077H,0C7H,077H,0CBH,077H ; 機DB 0ABH,077H,0AFH,077H,06EH,0F7H,0EEH,0F5H,0EDH,0F5H,0EDH,0F5H,0EBH,0F9H,0EFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;黑屏DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH; END
收藏