📄 93c66.src
字号:
; .\93C66.SRC generated from: 93C66.c
; COMPILER INVOKED BY:
; D:\Program Files\Keil\C51\BIN\C51.EXE 93C66.c BROWSE DEBUG OBJECTEXTEND SRC(.\93C66.SRC)
$NOMOD51
NAME _93C66
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
AC BIT 0D0H.6
T0 BIT 0B0H.4
T1 BIT 0B0H.5
EA BIT 0A8H.7
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
FL BIT 0D0H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
RD BIT 0B0H.7
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
CY BIT 0D0H.7
INT0 BIT 0B0H.2
INT1 BIT 0B0H.3
TI BIT 098H.1
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
WR BIT 0B0H.6
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
B DATA 0F0H
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
EX1 BIT 0A8H.2
TB8 BIT 098H.3
IT1 BIT 088H.2
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
PT0 BIT 0B8H.1
RS0 BIT 0D0H.3
PT1 BIT 0B8H.3
RS1 BIT 0D0H.4
PT2 BIT 0B8H.5
TR0 BIT 088H.4
TR1 BIT 088H.6
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
REN BIT 098H.4
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_read_byte?93C66 SEGMENT CODE
?DT?_read_byte?93C66 SEGMENT DATA OVERLAYABLE
?PR?write_enable?93C66 SEGMENT CODE
?PR?write_disable?93C66 SEGMENT CODE
?PR?_write_byte?93C66 SEGMENT CODE
?DT?_write_byte?93C66 SEGMENT DATA OVERLAYABLE
?PR?_write_command?93C66 SEGMENT CODE
?PR?check_busy?93C66 SEGMENT CODE
?CO?93C66 SEGMENT CODE
PUBLIC int2charx
PUBLIC check_busy
PUBLIC _write_command
PUBLIC _write_byte
PUBLIC write_disable
PUBLIC write_enable
PUBLIC _read_byte
RSEG ?DT?_read_byte?93C66
?_read_byte?BYTE:
temp?043: DS 1
RSEG ?DT?_write_byte?93C66
?_write_byte?BYTE:
address?346: DS 2
ORG 2
write_data?347: DS 1
RSEG ?CO?93C66
int2charx:
DB '0' ,'1' ,'2' ,'3' ,'4' ,'5' ,'6' ,'7' ,'8' ,'9'
DB 'A' ,'B' ,'C' ,'D' ,'E' ,'F' ,000H
; #include <intrins.h>
; #include <Regx51.h>
; //
; #define READ 0x0C00 /* xxxx110A8,A7-A0 */
; #define EWEN 0x0980 /* xxxx1001 ,1xxxxxxx */
; #define WRITE 0x0A00 /* xxxx101A8,A7-A0 */
; #define EWDS 0x0800 /* xxxx1000,0xxxxxxx */
; //
; #define ShiftBit 4
; //
; #define CS P0_0
; #define SK P0_1
; #define DI P0_2
; #define DO P0_3
; //
; char code int2charx[]="0123456789ABCDEF";
; void write_command(int);
; unsigned char read_byte(int);
; void write_byte(int,unsigned char);
; void check_busy(void);
; void write_LCD_data(unsigned);
; //
; unsigned char read_byte(int address)
RSEG ?PR?_read_byte?93C66
_read_byte:
USING 0
; SOURCE LINE # 23
;---- Variable 'address?040' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 24
; int i,command;
; unsigned char temp;
; CS=1;
; SOURCE LINE # 27
SETB P0_0
; command=(READ|address);
; SOURCE LINE # 28
MOV A,R6
ORL A,#0CH
MOV R6,A
;---- Variable 'command?042' assigned to Register 'R6/R7' ----
; write_command(command);
; SOURCE LINE # 29
LCALL _write_command
; for(i=0;i<8;i++) /* 读出一个位组 */
; SOURCE LINE # 30
;---- Variable 'i?041' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0001:
; {
; SOURCE LINE # 31
; SK=1;
; SOURCE LINE # 32
SETB P0_1
; SK=0;
; SOURCE LINE # 33
CLR P0_1
; temp= (temp << 1);
; SOURCE LINE # 34
MOV A,temp?043
ADD A,ACC
MOV temp?043,A
; if(DO==1)
; SOURCE LINE # 35
JNB P0_3,?C0003
; temp=(temp | 0x01);
; SOURCE LINE # 36
ORL temp?043,#01H
; }
; SOURCE LINE # 37
?C0003:
INC R7
CJNE R7,#00H,?C0023
INC R6
?C0023:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0001
?C0002:
; CS=0;
; SOURCE LINE # 38
CLR P0_0
; return(temp);
; SOURCE LINE # 39
MOV R7,temp?043
; }
; SOURCE LINE # 40
?C0005:
RET
; END OF _read_byte
; void write_enable()
RSEG ?PR?write_enable?93C66
write_enable:
USING 0
; SOURCE LINE # 41
; {
; SOURCE LINE # 42
; int command;
; CS=1;
; SOURCE LINE # 44
SETB P0_0
; command=EWEN;
; SOURCE LINE # 45
;---- Variable 'command?144' assigned to Register 'R6/R7' ----
MOV R7,#080H
MOV R6,#09H
; write_command(command);
; SOURCE LINE # 46
LCALL _write_command
; CS=0;
; SOURCE LINE # 47
CLR P0_0
; }
; SOURCE LINE # 48
RET
; END OF write_enable
; void write_disable()
RSEG ?PR?write_disable?93C66
write_disable:
USING 0
; SOURCE LINE # 49
; {
; SOURCE LINE # 50
; int command;
; CS=1;
; SOURCE LINE # 52
SETB P0_0
; command=EWDS;
; SOURCE LINE # 53
;---- Variable 'command?245' assigned to Register 'R6/R7' ----
MOV R7,#00H
MOV R6,#08H
; write_command(command);
; SOURCE LINE # 54
LCALL _write_command
; CS=0;
; SOURCE LINE # 55
CLR P0_0
; }
; SOURCE LINE # 56
RET
; END OF write_disable
; void write_byte(int address,unsigned char write_data)
RSEG ?PR?_write_byte?93C66
_write_byte:
USING 0
; SOURCE LINE # 57
MOV address?346,R6
MOV address?346+01H,R7
MOV write_data?347,R5
; {
; SOURCE LINE # 58
; int i,command;
; write_enable();
; SOURCE LINE # 60
LCALL write_enable
; CS=1;
; SOURCE LINE # 61
SETB P0_0
; command=(WRITE|address);
; SOURCE LINE # 62
MOV A,address?346
ORL A,#0AH
MOV R6,A
MOV R7,address?346+01H
;---- Variable 'command?349' assigned to Register 'R6/R7' ----
; write_command(command);
; SOURCE LINE # 63
LCALL _write_command
; for(i=0;i<8;i++) /* 写入一个位组 */
; SOURCE LINE # 64
;---- Variable 'i?348' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0008:
; {
; SOURCE LINE # 65
; if(write_data & 0x80)
; SOURCE LINE # 66
MOV A,write_data?347
JNB ACC.7,?C0011
; DI=1;
; SOURCE LINE # 67
SETB P0_2
SJMP ?C0012
?C0011:
; else
; DI=0;
; SOURCE LINE # 69
CLR P0_2
?C0012:
; SK=1;
; SOURCE LINE # 70
SETB P0_1
; SK=0;
; SOURCE LINE # 71
CLR P0_1
; write_data=(write_data<<1);
; SOURCE LINE # 72
MOV A,write_data?347
ADD A,ACC
MOV write_data?347,A
; }
; SOURCE LINE # 73
INC R7
CJNE R7,#00H,?C0024
INC R6
?C0024:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0008
?C0009:
; check_busy();
; SOURCE LINE # 74
LCALL check_busy
; write_disable();
; SOURCE LINE # 75
LJMP write_disable
; END OF _write_byte
; }
; //
; void write_command(int command)
RSEG ?PR?_write_command?93C66
_write_command:
USING 0
; SOURCE LINE # 78
;---- Variable 'command?450' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 79
; int i;
; command=(command<<ShiftBit);
; SOURCE LINE # 81
MOV A,R7
SWAP A
MOV R0,A
ANL A,#0FH
XCH A,R0
XRL A,R0
MOV R7,A
MOV A,R6
SWAP A
ANL A,#0F0H
ORL A,R0
MOV R6,A
; for(i=0;i<12;i++) {
; SOURCE LINE # 82
;---- Variable 'i?451' assigned to Register 'R4/R5' ----
CLR A
MOV R5,A
MOV R4,A
?C0014:
; if(command & 0x8000)
; SOURCE LINE # 83
MOV A,R6
JNB ACC.7,?C0017
; DI=1;
; SOURCE LINE # 84
SETB P0_2
SJMP ?C0018
?C0017:
; else
; DI=0;
; SOURCE LINE # 86
CLR P0_2
?C0018:
; SK=1;
; SOURCE LINE # 87
SETB P0_1
; SK=0;
; SOURCE LINE # 88
CLR P0_1
; command=(command<<1);
; SOURCE LINE # 89
MOV A,R7
ADD A,ACC
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
; }
; SOURCE LINE # 90
INC R5
CJNE R5,#00H,?C0025
INC R4
?C0025:
MOV A,R5
XRL A,#0CH
ORL A,R4
JNZ ?C0014
; }
; SOURCE LINE # 91
?C0019:
RET
; END OF _write_command
; //
; void check_busy(void)
RSEG ?PR?check_busy?93C66
check_busy:
; SOURCE LINE # 93
; {
; SOURCE LINE # 94
; CS=0;
; SOURCE LINE # 95
CLR P0_0
; CS=1;
; SOURCE LINE # 96
SETB P0_0
?C0020:
; while(DO==0);
; SOURCE LINE # 97
JNB P0_3,?C0020
; }
; SOURCE LINE # 98
?C0022:
RET
; END OF check_busy
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -