久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機驅動16×16LED點陣顯示動畫漢字匯編程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2008年09月08日   【字體:

電路圖就不貼出來了16×16LED點陣的典型接法。這里提供一個完整的AT89S51單片機驅動驅動led點陣顯示具有動畫效果的漢字的匯編程序列子.

         ORG  0000H
ST:      MOV  A,#0FFH ;初始化
         MOV  P1,A
         MOV  P2,A
         MOV  P3,A
         MOV  P0,A
         CLR  A
         MOV  R0,#50H ;顯示緩存清0
         MOV  R1,#20H ;控制清0的次數
ST0:     MOV  @R0,A
         INC  R0
         DJNZ R1,ST0

;正文顯示
CHINESE: MOV  DPTR,#TAB1 ;查表指針指向TAB1
         LCALL HZ
;結束動畫
SCREE:
         MOV  DPTR,#TAB2;查表指針指向TAB2
         ACALL DD
         MOV  DPTR,#TAB3;查表指針指向TAB3
         ACALL DD
         MOV  DPTR,#TAB4;查表指針指向TAB4
         ACALL DD
         LJMP CHINESE
;顯示8幅畫面子程序,SCREE專用,用字模軟件字要倒置(表必須深256字節)
DD:      MOV  B,#00H
         MOV  R0,#08H  ;顯示8幅畫面
         AJMP CC
CC0:     MOV  A,B
         ADD  A,#20H   ;指向下一幅畫面
         MOV  B,A
CC:      MOV  R7,#08H  ;畫面停留時間
         MOV  R3,B
         MOV  37H,R0
         LCALL ENTER
DIS00:   LCALL DISPLAY
         DJNZ R7,DIS00
         MOV  R0,37H
         DJNZ R0,CC0
         RET
;漢字上移子程序,可顯示8個漢字,(表必須深256字節)
HZ:      MOV  R3,#00H ;查表偏移量
         MOV  R5,#81H ;查表128次
MOVBACK: MOV  R4,#10H ;使顯示完一個漢字
MOVBACK0: MOV  R7,#02H ;一楨畫面顯示時間
         MOV  R0,#6DH ;低8位R0指向顯示緩存倒數第3個字節,以備與最后1個字節交換
         MOV  R1,#6CH ;高8位R1指向顯示緩存倒數第4個字節,以備與倒數第2個字節交換
         MOV  R2,#10H ;內存后移的次數
         DJNZ R5,MOVBACK1
         RET           ;顯示完該表,返回
MOVBACK1: MOV  A,@R0  ;低8位被后移的內存單元數據暫存入A
         INC  R0     ;后移兩字節
         INC  R0
         MOV  @R0,A  ;放入要移的低8位數據
         MOV  A,R0   ;R0指向下一個要后移的內存單元
         SUBB A,#04H
         MOV  R0,A
         MOV  A,@R1  ;高8位被后移的內存單元數據暫存入A
         INC  R1     ;后移兩字節
         INC  R1
         MOV  @R1,A  ;放入要移高8位的數據
         MOV  A,R1   ;R1指向下一個要后移的內存單元
         SUBB A,#04H
         MOV  R1,A   ;R1指向下一個要后移的內存單元
         DJNZ R2,MOVBACK1 ;顯示緩存數據依次后移
         MOV  A,R3   ;從表TAB1讀入要移進50H,51H的數據
         MOVC A,@A+DPTR;先給50H讀數據
         MOV  50H,A
         MOV  A,R3    ;指向下一字節
         INC  A
         MOV  R3,A
         MOVC A,@A+DPTR;再給51H讀數據
         MOV  51H,A
         MOV  A,R3    ;指向下一字節
         INC  A
         MOV  R3,A
         MOV  30H,R3  ;保護數據
         MOV  31H,R4
         MOV  32H,R5
DISMOV:  LCALL DISPLAY  ;顯示當前數據
         DJNZ R7,DISMOV
         MOV  R3,30H
         MOV  R4,31H
         MOV  R5,32H
         DJNZ R4,MOVBACK0
         MOV  30H,R3   ;保護數據
         MOV  32H,R5
         MOV  R7,#24H ;顯示當前數據延時
DISMOV0: LCALL DISPLAY
         DJNZ R7,DISMOV0
         MOV  R3,30H
         MOV  R5,32H
         LJMP MOVBACK
;放進一幅顯示數據到顯示緩存子程序,要先設好指針DPTR和R3,影響R1,R2,R3
ENTER:   MOV  R1,#50H ;從50H單元起把表存入
         MOV  R2,#20H ;查表次數
         MOV  A,R3
CLLOOP_: MOVC A,@A+DPTR ;查表
         MOV  @R1,A    ;將表放進5X,6X單元
         INC  R1       ;R1指向下一個地址空間
         MOV  A,R3     ;查表指針后移
         INC  A
         MOV  R3,A     ;將指針修改結果存入R3
         DJNZ R2,CLLOOP_;沒查完轉CLLOOP_
         RET
;15MS,顯示子程序,一楨32個字節,影響A,R0,R1,R3,R4,R5,R6;
;http://www.zg4o1577.cn單片機網提供漢字取模工具,可顯示任意漢字
DISPLAY: MOV  A,#0FFH
         MOV  P0,A
         MOV  P1,A
         MOV  P2,A
         MOV  P3,A
         SETB C
         MOV  R6,#7FH  ;賦掃描字初值,左移后初值為0FEH
         MOV  R5,#00H  ;列掃描低8位控制
         MOV  R0,#50H  ;行的高8(p1)位要顯示的數據起始地址
         MOV  R1,#10H  ;掃描次數
DISLOOP: MOV  A,@R0    ;從內存讀數據
         MOV  P2,#0FFH ;裝入數據時不顯示任何東西
         MOV  P3,#0FFH
         CPL  A        ;數據取反以適合顯示
         MOV  P1,A     ;送入行的高8(p1)位要顯示的數據
         INC  R0       ;修改R0指向低8位要顯示的數據
         MOV  A,@R0    ;讀低8位要顯示的數據
         CPL  A        ;數據取反以適合顯示
         MOV  P0,A     ;送入行的低8(p0)位要顯示的數據
         INC  R0       ;R0指向下一個高8(p0)位要顯示的數據
         LCALL NEXT     ;調用列掃描程序
         LCALL DELAY1MS ;顯示延時
         DJNZ R1,DISLOOP;一楨顯示完返回
         MOV  P3,#0FFH ;全滅
         RET
;列掃描子程序DISLOOP專用
NEXT:    JNC  NEXT1    ;C=0轉掃描高8(p3)位行
         MOV  A,R6     ;修改掃描字
         RL   A
         MOV  R6,A
         INC  R5
         CJNE R5,#09H,NEXT0 ;R6=#0FEH時C=0
         AJMP NEXT1
BACK:    RET
NEXT0:   MOV  P2,R6    ;掃描低8(p2)位行
         AJMP BACK
NEXT1:   MOV  P2,#0FFH
         MOV  P3,R6    ;掃描高8(p3)位行
         MOV  A,R6     ;修改掃描字
         RL   A
         MOV  R6,A
         AJMP BACK
;延時1MS子程序
DELAY1MS: MOV  R3,#10
D0:      MOV  R4,#50
D1:      DJNZ R4,D1
         DJNZ R3,D0
         RET

TAB1:
DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070H,001H,000H,01DH,070H,000H,000H
DB 01FH,0F0H,011H,010H,01FH,0F0H,011H,010H,01FH,0F2H,001H,002H,001H,002H,000H,0FEH;電
DB 000H,000H,03FH,0F0H,000H,020H,000H,040H,000H,080H,001H,000H,001H,000H,001H,004H
DB 0FFH,0FEH,001H,000H,001H,000H,001H,000H,001H,000H,001H,000H,005H,000H,002H,000H;子
DB 008H,000H,008H,0FCH,07EH,084H,008H,084H,0FFH,094H,041H,088H,022H,080H,014H,0FEH
DB 07EH,0A4H,008H,0A4H,008H,098H,0FFH,098H,008H,0A4H,008H,0A6H,008H,0C4H,008H,080H;報
DB 000H,000H,000H,010H,03FH,0F8H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,004H,07FH,0FEH,000H,000H,000H,000H,000H,000H;二
DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070H,001H,000H,01DH,070H,002H,080H
DB 004H,060H,01AH,01EH,0E1H,008H,01FH,0E0H,000H,040H,002H,080H,001H,000H,001H,000H;零
DB 01FH,0F8H,001H,000H,07FH,0FEH,041H,004H,01DH,070H,001H,000H,01DH,070H,002H,080H
DB 004H,060H,01AH,01EH,0E1H,008H,01FH,0E0H,000H,040H,002H,080H,001H,000H,001H,000H;零
DB 004H,000H,003H,000H,001H,080H,001H,000H,0FFH,0FEH,000H,000H,000H,000H,004H,080H
DB 006H,040H,004H,020H,008H,010H,008H,018H,010H,00CH,020H,00CH,040H,008H,000H,000H;六
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H;(空)


;結束動畫
;-- 水紋 -- ** 宋體, 12 **
; 當前所選字體下一個漢字對應的點陣為: 寬度x高度=128x16, 調整后為: 128x16
TAB2:DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,080H
DB 001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,080H,003H,0C0H
DB 003H,0C0H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,001H,080H,002H,040H,004H,020H,008H,010H
DB 008H,010H,004H,020H,002H,040H,001H,080H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,001H,0C0H,006H,030H,008H,008H,008H,008H,010H,004H,020H,002H,020H,002H
DB 020H,002H,010H,004H,008H,008H,008H,008H,006H,030H,001H,0C0H,000H,000H,000H,000H
DB 003H,0C0H,00CH,030H,010H,008H,010H,008H,060H,006H,040H,002H,080H,001H,080H,001H
DB 080H,001H,080H,001H,040H,002H,060H,006H,010H,008H,010H,008H,00CH,030H,003H,0C0H
DB 000H,000H,038H,01CH,046H,062H,081H,081H,080H,001H,040H,002H,040H,002H,020H,004H
DB 020H,004H,040H,002H,040H,002H,080H,001H,081H,081H,046H,062H,038H,01CH,000H,000H
DB 0C0H,003H,0A0H,005H,058H,01EH,024H,024H,024H,024H,01EH,078H,005H,0A0H,002H,040H
DB 002H,040H,005H,0A0H,01AH,078H,024H,024H,024H,024H,058H,01AH,0A0H,005H,0C0H,003H
DB 000H,000H,0C0H,003H,0B0H,00DH,088H,011H,044H,022H,025H,0A4H,012H,048H,00DH,0B0H
DB 00DH,0B0H,012H,048H,025H,0A4H,044H,022H,088H,011H,0B0H,00DH,0C0H,003H,000H,000H
;--福-- ** 宋體, 12 **
; 當前所選字體下一個漢字對應的點陣為: 寬度x高度=16x16, 調整后為: 16x16
TAB3:DB 0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH
DB 055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H
DB 0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H,054H,02AH,0A8H,015H,050H,00AH
DB 050H,00AH,0A8H,015H,054H,02AH,0AAH,055H,055H,0AAH,0AAH,055H,055H,0AAH,0AAH,055H
DB 0AAH,055H,054H,02AH,0A8H,015H,050H,00AH,0A0H,005H,040H,002H,080H,001H,000H,000H
DB 000H,000H,080H,001H,040H,002H,0A0H,005H,050H,00AH,0A8H,015H,054H,02AH,0AAH,055H
DB 0A0H,005H,040H,002H,091H,0F9H,000H,000H,074H,0F0H,019H,008H,031H,008H,058H,0F0H
DB 014H,000H,011H,0F8H,012H,044H,013H,0FCH,012H,044H,091H,0F9H,040H,002H,0A0H,005H
DB 020H,000H,013H,0FEH,010H,000H,0FDH,0FCH,005H,004H,009H,004H,011H,0FCH,030H,000H
DB 05BH,0FEH,096H,022H,012H,022H,013H,0FEH,012H,022H,012H,022H,013H,0FEH,012H,002H
DB 000H,004H,07FH,0C8H,000H,008H,03FH,0BFH,020H,0A0H,020H,090H,03FH,088H,000H,00CH
DB 07FH,0DAH,044H,069H,044H,048H,07FH,0C8H,044H,048H,044H,048H,07FH,0C8H,040H,048H
DB 010H,040H,010H,080H,091H,000H,073H,0FFH,014H,080H,018H,040H,040H,0FFH,05EH,092H
DB 052H,092H,052H,092H,052H,0FEH,052H,092H,052H,092H,05EH,092H,040H,0FFH,000H,000H
DB 012H,002H,013H,0FEH,012H,022H,012H,022H,013H,0FEH,012H,022H,096H,022H,05BH,0FEH
DB 030H,000H,011H,0FCH,009H,004H,005H,004H,0FDH,0FCH,010H,000H,013H,0FEH,020H,000H
TAB4:DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0C0H,0FFH,0C0H
DB 0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,0B0H,002H,0C8H,002H,048H,006H,030H,002H;STEP1
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0C0H,0FFH,0C0H
DB 0FEH,000H,0FEH,000H,0F6H,000H,0F9H,007H,089H,002H,086H,001H,000H,005H,000H,002H;STEP2
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0C0H,0FFH,0C0H
DB 0FEH,0C0H,0FFH,020H,0F1H,020H,0F0H,0C7H,080H,001H,080H,007H,000H,001H,000H,007H;STEP3
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0FFH,0F8H,0FFH,0D8H,0FFH,0E4H
DB 0FEH,024H,0FEH,018H,0F0H,000H,0F0H,001H,080H,001H,080H,007H,000H,005H,000H,005H;STEP4
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FBH,0FFH,0FCH,0FFH,0C4H,0FFH,0C3H
DB 0FEH,000H,0FEH,000H,0F0H,000H,0F0H,007H,080H,001H,080H,007H,000H,004H,000H,007H;STEP5
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,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
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 000H,000H,0F4H,058H,084H,0D4H,085H,052H,0F5H,052H,085H,052H,086H,054H,0F4H,058H
DB 000H,000H,022H,05EH,022H,050H,022H,050H,023H,0DEH,022H,050H,022H,050H,0FAH,05EH
END

