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

📄 drive.s

📁 LED显示面板
💻 S
📖 第 1 页 / 共 2 页
字号:
	.module drive.c
	.area text(rom, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
_addr_led7::
	.blkb 2
	.area idata
	.word 8448
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.word 10496
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.word 9472
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.word 11520
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.word 8960
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.word 11008
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.dbsym e addr_led7 _addr_led7 A[12:6]i
_led7_data::
	.blkb 2
	.area idata
	.byte 192,249
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 164,176
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 153,146
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 130,248
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 128,144
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 134,136
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 255,200
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 142,134
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.blkb 2
	.area idata
	.byte 175,163
	.area data(ram, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.dbsym e led7_data _led7_data A[18:18]c
	.area text(rom, con, rel)
	.dbfile D:\报警系统设计资料\报警系统软件\测量模块基于CAN的系统网程序\CAN网可配置型报警灯板程序\drive.c
	.dbfunc e get_id _get_id fc
;           temp -> R16
	.even
_get_id::
	.dbline -1
	.dbline 9
; #include "main.h"
; 
; unsigned char out_state;
; unsigned int addr_led7[6] = {0x2100,0x2900,0x2500,0x2d00,0x2300,0x2b00};
; unsigned char led7_data[18]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86,0x88,0xff,0xc8,0x8e,0x86,0xaf,0xa3};
; 
; 
; unsigned char get_id(void)                          //读取拨码开关
; {
	.dbline 11
;  unsigned char temp;
;  PORTC = addr_id;
	ldi R24,240
	out 0x8,R24
	.dbline 12
;  WDR();
	wdr
	.dbline 13
;  asm("nop");
	nop
	.dbline 14
;  asm("nop");
	nop
	.dbline 15
;  asm("nop");
	nop
	.dbline 16
;  asm("nop");
	nop
	.dbline 17
;  asm("nop");
	nop
	.dbline 18
;  asm("nop");
	nop
	.dbline 19
;  temp = PINB;
	in R16,0x3
	.dbline 20
;  temp = ~(temp);
	com R16
	.dbline 21
;  temp = temp&0x7f;
	andi R16,127
	.dbline 22
;  return temp;
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r temp 16 c
	.dbend
	.dbfunc e buzzer_on _buzzer_on fV
	.even
_buzzer_on::
	.dbline -1
	.dbline 27
; }
; 
; 
; void buzzer_on(void)                              //蜂鸣器启动函数
; {
	.dbline 28
; WDR();
	wdr
	.dbline 29
; out_state|=0x01;
	lds R24,_out_state
	ori R24,1
	sts _out_state,R24
	.dbline 30
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 32
;  
; PORTE = (out_state<<2);
	lds R2,_out_state
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 33
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 34
;  asm("nop");
	nop
	.dbline 35
;  asm("nop");
	nop
	.dbline 36
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L3:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e buzzer_off _buzzer_off fV
	.even
_buzzer_off::
	.dbline -1
	.dbline 41
; }
; 
; 
; void buzzer_off(void)                           //蜂鸣器关闭函数
; {
	.dbline 42
; WDR();
	wdr
	.dbline 43
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 44
; out_state&=0xfe;
	lds R24,_out_state
	andi R24,254
	sts _out_state,R24
	.dbline 45
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 46
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 47
;  asm("nop");
	nop
	.dbline 48
;  asm("nop");
	nop
	.dbline 49
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay1_on _relay1_on fV
	.even
_relay1_on::
	.dbline -1
	.dbline 56
; }
; 
; 
; 
; 
; void relay1_on(void)                          //继电器1打开函数
; {
	.dbline 57
; WDR();
	wdr
	.dbline 58
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 59
; out_state|=0x02;
	lds R24,_out_state
	ori R24,2
	sts _out_state,R24
	.dbline 60
;  PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 61
;  PORTD |= 0x80;
	sbi 0xb,7
	.dbline 62
;  asm("nop");
	nop
	.dbline 63
;  asm("nop");
	nop
	.dbline 64
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay1_off _relay1_off fV
	.even
_relay1_off::
	.dbline -1
	.dbline 69
; }
; 
; 
; void relay1_off(void)                        //继电器1关闭函数
; {
	.dbline 70
; WDR();
	wdr
	.dbline 71
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 72
; out_state&=0xfd;
	lds R24,_out_state
	andi R24,253
	sts _out_state,R24
	.dbline 73
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 74
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 75
;  asm("nop");
	nop
	.dbline 76
;  asm("nop");
	nop
	.dbline 77
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay2_on _relay2_on fV
	.even
_relay2_on::
	.dbline -1
	.dbline 82
; }
; 
; 
; void relay2_on(void)                         //继电器2打开函数
; {
	.dbline 83
; WDR();
	wdr
	.dbline 84
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 85
; out_state|=0x04;
	lds R24,_out_state
	ori R24,4
	sts _out_state,R24
	.dbline 86
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 87
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 88
;  asm("nop");
	nop
	.dbline 89
;  asm("nop");
	nop
	.dbline 90
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L7:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay2_off _relay2_off fV
	.even
_relay2_off::
	.dbline -1
	.dbline 94
; }
; 
; void relay2_off(void)                        //继电器2关闭函数
; {
	.dbline 95
; WDR();
	wdr
	.dbline 96
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 97
; out_state&=~(0x04);
	lds R24,_out_state
	andi R24,251
	sts _out_state,R24
	.dbline 98
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 99
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 100
;  asm("nop");
	nop
	.dbline 101
;  asm("nop");
	nop
	.dbline 102
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay3_on _relay3_on fV
	.even
_relay3_on::
	.dbline -1
	.dbline 106
; }
; 
; void relay3_on(void)                        //继电器3打开函数
; {
	.dbline 107
; WDR();
	wdr
	.dbline 108
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 109
; out_state|=0x08;
	lds R24,_out_state
	ori R24,8
	sts _out_state,R24
	.dbline 110
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 111
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 112
;  asm("nop");
	nop
	.dbline 113
;  asm("nop");
	nop
	.dbline 114
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay3_off _relay3_off fV
	.even
_relay3_off::
	.dbline -1
	.dbline 118
; }
; 
; void relay3_off(void)                       //继电器3关闭函数
; {
	.dbline 119
; WDR();
	wdr
	.dbline 120
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 121
; out_state&=~(0x08);
	lds R24,_out_state
	andi R24,247
	sts _out_state,R24
	.dbline 122
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 123
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 124
;  asm("nop");
	nop
	.dbline 125
;  asm("nop");
	nop
	.dbline 126
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay4_on _relay4_on fV
	.even
_relay4_on::
	.dbline -1
	.dbline 130
; }
; 
; void relay4_on(void)                        //继电器4打开函数
; {
	.dbline 131
; WDR();
	wdr
	.dbline 132
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 133
; out_state|=0x10;
	lds R24,_out_state
	ori R24,16
	sts _out_state,R24
	.dbline 134
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 135
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 136
;  asm("nop");
	nop
	.dbline 137
;  asm("nop");
	nop
	.dbline 138
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L11:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay4_off _relay4_off fV
	.even
_relay4_off::
	.dbline -1
	.dbline 142
; }
; 
; void relay4_off(void)                       //继电器4关闭函数
; {
	.dbline 143
; WDR();
	wdr
	.dbline 144
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 145
; out_state&=~(0x10);
	lds R24,_out_state
	andi R24,239
	sts _out_state,R24
	.dbline 146
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 147
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 148
;  asm("nop");
	nop
	.dbline 149
;  asm("nop");
	nop
	.dbline 150
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L12:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay5_on _relay5_on fV
	.even
_relay5_on::
	.dbline -1
	.dbline 154
; }
; 
; void relay5_on(void)                       //继电器5打开函数
; {
	.dbline 155
; WDR();
	wdr
	.dbline 156
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 157
; out_state|=0x20;
	lds R24,_out_state
	ori R24,32
	sts _out_state,R24
	.dbline 158
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 159
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 160
;  asm("nop");
	nop
	.dbline 161
;  asm("nop");
	nop
	.dbline 162
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L13:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay5_off _relay5_off fV
	.even
_relay5_off::
	.dbline -1
	.dbline 166
; }
; 
; void relay5_off(void)                      //继电器5关闭函数        
; {
	.dbline 167
; WDR();
	wdr
	.dbline 168
; PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 169
; out_state&=~(0x20);
	lds R24,_out_state
	andi R24,223
	sts _out_state,R24
	.dbline 170
; PORTE = (out_state<<2);
	mov R2,R24
	lsl R2
	lsl R2
	out 0xe,R2
	.dbline 171
; PORTD |= 0x80;
	sbi 0xb,7
	.dbline 172
;  asm("nop");
	nop
	.dbline 173
;  asm("nop");
	nop
	.dbline 174
; PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L14:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e relay_out_reset _relay_out_reset fV
	.even
_relay_out_reset::
	.dbline -1
	.dbline 178
; }
; 
; void relay_out_reset(void)                //继电器输出复位
; {
	.dbline 179
; WDR();
	wdr
	.dbline 180
;  PORTC&=0xef;
	in R24,0x8
	andi R24,239
	out 0x8,R24
	.dbline 181
;  PORTE = 0x00;
	clr R2
	out 0xe,R2
	.dbline 182
;  PORTG = 0x00;
	out 0x14,R2
	.dbline 183
;  PORTD |= 0x80;
	sbi 0xb,7
	.dbline 184
;  asm("nop");
	nop
	.dbline 185
;  asm("nop");
	nop
	.dbline 186
;  PORTD &= 0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline -2
L15:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e led_off _led_off fV
;       tempdata -> R20
;           temp -> R22
;              i -> R20
	.even
_led_off::
	xcall push_gset3
	mov R20,R16
	.dbline -1
	.dbline 191
; }
; 
; 
; void led_off(unsigned char i)               //LED灯灭
; {
	.dbline 193
; unsigned char temp,tempdata;
; WDR();
	wdr
	.dbline 194
; temp = i>>3;
	mov R22,R20
	lsr R22
	lsr R22
	lsr R22
	.dbline 195
; PORTD&=0x7f;
	in R24,0xb
	andi R24,127
	out 0xb,R24
	.dbline 196
; asm("nop");
	nop
	.dbline 197
; asm("nop");
	nop
	.dbline 198
; switch(temp)
	mov R10,R22
	clr R11
	tst R10
	brne X0
	tst R11
	breq L20
X0:
	movw R24,R10

⌨️ 快捷键说明

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