IT技術互動交流平臺

單片機與控制實驗(2)LED點陣顯示屏

作者:大大維  來源:IT165收集  發布日期:2016-10-18 20:57:13

一、實驗目的和要求

  了解LED點陣顯示的基本原理和實現方法。掌握點陣漢字庫的編碼和從標準字庫中提取漢字編碼的方法。

二、實驗設備

  單片機測控實驗系統
  LED點陣顯示器實驗模塊
  Keil開發環境
  STC-ISP程序下載工具

三、實驗內容

  了解16*16點陣電路的原理。編寫匯編語言程序,編寫一行漢字字符(至少三個字)的顯示程序,并且能夠從左到右(或從右到左)循環顯示。

四、實驗步驟

  1. 掌握點陣式LED顯示屏的控制方法;
  2. 使用MCS-51匯編語言,使用LED點陣顯示器顯示出正確的漢字字符及動態效果;
  3. 將編譯后的程序下載到51單片機,觀察LED顯示屏的顯示結果。

五、實驗原理

  高亮度LED發光管構成點陣,通過編程控制可以顯示中英文字符、圖形及視頻動態圖形。所顯示字符的點陣數據可以自行編寫(即直接點陣畫圖),也可從標準字庫(如ASC16、HZ16)中提取。后者需要正確掌握字庫的編碼方法和字符定位的計算。

 

實驗用的LED點陣顯示屏為16*16點陣。
行和列分別使用兩個移位寄存器作為輸出。
當移位寄存器輸出的第i行為0,第j列為1時點亮點(i,j)。
為了能夠顯示出一個點陣字型,需要進行循環掃描,也就是每一次只點亮一行,然后在列上輸出該列對應的16個點陣值。
輸出一行后暫停一段時間,輸出下一行。為了達到較好的顯示效果,整屏總的掃描時間不高于40ms。
上述過程中行列可以互換。
實驗中使用的移位寄存器是74HC595,它是一個同時具有串行移位和輸出鎖存驅動功能的器件。
74HC595是具有8位移位寄存器和一個存儲器,三態輸出功能。 移位寄存器和存儲器是分別的時鐘。
數據在SRCK(移位寄存器時鐘輸入)的上升沿輸入到移位寄存器中,在RCK(存儲器時鐘輸入)的上升沿輸入到存儲寄存器中去。
移位寄存器有一個串行移位輸入(行Dx(P00)、列Dy(P03)),和一個串行輸出(QH),和一個異步的低電平復位,存儲寄存器有一個并行8位的,具備三態的總線輸出,當使能 (P02和P07為低電平)時,存儲寄存器的數據輸出到總線。
在控制74HC595時,首先將數據放到串行輸入的SI端,然后在串行時鐘SRCK上產生一個脈沖,即可輸出一個bit,重復以上步驟16次,輸出所有列值。
然后給存儲器時鐘RCK一個脈沖,將串行數據鎖存起來。將使能端 輸出低電平,驅動到LED點陣上。
行的輸出每次只移位一次,并重新鎖存即可。
其他信息見給定的參考資料。

六、實驗代碼  

ORG 0000H
AJMP START
ORG 0030H
START:
D_X EQU P0.0 
CK_X EQU P0.1
CK_XL EQU P0.2
D_Y EQU P0.3
EN_Y EQU P0.4
CK_Y EQU P0.5 
CK_YL EQU P0.6 
EN_X EQU P0.7
COUNT EQU R0
COUNT_X EQU R3
COUNT_Y EQU R4

MOV R0,#0 ;完成第R0/2屏掃描
MOV R1,#8
MOV R2,#16
MOV COUNT_X,#0
MOV COUNT_Y,#0
MOV R5,#32 ;一屏16列,總共掃描48列,需要掃48-16=32屏
CLR EN_X
CLR EN_Y

