📄 st7032.asm
字号:
SDA EQU P0.3
SCL EQU P0.2
CSB EQU P0.1
RES EQU P0.0
PAUSE EQU P3.5
DAT1 EQU 21H
DAT2 EQU 22H
TEMP EQU 23H
DATA1 EQU 24H
ORG 0000H
JMP RESET
ORG 0050H
RESET:
MOV SP,#50H
CALL D100MS
MAIN :
call init
MOV DPTR,#CGRAM1
CALL WRITE_CGRAM
MOV DPTR,#FULL
CALL DISPLAY1
MOV DPTR,#ICON_FULL
CALL ICON
CALL D1S
MOV DPTR,#BLANK
CALL DISPLAY1
MOV DPTR,#ICON_BLANK
CALL ICON
CALL D1S
MOV DPTR,#NUMBER1
CALL DISPLAY1
MOV DPTR,#ICON_FULL
CALL ICON
CALL D1S
MOV DPTR,#NUMBER2
CALL DISPLAY1
MOV DPTR,#ICON_BLANK
CALL ICON
CALL D1S
MOV DPTR,#NUMBER3
CALL DISPLAY1
MOV DPTR,#ICON_FULL
CALL ICON
CALL D1S
MOV DPTR,#NUMBER4
CALL DISPLAY1
MOV DPTR,#ICON_BLANK
CALL ICON
CALL D1S
JMP MAIN
;------------------------------------
INIT:
CLR CSB
CLR RES
CALL D100MS
SETB RES
CALL START
MOV A,#7CH; SET ADDRESS
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#038H;funtion set,is=0
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#006H;entry mode set
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#00CH;display on
CALL CMD;
MOV A,#080H;control byte;
CALL CMD;
MOV A,#01cH;cursor or dispaly shift;
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#001H;clear display
CALL CMD
CALL D100MS
;****************************** extension instruction *******************
MOV A,#080H;control byte /*********
CALL CMD
MOV A,#039H;funtion set,is=1 /*********
CALL CMD
MOV A,#080H;control byte /*********
CALL CMD
MOV A,#014H;internal osc frequency ,1/5 bias /*********
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#05FH;set icon on,booster on,contrast set: D0-D1 /************
CALL CMD
MOV A,#080H;control byte /*******
CALL CMD
MOV A,#06AH;set follower circuit on,set Ra/Rb:D0-D3 /********
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#07CH;contrast set:D0-D3
CALL CMD
CALL STOP
RET
;------------------------------------------
START:
SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
CLR SDA
CALL D40US
RET
;--------------------------------
STOP:
CLR SCL
NOP
NOP
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
SETB SDA
CALL D40US
RET
;---------------------
CMD:
MOV R0,#8
RE: RLC A
CLR SCL
MOV SDA ,C
NOP
NOP
NOP
NOP
SETB SCL
NOP
NOP
NOP
DJNZ R0,RE
CLR SCL
NOP
NOP
SETB SDA
SETB SCL
;CALL D10US
ACK:
JB SDA,ACK
CLR SCL
CALL D40US
RET
;---------------------------------------------
W_DAT:
MOV R0,#8
RE1: RLC A
CLR SCL
MOV SDA ,C
NOP
NOP
SETB SCL
CALL D40US
DJNZ R0,RE1
CLR SCL
NOP
NOP
SETB SDA
SETB SCL
;CALL D10US
ACK1:
JB SDA,ACK1
RET
;---------------------------------------
DISPLAY1:
CALL START
MOV A,#7CH; SET ADDRESS
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#038H;funtion set,is=0
CALL CMD
MOV A,#80H;RS=0
CALL CMD
MOV A,#0C0H; set ddram address
CALL CMD
MOV A,#040H;RS=1
CALL CMD
MOV R1,#12
DIS1: CLR A
MOVC A,@A+DPTR
CALL CMD
INC DPTR
DJNZ R1,DIS1
CALL STOP
RET
WRITE_CGRAM:
CALL START
MOV A,#7CH;SET ADDRESS
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#038H;funtion set,is=0
CALL CMD
MOV A,#80H;RS=0
CALL CMD
MOV A,#040H;set cgram address
CALL CMD
MOV A,#040H;RS=1
CALL CMD
MOV R1,#32
w_ram: CLR A
MOVC A,@A+DPTR
CALL CMD
INC DPTR
DJNZ R1,w_ram
CALL STOP
RET
ICON:
CALL START
MOV A,#7CH;SET ADDRESS
CALL CMD
MOV A,#080H;control byte
CALL CMD
MOV A,#039H;funtion set,is=1
CALL CMD
MOV A,#80H;RS=0
CALL CMD
MOV A,#040H;set ICON address
CALL CMD
MOV A,#040H;RS=1
CALL CMD
MOV R1,#12
DIS_ICON: CLR A
MOVC A,@A+DPTR
CALL CMD
INC DPTR
DJNZ R1,DIS_ICON
CALL STOP
RET
; -----------------------------
D40US:
MOV R5,#20
DJNZ R5,$
RET
D100MS:
MOV R7,#100
D2:
MOV R6,#2
D3:
MOV R5,#248
DJNZ R5,$
DJNZ R6, D3
DJNZ R7, D2
RET
D1S:
MOV R7,#200
D4:
MOV R6,#10
D5:
MOV R5,#248
DJNZ R5,$
DJNZ R6, D5
DJNZ R7, D4
;SETB PAUSE
;JNB PAUSE,$
RET
;-----------------------------
FULL:
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
BLANK:
DB 020H,020H,020H,020H,020H,020H,020H,020H,020H
DB 020H,020H,020H,020H,020H,020H,020H,020H,020H
number1:
DB 001H,001H,001H,001H,001H,001H,001H,001H,001H
DB 001H,001H,001H,001H,001H,001H,001H,001H,001H
number2:
DB 002H,002H,002H,002H,002H,002H,002H,002H,002H,002H
DB 002H,002H,002H,002H,002H,002H,002H,002H,002H,002H
number3:
DB 051H,051H,051H,051H,051H,051H,051H,051H,051H
DB 051H,051H,051H,051H,051H,051H,051H,051H,051H
number4:
DB 0B0H,0B1H,0B2H,0B3H,0B4H,0B5H,0B6H,0B7H
DB 0B8H,0B9H,0BAH,0BBH,0BCH
CGRAM1:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 055H,0AAH,055H,0AAH,055H,0AAH,055H,0AAH
DB 0AAH,055H,0AAH,055H,0AAH,055H,0AAH,055H
DB 0FFH,000H,0FFH,000H,0FFH,000H,0FFH,000H
ICON_FULL:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
ICON_BLANK:
DB 000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -