📄 7279a_p1.lst
字号:
A51 MACRO ASSEMBLER 7279A_P1 07/08/2004 05:56:08 PAGE 1
MACRO ASSEMBLER A51 V7.08a
OBJECT MODULE PLACED IN .\Output\7279A_P1.obj
ASSEMBLER INVOKED BY: M:\Keil\C51\BIN\A51.EXE 7279A_P1.A51 SET(SMALL) DEBUG PRINT(.\List\7279A_P1.lst) OBJECT(.\Output\7
279A_P1.obj) EP
LOC OBJ LINE SOURCE
1
2 ;********************************************************
3 ; RAM 定义
4 ;********************************************************
5 VAR1 SEGMENT DATA
6
7
---- 8 RSEG VAR1
0000 9 BIT_COUNT: DS 1
0001 10 TIMER: DS 1
0002 11 TIMER1: DS 1
0003 12 TEN: DS 1
0004 13 DATA_IN: DS 1
0005 14 DATA_OUT: DS 1
15
16 ;********************************************************
17 ; I/O 口定义
18 ;********************************************************
19
0090 20 DAT BIT P1.0
0091 21 KEY BIT P1.1
0092 22 CS BIT P1.2
0093 23 CLK BIT P1.3
24
25
26 ; FUNCTION HD7279_init (BEGIN)
27
28 PUBLIC HD7279_init
29 HD7279_initP SEGMENT CODE
---- 30 RSEG HD7279_initP
0000 7590BF 31 HD7279_init: MOV P1,#10111111B
0003 750032 F 32 MOV TIMER,#50
33
0006 7500FF F 34 START_DELAY: MOV TIMER1,#255
0009 D500FD F 35 START_DELAY1: DJNZ TIMER1,START_DELAY1
000C D500F7 F 36 DJNZ TIMER,START_DELAY
000F 7500A4 F 37 MOV DATA_OUT,#10100100B
0012 120000 F 38 CALL SEND
0015 D292 39 SETB CS
40
0017 D291 41 SETB KEY ;!!!!!*****P1,P2,P3口读前先置1
42
0019 22 43 RET
44
45 ; FUNCTION HD7279_init (END)
46
47 ; FUNCTION _HD7279_disp (BEGIN)
48
49 PUBLIC _HD7279_disp
50 HD7279_dispP SEGMENT CODE
---- 51 RSEG HD7279_dispP
0000 D292 52 _HD7279_disp: SETB CS
53
0002 75E008 54 MOV ACC,#8
0005 75F087 55 MOV B,#10000111B ;!!!!!下载数据且按方式0译码
56
0008 C0E0 57 HD7279_D_LOOP: PUSH ACC
A51 MACRO ASSEMBLER 7279A_P1 07/08/2004 05:56:08 PAGE 2
000A 85F000 F 58 MOV DATA_OUT,B
000D 120000 F 59 CALL SEND
60
0010 8700 F 61 MOV DATA_OUT,@R1
0012 120000 F 62 CALL SEND
63
0015 15F0 64 DEC B
0017 09 65 INC R1
0018 D0E0 66 POP ACC
001A D5E0EB 67 DJNZ ACC,HD7279_D_LOOP
68
001D D292 69 SETB CS
001F 22 70 RET
71
72 ; FUNCTION _HD7279_disp (END)
73
74
75 ; FUNCTION _HD7279_DK (BEGIN)
76
77 PUBLIC _HD7279_DK
78 HD7279_DKP SEGMENT CODE
---- 79 RSEG HD7279_DKP
0000 D292 80 _HD7279_DK: SETB CS
81
0002 750088 F 82 MOV DATA_OUT,#10001000B
0005 120000 F 83 CALL SEND
84
0008 8F00 F 85 MOV DATA_OUT,R7
000A 120000 F 86 CALL SEND
87
000D D292 88 SETB CS
000F 22 89 RET
90
91 ; FUNCTION _HD7279_DK (END)
92
93
94 ; FUNCTION HD7279_GETKEY (BEGIN)
95
96 PUBLIC HD7279_GETKEY
97 HD7279_GETKEYP SEGMENT CODE
---- 98 RSEG HD7279_GETKEYP
0000 D292 99 HD7279_GETKEY: SETB CS
0002 750015 F 100 MOV DATA_OUT,#00010101B
0005 120000 F 101 CALL SEND
0008 120000 F 102 CALL RECEIVE
000B D292 103 SETB CS
104
000D AF00 F 105 MOV R7,DATA_IN
106
000F 22 107 RET
108 ; FUNCTION HD7279_getkey (END)
109
110
111
112 HD7279_FUNCTIONP SEGMENT CODE
---- 113 RSEG HD7279_FUNCTIONP
114 ;*****************************************************
115 ; 发送一个字节到HD7279,高位在前
116 ;*****************************************************
117
0000 750008 F 118 SEND: MOV BIT_COUNT,#8
0003 C292 119 CLR CS
0005 120000 F 120 CALL LONG_DELAY
0008 8500E0 F 121 SEND_LOOP: MOV ACC,DATA_OUT
000B A2E7 122 MOV C,ACC.7
123 ;MOV C,DATA_OUT.7
A51 MACRO ASSEMBLER 7279A_P1 07/08/2004 05:56:08 PAGE 3
124
000D 9290 125 MOV DAT,C
000F D293 126 SETB CLK
0011 E500 F 127 MOV A,DATA_OUT
0013 23 128 RL A
0014 F500 F 129 MOV DATA_OUT,A
0016 120000 F 130 CALL SHORT_DELAY
0019 C293 131 CLR CLK
001B 120000 F 132 CALL SHORT_DELAY
001E D500E7 F 133 DJNZ BIT_COUNT,SEND_LOOP
0021 C290 134 CLR DAT
0023 22 135 RET
136
137 ;******************************************************
138 ; 从HD7279接收一个字节,高位在前
139 ;******************************************************
140
0024 750008 F 141 RECEIVE: MOV BIT_COUNT,#8
0027 D290 142 SETB DAT
143
0029 120000 F 144 CALL LONG_DELAY
002C D293 145 RECEIVE_LOOP: SETB CLK
002E 120000 F 146 CALL SHORT_DELAY
0031 E500 F 147 MOV A,DATA_IN
0033 23 148 RL A
0034 F500 F 149 MOV DATA_IN,A
0036 A290 150 MOV C,DAT
151
0038 92E0 152 MOV ACC.0,C
003A 85E000 F 153 MOV DATA_IN,ACC
154 ;MOV DATA_IN.0,C
003D C293 155 CLR CLK
003F 120000 F 156 CALL SHORT_DELAY
0042 D500E7 F 157 DJNZ BIT_COUNT,RECEIVE_LOOP
0045 C290 158 CLR DAT
0047 22 159 RET
160
161 ;*******************************************************
162 ; 延时子程序
163 ;*******************************************************
164
0048 750019 F 165 LONG_DELAY: MOV TIMER,#25
004B D500FD F 166 DELAY_LOOP: DJNZ TIMER,DELAY_LOOP
004E 22 167 RET
168
004F 750004 F 169 SHORT_DELAY: MOV TIMER,#4
0052 D500FD F 170 SHORT_LOOP: DJNZ TIMER,SHORT_LOOP
0055 22 171 RET
172
173
174 END
A51 MACRO ASSEMBLER 7279A_P1 07/08/2004 05:56:08 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
BIT_COUNT. . . . . D ADDR 0000H R SEG=VAR1
CLK. . . . . . . . B ADDR 0090H.3 A
CS . . . . . . . . B ADDR 0090H.2 A
DAT. . . . . . . . B ADDR 0090H.0 A
DATA_IN. . . . . . D ADDR 0004H R SEG=VAR1
DATA_OUT . . . . . D ADDR 0005H R SEG=VAR1
DELAY_LOOP . . . . C ADDR 004BH R SEG=HD7279_FUNCTIONP
HD7279_DISPP . . . C SEG 0020H REL=UNIT
HD7279_DKP . . . . C SEG 0010H REL=UNIT
HD7279_D_LOOP. . . C ADDR 0008H R SEG=HD7279_DISPP
HD7279_FUNCTIONP . C SEG 0056H REL=UNIT
HD7279_GETKEY. . . C ADDR 0000H R SEG=HD7279_GETKEYP
HD7279_GETKEYP . . C SEG 0010H REL=UNIT
HD7279_INIT. . . . C ADDR 0000H R SEG=HD7279_INITP
HD7279_INITP . . . C SEG 001AH REL=UNIT
KEY. . . . . . . . B ADDR 0090H.1 A
LONG_DELAY . . . . C ADDR 0048H R SEG=HD7279_FUNCTIONP
P1 . . . . . . . . D ADDR 0090H A
RECEIVE. . . . . . C ADDR 0024H R SEG=HD7279_FUNCTIONP
RECEIVE_LOOP . . . C ADDR 002CH R SEG=HD7279_FUNCTIONP
SEND . . . . . . . C ADDR 0000H R SEG=HD7279_FUNCTIONP
SEND_LOOP. . . . . C ADDR 0008H R SEG=HD7279_FUNCTIONP
SHORT_DELAY. . . . C ADDR 004FH R SEG=HD7279_FUNCTIONP
SHORT_LOOP . . . . C ADDR 0052H R SEG=HD7279_FUNCTIONP
START_DELAY. . . . C ADDR 0006H R SEG=HD7279_INITP
START_DELAY1 . . . C ADDR 0009H R SEG=HD7279_INITP
TEN. . . . . . . . D ADDR 0003H R SEG=VAR1
TIMER. . . . . . . D ADDR 0001H R SEG=VAR1
TIMER1 . . . . . . D ADDR 0002H R SEG=VAR1
VAR1 . . . . . . . D SEG 0006H REL=UNIT
_HD7279_DISP . . . C ADDR 0000H R SEG=HD7279_DISPP
_HD7279_DK . . . . C ADDR 0000H R SEG=HD7279_DKP
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -