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

📄 main.s

📁 LED显示面板
💻 S
📖 第 1 页 / 共 2 页
字号:
	ldi R20,1
	ldi R21,0
	ldi R22,40
	ldi R23,2
	sts _id2+1,R21
	sts _id2,R20
	sts _id2+2+1,R23
	sts _id2+2,R22
	.dbline 139
;   id3 = 0x02280002;                                            //接收ID地址
	ldi R20,2
	ldi R21,0
	ldi R22,40
	ldi R23,2
	sts _id3+1,R21
	sts _id3,R20
	sts _id3+2+1,R23
	sts _id3+2,R22
	.dbline 140
;   Pass_Flag <<= 1;
	lsl R2
	sts _Pass_Flag,R2
	.dbline 141
;   WDR();
	wdr
	.dbline 142
;   CANMOBID[0] = id1;
	lds R4,_id1+2
	lds R5,_id1+2+1
	lds R2,_id1
	lds R3,_id1+1
	sts _CANMOBID+1,R3
	sts _CANMOBID,R2
	sts _CANMOBID+2+1,R5
	sts _CANMOBID+2,R4
	.dbline 143
;   CANMOBID[1] = id2;
	lds R4,_id2+2
	lds R5,_id2+2+1
	lds R2,_id2
	lds R3,_id2+1
	sts _CANMOBID+4+1,R3
	sts _CANMOBID+4,R2
	sts _CANMOBID+4+2+1,R5
	sts _CANMOBID+4+2,R4
	.dbline 144
;   CANMOBID[2] = id3;
	movw R2,R20
	movw R4,R22
	sts _CANMOBID+8+1,R3
	sts _CANMOBID+8,R2
	sts _CANMOBID+8+2+1,R5
	sts _CANMOBID+8+2,R4
	.dbline 145
;   CANMOBID[3] = id4;
	lds R4,_id4+2
	lds R5,_id4+2+1
	lds R2,_id4
	lds R3,_id4+1
	sts _CANMOBID+12+1,R3
	sts _CANMOBID+12,R2
	sts _CANMOBID+12+2+1,R5
	sts _CANMOBID+12+2,R4
	.dbline 146
;   CANMOBID[4] = id5;
	lds R4,_id5+2
	lds R5,_id5+2+1
	lds R2,_id5
	lds R3,_id5+1
	sts _CANMOBID+16+1,R3
	sts _CANMOBID+16,R2
	sts _CANMOBID+16+2+1,R5
	sts _CANMOBID+16+2,R4
	.dbline 147
;   CANMOBID[5] = id6;
	lds R4,_id6+2
	lds R5,_id6+2+1
	lds R2,_id6
	lds R3,_id6+1
	sts _CANMOBID+20+1,R3
	sts _CANMOBID+20,R2
	sts _CANMOBID+20+2+1,R5
	sts _CANMOBID+20+2,R4
	.dbline 148
;   if(Pass_Flag!=0x08)
	lds R24,_Pass_Flag
	cpi R24,8
	breq L59
	.dbline 149
;   RESET;
	jmp 0x000
L59:
	.dbline 150
;   WDR();
	wdr
	.dbline 151
;   can_init ();  
	xcall _can_init
	.dbline 152
;   WDR();
	wdr
	.dbline 153
;   XMCRA = 0x80;
	ldi R24,128
	ldi R30,116
	ldi R31,0
	std z+0,R24
	.dbline 154
;   XMCRB = 0x04;
	ldi R24,4
	ldi R30,117
	std z+0,R24
	.dbline 156
;   
;   SEI();
	sei
	xjmp L62
L61:
	.dbline 158
