Académique Documents
Professionnel Documents
Culture Documents
máy tính
SVTH : Nguyễn Tiến Đạt
Bùi V?n Giang
Lớp : ĐHĐT3ATLT
; PHAN VUNG BO NHO RAM:
; 00>39: LUU SO KY TU CUA LINE 1
; 40>79: LUU SO KY TU CUA LINE 2
; 80>383: LUU MA CHU HIEN THI CUA LINE 1
; 384>687: LUU MA CHU HIEN THI CUA LINE 2
;*/*/*/*/*/*/*/*/*/*/
; PHAN VUNG BO NHO ROM 24C04
; 00>40: TEXT 1 CUA LINE 1
; 41>81: TEXT 2 CUA LINE 1
; 82>122: TEXT 3 CUA LINE 1
; 123>163: TEXT 1 CUA LINE 2
; 164>204: TEXT 2 CUA LINE 2
; 205>245: TEXT 3 CUA LINE 2
; 246: MaMau_1
; 247: MaMau_2
; 248: TextCurent1
; 249: TextCurent2
;*/*/*/*/*/*/*/*/*/*/
$MOD51fx
ORG 00
JMP MAIN
ORG 23H
JMP INTERUP_UART
RED1 BIT P1.0
RED2 BIT P1.1
GREEN1 BIT P1.2
GREEN2 BIT P1.3
DataLedPort EQU P0
SleLedPort EQU P2
;*/*/*/*/*/
;*/*/*/*/*/
MaxLine1_H EQU 40H
MaxLine1_L EQU 41H
MaxLine2_H EQU 42H
MaxLine2_L EQU 43H
MaMau_1 EQU 44H
MaMau_2 EQU 45H
Curent1_H EQU 46H
Curent1_L EQU 47H
Curent2_H EQU 48H
Curent2_L EQU 49H
SOKyTu_1 EQU 4AH
SOKyTu_2 EQU 4BH
TimeScan EQU 4CH
ChangeTextLine1 EQU 4DH
ChangeTextLine2 EQU 4EH
TextCurent1 EQU 4FH
TextCurent2 EQU 50H
AddRom EQU 51H
UpDateData EQU 52H
Dta equ 53h
Tam EQU 54H
T_DELAY EQU 55H
;*/*/*/*/*/*/*/*/*/*/
ORG 30H
MAIN:
MOV TMOD,#21H
MOV TH1,#3
SETB TR1
MOV SCON,#50H
MOV IE,#90H
MOV 8EH,#0
MOV TimeScan,#0
MAIN1:
LCALL StartI2C
MOV A,#0A0H
LCALL SendByteI2C
MOV A,#246
LCALL SendByteI2C
LCALL StopI2C
;*/*/*/
LCALL StartI2C
MOV A,#0A1H
LCALL SendByteI2C
CLR ACKBIT
LCALL GetByteI2C
MOV MaMau_1,A
LCALL GetByteI2C
MOV MaMau_2,A
LCALL GetByteI2C
MOV TextCurent1,A
SETB ACKBIT
LCALL GetByteI2C
MOV TextCurent2,A
LCALL StopI2C
MOV ChangeTextLine1,#0
MOV ChangeTextLine2,#0
LAP0:
MOV UpDateData,#0
LCALL LoadNewText_1
LCALL LoadNewText_2
;*/*/*/*/
LAP1:
MOV R0,#7
LAP2:
LCALL HIENTHI
DJNZ R0,LAP2
LCALL SCANSW
MOV A,ChangeTextLine1
CJNE A,#1,LAP2A
MOV ChangeTextLine1,#0
LCALL LoadNewText_1
LAP2A:
MOV A,ChangeTextLine2
CJNE A,#1,LAP2B
MOV ChangeTextLine2,#0
LCALL LoadNewText_2
LAP2B:
INC Curent1_L
MOV A,Curent1_L
CJNE A,#0,LAP3
INC Curent1_H
LAP3:
MOV A,Curent1_L
CJNE A,MaxLine1_L,LAP4
MOV A,Curent1_H
CJNE A,MaxLine1_H,LAP4
MOV Curent1_L,#80
MOV Curent1_H,#0
LAP4:
INC Curent2_L
MOV A,Curent2_L
CJNE A,#0,LAP5
INC Curent2_H
LAP5:
MOV A,Curent2_L
CJNE A,MaxLine2_L,LAP1
MOV A,Curent2_H
CJNE A,MaxLine2_H,LAP1
MOV Curent2_L,#LOW(384)
MOV Curent2_H,#HIGH(384)
LAP6:
MOV A,UpDateData
CJNE A,#1,LAP1
JMP MAIN1
;*/*/*/*/*/*/*/*/*/*/*/*/
LoadNewText_1:
MOV A,TextCurent1
CJNE A,#1,LoadNewText_1A
MOV AddRom,#0
JMP LoadNewText_1C
;*/*/*/*/
LoadNewText_1A:
CJNE A,#2,LoadNewText_1B
MOV AddRom,#41
JMP LoadNewText_1C
LoadNewText_1B:
MOV AddRom,#82
LoadNewText_1C:
MOV R1,#SOKyTu_1
MOV R0,#0
LCALL LOADTEXT
LCALL LOAD_HEX_1
MOV Curent1_L,#80
MOV Curent1_H,#0
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
LoadNewText_2:
MOV A,TextCurent2
CJNE A,#1,LoadNewText_2A
MOV AddRom,#123
JMP LoadNewText_2C
;*/*/*/*/
LoadNewText_2A:
CJNE A,#2,LoadNewText_2B
MOV AddRom,#164
JMP LoadNewText_2C
LoadNewText_2B:
MOV AddRom,#205
LoadNewText_2C:
MOV R1,#SOKyTu_2
MOV R0,#40
LCALL LOADTEXT
LCALL LOAD_HEX_2
MOV Curent2_L,#LOW(384)
MOV Curent2_H,#HIGH(384)
RET
;*/*/*/*/*/*/*/*/*/
WriteRom1Byte:
LCALL StartI2C
MOV A,#0A0H
LCALL SendByteI2C
MOV A,Addrom
LCALL SendByteI2C
MOV A,Dta
LCALL SendByteI2C
LCALL StopI2C
RET
;*/*/*/*/*/*/*/*/*/
SendByteI2C:
PUSH 07
MOV R7,#8
SendByteI2C_Loop:
RLC A
MOV I2C_SDA,C
NOP
NOP
SETB I2C_SCL
LCALL DelayI2C
CLR I2C_SCL
DJNZ R7,SendByteI2C_Loop
LCALL AckI2C
POP 07
RET
;*/*/*/*/*/*/*/*/*/
GetByteI2C:
PUSH 07
SETB I2C_SDA
CLR I2C_SCL
MOV R7,#8
GetByteI2C_Loop:
SETB I2C_SCL
NOP
NOP
MOV C,I2C_SDA
RLC A
LCALL DelayI2C
CLR I2C_SCL
DJNZ R7,GetByteI2C_Loop
MOV C,ACKBIT
MOV I2C_SDA,C
LCALL AckI2C
POP 07
RET
;*/*/*/*/*/*/*/*/*/
StartI2C:
SETB I2C_SDA
SETB I2C_SCL
LCALL DelayI2C
CLR I2C_SDA
CLR I2C_SCL
RET
;*/*/*/*/*/*/*/*/*/
StopI2C:
CLR I2C_SDA
SETB I2C_SCL
LCALL DelayI2C
SETB I2C_SDA
CLR I2C_SCL
RET
;*/*/*/*/*/*/*/*/*/
AckI2C:
SETB I2C_SCL
LCALL DelayI2C
CLR I2C_SCL
RET
;*/*/*/*/*/*/*/*/*/
DelayI2C:
PUSH 07
MOV R7,#20
DJNZ R7,$
POP 07
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
HIENTHI:
PUSH 02
PUSH 03
PUSH Curent1_H
PUSH Curent1_L
PUSH Curent2_H
PUSH Curent2_L
MOV R2,#0
MOV R3,#0F7H
SCAN:
LCALL DISP_LINE
MOV A,UpDateData
CJNE A,#1,SCAN_1
JMP SCAN_2A
SCAN_1:
MOV A,R2
ORL A,#0F8H
ANL A,R3
MOV P2,A
LCALL DELAY
MOV P0,#0FFH
MOV P2,#0FFH
NOP
CLR RED1
CLR GREEN1
CLR RED2
CLR GREEN2
INC R2
CJNE R2,#8,SCAN
MOV R2,#0
MOV A,R3
RL A
MOV R3,A
CJNE R3,#07FH,SCAN
SCAN_2A:
POP Curent2_L
POP Curent2_H
POP Curent1_L
POP Curent1_H
POP 03
POP 02
LCALL SCANSW
RET
;*/*/*/*/*/*/*/*/*/
DISP_LINE:
MOV DPH,Curent1_H
MOV DPL,Curent1_L
MOVX A,@DPTR
RL A
ORL A,#01
MOV P0,A
;*/*/*/
MOV A,MaMau_1
CJNE A,#1,SCAN_1R
SETB GREEN1
NOP
CLR GREEN1
MOV P0,#0FFH
SETB RED1
NOP
CLR RED1
JMP SCAN_2
SCAN_1R:
CJNE A,#2,SCAN_1Y
SETB RED1
NOP
CLR RED1
MOV P0,#0FFH
SETB GREEN1
NOP
CLR GREEN1
JMP SCAN_2
SCAN_1Y:
SETB RED1
SETB GREEN1
CLR RED1
CLR GREEN1
SCAN_2:
INC DPTR
MOV Curent1_H,DPH
MOV Curent1_L,DPL
;*/*/*/*/*/*/
MOV DPH,Curent2_H
MOV DPL,Curent2_L
MOVX A,@DPTR
MOV P0,A
;*/*/*/
MOV A,MaMau_2
CJNE A,#1,SCAN_2R
SETB GREEN2
NOP
CLR GREEN2
MOV P0,#0FFH
SETB RED2
NOP
CLR RED2
JMP SCAN_3
SCAN_2R:
CJNE A,#2,SCAN_2Y
SETB RED2
NOP
CLR RED2
MOV P0,#0FFH
SETB GREEN2
NOP
CLR GREEN2
JMP SCAN_3
SCAN_2Y:
SETB RED2
SETB GREEN2
CLR RED2
CLR GREEN2
SCAN_3:
INC DPTR
MOV Curent2_H,DPH
MOV Curent2_L,DPL
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
LOADTEXT: ; CHUONG TRINH CON LAY CHUOI KY TU TU ROM
PUSH 02
LCALL StartI2C
MOV A,#0A0H
LCALL SendByteI2C
MOV A,Addrom ;;;;;;;;;;;;;;;;;;;;;;;;
LCALL SendByteI2C
LCALL StopI2C
;*/*/*/
LCALL StartI2C
MOV A,#0A1H
LCALL SendByteI2C
CLR ACKBIT
LCALL GetByteI2C
MOV @R1,A ; MA DAU LUU SO KY TU CUA CHUOI
MOV R2,A
LOADTEXT1:
LCALL GetByteI2C
MOVX @R0,A ; CAC MA TIEP THEO LUU KY TU TRONG CHUOI
INC R0
DJNZ R2,LOADTEXT1
SETB ACKBIT
LCALL GetByteI2C
LCALL StopI2C
POP 02
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
LOAD_HEX_1: ; CHUONG TRINH CON LUU MA HEX CUA CHUOI CAN HIEN THI CHO LINE 1
MOV DPTR,#80
MOV R2,#32
LOAD_HEX_10:
MOV A,#0FFH
MOVX @DPTR,A ; LUU 32 COT TRANG DAU
INC DPTR
DJNZ R2,LOAD_HEX_10
;*/*/*/*/
MOV R2,SOKyTu_1 ; SO KY TU DA LAY
MOV R0,#0 ; KY TU DAU CUA LINE 1
LOAD_HEX_11:
MOVX A,@R0
MOV B,#6
MUL AB
PUSH DPH
PUSH DPL
MOV DPTR,#CODEDISP
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
;*/*/*/
MOV R4,#0
MOV R1,#60H ; LAY 6 BYTE TU VUNG ROM LUU VAO VUNG RAM TU 60H>65H
LOAD_HEX_13:
MOV A,R4
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC R4
CJNE R4,#6,LOAD_HEX_13
POP DPL
POP DPH
MOV R1,#60H
;*/*/*/
LOAD_HEX_14:
MOV A,@R1
MOVX @DPTR,A ; LUU 6 BYTE TU VUNG RAM 60H>65H VAM VUNG RAM HIEN THI CUA
LINE 1
INC R1
INC DPTR
CJNE R1,#66H,LOAD_HEX_14
;*/*/*/
INC R0 ; LAY KY TU TIEP THEO CUA CHUOI 1
DJNZ R2,LOAD_HEX_11 ; KIEM TRA XEM DA LAY HET KY TU TRONG CHUOI CHUA
MOV MaxLine1_L,DPL
MOV MaxLine1_H,DPH
;*/*/*/
MOV R2,#32
LOAD_HEX_15:
MOV A,#0FFH
MOVX @DPTR,A ; LUU 32 COT TRANG SAU
INC DPTR
DJNZ R2,LOAD_HEX_15
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
LOAD_HEX_2: ; CHUONG TRINH CON LUU MA HEX CUA CHUOI CAN HIEN THI CHO LINE 2
MOV DPTR,#384
MOV R2,#32
LOAD_HEX_20:
MOV A,#0FFH
MOVX @DPTR,A ; LUU 32 COT TRANG DAU
INC DPTR
DJNZ R2,LOAD_HEX_20
;*/*/*/*/
MOV R2,SOKyTu_2 ; SO KY TU DA LAY
MOV R0,#40 ; KY TU DAU CUA LINE 2
LOAD_HEX_21:
MOVX A,@R0
MOV B,#6
MUL AB
PUSH DPH
PUSH DPL
MOV DPTR,#CODEDISP
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
;*/*/*/
MOV R4,#0
MOV R1,#60H ; LAY 6 BYTE TU VUNG ROM LUU VAO VUNG RAM TU 60H>65H
LOAD_HEX_23:
MOV A,R4
MOVC A,@A+DPTR
MOV @R1,A
INC R1
INC R4
CJNE R4,#6,LOAD_HEX_23
POP DPL
POP DPH
MOV R1,#60H
;*/*/*/
LOAD_HEX_24:
MOV A,@R1
MOVX @DPTR,A ; LUU 6 BYTE TU VUNG RAM 60H>65H VAM VUNG RAM HIEN THI CUA
LINE 2
INC R1
INC DPTR
CJNE R1,#66H,LOAD_HEX_24
;*/*/*/
INC R0 ; LAY KY TU TIEP THEO CUA CHUOI 2
DJNZ R2,LOAD_HEX_21 ; KIEM TRA XEM DA LAY HET KY TU TRONG CHUOI CHUA
MOV MaxLine2_L,DPL
MOV MaxLine2_H,DPH
;*/*/*/
MOV R2,#32
LOAD_HEX_25:
MOV A,#0FFH
MOVX @DPTR,A ; LUU 32 COT TRANG SAU
INC DPTR
DJNZ R2,LOAD_HEX_25
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
DELAY: ; Time Delay ~ 670us
PUSH 5
PUSH 6
MOV R5,#3
DL1:
MOV R6,#110
DJNZ R6,$
DJNZ R5,DL1
POP 6
POP 5
RET
;*/*/*/*/*
DELAY_MS:
MOV TH0,#HIGH(10000)
MOV TL0,#LOW(10000)
CLR TF0
SETB TR0
JNB TF0,$
CLR TR0
DJNZ T_DELAY,DELAY_MS
RET
;*/*/*/*/*/*/*/*
SCANSW:
PUSH 05
MOV R5,TimeScan
CJNE R5,#0,SCANSW_0 ; NEU TimeScan #0: GIAM TimeScan XUONG 1 : KHONG QUET
NUT NHAN
JB SW1,SCANSW_2 ; NEU TimeScan =0: QUET NUT NHAN
MOV TimeScan,#20 ; KHI CO 1 NUT DUOC NHAN: NAP GIA TRI CHO TimeScan = 100.
INC MaMau_1
MOV R5,MaMau_1
CJNE R5,#4,SCANSW_1A
MOV MaMau_1,#1
SCANSW_1A:
MOV Addrom,#246
MOV Dta,MaMau_1
LCALL WriteRom1Byte
JMP SCANSW_1
;*/*/*/
SCANSW_2:
JB SW2,SCANSW_3
MOV TimeScan,#20
INC MaMau_2
MOV R5,MaMau_2
CJNE R5,#4,SCANSW_1B
MOV MaMau_2,#1
SCANSW_1B:
MOV Addrom,#247
MOV Dta,MaMau_2
LCALL WriteRom1Byte
JMP SCANSW_1
;*/*/*/
SCANSW_3:
JB SW3,SCANSW_4
MOV TimeScan,#20
INC TextCurent1
MOV R5,TextCurent1
CJNE R5,#4,SCANSW_3A
MOV TextCurent1,#1
SCANSW_3A:
MOV Addrom,#248
MOV Dta,TextCurent1
LCALL WriteRom1Byte
MOV ChangeTextLine1,#1
JMP SCANSW_1
SCANSW_4:
JB SW4,SCANSW_1
MOV TimeScan,#20
INC TextCurent2
MOV R5,TextCurent2
CJNE R5,#4,SCANSW_4A
MOV TextCurent2,#1
SCANSW_4A:
MOV Addrom,#249
MOV Dta,TextCurent2
LCALL WriteRom1Byte
MOV ChangeTextLine2,#1
SCANSW_1:
POP 05
RET
SCANSW_0:
DEC TimeScan
POP 05
RET
;*/*/*/*/*/*/*/*/*/*/*/*/
INTERUP_UART:
PUSH ACC
MOV IE,#0
CLR RI
MOV A,SBUF
CJNE A,#11,INTERUP_UART_1
MOV SBUF,A
JNB TI,$
CLR TI
INC MaMau_1
MOV A,MaMau_1
CJNE A,#4,INTERUP_UART_1A
MOV MaMau_1,#1
INTERUP_UART_1A:
MOV Addrom,#246
MOV Dta,MaMau_1
LCALL WriteRom1Byte
MOV IE,#90H
POP ACC
RETI
;*/*/*/
INTERUP_UART_1:
CJNE A,#21,INTERUP_UART_2
MOV SBUF,A
JNB TI,$
CLR TI
INC MaMau_2
MOV A,MaMau_2
CJNE A,#4,INTERUP_UART_2A
MOV MaMau_2,#1
INTERUP_UART_2A:
MOV Addrom,#247
MOV Dta,MaMau_2
LCALL WriteRom1Byte
INTERUP_UART_2B:
MOV IE,#90H
POP ACC
RETI
;*/*/*/
INTERUP_UART_2:
CJNE A,#12,INTERUP_UART_3
MOV SBUF,A
JNB TI,$
CLR TI
INC TextCurent1
MOV A,TextCurent1
CJNE A,#4,INTERUP_UART_2C
MOV TextCurent1,#1
INTERUP_UART_2C:
MOV Addrom,#248
MOV Dta,TextCurent1
LCALL WriteRom1Byte
MOV ChangeTextLine1,#1
MOV IE,#90H
POP ACC
RETI
;*/*/*/
INTERUP_UART_3:
CJNE A,#22,INTERUP_UART_4
MOV SBUF,A
JNB TI,$
CLR TI
INC TextCurent2
MOV A,TextCurent2
CJNE A,#4,INTERUP_UART_3C
MOV TextCurent2,#1
INTERUP_UART_3C:
MOV Addrom,#249
MOV Dta,TextCurent2
LCALL WriteRom1Byte
MOV ChangeTextLine2,#1
MOV IE,#90H
POP ACC
RETI
;*/*/*/
INTERUP_UART_4:
CJNE A,#1,INTERUP_UART_2B
MOV R0,#0
CLEAR:
MOV A,#0
MOVX @R0,A
INC R0
CJNE R0,#246,CLEAR
;*/*/*/ NHAN CHUOI 1
MOV R0,#0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_4B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_4B
;*/*/*/ NHAN CHUOI 2
INTERUP_UART_5:
MOV R0,#41
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_5B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_5B
;*/*/*/ NHAN CHUOI 3
INTERUP_UART_6:
MOV R0,#82
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_6B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_6B
;*/*/*/ NHAN CHUOI 4
INTERUP_UART_7:
MOV R0,#123
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_7B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_7B
;*/*/*/ NHAN CHUOI 5
INTERUP_UART_8:
MOV R0,#164
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_8B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_8B
;*/*/*/ NHAN CHUOI 6
INTERUP_UART_9:
MOV R0,#205
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
MOV R1,A
INTERUP_UART_9B:
INC R0
JNB RI,$
CLR RI
MOV A,SBUF
MOVX @R0,A
DJNZ R1,INTERUP_UART_9B
;*/*/*/ GHI DU LIEU VAO ROM
INTERUP_UART_10:
MOV P2,#0FFH
MOV R0,#0
INTERUP_UART_10A:
MOV AddRom,R0
MOVX A,@R0
MOV Dta,A
LCALL WriteRom1Byte
MOV T_DELAY,#1
LCALL DELAY_MS
INC R0
CJNE R0,#246,INTERUP_UART_10A
MOV UpDateData,#1
MOV IE,#90H
POP ACC
RETI
;*/*/*/*/*/*/*/*/*/*/*/*/
CODEDISP:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;Space
DB 0FFH,0FFH,82H,0FFH,0FFH,0FFH ;!
DB 0FFH,0FFH,8FH,8FH,0FFH,0FFH ;"
DB 0EBH,80H,0EBH,80H,0EBH,0FFH ;#
DB 0EDH,0D5H,94H,0D5H,0DBH,0FFH ;$
DB 0CDH,0CBH,0F7H,0E9H,0D9H,0FFH ;%
DB 0C9H,0B6H,0AAH,0DDH,0FAH,0FFH ;&
DB 0FFH,0FFH,8FH,0FFH,0FFH,0FFH ;'
DB 0E3H,0DDH,0BEH,0FFH,0FFH,0FFH ;(
DB 0FFH,0FFH,0BEH,0DDH,0E3H,0FFH ;)
DB 0DBH,0E7H,81H,0E7H,0DBH,0FFH ;*
DB 0F7H,0F7H,0C1H,0F7H,0F7H,0FFH ;+
DB 0FFH,0FEH,0F9H,0FFH,0FFH,0FFH ;,
DB 0FFH,0F7H,0F7H,0F7H,0F7H,0FFH ;
DB 0FFH,0FFH,0FEH,0FFH,0FFH,0FFH ;.
DB 0FDH,0FBH,0F7H,0EFH,0DFH,0FFH ;/
DB 0C1H,0AEH,0B6H,0BAH,0C1H,0FFH ;0
DB 0FEH,0DEH,80H,0FEH,0FEH,0FFH ;1
DB 0DEH,0BCH,0BAH,0B6H,0CEH,0FFH ;2
DB 0DDH,0BEH,0B6H,0B6H,0C9H,0FFH ;3
DB 0F3H,0EBH,0DBH,80H,0FBH,0FFH ;4
DB 8DH,0AEH,0AEH,0AEH,0B1H,0FFH ;5
DB 0C1H,0B6H,0B6H,0B6H,0D9H,0FFH ;6
DB 0BFH,0BFH,0B0H,0AFH,9FH,0FFH ;7
DB 0C9H,0B6H,0B6H,0B6H,0C9H,0FFH ;8
DB 0CDH,0B6H,0B6H,0B6H,0C1H,0FFH ;9
DB 0FFH,0FFH,0C9H,0FFH,0FFH,0FFH ;:
DB 0FFH,0FEH,0E9H,0FFH,0FFH,0FFH ;;
DB 0F7H,0EBH,0DDH,0BEH,0FFH,0FFH ;<
DB 0EBH,0EBH,0EBH,0EBH,0EBH,0FFH ;=
DB 0FFH,0BEH,0DDH,0EBH,0F7H,0FFH ;>
DB 0DFH,0BFH,0BAH,0B7H,0CFH,0FFH ;?
DB 0C1H,0BEH,0AEH,96H,0C5H,0FFH ;@
DB 0E0H,0D7H,0B7H,0D7H,0E0H,0FFH ;A
DB 80H,0B6H,0B6H,0B6H,0C9H,0FFH ;B
DB 0C1H,0BEH,0BEH,0BEH,0DDH,0FFH ;C
DB 80H,0BEH,0BEH,0BEH,0C1H,0FFH ;D
DB 80H,0B6H,0B6H,0B6H,0BEH,0FFH ;E
DB 80H,0B7H,0B7H,0B7H,0BFH,0FFH ;F
DB 0C1H,0BEH,0BEH,0B6H,0D1H,0FFH ;G
DB 80H,0F7H,0F7H,0F7H,80H,0FFH ;H
DB 0BEH,0BEH,80H,0BEH,0BEH,0FFH ;I
DB 0BDH,0BEH,81H,0BFH,0BFH,0FFH ;J
DB 80H,0E7H,0DBH,0BDH,0FEH,0FFH ;K
DB 80H,0FEH,0FEH,0FEH,0FDH,0FFH ;L
DB 80H,0DFH,0EFH,0DFH,80H,0FFH ;M
DB 80H,0DFH,0EFH,0F7H,80H,0FFH ;N
DB 0C1H,0BEH,0BEH,0BEH,0C1H,0FFH ;O
DB 80H,0B7H,0B7H,0B7H,0CFH,0FFH ;P
DB 0C1H,86H,0BAH,0BDH,0C2H,0FFH ;Q
DB 80H,0B7H,0B3H,0B5H,0CEH,0FFH ;R
DB 0CDH,0B6H,0B6H,0B6H,0D9H,0FFH ;S
DB 0BFH,0BFH,80H,0BFH,0BFH,0FFH ;T
DB 81H,0FEH,0FEH,0FEH,81H,0FFH ;U
DB 83H,0FDH,0FEH,0FDH,83H,0FFH ;V
DB 81H,0FEH,0F1H,0FEH,81H,0FFH ;W
DB 9CH,0EBH,0F7H,0EBH,9CH,0FFH ;X
DB 8FH,0F7H,0F8H,0F7H,8FH,0FFH ;Y
DB 0BCH,0BAH,0B6H,0AEH,9EH,0FFH ;Z
DB 80H,0BEH,0BEH,0FFH,0FFH,0FFH ;[
DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FFH ;\
DB 0FFH,0FFH,0BEH,0BEH,80H,0FFH ;]
DB 0EFH,0DFH,0BFH,0DFH,0EFH,0FFH ;^
DB 0FFH,0FEH,0FEH,0FEH,0FEH,0FFH ;_
DB 0FFH,0BFH,0DFH,0FFH,0FFH,0FFH ;`
DB 0FDH,0EAH,0EAH,0EAH,0F0H,0FFH ;a
DB 80H,0F5H,0EEH,0EEH,0F1H,0FFH ;b
DB 0F1H,0EEH,0EEH,0EEH,0EEH,0FFH ;c
DB 0F1H,0EEH,0EEH,0EEH,80H,0FFH ;d
DB 0F1H,0EAH,0EAH,0EAH,0F2H,0FFH ;e
DB 0F6H,0E0H,0D6H,0D6H,0DFH,0FFH ;f
DB 0E6H,0DAH,0DAH,0DAH,0C1H,0FFH ;g
DB 80H,0F7H,0EFH,0EFH,0F0H,0FFH ;h
DB 0FFH,0EEH,0A0H,0FEH,0FFH,0FFH ;i
DB 0FEH,0EEH,0A1H,0FFH,0FFH,0FFH ;j
DB 80H,0FBH,0F5H,0EEH,0FFH,0FFH ;k
DB 0FFH,0BEH,80H,0FEH,0FFH,0FFH ;l
DB 0F0H,0EFH,0F0H,0EFH,0F0H,0FFH ;m
DB 0E0H,0F7H,0EFH,0EFH,0F0H,0FFH ;n
DB 0F1H,0EEH,0EEH,0EEH,0F1H,0FFH ;o
DB 0E0H,0EBH,0EBH,0EBH,0F7H,0FFH ;p
DB 0F7H,0EBH,0EBH,0EBH,0E0H,0FFH ;q
DB 0EEH,0E0H,0F6H,0EEH,0EFH,0FFH ;r
DB 0F6H,0EAH,0EAH,0EAH,0EDH,0FFH ;s
DB 0EFH,81H,0EEH,0EEH,0FDH,0FFH ;t
DB 0E1H,0FEH,0FEH,0FDH,0E0H,0FFH ;u
DB 0E3H,0FDH,0FEH,0FDH,0E3H,0FFH ;v
DB 0E1H,0FEH,0F9H,0FEH,0E1H,0FFH ;w
DB 0EEH,0E0H,0F6H,0EEH,0EFH,0FFH ;x
DB 0EFH,0F6H,0F9H,0F7H,0EFH,0FFH ;y
DB 0EEH,0ECH,0EAH,0E6H,0EEH,0FFH ;z
DB 0F7H,0C9H,0BEH,0FFH,0FFH,0FFH ;{
DB 0FFH,80H,0FFH,0FFH,0FFH,0FFH ;|
DB 0FFH,0FFH,0BEH,0C9H,0F7H,0FFH ;}
DB 0F7H,0EFH,0E7H,0F7H,0EFH,0FFH ;~
END