;初始化
MAIN:
CLR A
MOV COUNT_Y,A ;COUNT_Y=0
CLR A
MOV A,COUNT
MOV COUNT_X,A ;COUNT_X=COUNT

LOOP:
ACALL DISPLAY_Y
ACALL DISPLAY_X
ACALL DELAY 
DJNZ R2,LOOP

;長延遲
MOV R1,#0FFH
MOV R7,#2FH
L_DELAY:
ACALL DELAY
DJNZ R1,L_DELAY
DJNZ R7,L_DELAY

MOV R1,#8
INC COUNT
INC COUNT ;掃一屏,COUNT加2

DJNZ R5,MAIN
MOV R5,#0FFH
AJMP START

DISPLAY_Y:
MOV DPTR,#TAB_Y
CLR A
MOV A,COUNT_Y
MOVC A,@A+DPTR
MOV R1,#8

LP_Y1:
RLC A 
CLR CK_Y 
MOV D_Y,C 
SETB CK_Y
DJNZ R1,LP_Y1

MOV R1,#8
INC COUNT_Y

CLR A
MOV A,COUNT_Y
MOVC A,@A+DPTR

LP_Y2:
RLC A 
CLR CK_Y 
MOV D_Y,C 
SETB CK_Y
DJNZ R1,LP_Y2

MOV R1,#8
INC COUNT_Y

CLR CK_YL 
NOP
SETB CK_YL

CLR EN_Y
CLR CK_YL
RET


DISPLAY_X:
MOV DPTR,#TAB_X
CLR A
MOV A,COUNT_X
MOVC A,@A+DPTR
MOV R1,#8

LP_X1:
RLC A 
CLR CK_X 
MOV D_X,C 
SETB CK_X
DJNZ R1,LP_X1

MOV R1,#8
INC COUNT_X
CLR A
MOV A,COUNT_X
MOVC A,@A+DPTR

LP_X2:
RLC A 
CLR CK_X 
MOV D_X,C 
SETB CK_X
DJNZ R1,LP_X2

MOV R1,#8
INC COUNT_X

CLR CK_XL 
NOP
SETB CK_XL

CLR EN_X
CLR CK_XL
RET

;延遲函數
DELAY:
MOV R6,#0FH
DJNZ R6,$
RET

TAB_X:
;===========================================================================
;我(0) 愛(1) 你(2)

DB 04H,00H,24H,10H,24H,12H,24H,21H,7FH,0FEH,0C4H,40H,44H,82H,04H,02H;
DB 04H,04H,0FFH,0C8H,04H,30H,44H,28H,34H,44H,05H,82H,04H,1FH,00H,00H ;'我',0

DB 01H,00H,26H,82H,34H,84H,2CH,89H,24H,91H,24H,0E1H,37H,0B2H,4CH,0AAH;
DB 44H,0A4H,44H,0A4H,4CH,0AAH,74H,0B2H,0C4H,81H,45H,01H,06H,01H,00H,00H ;'愛',1

DB 00H,80H,01H,00H,06H,00H,1FH,0FFH,0E0H,00H,02H,08H,04H,30H,18H,0C0H;
DB F0H,02H,10H,01H,13H,0FEH,10H,00H,10H,80H,14H,60H,18H,18H,00H,00H ;'你',2
;===========================================================================
TAB_Y:
;===========================================================================
DB ~80H,0FFH,~40H,0FFH,~20H,0FFH,~10H,0FFH,~08H,0FFH,~04H,0FFH,~02H,0FFH,~01H,0FFH
DB 0FFH,~80H,0FFH,~40H,0FFH,~20H,0FFH,~10H,0FFH,~08H,0FFH,~04H,0FFH,~02H,0FFH,~01H
;===========================================================================
END

七、附錄

實驗電路原理圖:http://files.cnblogs.com/files/liujw2114/%E7%94%B5%E8%B7%AF%E5%8E%9F%E7%90%86%E5%9B%BE.pdf

Tag標簽: 點陣   單片機   顯示屏  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果