;   while(1)
;   {
	.dbline 159
;      WDR();
	wdr
	.dbline 160
;   rece_led_off;                                               //关闭接收指示灯
	cbi 0x11,0
	.dbline 161
;   send_led_off;                                               //关闭发送指示灯
	cbi 0x11,1
	.dbline 163
;   
;   ID_nu = get_id();                                           //读取拨码开关的值
	xcall _get_id
	sts _ID_nu,R16
	.dbline 165
;                                         
;   if(ID_net!=ID_nu)                                           //拨码有改变则复位
	lds R3,_ID_net
	cp R3,R16
	breq L64
	.dbline 166
;   RESET;
	jmp 0x000
L64:
	.dbline 168
;   
;   key_process();                                           //键盘处理
	xcall _key_process
	.dbline 169
;   channel_process();                                       //通道切换并处理
	xcall _channel_process
	.dbline 170
;   WDR();
	wdr
	.dbline 171
;   led_display();                                           //灯板显示
	xcall _led_display
	.dbline 172
;   WDR();
	wdr
	.dbline 173
;   turn_display(channel,1,pannel_led[channel].displaydata); //7段码显示
	lds R2,_channel
	ldi R24,20
	mul R24,R2
	movw R30,R0
	ldi R24,<_pannel_led+18
	ldi R25,>_pannel_led+18
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	std y+1,R3
	std y+0,R2
	ldi R18,1
	lds R16,_channel
	xcall _turn_display
	.dbline 174
;   WDR();
	wdr
	.dbline 176
;   
;   alarm_out();                                             //报警输出
	xcall _alarm_out
	.dbline 178
;   
;   if(soundoff_flag==on)
	lds R24,_soundoff_flag
	cpi R24,90
	brne L67
	.dbline 179
;   {
	.dbline 180
;   WDR();
	wdr
	.dbline 181
;   soundoff_flag=off;
	ldi R24,165
	sts _soundoff_flag,R24
	.dbline 182
;   buzzer_off();
	xcall _buzzer_off
	.dbline 183
;   relay1_off();
	xcall _relay1_off
	.dbline 184
;   for(i=0;i<48;i++)
	clr R10
	xjmp L72
L69:
	.dbline 185
;  {
	.dbline 186
;  if(pannel_led[i].soundoff==noack)
	ldi R24,20
	mul R24,R10
	movw R30,R0
	ldi R24,<_pannel_led+17
	ldi R25,>_pannel_led+17
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,1
	brne L73
	.dbline 187
;     pannel_led[i].soundoff=acked;           
	ldi R24,20
	mul R24,R10
	movw R30,R0
	ldi R24,<_pannel_led+17
	ldi R25,>_pannel_led+17
	add R30,R24
	adc R31,R25
	ldi R24,2
	std z+0,R24
L73:
	.dbline 188
L70:
	.dbline 184
	inc R10
L72:
	.dbline 184
	mov R24,R10
	cpi R24,48
	brlo L69
	.dbline 189
;  }
;   }
L67:
	.dbline 191
;   
;   if(ack_flag==on)
	lds R24,_ack_flag
	cpi R24,90
	brne L77
	.dbline 192
;   {
	.dbline 193
;   WDR();
	wdr
	.dbline 194
;   ack_flag=off;
	ldi R24,165
	sts _ack_flag,R24
	.dbline 195
;   for(i=0;i<48;i++)
	clr R10
	xjmp L82
L79:
	.dbline 196
;   {
	.dbline 197
;  if(pannel_led[i].state==noack)
	ldi R24,20
	mul R24,R10
	movw R30,R0
	ldi R24,<_pannel_led+13
	ldi R25,>_pannel_led+13
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,1
	brne L83
	.dbline 198
;   pannel_led[i].state=acked;
	ldi R24,20
	mul R24,R10
	movw R30,R0
	ldi R24,<_pannel_led+13
	ldi R25,>_pannel_led+13
	add R30,R24
	adc R31,R25
	ldi R24,2
	std z+0,R24
L83:
	.dbline 199
L80:
	.dbline 195
	inc R10
L82:
	.dbline 195
	mov R24,R10
	cpi R24,48
	brlo L79
	.dbline 200
;   }
;   }
L77:
	.dbline 202
;   
;   if(alarm_flag==on)
	lds R24,_alarm_flag
	cpi R24,90
	brne L87
	.dbline 203
;   {
	.dbline 204
;   alarm_flag=off;
	ldi R24,165
	sts _alarm_flag,R24
	.dbline 205
;   buzzer_on();                            //喇叭输出
	xcall _buzzer_on
	.dbline 206
;   relay1_on();                            //延生输出
	xcall _relay1_on
	.dbline 207
;   }
L87:
	.dbline 210
;   
;   
;   if(alarm_process_flag==on)                               //去抖处理
	lds R24,_alarm_process_flag
	cpi R24,90
	breq X5
	xjmp L89
X5:
	.dbline 211
;   {
	.dbline 212
;   alarm_process_flag=off;
	ldi R24,165
	sts _alarm_process_flag,R24
	.dbline 213
;   for(i=0;i<48;i++)
	clr R10
	xjmp L94
L91:
	.dbline 214
;   {
	.dbline 215
;   if(pannel_led[i].last_state==pannel_led[i].current_state)
	ldi R24,20
	mul R24,R10
	ldi R24,<_pannel_led+14
	ldi R25,>_pannel_led+14
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_pannel_led+15
	ldi R25,>_pannel_led+15
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R3,z+0
	cp R3,R2
	brne L95
	.dbline 216
;         {
	.dbline 217
; 		 pannel_led[i].last_state = pannel_led[i].current_state;
	ldi R24,20
	mul R24,R10
	ldi R24,<_pannel_led+14
	ldi R25,>_pannel_led+14
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_pannel_led+15
	ldi R25,>_pannel_led+15
	movw R30,R0
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 218
; 		 pannel_led[i].state = pannel_led[i].current_state;
	ldi R24,20
	mul R24,R10
	ldi R24,<_pannel_led+14
	ldi R25,>_pannel_led+14
	movw R30,R0
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_pannel_led+13
	ldi R25,>_pannel_led+13
	movw R30,R0
	add R30,R24
	adc R31,R25
	std z+0,R2
	.dbline 219
; 		}
L95:
	.dbline 220
L92:
	.dbline 213
	inc R10
L94:
	.dbline 213
	mov R24,R10
	cpi R24,48
	brsh X6
	xjmp L91
X6:
	.dbline 221
;       }
;     }
L89:
	.dbline 222
L62:
	.dbline 157
	xjmp L61
X4:
	.dbline -2
L53:
	adiw R28,6
	.dbline 0 ; func end
	ret
	.dbsym l tempp 2 L
	.dbsym r i 10 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\main.c
_alarm_flag::
	.blkb 1
	.dbsym e alarm_flag _alarm_flag c
_ack_flag::
	.blkb 1
	.dbsym e ack_flag _ack_flag c
_soundoff_flag::
	.blkb 1
	.dbsym e soundoff_flag _soundoff_flag c
_ted::
	.blkb 1
	.dbsym e ted _ted c
_key_temp3::
	.blkb 1
	.dbsym e key_temp3 _key_temp3 c
_key_temp2::
	.blkb 1
	.dbsym e key_temp2 _key_temp2 c
_key_temp1::
	.blkb 1
	.dbsym e key_temp1 _key_temp1 c
_mode_flag::
	.blkb 1
	.dbsym e mode_flag _mode_flag c
_id6::
	.blkb 4
	.dbsym e id6 _id6 L
_id5::
	.blkb 4
	.dbsym e id5 _id5 L
_id4::
	.blkb 4
	.dbsym e id4 _id4 L
_id3::
	.blkb 4
	.dbsym e id3 _id3 L
_id2::
	.blkb 4
	.dbsym e id2 _id2 L
_id1::
	.blkb 4
	.dbsym e id1 _id1 L
_Pass_Flag::
	.blkb 1
	.dbsym e Pass_Flag _Pass_Flag c
_sysrst::
	.blkb 1
	.dbsym e sysrst _sysrst c
_T3::
	.blkb 1
	.dbsym e T3 _T3 c
_alarm_process_flag::
	.blkb 1
	.dbsym e alarm_process_flag _alarm_process_flag c
_T2::
	.blkb 1
	.dbsym e T2 _T2 c
_RUN::
	.blkb 1
	.dbsym e RUN _RUN c
_channel::
	.blkb 1
	.dbsym e channel _channel c
_T1::
	.blkb 1
	.dbsym e T1 _T1 c
_Time::
	.blkb 1
	.dbsym e Time _Time c
_ID_net::
	.blkb 1
	.dbsym e ID_net _ID_net c
_ID_nu::
	.blkb 1
	.dbsym e ID_nu _ID_nu c
_rece_data::
	.blkb 588
	.dbstruct 0 12 _VCI_CAN_OBJ
	.dbfield 0 ID L
	.dbfield 4 Data A[8:8]c
	.dbend
	.dbsym e rece_data _rece_data A[588:49]S[_VCI_CAN_OBJ]
_msg::
	.blkb 36
	.dbsym e msg _msg A[36:3]S[_VCI_CAN_OBJ]

⌨️ 快捷键说明

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