⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.s

📁 AVR单片机 C语言程序设计经典实用
💻 S
📖 第 1 页 / 共 2 页
字号:
; {
	.dbline 135
; 	 static INT8U TimeCount = 0;
;     //Clear Timer1 OCIF Flag
; 		TIFR  |= 0x10;
	in R24,0x38
	ori R24,16
	out 0x38,R24
	.dbline 136
;     TCNT1  = 0x00;
	clr R2
	clr R3
	out 0x2d,R3
	out 0x2c,R2
	.dbline 137
;     if(ControllerMode == cSelfTestMode)
	lds R2,_ControllerMode
	tst R2
	breq X4
	xjmp L37
X4:
	.dbline 138
;     {
	.dbline 139
;         TimeCount++;
	lds R24,L36
	subi R24,255    ; addi 1
	sts L36,R24
	.dbline 140
;         if(TimeCount == 1)
	cpi R24,1
	brne L39
	.dbline 141
;         {
	.dbline 142
;             LED_ON_OFF(cR_LED_V,cLED_ON);
	ldi R18,1
	clr R16
	xcall _LED_ON_OFF
	.dbline 143
;             LED_ON_OFF(cG_LED_V,cLED_ON);
	ldi R18,1
	ldi R16,2
	xcall _LED_ON_OFF
	.dbline 144
;             LED_ON_OFF(cY_LED_V,cLED_ON);
	ldi R18,1
	ldi R16,1
	xcall _LED_ON_OFF
	.dbline 145
; 			}
	xjmp L38
L39:
	.dbline 146
; 			else if(TimeCount == 2)
	lds R24,L36
	cpi R24,2
	brne L41
	.dbline 147
; 			{
	.dbline 148
;             mSet_Data_V(0xFF);
	ldi R24,255
	out 0x1b,R24
	.dbline 149
;             mSelect_VA();
	in R24,0x18
	andi R24,207
	out 0x18,R24
	.dbline 150
;         }
	xjmp L38
L41:
	.dbline 151
;         else if(TimeCount == 3)
	lds R24,L36
	cpi R24,3
	brne L43
	.dbline 152
;         {
	.dbline 153
;             LED_ON_OFF(cR_LED_H,cLED_ON);
	ldi R18,1
	ldi R16,3
	xcall _LED_ON_OFF
	.dbline 154
;             LED_ON_OFF(cG_LED_H,cLED_ON);
	ldi R18,1
	ldi R16,5
	xcall _LED_ON_OFF
	.dbline 155
;             LED_ON_OFF(cY_LED_H,cLED_ON);
	ldi R18,1
	ldi R16,4
	xcall _LED_ON_OFF
	.dbline 156
; 			}
	xjmp L38
L43:
	.dbline 157
;         else if(TimeCount == 4)
	lds R24,L36
	cpi R24,4
	brne L45
	.dbline 158
; 			{
	.dbline 159
; 			    mSet_Data_H(0xFF);
	ldi R24,255
	out 0x12,R24
	.dbline 160
;             mSelect_HA();
	in R24,0x18
	andi R24,63
	out 0x18,R24
	.dbline 161
;         }
	xjmp L38
L45:
	.dbline 162
;         else if(TimeCount == 5)
	lds R24,L36
	cpi R24,5
	brne L47
	.dbline 163
;         {
	.dbline 164
;             LED_ON_OFF(cR_LED_V,cLED_OFF);
	clr R18
	clr R16
	xcall _LED_ON_OFF
	.dbline 165
;             LED_ON_OFF(cG_LED_V,cLED_OFF);
	clr R18
	ldi R16,2
	xcall _LED_ON_OFF
	.dbline 166
;             LED_ON_OFF(cY_LED_V,cLED_OFF);
	clr R18
	ldi R16,1
	xcall _LED_ON_OFF
	.dbline 167
; 			}
	xjmp L38
L47:
	.dbline 168
; 			else if(TimeCount == 6)
	lds R24,L36
	cpi R24,6
	brne L49
	.dbline 169
; 			{
	.dbline 170
; 				mSelect_VN();
	in R24,0x18
	ori R24,48
	out 0x18,R24
	.dbline 171
; 			}
	xjmp L38
L49:
	.dbline 172
; 			else if(TimeCount == 7)
	lds R24,L36
	cpi R24,7
	brne L51
	.dbline 173
; 			{
	.dbline 174
; 				LED_ON_OFF(cR_LED_H,cLED_OFF);
	clr R18
	ldi R16,3
	xcall _LED_ON_OFF
	.dbline 175
;             LED_ON_OFF(cG_LED_H,cLED_OFF);
	clr R18
	ldi R16,5
	xcall _LED_ON_OFF
	.dbline 176
;             LED_ON_OFF(cY_LED_H,cLED_OFF);
	clr R18
	ldi R16,4
	xcall _LED_ON_OFF
	.dbline 177
;         }
	xjmp L38
L51:
	.dbline 178
; 			else if(TimeCount == 8)
	lds R24,L36
	cpi R24,8
	brne L53
	.dbline 179
; 			{
	.dbline 180
; 			 	mSelect_HN();
	in R24,0x18
	ori R24,192
	out 0x18,R24
	.dbline 181
; 			}
	xjmp L38
L53:
	.dbline 182
; 			else if(TimeCount == 9)
	lds R24,L36
	cpi R24,9
	breq X5
	xjmp L38
X5:
	.dbline 183
; 			{
	.dbline 184
; 				TimeCount = 0;    
	clr R2
	sts L36,R2
	.dbline 185
;             ControllerMode = cNormalMode;
	ldi R24,1
	sts _ControllerMode,R24
	.dbline 186
;             SetTrafficStatus(cTraffic_V,cAllow);
	ldi R18,3
	clr R16
	xcall _SetTrafficStatus
	.dbline 187
;             SetTrafficStatus(cTraffic_H,cForbidden);
	ldi R18,1
	ldi R16,1
	xcall _SetTrafficStatus
	.dbline 188
;         }
	.dbline 189
;     }
	xjmp L38
L37:
	.dbline 190
;     else if(ControllerMode == cNormalMode)
	lds R24,_ControllerMode
	cpi R24,1
	breq X6
	xjmp L57
X6:
	.dbline 191
;     {
	.dbline 192
;         if(TrafficStatus_V == cAllow)
	lds R24,_TrafficStatus_V
	cpi R24,3
	brne L59
	.dbline 193
;         {
	.dbline 194
;             if(Time_V-- == 0)
	lds R2,_Time_V
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_V,R24
	tst R2
	brne L60
	.dbline 195
;             {
	.dbline 196
;                 SetTrafficStatus(cTraffic_V,cBuffer1);
	ldi R18,2
	clr R16
	xcall _SetTrafficStatus
	.dbline 197
;             }
	.dbline 198
;         }
	xjmp L60
L59:
	.dbline 199
;         else if(TrafficStatus_V == cBuffer1)
	lds R24,_TrafficStatus_V
	cpi R24,2
	brne L63
	.dbline 200
;         {
	.dbline 201
;             if(Time_V-- == 0)
	lds R2,_Time_V
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_V,R24
	tst R2
	brne L64
	.dbline 202
;             {
	.dbline 203
;                 SetTrafficStatus(cTraffic_V,cForbidden);
	ldi R18,1
	clr R16
	xcall _SetTrafficStatus
	.dbline 204
;             } 
	.dbline 205
;         }
	xjmp L64
L63:
	.dbline 206
;         else if(TrafficStatus_V == cForbidden)
	lds R24,_TrafficStatus_V
	cpi R24,1
	brne L67
	.dbline 207
;         {
	.dbline 208
;             if(Time_V-- == 0)
	lds R2,_Time_V
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_V,R24
	tst R2
	brne L68
	.dbline 209
;             {
	.dbline 210
;                 SetTrafficStatus(cTraffic_V,cBuffer2);
	ldi R18,4
	clr R16
	xcall _SetTrafficStatus
	.dbline 211
;             } 
	.dbline 212
;         }
	xjmp L68
L67:
	.dbline 213
; 			else if(TrafficStatus_V == cBuffer2)
	lds R24,_TrafficStatus_V
	cpi R24,4
	brne L71
	.dbline 214
; 			{
	.dbline 215
; 			 	 if(Time_V-- == 0)
	lds R2,_Time_V
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_V,R24
	tst R2
	brne L73
	.dbline 216
;             {
	.dbline 217
;                 SetTrafficStatus(cTraffic_V,cAllow);
	ldi R18,3
	clr R16
	xcall _SetTrafficStatus
	.dbline 218
;             } 
L73:
	.dbline 219
;         }
L71:
L68:
L64:
L60:
	.dbline 221
; 			
;         if(TrafficStatus_H == cAllow)
	lds R24,_TrafficStatus_H
	cpi R24,3
	brne L75
	.dbline 222
;         {
	.dbline 223
;             if(Time_H-- == 0)
	lds R2,_Time_H
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_H,R24
	tst R2
	brne L76
	.dbline 224
;             {
	.dbline 225
;                 SetTrafficStatus(cTraffic_H,cBuffer1);
	ldi R18,2
	ldi R16,1
	xcall _SetTrafficStatus
	.dbline 226
;             }
	.dbline 227
;         }
	xjmp L76
L75:
	.dbline 228
;         else if(TrafficStatus_H == cBuffer1)
	lds R24,_TrafficStatus_H
	cpi R24,2
	brne L79
	.dbline 229
;         {
	.dbline 230
;             if(Time_H-- == 0)
	lds R2,_Time_H
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_H,R24
	tst R2
	brne L80
	.dbline 231
;             {
	.dbline 232
;                 SetTrafficStatus(cTraffic_H,cForbidden);
	ldi R18,1
	ldi R16,1
	xcall _SetTrafficStatus
	.dbline 233
;             } 
	.dbline 234
;         }
	xjmp L80
L79:
	.dbline 235
;         else if(TrafficStatus_H == cForbidden)
	lds R24,_TrafficStatus_H
	cpi R24,1
	brne L83
	.dbline 236
;         {
	.dbline 237
;             if(Time_H-- == 0)
	lds R2,_Time_H
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_H,R24
	tst R2
	brne L84
	.dbline 238
;             {
	.dbline 239
;                 SetTrafficStatus(cTraffic_H,cBuffer2);
	ldi R18,4
	ldi R16,1
	xcall _SetTrafficStatus
	.dbline 240
;             } 
	.dbline 241
;         }
	xjmp L84
L83:
	.dbline 242
; 			else if(TrafficStatus_H == cBuffer2)
	lds R24,_TrafficStatus_H
	cpi R24,4
	brne L87
	.dbline 243
;         {
	.dbline 244
;             if(Time_H-- == 0)
	lds R2,_Time_H
	clr R3
	mov R24,R2
	subi R24,1
	sts _Time_H,R24
	tst R2
	brne L89
	.dbline 245
;             {
	.dbline 246
;                 SetTrafficStatus(cTraffic_H,cAllow);
	ldi R18,3
	ldi R16,1
	xcall _SetTrafficStatus
	.dbline 247
;             } 
L89:
	.dbline 248
;         }
L87:
L84:
L80:
L76:
	.dbline 249
;     }
L57:
L38:
	.dbline -2
	.dbline 250
; }    
L35:
	xcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\交通灯控制系统设计\main.c
_Time_H::
	.blkb 1
	.dbsym e Time_H _Time_H c
_Time_V::
	.blkb 1
	.dbsym e Time_V _Time_V c
_TrafficStatus_H::
	.blkb 1
	.dbsym e TrafficStatus_H _TrafficStatus_H c
_TrafficStatus_V::
	.blkb 1
	.dbsym e TrafficStatus_V _TrafficStatus_V c
_ControllerMode::
	.blkb 1
	.dbsym e ControllerMode _ControllerMode c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -