『壹』 基於LED顯示屏設計C語言編程
本設計是在51單片機與PC機上實現基於RS232串列通訊功能的,制定和實現可靠的上下位機通訊協議,完成顯示數據的下傳和讀取,圖形和文字有靜止、移入移出等多種顯示方式是本設計的最大特點。第二章 系統組成與工作原理2.1系統設計要求和技術指標 此次設計的系統將由五部分(主要分為上位機部分和下位機部分,其中下位機主要分成,顯示信息存儲器﹑LED顯示屏行驅動電路和LED點陣顯示屏)組成來實現,分別為:上位PC機﹑串列電平轉換器﹑顯示信息存儲器﹑LED顯示屏行驅動電路和LED點陣顯示屏。控制系統的結構框圖如圖2.1所示。設計要求系統能控制中文LED漢字顯示,主控板採用以單片機為核心的單片機系統。MCS-51單片機具有擴展性強﹑功能強盛﹑價格較低等長處,因此,採用Atmel公司的AT89C52單片機。採用MAX232作為RS-232與TTL電平的轉換器件。PC機發送到下位機的數據先由SBUF(數據緩沖區)接收,再存入EEPROM器件AT24C256中。漢字點陣顯示屏可分為屏體和控制器兩部分。屏體的主要部分是LED點陣屏,還有行列驅動電路。LED點陣顯示屏採用8*8LED顯示模塊拼接而成。控制電路負責有序地選通各行,選通每一行之前還要把該行該列的數據預備好,一旦該行選通,這一行上的LED發光器件就可以根據列數據進行顯示。從理論上講,不論顯示圖形還是文字,只要控制這些組成圖形或文字的各個點所在位置相應的LED器件發光,就可以得到想要的顯示結果,這種同時控制各個發光點亮滅的方法稱為靜態驅動顯示方式。16*16點陣共有256個發光二極體,顯然單片機沒有這么多的埠,假如採用鎖存器來擴展埠,按8位的鎖存器來計算,16*16的點陣需要256/8=32個鎖存器。這個數字很大,因為這里僅僅是16*16的點陣,但是在實際應用中的顯示屏往往要大的多,這樣在鎖存器上花的成本也就將是一個很大的數字。因此,在實際應用中的顯示屏幾乎都不採用靜態驅動顯示方式之中設計,而是採用另一種稱為動態掃描的顯示方式。所謂動態掃描,簡朴地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現多行同名列共用一套列驅動器。以本次設計的16*16點陣為例,把所有的同一行發光管的陽極連在一起,把所有同一列發光管的陰極連在一起(共陽極接法),先發送出對應第一行發光管亮滅的數據並鎖存,然後選通第一行使其點亮一定的時間,然後熄滅;再發送出第二行的數據並鎖存,然後選通第二行使其點亮一定的時間,然後熄滅;……第十六行之後又重新點亮第一行,這樣反復輪回。當這樣輪回的速度足夠快時(每秒24次以上),由於人眼的視覺暫留現象,就能看到顯示屏上穩定的圖形。採用串列傳輸方案,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬體方面,這無疑是十分經濟的。但是,串列傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有一行的各列數據都已傳輸到位之後,這一行的各列才能並行地進行顯示。這樣,對於一行的顯示過程就可以分解成列數據准備(傳輸)和列數據顯示兩部分。對於串列傳輸方式來說,列數據准備時間可能相稱長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響LED的亮度。為解決串列傳輸中列數據准備與列數據顯示的時間矛盾問題,可以採用重疊處理的方法,即在顯示本行各列數據的同時,傳送下一行的列數據。為達到重疊處理的目的,列數據的顯示就需要具有鎖存功能。經過上述的分析,可以歸納出列驅動器電路應具備的主要功能。對於列數據准備來說,它應能實現串入並出的移位功能;對於列數據顯示來說,應具有並行鎖存的功能。這樣,本行已准備好的數據送入並行鎖存器進行顯示時,串並移位寄存器就可以准備下一行的列數據,而會不影響本行的顯示。該顯示屏系統的原理框圖如圖2.1所示。
</SPAN></SPAN></SPAN></SPAN>
『貳』 600分:基於單片機的點陣式LED顯示屏設計
如果你相信我,你就把你要的具體要求傳到我的郵箱,[email protected]或[email protected]
我會給你選好你想要的,或者去我的網路貼吧看看,我就是吧主。。。呵呵我的專業忘說了。。。信息顯示與光電技術。。。。
不信我也沒關系,
只能遺憾的提示你一下:如果是20個字的話1602就夠了,要有很好效果的話12864是個不錯的選擇,可是要「基於網路」比較困難,至少要1355控制器的320*240
『叄』 基於51系列單片機的LED顯示屏開發技術的內容簡介
在簡要講述普通51單片機和C51編程的基礎上,《基於51系列單片機的LED顯示屏開發技術》還對具有40MHz工作頻率、單指令周期的增強型51單片機——VRS51L3074及其在LED顯示屏控制系統中的應用做了詳細介紹。《基於51系列單片機的LED顯示屏開發技術》是國內第一本針對鐵電單片機的書籍,為初學鐵電單片機或是希望了解該單片機的讀者提供了較為全面的資料和開發常式。此外還對通用LED顯示屏上位機控制軟體設計、LED顯示屏控制系統常用時鍾晶元DS1302、溫度感測器DS18B20、二極體等模塊控製程序和硬體電路進行分析和講解。這些內容是作者近幾年來部分開發工作的實踐總結,有些是根據實際生產產品的提煉和推廣。
《基於51系列單片機的LED顯示屏開發技術》內容豐富實用,圖文並茂,適用於從事單片機開發和應用以及從事LED控制系統的研發人員和工程技術人員使用,也可以作為單片機愛好者、鐵電單片機初學者,以及使用C51編程的研究生、本科生、專科生畢業設計的參考用書。
『肆』 基於單片機led電子顯示屏設計
我做過這樣的畢業設計,16*64點陣顯示屏,可以各種顯示,時間,溫度等功能。 給你一個參考: 可以去我的博客下載: LED 點陣漢字顯示屏 概 述 這次比賽製作由於時間緊,同時為了降低製作難度, 僅作了四個字的輪流顯示,實際使用時可根據這個原理自行擴充顯示的字數。 設計製作主要運用於學校的宣傳欄,如:本科評估的各種信息,學校學院重要通知,天氣預報等各種信息。 系統設計 一 硬體電路 (1)系統組成: 主要硬體電路:LED 點陣條屏是由 16 個 8*8 的 LED 點陣塊組成,形成 16*64 矩形點陣,以AT89S51為控制核心。顯示屏的其他主要硬體有: ① 帶鎖存輸出的 8位移位寄存器74HC595,作為LED的列線驅動輸入; ② 四六解碼器 74LS154,作為 LED行線的解碼選擇(實際製作中考慮成本問題改為兩個74HC138聯合); ③ 三極體 9012,連接四六解碼器的十六個輸出端,作為開關使用,驅動LED的行線。 圖二 AT89S51單片機最小系統 AT89S51相關器件連接的接腳如下:PA0-PA3連接4-16解碼器的輸入口A,B,C,D;PB0-PB3連接74HC595的輸入口 SI,SCK,RCK;PD6-PD7作串口通信使用連接RxD,TxD 兩個三八解碼器74LS138組成的16個輸出端連接 16 個 9012的三極體的基極 B,發射極E 連接5V電源,集電極C連接到三個漢字點陣的16 個行線控制端。 點陣的 48 列數據線驅動由 6 片 74HC595 級聯組成,前一片 74HC595 的 Q』H 引腳連接下一片的SI引腳,各片的SCK、RCK、SRCLR、G引腳分別並聯。 (2)LED點陣塊 圖三 LED點陣塊 8*8的LED點陣為單色行共陰模塊,單點的工作電壓為正向(Vf)=1.8 v ,正向電流(IF)= 8-10 mA 。靜態點亮器件時(64點全亮)總電流為 640mA,總電壓為 1.8 v,總功率為 1.15 W。動態時取決於掃描頻率(1/8或1/16秒),單點瞬間電流可達 80-160 mA。 16*16點陣靜態時16*16*10mA,動態時單點電流80-160mA。 實際測試:整機電流700 mA (2) 移位寄存器74HC595 圖四 74HC595內部邏輯圖 74HC595是帶鎖存輸出的8位移位寄存器,其管腳見下圖,其中SI是串列數據的輸入端;VCC、GND分別為電源和地;RCK是存儲寄存器的輸入時鍾,SCK是移位寄存器的輸入時鍾,SCLR是移位寄存器的輸入清除,Q』H是串入數據的輸出,G是對輸入數據的輸出使能控制,QA~QH串入數據的並行輸出。從SI口輸入的數據在移位寄存器的SCK腳上升沿的作用下輸入到74HC595中,在RCK腳的上升沿作用下將輸入的數據鎖存在74HC595中,當G為低電平時時,數據並行輸出。SCLR為移位寄存器的輸入清除端。 (3) 74HC138以及驅動電路 圖五 74HC138以及驅動電路實物圖 4-16線解碼器(用兩塊74HC138組成),其管腳如圖所示,A,B,C,D為解碼的輸入端,值的區間從0000到1111,Y1~Y15是對應A,B,C,D四個輸入引腳的輸出腳,其中選中的線用輸出低電平,沒有選中的輸出高電平,G1、G2是使能端,只有輸入相應D低電平才能使解碼器正常工作。 驅動三極體為16個9012,用萬能板焊接。 二 軟體設計 單片機方的程序設計 單片機在LED點陣漢字顯示系統中主要負責數據的接收、存儲和掃描顯示 LED點陣屏三大主要功能。串列移動的子程序設計 這是一個通用子程序,在顯示子程序中都要被調用,功能是移位寄存器 74HC595接收單片機發出的點陣行數據,逐位移動到對應位置後再進行鎖存和輸出工作,同時對四六解碼器進行開關工作,控制屏幕的顯示。 部分程序:初始化程序: #include #define uchar unsigned char #define uint unsigned int #define SPEED 3 uchar col,disrow; uin
『伍』 各位大俠,我現在正在做大四畢業設計,課題是 基於單片機的led彩色顯示屏,要求必須做出硬體!!
hi ,你好,我是04級電子信息畢業,我的畢業論文寫的是《LED顯示屏設計》,可能我們選到一個題目了,包括硬體電路、信號處理、匯編語言的代碼,呵呵
以下為目錄,可供參考,禁止抄襲,如果覺得好,給分,我發論文給你。
目錄已經發到你郵箱了
摘要: 本設計以89c51單片機為核心,採用點陣圖形顯示器顯示漢字,通過時序控制電路,控制信號電路,顯示驅動電路等完成顯示。
Abstract: This design take the 89c51 monolithic integrated circuit asa core, uses the lattice graph monitor demonstration Chinesecharacter, through the sequential control electric circuit, controlsthe signal circuit, demonstrated the actuation electric circuit and soon completes the demonstration.
關鍵字:列顯示驅動、時序控制電路、串列非同步通信方式、顯示驅動電路、控制信號電路
目 錄
緒 論……………………………………………………1
第1章 設計思想………………………………………2
第2章 設計方案………………………………………4
第3章 基本結構………………………………………5
第4章 硬體部分………………………………………9
4.1 微機硬體電路…………………………………9
4.1.1 顯示控制電路……………………………9
4.1.2 顯示驅動電路……………………………10
4.2 控制信號………………………………………12
4.2.1 與列顯示數據有關的信號……………13
4.2.2 行號鎖存器打入信號…………………13
4.2.3 區分上寫部分的控制信號……………13
4.2.4 清屏信號………………………………14
第5章 軟體部分………………………………………15
5.1 理論分析………………………………………15
5.2 程序設計………………………………………17
5.3 流程圖…………………………………………22
5.3. 1主程序流程圖…………………………22
5.3. 2 中斷服務程序流程圖…………………23
第6章 結論……………………………………………24
參考文獻…………………………………………………25
致謝………………………………………………………26
5.2程序設計
ORG 0000H
SJMP MAIN :跳轉到主程序MAIN
ORG 0023H
SIENTRY: AJMP1 SIS :串列通信中斷入口,跳轉到
:串列通信中斷服務程序SIS
MAIN: MOV SP,60 :設棧
MOV R0,80H :指向RAM區
MOV R1,00 :R0,R1:RAM指針
MOV DPTR,1000H :EPROM的數據首地址
:DPTR:EPROM指針
REPROM: MOV A,00
MOVC A,@A+DPTR :從EPROM1000H讀數據
INV DPTR :從EPRON讀200H個位元組
:數據到RAM
PUSH DPL :DPTR進棧
PUSH DPH
MOV DPH,R0 :DPTR換成RAM指針
MOV DPL,R1
MOVX @DPTR,A :數據送RAM
INC DPRT
MOV R0,DPH :存DPTR
MOV R1,DPL
POP DPH :彈出DPTR(EPROM地址)
POP DPL
MOV R2,DPH :R2:判是否到1200H
CJNE R2,12H,REPROM :未傳送完200H個位元組轉回
SINIT: MOV TMOD,21H :設T1方式2,T0方式1
MOV TH1,FAH :設T1定時6.51μs
SETB 8EH :置TCONBIT6,打開T1
MOV TH0,00 :置T0定時
MOV TL0,00
MOV R6,7EH
MOV R7,00H
MOV SCON,50H :設SCON為50H,方式1,REN=1
MOV PCON,00 :設PCIN為0
MOV 50H,82H
MOV 51H,00
SETB AFH :開中斷
SETB ACH :允許串列通信中斷
SETB 9CH :SCONBIT4,REN=1
NEXT CLRC
MOV A,R7 :R7初值為0
ADD A,00
MOV R7,A
MOV A,R6 :R6初值為7E
ADC A,02H
MOV A,51H :51初值為0
XRL A,R7 :A=R7?
JNZ DISP1 :不等,轉到DISP1
MOV A,50H :等,50初值為82H
XRL A,R6 :A=R6?
JNZ 04H :不等,轉到DISP1
MOV R6,#80H :等,R6=80H
MOV R7,00
DSP1: MOV R0,00
TM256 MOV R3,00
TM512 MOV R2,00
MOV DPH,R6 :80H
MOV DPL,R7 :00H
CONT2: MOV R1,00
CLR B4H :P3BIT4=T0,上下控制=0
DISPH: MOVX A@DPTR :讀入RAM
INC DPTR
INC R1 :R1:位元組計數
MOV P1,A :向P1輸出一個RAM位元組數據
CLR B3H :P3BRT3=INT1
SETB B3H :INT1是移位寄存器的打入脈沖
CLR B5H :P3BRT5=T1
SETB B5H
CLR B5H :T1一共輸出8個脈沖
SETB B5H :即移位8次
CLR B5H :T1是移位寄存器的移位脈沖
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CJNE R1,10H,DISPH :R1<>10H,轉到DISPH
:10H=16D,16*8=128
PUSH DPH :若R1=10H,則DPTR進棧
PUSH SPL
SETB B4H :P3BIT4=T0,上下控制=1
CLRC
MOV A,DPL
ADD A,P0H :跳過F0H個位元組
MOV DPL,A :原DPTR已為10H,10H+F0H指向
MOV A,DPH :256位元組之後
ADC A,00 : 即指向下一半
MOV DPH,A
DISPL: MOVX A,@DPTE
INC DPTR
INC R1
MOV P1,A
CLR B3H
SETB B3H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CLR B5H
SETB B5H
CJNE R1,20H,D4H :R1<>20H,轉到DISPL
CLR B2H :P3BIT2=INT0
SETB B2H
MOV P1,R2 :R2輸出到P1
MOV DPTR,0000
MOVX @DPTR,A :只是讓地址動作
INC R2
POP DPL
POP DPH
CINE R2,10H,CONT1 :R2<>10H轉到CONT1
INC R3 :R2=10H
CINE R3,FFH,TIM256 :R3<>FFH,轉到TIM256
INC R0 :R3=FFH
CINE R0,02H,TIM512 :R0<>02H,TIM512
LJMP NEXT
TIM512: LJMP TM512 :$21
CONT1: LJMP CONT2
TIM256: AJMP0 TM256
ORG 0800H :串列通信服務程序
SIS: CLR AFH :IE BIT7關中斷
CLR 98H :SCONBIT0RI清接收中斷
MOV A,SBUF
XRL A,3FH :3FH傳輸起始標
JZ DTSTART :SBUF=3FH,開始
SJMP CLOSE :否則結束
DTSTART: MOV DPTR,#0001H :只是讓地址動作
MOVX @DPTR,A :關00解碼,開01解碼
:向74LS595送清除信號SRCLR*
CLR B2H :把清零的結果打入列輸出鎖存器
:完成關顯示操作
MOV DPTR,#8000H
MOV SBUF,A
WAITT: JNB 99H,WAITT :SCONB1TI=0,等待發射完成
CLR 99H :SCONB1TI=1
WAITR: JNB 98H,WAITR :SCONB0RI=0,等待接受完成
CLR 98H :SCONB0RI=1
MOV A,SBUF :傳輸位元組計數L
MOV 50H,A
CONTINUE: MOV SBUF,A
WARTT1: JBC 99H,WARTT1 :SCONB1TI=1,發射完成
SJMP WAITT1 :SCONB1TI=0,等待發射完成
WAITTR1: JBC 98H,RDATA :SCONB0RI=1,接收完成
SJMP WarrR1 :SCONB0RI=0,等待接收完成
RDATA: MOV A,SBUF :讀入顯示數據
MOV @DPTR,A
INC DPTR
MOV A,DPH
XRL A,50H
JNZ CONTINUE :(A)<>(50H),繼續接收
MOV A,DPL :(A)=(50H)
XRL A,51H
JNZ CONTINUE :(A)<>(51H),繼續接收
MOV ASBUF,A :(A)=(51H)WAITTE: JNB 99H,WAITTE :SCONB1TI=0,等待發射完成
CLR 99H :SCONB1TI=1
MOV DPTR,8000H
MOV R0,20H
MOV R1,10H
MOV R6,80H
MOV R7,00
CLOSE: SETB AFH :IE
RETI
ORG 0800H
DISPLAYDATA:DB 00,00,00,00,00,00,00,00,00,00
『陸』 基於51單片機的LED點陣顯示屏系統的設計與實現的論文
LED顯示器是用發光二極體構成的顯示器。構成方式有兩大類:一是筆段字元式,一般又有三種:7段(/8段)數碼管、15段(/17段)數碼管和6段符號顯示器;二是點陣字元式,一般有5×7、5×8、8×8和16×16等若干種點陣結構。為了適應不同電路的需要,根據構成LED顯示器的發光二極體公共極的極性,有共陰極和共陽極兩種形式。對共陰極數碼管,公共陰極接地,當各段陽極上的電平為高電平時,該段接通亮,電平為0時,該段關斷不亮。對共陽極數碼管則剛好相反,高電平時不亮,低電平時亮。這種器件根據顯示數位分類,可以分為一位、雙位和多位LED顯示器,一位LED顯示器就稱作LED數碼管,兩位以上的一般就稱作LED顯示器。
要實現LED的漢字顯示在進行、列的掃描的同時還要對其進行供電,因為每行16個二極體點亮電流很大,普通晶元的輸出電流遠不能滿足。下面為你提供實例參考
以16×16顯示器為例,你可以用並行擴展晶元8255實現點陣的行掃描,8255可以將單片機一個8位並行I/O口擴展成16位(8255的PA口、PB口同時使用);列掃描的16位可以用兩個TTL門74LS164(8位移位寄存器),74LS164再接ULN2803以對電流放大後再接16×16點陣。74LS164的移位觸發端A、B可以接上一片的相鄰輸出端,Q1或Q7這樣實現能實現多個晶元連續移位,以實現顯示屏漢字從右到左或從左到右的移動顯示功能。
由於網路知道不能插入圖片,所以不提供圖片了,將具體引腳接法告訴你:8255的D0--D7數據輸入端接單片機P2.0--P2.7(任一並行I/O口),A0接P2.0,A1接P2.1,/WR接單片機的/WR,/RD接高電平,如果單片機資源足夠,則片選端/CS接低電平;74LS164晶元的觸發端A、B接到一起,與CK腳、CLK腳、隨意接到單片機的I/O上。
『柒』 基於單片機led點陣屏的設計需要用到哪些知識
ABSTRACT II
第1章 前言 1
1.1 LED電子顯示屏概述 1
1.3 LED顯示屏的應用示例 2
第2章 顯示原理及控制方式分析 3
2.1 LED點陣模塊結構 3
2.2 LED動態顯示原理 4
2.3 LED常見的控制方式 4
第3章 方案設計與分析 7
3.1 顯示單元 7
3.2 滾屏的實現 7
3.3 關於可擴展性 7
3.4 微控制器的考慮 7
3.5 關於點陣數據的存儲方式 8
3.6 關於顯示內容的更新 9
3.7 總體電路結構及工作原理 9
3.7.1 硬體電路框圖 9
3.7.2 工作原理 11
第4章 硬體電路設計 13
4.1 顯示單元電路設計 13
4.1.1 LED點陣模塊的選擇 13
4.1.2 列驅動電路設計 13
4.1.3 行驅動電路設計 14
4.2 單片機控制系統電路設計 15
4.2.1 單片機的選型 15
4.2.2 單片機系統電路設計 16
4.3 字型檔與單片機的介面設計 17
4.3.1 字型檔晶元選型 17
4.3.2 字型檔晶元的使用方法 17
4.3.3 字型檔晶元的電氣特性 18
4.3.4 字型檔晶元與單片機的介面設計 19
4.3.5 字型檔晶元3.3V電源設計 20
4.3.6 5V-3.3V的電平轉換電路設計 20
『捌』 求基於單片機的LED點陣顯示的畢業設計 謝謝
1引言 LED顯示屏是一種迅速發展起來的新型信息顯示媒體。隨著我國經濟的不斷發展,已被廣泛應用於車站、賓館、銀行、醫院等公共場合。顯示屏電源是其重要組成部分,主要用來給顯示屏發光二極體提供必要的工作電流,保證屏體正常顯示。為簡單起見,通常採用由一小功率電源帶3到4個顯示驅動板的供電方案。這樣,一個較大面積的顯示屏需要配接許多電源模塊,例如一個2m×1.5m的屏體,就需要提供24個5V/20A的模塊電源。該設計存在以下的缺點。 1)接線復雜每一個電源均需單獨地配置交流輸入線、直流輸出線。 2)電源冗餘度差在大多數情況下,屏體顯示內容為文字、動畫、圖片,每個顯示驅動板消耗的電流不一樣,可能某些電源模塊過載,而另一些模塊空載。此外,若某一電源失效,會造成屏體的一部分黑屏。 3)電源過載能力差,利用率低屏體在工作時消耗的電流隨畫面的內容、顏色、亮度而變化,大部分時間電流較小,而大面積高亮度的畫面雖消耗電流大,但持續時間短。考慮到LED是恆流驅動的,只要驅動板可正常工作,供電電壓可以降低一些。電源最好有下拖形狀的限流特性,而不是通常的較陡峭形狀的限流特性,以保證有較好的過載能力、較高的利用率。 考慮到以上各點,提出新的供電方案如下: 1)集中供電,採用n+1冗餘方案。 2)電源模塊設計適當的輸出電流,模塊可均流。保證屏體裝配工藝易實現n+1冗餘。 3)電源模塊有下拖形狀的限流特性以保證有較好的過載能力、較高的利用率。 4)電源模塊有扁平的外形,自然散熱,易於在屏體上安裝,並利用屏體散熱。 5)電源模塊帶APFC,減小對電網的干擾,適應電網的波動。2電路設計 採用集中供電方案可避免分散供電的缺點,但要求電源的可靠性更高,否則電源一旦失效會造成整屏的黑屏,而不是部分黑屏。提高電源可靠性的最積極的辦法為提高變換效率,減少發熱量,同時選用可靠性高的線路與器件。2.1AC/DC電路設計 傳統的AC/DC全波整流電路採用的是整流+電容濾波電路。這種電路是一種非線性器件和儲能元件的組合,輸入交流電壓的波形是正弦的,但輸入電流的波形發生了嚴重的畸變,呈脈沖狀。由此產生的諧波電流對電網有危害作用,使電源輸入功率因素下降。在本設計中整流電路部分採用有源功率因數校正電路(APFC),避免了上述缺點。其電路如圖1所示。
2系統硬體設計 本 系統主要的硬體設計是下位機單片機的顯示 控制部分。而上位機(PC機)與單片機顯示控制部分的介面為標准RS232通訊方式。若需實現遠程監控,只需增加RS232/485轉換模塊即可,該部分已有成熟的電路設計,故不再詳細敘述。 具體的LED顯示屏控制電路如圖1所示。整個電路由單片機89C52、點陣數據存儲器6264、列驅動電路ULN2803、行驅動電路TIP122、移位寄存器4094及附屬電路組成。該電路所設計的電子屏可顯示10個漢字,需要40個8×8 LED點陣模塊,可組成16×160的矩形點陣。由於AT89C52僅有8k存儲空間,而顯示的內容由PC機控制,因此不可能預先把需要顯示的內容做成點陣存在單片機中,而只能由PC機即時地把所需顯示的點陣數據傳給單片機並存入緩沖區6264。 該電路的顯示採用逐行掃描方式。工作時,由單片機從緩沖區取出第一行需要顯示的20位元組點陣數據,再由列點陣數據輸入端P1.2口按位依次串列輸入至列移位寄存器,其數據輸入的順序與顯示內容的順序相反。然後置行點陣選通端P1.3為1,即置行移位寄存器的D為高電平,STR使能(所有4094的OE 引腳接+5V電平),從而使列移位寄存器中的數據同時並行輸出以選通該行。經延時一段時間後再進行下一行點陣數據的顯示。需要注意的是,每次只能選通一行數據,即要通過不斷的逐行掃描來實現漢字或字元的顯示。3顯示與控制的設計 在筆者設計的PC機控制多單片機顯示系統中,用PC機實現的主要功能包括單片機顯示子系統的選擇,顯示方式選擇(包括靜態、閃動、滾動、打字等),滾動方向選擇(包括上下滾動和左右滾動),動態顯示速度調節(即文字閃動頻率、滾動速度、打字顯示速度等),顯示內容輸入及顯示預覽等。單片機一般通過 RS232/485串列接收PC機發出的顯示指採用定時器中斷方式進行行掃描,每次中斷顯示一行,定時中斷時間為1.25ms,這樣整屏的刷新率為 50Hz,因而無閃爍感。
實現動態顯示速度調節的方法通常是改變定時器的中斷時間,但是當顯示速度很慢的時候,該方法容易使整屏的刷新率降低,從而使顯示內容出現閃爍。因此,本設計採用一種「軟定時」方法,即在程序中命名一變數作為「軟定時器」,以用來設定兩次動態顯示的時間間隔。在對定時中斷調用計數時,如果調用次數達到設定值,則改變顯示內容。為保證能夠正常顯示,「軟定時器」的設定值必須大於整屏顯示周期。由於顯示屏每行顯示1.25ms,整屏顯示周期為20ms,考慮到餘量的情況,可將軟定時器的設定值定在大於30ms。如此循環計數,即可實現動態顯示。「軟定時器」的設定值可以通過上位機PC機來改變,這樣既可實現 LED動態顯示的速度調節,又可保持顯示內容的流暢和無閃爍感。
3.1單片機動態顯示控制 以上提到的靜態、閃動、滾動和打字等4種顯示方式,實際上是單片機定時中斷程序進行行掃描處理的不同方法。下面將分別說明如何實現這4種顯示方式。 靜態顯示只需在定時中斷處理程序中從顯示緩沖區調入相應的一行顯示數據,然後選中該行即可實現該行的顯示,如此循環,便可顯示整個內容。閃動顯示與此類似,不同的是要間隔一個「軟定時器」的定時時間,在行掃描時,行移位寄存器的D端打入的全為0,可使得整屏不顯示,以確保黑屏時間與顯示時間相等,從而實現漢字或圖符的閃動顯示。 滾動顯示要求需要顯示的內容每隔一定時間向指定方向(這里以從右向左為例)移動一列,這樣顯示屏可以顯示更多的內容。為此,需要在下次移動顯示之前對顯示緩沖區的內容進行更改,從而完成相應點陣數據的移位操作。具體操作方法是: 設置一個顯示緩沖區(如圖2所示),該區應包括兩部分:一部分用來保存當前LED顯示屏上顯示的10個漢字點陣數據;另一部分為點陣數據預裝載區,用來保存即將進入LED顯示屏的1個漢字的點陣數據。滾動指針始終指向顯示屏的最右邊原點。當滾動指針移動到需要顯示的點陣數據存儲區的第1個漢字的首地址時,顯示緩沖區LED顯示區為空白,而預裝載區已保存了第1個待顯示漢字的點陣數據。當需要滾動顯示時,則可在接下來的掃描周期的每個行掃描中斷處理程序中,將對顯示緩沖區的相應行點陣數據左移一位,同時更改顯示緩沖區的內容。(需要注意的是,要確保該操作能在1.25ms的中斷時間內完成。這里89C52採用22MHz晶振,實驗證明可以實現該操作)。這樣,在一個掃描周期後,整個漢字將左移一列,而顯示緩沖區的內容也同時更改。由於預裝載區保存了1個漢字點陣數據,即16×16點陣,所以當前顯示緩沖區的內容只能移動16列。當下一個滾動到來時,滾動指針將移動到點陣數據存儲區的下一個漢字的首地址,並在預裝載區存入該漢字的點陣數據。然後重復執行上述操作便可實現滾動顯示。特殊字元或圖形的顯示與此類似,這里不再贅述。
打字顯示要求漢字在顯示屏上按從左到右的順序一個個的出現,如同打字的效果。設計時可採用如下方法:首先將LED顯示屏對應的顯示緩沖區全部清零,即 LED顯示空白,然後每間隔一個「軟定時器」設定的動態顯示時間,顯示緩沖區依次加入一個漢字點陣數據並進行掃描顯示,這樣就可達到打字顯示的效果。3.2 PC機控製程序 a.通訊功能的實現 在Windows環境下,實現PC與單片機的通訊可利用Windows的通訊API函數或者利用VC++(或其它語言)的標准通訊函數_inp、_outp來實現。但上述兩種方法比較繁瑣,而採用ActiveX控制項MSComm32來實現則非常方便。該控制項用事件的方式簡化了對串口操作的編程,並可設置串列通信的數據發送和接收,還可對串口狀態及串口通信的信息格式和協議進行設置。其初始化程序如下: 一般情況下,PC要與多個單片機89C51系統進行主從式通訊,為了區分各單片機系統,可以使89C51採用串口工作方式3,即11位非同步接收/發送方式,該方式的有效數據為9位,其中第9位為地址/數據信息的標志位,其作用是使從機據此判斷發送的數據是否為地址,從而實現多機操作。但現在由於採用的是MSCOMM控制項來實現PC機和單片機之間的通訊,這是一種標準的10位串口通信方式,即8位標准數據位和該數據的起始位、停止位各1位。因此二者格式不相符,故很難利用上述方案。因此可考慮將單片機串口設為工作方式1,即改為10位非同步接收/發送方式來解決,其通訊流程如下: 首先發通信開始標志,接著發送需要操作的單片機系統地址,然後發送顯示工作命令字,該命令包括2個位元組,前一位元組用於設定顯示方式和滾動方向,後一位元組則用於設定顯示速度。再往下是傳送顯示內容的點陣數據,最後對數據進行校驗。該通訊規約非常簡便,能夠較好的解決上述問題,從而實現PC機與多單片機之間的主從式通訊及對顯示的控制。 需要注意的是,當顯示內容需要改變時,為了避免在單片機串列中斷接收數據時,顯示屏出現亂碼,應使顯示屏暫不顯示(處於「黑屏」狀態),直到數據接收完全,串列中斷處理結束時再顯示。 漢字字模的提取非常關鍵,本文的字模數據取自UCDOS下的字型檔文件HZK16。關於這方面的介紹較多,文獻〔2〕給出了較為具體的在VC下提取漢字字模的方案,這里不再贅述。對於特殊字元或圖形點陣數據的提取,簡便的方法可以先做一個BMP文件,然後用一些取模軟體(如字模提取v2.1)來獲得。為了顯示方便,點陣數據的格式應為n×(16×8),不足要求的則應以0數據補充。 b.動態效果模擬顯示 為了方便調節LED的顯示效果,筆者在PC機的控制界面上設計了LED顯示屏的模擬顯示,它同實際的顯示效果完全一樣。用戶可以設定顯示的模式,並調節顯示速度,然後在界面上對顯示效果進行預覽,同時還可以隨時修改和設定參數,因而十分方便簡捷。 為此,可先在界面上描繪出虛擬的LED顯示屏,由於實際的顯示屏為160×16點陣,故須在界面 上設定相同的區域。 實現動態顯示效果的方法和以上幾種基本類似,這里以滾動顯示為例作一說明。對於需要滾動的文字,可以將其設置為點陣圖格式,暫存於內存中,然後利用VC 提供的點陣圖拷貝函數BitBlt將點陣圖復制到顯示位置。對於特殊字元或圖形,則可以直接利用BitBlt函數調用到顯示位置。然後在類CLEDDlg的 OnTimer函數中調用該函數,以實現文字的滾動顯示。另外,也可以通過設定不同的響應時間間隔來改變文字的滾動速度。
漢字顯示屏廣泛應用與汽車報站器,廣告屏等。本文介紹一種實用的漢字顯示屏的製作,考慮到電路元件的易購性,沒有使用8*8的點陣發光管模塊, 而是直接使用了256個高量度發光管,組成了16行16列的發光點陣。同時為了降低製作難度, 僅作了一個字的輪流顯示,實際使用時可根據這個原理自行擴充顯示的字數。
1漢字顯示的原理:
我們以UCDOS中文宋體字型檔為例,每一個字由16行16列的點陣組成顯示。即國標漢字型檔中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字, 也可以顯示在256像素 范圍內的任何圖形。
用8位的AT89C51單片機控制, 由於單片機的匯流排為8位,一個字需要拆分為2個部分。
軟體打開後輸入漢字,點「檢取」,十六進制數據的漢字代碼即可自動生成,把我們所需要的豎排數據復制到我們的程序中即可。
我們把行列匯流排接在單片機的i0口,然後把上面分析到的掃描代碼送入匯流排, 就可以得到顯示的漢字了。 在這個例子里,由於一共用到16行,16列, 如果將其全部接入89c51
單片機, 一共使用32條io口,這樣造成了io資源的耗盡,系統也再無擴充的餘地。 實際應用中我們使用4-16線解碼器74ls154來完成列方向的顯示。 而行方向16條線則接在
p0口和p2口。
程序清單:
ORG 00H
LOOP: MOV A,#0FFH ;開機初始化,清除畫面
MOV P0,A ;清除P0口
ANL P2,#00 ;清除P2口
MOV R2,#200
D100MS: MOV R3,#250 ;延時100毫秒
DJNZ R3,$
DJNZ R2,D100MS
MOV 20H,#00H ;取碼指針的初值
l100: MOV R1,#100 ;每個字的停留時間
L16: MOV R6,#16 ;每個字16個碼
MOV R4,#00H ;掃描指針清零
MOV R0,20H ;取碼指針存入R0
L3: MOV A,R4 ;掃描指針存入A
MOV P1,A ;掃描輸出
INC R4 ;掃描指針加1,掃描下一個
MOV A,R0 ; 取碼指針存入A
MOV DPTR,#TABLE ;取數據表的上半部分的代碼
MOVC A,@A+DPTR
MOV P0,A ; 輸出到P0
INC R0 ;取碼指針加1,取下一個碼。
MOV A,R0
MOV DPTR,#TABLE ;取數據表下半部份的代碼
MOVC A,@A+DPTR
MOV P2,A ;輸出到P2口
INC R0
MOV R3,#02 ;掃描1毫秒
DELAY2: MOV R5,#248 ;
DJNZ R5,$
DJNZ R3,DELAY2
MOV A,#00H ;清除屏幕
MOV P0,A
ANL P2,#00H
DJNZ R6,L3 ;一個字16個碼是否完成?
DJNZ R1,L16 ;每個字的停留時間是否到了?
MOV 20H,R0 ;取碼指針存入20H
CJNE R0,#0FFH,L100 ;8個字256個碼是否完成?
JMP LOOP ;反復循環
TABLE :
;漢字「倚」的代碼
db 01H,00H,02H,00H,04H,00H,1FH,0FFH
db 0E2H,00H,22H,00H,22H,0FCH,26H,88H
db 2AH,88H,0F2H,88H,2AH,0FAH,26H,01H
db 63H,0FEH,26H,00H,02H,00H,00H,00H
;以下分別輸入天,一,出, 寶,刀,屠,龍,的代碼,略。
end
電路中行方向由p0口和p2口完成掃描,由於p0口沒有上拉電阻,因此接一個4.7k*8的排阻上拉。 如沒有排阻,也可用8個普通的4.7k 1/8w電阻。為提供負載能力,接16個2n5551的NPN三極體驅動。
列方向則由4—16解碼器74LS154完成掃描,它由89C51的P1.0---P1.3控制。同樣,驅動部分則是16個2N5401的三極體完成的。
電路的供電為一片LM7805三端穩壓器,耗電電流為100Ma左右。
採用一塊12*20cm的萬能電路板,應當選用質量好些的發光管,(否則有壞點現象, 更換起來較麻煩)首先將256個發光管插入電路板,注意插入方向,同時使高度一致,行方向直接焊接起來, 列方向則搭橋架空焊接,完成後用萬用表測試一下如有不亮的更換掉。
然後找一個電腦硬碟的數據線, 截取所需的長度,分別將行,列線引出至電路的相關管腳即可。原理圖為了簡潔,故只畫出了示意圖,行列方向只畫出了2個三極體,屏幕只畫出4個發光管, 實際上發光管為256隻,三極體行列方向各16隻,一共32隻。焊接過程認真仔細一天時間即可完成全部製作。將程序編譯後燒寫入89c51, 插入40pin Ic座,即可看到屏幕輪流顯示:「倚天一出寶刀屠龍」。
當然,你可將程序的漢字代碼部分更換為您所需要的代碼即可顯示你所需要的漢字
元件清單:
名稱 數量 規格
4.7k 1/8w 32 電阻
4.7k*8排阻 1
2n5551 16 小功率NPN三極體
2n5401 16 小功率PNP三極體
led 256 3mm白發紅高亮度
22P 2 瓷片電容
10uf/50v 1 電解電容
100uf/25v 2 電解電容
AT89C51 1 或AT89S51
40pin Ic座 1 插89c51用
12M 1 晶體
74LS154 1 或74HC154
LM7805 1 穩壓IC
電源插座 1
穩壓電源 1
『玖』 急求基於單片機的LED顯示系統設計的論文開題報告和論文,謝謝 [email protected]
畢業設計 基於單片機的LED顯示,共26頁,10676字。
目錄
1課題開發的意義…………………………………………………………1
2 系統的組成………………………………………………………………1
3 單片機知識………………………………………………………………2
3.1單片機的特點…………………………………………………2
3.2單片機的發展史………………………………………………3
3.3單片機的分類…………………………………………………3
4 LED相關知識……………………………………………………………4
4.1LED按色彩分類 ………………………………………………4
4.2LED按功能分類 ………………………………………………4
5 漢字顯示原理……………………………………………………………5
6 顯示驅動電路……………………………………………………………6
7 主要元件的選擇…………………………………………………………8
7.1單片機的選擇 ………………………………………………8
7.2 LED的選擇 …………………………………………………9
7.3顯示驅動電路選擇 …………………………………………10
8電路設計…………………………………………………………………11
9程序設計…………………………………………………………………12
10系統調試 ………………………………………………………………19
結束語………………………………………… …………………………20
參考文獻 …………………………………………………………………21
致謝…………………………………………………………………………22
摘要
LED顯示屏是利用發光二極體點陣模塊或像素單元組成的平面式顯示屏幕。它具有發光率高、使用壽命長、組態靈活、色彩豐富以及對室內外環境適應能力強等優點。廣泛運用於機場、車站,碼頭、商店、學校、銀行等公共場合的信息發布和廣告宣傳中。LED顯示屏發展較快,其無論在成本和產生的社會效益等方面都有其獨特的優勢。
本文在對單片機、LED進行系統說明的基礎上,介紹了利用Mcs一51系列AT89C2051單片機來實現點陣式漢字LED顯示屏顯示的基本原理、製作控制方法及其程序實現。
關鍵詞:LED顯示屏;單片機;信息發布