關閉窗口
主站蜘蛛池模板: 国产免费福利小视频 | 亚洲高清视频一区二区 | 日韩欧美三区 | 日韩国产中文字幕 | 国产精品1区2区 | 国产99久久精品 | 国产日韩欧美一区 | 91精品在线看 | 色吊丝2288sds中文字幕 | 一区二区三区久久 | aaaaaa大片免费看最大的 | 国产精品午夜电影 | 国产福利视频 | 中文字幕精品一区二区三区精品 | 成人午夜视频在线观看 | 欧美成人精品激情在线观看 | 91精品国产综合久久国产大片 | 日韩资源 | 一区二区在线 | 午夜黄色| 精品久久久久久亚洲综合网 | 日韩欧美国产一区二区三区 | 亚洲情侣视频 | 久久久久久久久久久久一区二区 | 免费一区二区三区 | 密室大逃脱第六季大神版在线观看 | 亚洲一区二区高清 | av黄色在线| 不卡在线一区 | 成人免费大片黄在线播放 | 亚洲码欧美码一区二区三区 | 一级欧美 | 国产精品久久久久久久久久久久冷 | 久久一日本道色综合久久 | 在线免费看毛片 | 欧美高清dvd| 狠狠的干狠狠的操 | 国产日韩欧美激情 | 在线欧美一区 | 国产日韩一区二区三区 | 亚洲一区二区三区免费在线 |