?? time_relay.lst
字號:
------- FILE NO #1 : time_relay.l -------
Mon May 28 15:17:45 2007
SAM8 Assembler for Reduced Instruction Ver. 2.16T(Win32)
Copyright (c) 2003 Samsung Electronics Co.
--------------------------------------------------------------------
Source File Name : time_relay.SRC
Output File Name : time_relay.o
List File Name : time_relay.l
1
2 ;****************************************
3 ;porgram: 大德思時間繼電器 *
4 ;mcu: sm9454 *
5 ;date: 2007.5.18 *
6 ;****************************************
7 .include "s3c9454.reg"
8 ; 86C4504.REG Copyright (c) 1996 SAMSUNG ELECTRONICS CO.
9
10 .list on
11
12 00 00 sys_zt equ 00h
13 00 01 ADJUST equ 01h ;保存狀態
14 00 02 KEY_DATA equ 02h
15 00 03 KEY_OLD equ 03h
16 00 04 KEY_ENTER equ 04h
17 00 05 KEY_LONG_TEMP equ 05h
18 00 06 T_1MS_TEMP EQU 06H
19 00 07 T_1MS_FLAG equ 07h
20 00 08 T_2MS_TEMP equ 08h ;2ms
21 00 09 T_2MS_FLAG EQU 09H
22 00 0A t_10ms_tmp equ 0Ah ;10ms
23 00 0B T_10MS_FLAG equ 0BH
24 00 0C T_12MS_TEMP EQU 0CH
25 00 0D T_100MS_TEMP equ 0Dh ;100ms
26 00 0E T_100MS_FLAG equ 0Eh ;100ms 標志
27 00 0F T_300MS_TEMP EQU 0FH
28 00 10 T_500MS_TEMP equ 10h
29 00 11 T_500MS_FLAG equ 11h ;500ms 標志
30 00 12 T_1S_TEMP EQU 12H
31 00 13 T_1S_FLAG EQU 13H
32 00 14 T_3S_TEMP EQU 14H
33 00 15 T_3S_FLAG EQU 15H
34 00 16 T_5S_TEMP EQU 16H
35 00 17 T_5S_FLAG EQU 17H
36 00 18 T_1MIN_TEMP EQU 18H
37 00 19 timer_tmp3 equ 19h ;定時時間十位
38 00 1A time_1min equ 1Ah ;1min 存儲器
39 00 1B time_6min equ 1Bh ;6min 存儲器
40 00 1C KEY_TIME equ 1Ch
41 00 1D ram_save1 equ 1Dh ;當3個存儲器全位55h時不清除ram
42 00 1E ram_save2 equ 1Eh
43 00 1F ram_save3 equ 1Fh
44 00 20 KEY_BUF equ 20h
45 00 21 dis_led equ 21h ;led顯示控制
46 00 22 KEY_IN_IN equ 22h ;保壓時間
47 00 23 test_tmp equ 23h
48 00 24 RLT_TEMP equ 24h
49 00 25 DIS_CP1 equ 25h ;顯示切換 0:1位 1:2位 2:3位 3:4位
50 00 26 DIS_DP equ 26h
51 00 27 DIS_GW equ 27h
52 00 28 DIS_SW equ 28h
53 00 29 DIS_BW equ 29h
54 00 2A DIS_BUF_DP equ 2Ah
55 00 2B DIS_BUF_GW equ 2Bh
56 00 2C DIS_BUF_SW equ 2Ch
57 00 2D DIS_BUF_BW equ 2Dh
58 00 2E KEY_DIS_DP EQU 2EH
59 00 2F KEY_DIS_GW EQU 2FH
60 00 30 KEY_DIS_SW EQU 30H
61 00 31 KEY_DIS_BW EQU 31H
62 00 32 KEY_LED equ 32h
63 00 33 KEY_DP_TIME_POSITIVE EQU 33H
64 00 34 KEY_GW_TIME_POSITIVE EQU 34H
65 00 35 KEY_SW_TIME_POSITIVE EQU 35H
66 00 36 KEY_BW_TIME_POSITIVE EQU 36H
67 00 37 KEY_DP_TIME_MINUS EQU 37H
68 00 38 KEY_GW_TIME_MINUS EQU 38H
69 00 39 KEY_SW_TIME_MINUS EQU 39H
70 00 3A KEY_BW_TIME_MINUS EQU 3AH
71 00 3B KEY_DP_TIME_STOP EQU 3BH
72 00 3C KEY_GW_TIME_STOP EQU 3CH
73 00 3D KEY_SW_TIME_STOP EQU 3DH
74 00 3E KEY_BW_TIME_STOP EQU 3EH
75 00 3F SOU1_TEMP equ 3Fh
76 00 40 SOUH1_TEMP equ 40h
77 00 41 SADR equ 41h
78 00 42 SADRH equ 42h
79 00 43 DADR equ 43h
80 00 44 CNT equ 44H
81 00 45 SOU equ 45H
82 00 46 SOUH equ 46H
83 00 47 RLT equ 47H
84 00 48 RLTH equ 48H
85 00 49 TEMP1 equ 49H
86 00 4A TEMP2 equ 4AH
87 00 4B TEMP3 equ 4BH
88 00 4C TEMP4 equ 4CH
89 00 45 TXBUF EQU SOU
90 00 46 RXBUF EQU SOUH
91 00 44 BCOUNT EQU CNT
92 ;*************************flag******************************
93 00 4D KEY_IN equ 4Dh
94 00 4E display_in equ 4Eh
95 00 4F DISPLAY_CNT equ 4Fh
96 00 50 KEY_LONG_EN equ 50h ;長按鍵確認 55h
97 00 51 ad_s equ 51h ;啟動ad
98 00 52 display_new equ 52h ;顯示刷新
99 ;FLASH_FLAG equ 53h ;閃爍標志
100 00 54 flash_cpl equ 54h ;閃爍切換
101 00 55 flash_del equ 55h ;閃爍時間
102 00 56 sys2_ready equ 56h
103 00 57 KEY_TIME_SET EQU 57H
104 00 58 KEY_TIME_COMPARE EQU 58H
105 00 59 DIS_DP_TEMP EQU 59H
106 00 5A DIS_GW_TEMP EQU 5AH
107 00 5B DIS_SW_TEMP EQU 5BH
108 00 5C DIS_BW_TEMP EQU 5CH
109 00 5D KEY_DP_TEMP EQU 5DH
110 00 5E KEY_GW_TEMP EQU 5EH
111 00 5F KEY_SW_TEMP EQU 5FH
112 00 60 KEY_BW_TEMP EQU 60H
113 00 61 KEY_LED_TEMP EQU 61H
114 00 62 KEY_DP1 EQU 62H
115 00 63 KEY_GW1 EQU 63H
116 00 64 KEY_SW1 EQU 64H
117 00 65 KEY_BW1 EQU 65H
118 00 66 KEY_MOV_FLAG EQU 66H
119 00 67 T_500MS_FLAG1 EQU 67H
120 00 68 T_1S_FLAG1 EQU 68H
121 00 69 KEY_DP EQU 69H
122 00 6A KEY_GW EQU 6AH
123 00 6B KEY_SW EQU 6BH
124 00 6C KEY_BW EQU 6CH
125 ;***********************************************************
126 0000 org 0000h
127 0000 0A 2A VECTOR 00h,INT_9454
128
129 003C org 03ch
130 003C 00 db 00h
131 003D 00 db 00h
132 003E E4 db 0E4h
133 003F 00 db 00h
134
135 0100 org 0100h
136
137 0100 RESET
138
139 0100 8F DI ; disable interrupt
140 0101 E6 E7 AA ld P0CONL,#10101010B ; P0.0–P0.7 push-pull output
141 0104 E6 EA 4A ld P2CONH ,#01001010B
142 0107 56 E0 00 AND P0,#00000000B ;關掉數碼管
143 010A E6 E2 08 LD P2,#00001000B ;關發光二極管
144 010D E6 DC A3 ld BTCON ,#10100011B ; Watch-dog disable
145
146
147 ;{
148 0110 0C 00 ld R0 ,#0
149 0112 1C 00 ld R1 ,#0
150 0114 DELAY:
151 ;延時
152 0114 FF nop
153 0115 FF nop
154 0116 FF nop
155 0117 FF nop
156 0118 0E inc R0
157 0119 A6 C0 C8 cp R0 ,#200
158 011C 3D 01 14 JP ULE ,DELAY
159 011F B0 C0 clr R0
160 0121 1E inc R1
161 0122 A6 C1 0A cp R1 ,#10
162 0125 3D 01 14 JP ULE ,DELAY
163 0128 MAIN
164 0128 E6 E8 00 LD P0PND,#00H
165 012B E6 D4 98 ld CLKCON ,#10011000B ; Select non-divided CPU clock
166 012E E6 D9 C0 ld SP,#0C0H ; Stack pointer must be set
167 0131 E6 E6 8A ld P0CONH ,#10001010B
168 0134 E6 E7 AA ld P0CONL,#10101010B ; P0.0–P0.7 push-pull output
169 0137 E6 E0 07 LD P0,#0000111B
170 ;LD P0CONL,#01010101B
171 013A E6 E9 0A ld P1CON ,#00001010B ; P1.0–P1.1 push-pull output
172 013D E6 EA 4A ld P2CONH ,#01001010B
173 0140 E6 EB 95 ld P2CONL ,#10010101B ; P2.0–P2.6 push-pull output
174 0143 46 E1 04 OR P1,#00000100B
175 0146 56 E0 F7 AND P0,#11110111B ;關掉數碼管
176 0149 E6 E2 08 LD P2,#00001000B ;關發光二極管
177 ;--------------<< Timer 0 settings >>
178
179 ;ld T0DATA ,#125 ; CPU at 4 MHz,period(1/f)=250nS
180 ;ld T0CON ,#10001010B ; fOSC/8, Timer 0 interrupt enable interrupt interval = 250uS
181 ;ld P0PND ,#00000010B
182 014C clr_ram:
183 014C 0C 00 ld r0,#0
184 014E clr_ram1:
185 014E B1 C0 clr @r0
186 0150 0E inc r0
187 0151 A6 C0 C0 cp r0,#0c0h
188 0154 ED 01 4E jp nz,clr_ram1
189 ; LD AD_IN,#20H
190 0157 E6 25 0A LD DIS_CP1,#0AH
191 015A E6 4F 18 LD DISPLAY_CNT,#18H
192 015D E6 06 02 ld T_1MS_TEMP,#2
193 0160 E6 18 3C LD T_1MIN_TEMP,#60
194 0163 E6 08 02 ld T_2MS_TEMP,#2
195 0166 E6 0A 05 ld t_10ms_tmp,#5
196 0169 E6 0D 0A ld T_100MS_TEMP,#10
197 016C E6 10 05 LD T_500MS_TEMP,#5
198 016F E6 12 02 LD T_1S_TEMP,#2
199 0172 E6 16 05 LD T_5S_TEMP,#5
200 0175 B0 04 CLR KEY_ENTER
201 0177 E6 07 55 LD T_1MS_FLAG,#55H
202 017A E6 57 01 LD KEY_TIME_SET,#01H
203 ;*******************************接收I2C********************************
204 017D F6 09 51 CALL I2CSTAR
205 0180 E6 45 A0 LD TXBUF,#10100000B
206 0183 F6 09 C3 CALL WRBYT
207 0186 F6 09 A7 CALL CHECK
208 0189 7D 03 51 JP C,TIME
209 018C E6 45 01 LD TXBUF,#00000001B
210 018F F6 09 C3 CALL WRBYT
211 0192 F6 09 A7 CALL CHECK
212 0195 F6 09 51 CALL I2CSTAR
213 0198 E6 45 A1 LD TXBUF,#10100001B
214 019B F6 09 C3 CALL WRBYT
215 019E F6 09 A7 CALL CHECK
216 01A1 7D 03 51 JP C,TIME
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -