📄 main.lst
字号:
1 ;SETSCL MACRO
2 ; BS PORT7,SCLBIT
3 ; ENDM;===========Special Registers Define===========
4 0000 INDI EQU 0x0 ; Indirect Register define
5 0001 RTCC EQU 0x1 ;Timer/Counter Register define
6 0002 PC EQU 0x2 ; Pprogra Counter define
7 0003 R3 EQU 0x3 ; Program Status Word define
8 0004 R4 EQU 0x4 ; RAM Select register define
9 0005 PORT5 EQU 0x5 ;Port 5 define
10 0006 PORT6 EQU 0x6 ; Port 6 define
11 0007 PORT7 EQU 0x7 ; Port 7 define
12 0009 FLAG EQU 0X09
13 000A BITBUFFER EQU 0X0A
14 000B ERCODE EQU 0X0B
15 000C RC EQU 0x0C ;
16 000D RD EQU 0x0D ;
17 000E RE EQU 0X0E
18 000F RF EQU 0X0F
19 003F INTF EQU 0x3F ;Interrupt status register define;
20 ;===========Control Registers Define=============
21 0005 IOP5 == 0x5 ; I/O Port Control Register for Port 5
22 0006 IOP6 == 0x6 ; I/O Port Control Register for Port 6
23 0007 IOP7 == 0x7 ; I/O Port Control Register for Port 7
24 000E IOCE == 0xE ;WDT control register
25 000F IOCF == 0xF ; Interrupt Mask Register
26 ;STATUS Register bits define
27 0000 C == 0
28 0001 DC == 1
29 0002 Z == 2
30 0003 P == 3
31 0004 T == 4
32 0005 PS0 == 5
33 0006 PS1 == 6
34 ;Interrupt mask register bits define
35 0000 TCIE == 0
36 0003 EXIE == 3
37 ;Interrupt status bits define
38 0000 TCIF == 0
39 0003 EXIF == 3
40 ;===================
41
42 ;SDABIT EQU 0X04
43 ;SCLBIT EQU 0X05
44
45 ;===========
46 0001 B0T1 == 0X01
47 0002 B1T1 == 0X02
48 0004 B2T1 == 0X04
49 0008 B3T1 == 0X08
50 0010 B4T1 == 0X10
51 0020 B5T1 == 0X20
52 0040 B6T1 == 0X40
53 0080 B7T1 == 0X80
54 ;============
55 0000 ERROR EQU 0
56
57
58
59
60 002E STACK_A EQU 0X2E
61 002F STACK_S EQU 0X2F
62 ;==========IIC=REG==========
63
64 0014 TXBUF EQU 0X14 ; TX buffer
65 0015 RXBUF EQU 0X15 ; RX buffer
66 0016 COUNT EQU 0X16 ; Bit counter
67 0017 SLAVE EQU 0X17
68 0018 ADDR EQU 0X18
69 0019 DATAI EQU 0X19
70 001A DATAO EQU 0X1A
71 001B MOVBUF EQU 0X1B
72 001C TABALPTR EQU 0X1C ;查表指针//***
73 001D TABALCOUNT EQU 0X1D ;查表计数//***
74 001E TABALCOUNT2 EQU 0X1E ;局部变量
75 ;==========IIC=FLAG=========
76 0007 DI EQU 7
77 0006 DO EQU 6
78 0007 SDABIT EQU 7
79 0006 SCLBIT EQU 6
80 ;===========================
81 0020 SYSTEML EQU 0X20
82 0021 KEYFLAG EQU 0X21
83 ;==========KEY=REG==========
84 ;VALPRE EQU 0X22
85 0023 SYSTEMH EQU 0X23
86 0024 KEYTEMP EQU 0X24
87 0025 KEY0CONTBUFER EQU 0X25
88 0026 KEY1CONTBUFER EQU 0X26
89 0027 KEY2CONTBUFER EQU 0X27
90 0028 KEY3CONTBUFER EQU 0X28
91 0029 KEY0CONT EQU 0X29
92 002A KEY1CONT EQU 0X2A
93 002B KEY2CONT EQU 0X2B
94 002C KEY3CONT EQU 0X2C
95 002D FLAGSTATUS EQU 0X2D
96 ;STACK_A EQU 0X2E
97 ;STACK_S EQU 0X2F
98 ;===========KEY=FLAG=======
99
100 ;===========OSD=REG==========
101 0030 TFTBRIGHT EQU 0X30
102 0031 TFTCONTRAST EQU 0X31
103 0032 TFTCOLOR EQU 0X32
104 0033 XSTART EQU 0X33
105 0034 ySTART EQU 0X34
106 ;TFTSTATUS EQU 0X35
107 0036 TABALFLAG EQU 0X36
108 0037 SUBADDR EQU 0X37
109 0038 OINITIALADDR EQU 0X38
110 0039 COLOR EQU 0X39
111 0022 VALPRE EQU 0X22
112 ;===========OSD=FLAG=======
113 ;TFTFOREN EQU 0X04
114 ;INICOLOSE EQU 0X02
115 ;==========================
116 SETSDA MACRO
117 MOV A,@0B00111111 ;CHANGE 11111110TO11111100
118 IOW PORT7
119 BS PORT7,SDABIT
120 ENDM
121 CLRSDA MACRO
122 MOV A,@0B00111111 ;CHANGE 11111110TO11111100
123 IOW PORT7
124 BC PORT7,SDABIT
125 ENDM
126 BITIN MACRO
127 BC PORT7,SCLBIT ; Clock high
128 MOV A,@0B00111111 ; Force SDA line as input
129 ;MOV A,@0B11011111
130 IOW PORT7
131 BS PORT7,SDABIT ; Set SDA for input
132 MOV A,@0B10111111 ; Force SDA line as input
133 ;MOV A,@0B11011111
134 IOW PORT7
135 BC BITBUFFER,DI
136 NOP
137 NOP
138 NOP
139 NOP
140 NOP
141 BS PORT7,SCLBIT ; Clock high
142 NOP
143 NOP
144 NOP
145 NOP
146 NOP
147 NOP
148 NOP
149 NOP
150 NOP
151 ;BIT1:
152 JBC PORT7,SDABIT ; Read SDA pin
153 BS BITBUFFER,DI ; DI = 1
154 ;CALL DELAY ; Delay
155 NOP
156 NOP
157 NOP
158 NOP
159 BC PORT7,SCLBIT ; Return SCL to low
160 ENDM
161 BITOUT MACRO
162 BC PORT7,SCLBIT
163 MOV A,@0B00111111 ; Set SDA, SCL as outputs
164
165 IOW PORT7
166 JBS BITBUFFER,DO
167 JMP $+3;BIT0 ; JMP $+9
168 BS PORT7,SDABIT ; Output bit 0
169 ; MOV A,@2
170 ; JBC PORT7,SDABIT ; Check for error code 2
171 JMP $+2; CLK1; $+6
172 ; JBS FLAG,ERROR ; Remain as first error encountered
173 ; MOV ERCODE,A ; Save error code
174 ; BS FLAG,ERROR ; Set error flag
175 ; JMP CLK1; $+2 ; SDA locked low by device
176 ;BIT0:
177 BC PORT7,SDABIT ; Output bit 0
178 ; Delay
179
180 ;CLK1:
181
182 NOP
183 NOP
184 NOP
185 NOP
186 NOP
187 NOP
188 NOP
189 NOP
190 BS PORT7,SCLBIT
191 ; MOV A,@1 ; Error code 1
192 ;JBC PORT7,SCLBIT ; SCL locked low?
193 ;JMP BIT2;$+4 ; No.
194 ; JBS FLAG,ERROR ; Yes.
195 ;MOV ERCODE,A ; Save error code
196 ; BS FLAG,ERROR ; Set error flag
197 ;BIT2:
198
199 NOP
200 NOP
201 NOP
202 NOP
203 NOP
204 NOP
205 NOP
206 BC PORT7,SCLBIT ; Return SCL to low
207 ENDM
208 ;===========PROGRAM BEGIN===========
209 ORG 0X00
210 00000 1451 JMP MAIN
211 ORG 1
212
213
214 ; MOV STACK_A,A
215 ; SWAP STACK_A
216 ; SWAPA R3
217 ; MOV STACK_S,A
218 ; JBC INTF,TCIF
219 ; JMP INT_TCC
220 ; JBC INTF,EXIF
221 ; JMP INT_EXT
222
223 00001 INTPRO:
224 00001 0011 DISI
225
226
227 ;CLR 0X0F
228 ;CLR 0X3F
229 00002 006E MOV STACK_A,A ;Save the value of A
230 00003 076E SWAP STACK_A
231 00004 0703 SWAPA R3 ;Save the value of STATUS
232 00005 006F MOV STACK_S,A
233 00006 181F MOV A,@0x1F ;Point to page 1
234 00007 02C3 AND R3,A
235 00008 083F BC INTF,TCIF
236
237 00009 0CED JBC FLAGSTATUS,3
238 0000A 140F JMP $+5
239
240 0000B 1800 MOV A,@0
241 0000C 0324 XOR A,KEYTEMP
242 0000D 0C83 JBC R3,Z
243 0000E 1412 JMP $+4
244
245 0000F 0560 INC SYSTEML
246 00010 0C83 JBC R3,Z
247 00011 0563 INC SYSTEMH
248
249
250
251 00012 1800 MOV A,@0X00
252 00013 0005 IOW PORT5
253 00014 180F MOV A,@0X0F
254 00015 0045 MOV PORT5,A
255 00016 0005 IOW PORT5
256
257 00017 0D2D JBC FLAGSTATUS,4
258 00018 1447 JMP DISINC
259
260 00019 12F3 CALL KEYCONRET
261 0001A 0E05 JBS PORT5,0
262 0001B 0569 INC KEY0CONT ; KEY0PROGRAM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -