?? dh980_icc.lst
字號:
028D 7E8F ANDI R24,0xEF
028E B982 OUT 0x02,R24
028F C0B6 RJMP 0x0346
(0127) case 10:RELAY10_1;break;
0290 B182 IN R24,0x02
0291 7D8F ANDI R24,0xDF
0292 B982 OUT 0x02,R24
0293 C0B2 RJMP 0x0346
(0128) case 11:RELAY11_1;break;
0294 B182 IN R24,0x02
0295 7B8F ANDI R24,0xBF
0296 B982 OUT 0x02,R24
0297 C0AE RJMP 0x0346
(0129) case 12:RELAY12_1;break;
0298 B182 IN R24,0x02
0299 778F ANDI R24,0x7F
029A B982 OUT 0x02,R24
029B C0AA RJMP 0x0346
(0130) case 13:RELAY13_1;break;
029C B384 IN R24,0x14
029D 7F8B ANDI R24,0xFB
029E BB84 OUT 0x14,R24
029F C0A6 RJMP 0x0346
(0131) case 14:RELAY14_1;break;
02A0 B188 IN R24,0x08
02A1 778F ANDI R24,0x7F
02A2 B988 OUT 0x08,R24
02A3 C0A2 RJMP 0x0346
(0132) case 15:RELAY15_1;break;
02A4 B188 IN R24,0x08
02A5 7B8F ANDI R24,0xBF
02A6 B988 OUT 0x08,R24
02A7 C09E RJMP 0x0346
(0133) case 16:RELAY16_1;break;
02A8 B188 IN R24,0x08
02A9 7D8F ANDI R24,0xDF
02AA B988 OUT 0x08,R24
02AB C09A RJMP 0x0346
(0134) case 17:RELAY17_1;break;
02AC B188 IN R24,0x08
02AD 7E8F ANDI R24,0xEF
02AE B988 OUT 0x08,R24
02AF C096 RJMP 0x0346
(0135) case 18:RELAY18_1;break;
02B0 B188 IN R24,0x08
02B1 7F87 ANDI R24,0xF7
02B2 B988 OUT 0x08,R24
02B3 C092 RJMP 0x0346
(0136) case 19:RELAY19_1;break;
02B4 B188 IN R24,0x08
02B5 7F8B ANDI R24,0xFB
02B6 B988 OUT 0x08,R24
02B7 C08E RJMP 0x0346
(0137) case 20:RELAY20_1;break;
02B8 B188 IN R24,0x08
02B9 7F8D ANDI R24,0xFD
02BA B988 OUT 0x08,R24
02BB C08A RJMP 0x0346
(0138) case 21:RELAY21_1;break;
02BC B188 IN R24,0x08
02BD 7F8E ANDI R24,0xFE
02BE B988 OUT 0x08,R24
02BF C086 RJMP 0x0346
(0139) case 22:RELAY22_1;break;
02C0 B384 IN R24,0x14
02C1 7F8D ANDI R24,0xFD
02C2 BB84 OUT 0x14,R24
02C3 C082 RJMP 0x0346
(0140) case 23:RELAY23_1;break;
02C4 B384 IN R24,0x14
02C5 7F8E ANDI R24,0xFE
02C6 BB84 OUT 0x14,R24
02C7 C07E RJMP 0x0346
(0141) case 24:RELAY24_1;break;
02C8 B18B IN R24,0x0B
02C9 778F ANDI R24,0x7F
02CA B98B OUT 0x0B,R24
02CB C07A RJMP 0x0346
(0142) case 25:RELAY25_1;break;
02CC B18B IN R24,0x0B
02CD 7B8F ANDI R24,0xBF
02CE B98B OUT 0x0B,R24
02CF C076 RJMP 0x0346
(0143) case 26:RELAY26_1;break;
02D0 B18B IN R24,0x0B
02D1 7D8F ANDI R24,0xDF
02D2 B98B OUT 0x0B,R24
02D3 C072 RJMP 0x0346
(0144) case 27:RELAY27_1;break;
02D4 B18B IN R24,0x0B
02D5 7E8F ANDI R24,0xEF
02D6 B98B OUT 0x0B,R24
02D7 C06E RJMP 0x0346
(0145) case 28:RELAY28_1;break;
02D8 B18B IN R24,0x0B
02D9 7F87 ANDI R24,0xF7
02DA B98B OUT 0x0B,R24
02DB C06A RJMP 0x0346
(0146) case 29:RELAY29_1;break;
02DC B18B IN R24,0x0B
02DD 7F8B ANDI R24,0xFB
02DE B98B OUT 0x0B,R24
02DF C066 RJMP 0x0346
(0147) case 30:RELAY30_1;break;
02E0 B18B IN R24,0x0B
02E1 7F8D ANDI R24,0xFD
02E2 B98B OUT 0x0B,R24
02E3 C062 RJMP 0x0346
(0148) case 31:RELAY31_1;break;
02E4 B18B IN R24,0x0B
02E5 7F8E ANDI R24,0xFE
02E6 B98B OUT 0x0B,R24
02E7 C05E RJMP 0x0346
(0149) case 32:RELAY32_1;break;
02E8 B384 IN R24,0x14
02E9 7E8F ANDI R24,0xEF
02EA BB84 OUT 0x14,R24
(0150) default:break;
(0151) }
(0152) }
02EB C05A RJMP 0x0346
(0153) else
(0154) {
(0155) switch(n)
02EC 8148 LDD R20,Y+0
02ED 2755 CLR R21
02EE 3041 CPI R20,1
02EF E0E0 LDI R30,0
02F0 075E CPC R21,R30
02F1 F40C BGE 0x02F3
02F2 C053 RJMP 0x0346
02F3 E280 LDI R24,0x20
02F4 E090 LDI R25,0
02F5 1784 CP R24,R20
02F6 0795 CPC R25,R21
02F7 F40C BGE 0x02F9
02F8 C04D RJMP 0x0346
02F9 E002 LDI R16,2
02FA E010 LDI R17,0
02FB 019A MOVW R18,R20
02FC 940E0786 CALL empy16s
02FE 01F8 MOVW R30,R16
02FF E98A LDI R24,0x9A
0300 E090 LDI R25,0
0301 0FE8 ADD R30,R24
0302 1FF9 ADC R31,R25
0303 9005 LPM R0,Z+
0304 9014 LPM R1,0(Z)
0305 01F0 MOVW R30,R0
0306 9409 IJMP
(0156) {
(0157) case 1:RELAY1_0;break;
0307 9A88 SBI 0x11,0
0308 C03D RJMP 0x0346
(0158) case 2:RELAY2_0;break;
0309 9A89 SBI 0x11,1
030A C03B RJMP 0x0346
(0159) case 3:RELAY3_0;break;
030B 9A8A SBI 0x11,2
030C C039 RJMP 0x0346
(0160) case 4:RELAY4_0;break;
030D 9A8B SBI 0x11,3
030E C037 RJMP 0x0346
(0161) case 5:RELAY5_0;break;
030F 9A10 SBI 0x02,0
0310 C035 RJMP 0x0346
(0162) case 6:RELAY6_0;break;
0311 9A11 SBI 0x02,1
0312 C033 RJMP 0x0346
(0163) case 7:RELAY7_0;break;
0313 9A12 SBI 0x02,2
0314 C031 RJMP 0x0346
(0164) case 8:RELAY8_0;break;
0315 9A13 SBI 0x02,3
0316 C02F RJMP 0x0346
(0165) case 9:RELAY9_0;break;
0317 9A14 SBI 0x02,4
0318 C02D RJMP 0x0346
(0166) case 10:RELAY10_0;break;
0319 9A15 SBI 0x02,5
031A C02B RJMP 0x0346
(0167) case 11:RELAY11_0;break;
031B 9A16 SBI 0x02,6
031C C029 RJMP 0x0346
(0168) case 12:RELAY12_0;break;
031D 9A17 SBI 0x02,7
031E C027 RJMP 0x0346
(0169) case 13:RELAY13_0;break;
031F 9AA2 SBI 0x14,2
0320 C025 RJMP 0x0346
(0170) case 14:RELAY14_0;break;
0321 9A47 SBI 0x08,7
0322 C023 RJMP 0x0346
(0171) case 15:RELAY15_0;break;
0323 9A46 SBI 0x08,6
0324 C021 RJMP 0x0346
(0172) case 16:RELAY16_0;break;
0325 9A45 SBI 0x08,5
0326 C01F RJMP 0x0346
(0173) case 17:RELAY17_0;break;
0327 9A44 SBI 0x08,4
0328 C01D RJMP 0x0346
(0174) case 18:RELAY18_0;break;
0329 9A43 SBI 0x08,3
032A C01B RJMP 0x0346
(0175) case 19:RELAY19_0;break;
032B 9A42 SBI 0x08,2
032C C019 RJMP 0x0346
(0176) case 20:RELAY20_0;break;
032D 9A41 SBI 0x08,1
032E C017 RJMP 0x0346
(0177) case 21:RELAY21_0;break;
032F 9A40 SBI 0x08,0
0330 C015 RJMP 0x0346
(0178) case 22:RELAY22_0;break;
0331 9AA1 SBI 0x14,1
0332 C013 RJMP 0x0346
(0179) case 23:RELAY23_0;break;
0333 9AA0 SBI 0x14,0
0334 C011 RJMP 0x0346
(0180) case 24:RELAY24_0;break;
0335 9A5F SBI 0x0B,7
0336 C00F RJMP 0x0346
(0181) case 25:RELAY25_0;break;
0337 9A5E SBI 0x0B,6
0338 C00D RJMP 0x0346
(0182) case 26:RELAY26_0;break;
0339 9A5D SBI 0x0B,5
033A C00B RJMP 0x0346
(0183) case 27:RELAY27_0;break;
033B 9A5C SBI 0x0B,4
033C C009 RJMP 0x0346
(0184) case 28:RELAY28_0;break;
033D 9A5B SBI 0x0B,3
033E C007 RJMP 0x0346
(0185) case 29:RELAY29_0;break;
033F 9A5A SBI 0x0B,2
0340 C005 RJMP 0x0346
(0186) case 30:RELAY30_0;break;
0341 9A59 SBI 0x0B,1
0342 C003 RJMP 0x0346
(0187) case 31:RELAY31_0;break;
0343 9A58 SBI 0x0B,0
0344 C001 RJMP 0x0346
(0188) case 32:RELAY32_0;break;
0345 9AA4 SBI 0x14,4
(0189) default:break;
(0190) }
(0191) }
(0192) temp=temp<<1;
0346 0CEE LSL R14
(0193) n++;
0347 8008 LDD R0,Y+0
0348 9403 INC R0
0349 8208 STD Y+0,R0
034A 94C3 INC R12
034B 2D8C MOV R24,R12
034C 3088 CPI R24,0x8
034D F408 BCC 0x034F
034E CF00 RJMP 0x024F
(0194) }
(0195) p++;
034F 858B LDD R24,Y+11
0350 859C LDD R25,Y+12
0351 9601 ADIW R24,1
0352 879C STD Y+12,R25
0353 878B STD Y+11,R24
0354 9563 INC R22
0355 3064 CPI R22,4
0356 F408 BCC 0x0358
0357 CEF2 RJMP 0x024A
0358 9621 ADIW R28,1
0359 940E079F CALL pop_gset5
035B 9622 ADIW R28,2
035C 9508 RET
FILE: E:\mysoft\DH980\cs5532.c
(0001) #define _CS5532_C
(0002) #include <iom169v.h>
(0003) #include <macros.h>
(0004) #include <stdio.h>
(0005) #include "main.h"
(0006) #include "cs5532.h"
(0007)
(0008) const unsigned char ADInitData[35]=
(0009) {0x41,
(0010) 0xfe,0x00,0x00,0x00, //通道0
(0011) 0xfe,0x00,0x00,0x00, //通道1
(0012) 0xfe,0x00,0x00,0x00, //通道2
(0013) 0xfe,0x00,0x00,0x00, //通道3
(0014) 0x45, //設置所有通道設置寄存器
(0015) 0x31,0xc0,0x31,0xc0, //0x31:12.5Hz,通道1(1、2腳)
(0016) 0x31,0xc0,0x31,0xc0, //0x71,通道2(19、20腳)
(0017) 0x31,0xc0,0x31,0xc0,
(0018) 0x31,0xc0,0x31,0xc0,
(0019) 0xc0}; //執行多路連續轉換
(0020) const unsigned char ADResetData[6]=
(0021) {0xfe,0x03,0x20,0x00,0x00,0x00}; //配置寄存器RS位置1,AD復位
(0022) //cs5532操作IO延時
(0023) void AD_delay(void)
(0024) {
_AD_delay:
035D 9508 RET
_AD_write:
temp --> R20
i --> R22
byte --> R22
035E 940E07A8 CALL push_gset2
0360 2F60 MOV R22,R16
(0025) }
(0026) //cs5532寫寄存器
(0027) void AD_write(unsigned char byte)
(0028) {
(0029) unsigned char i,temp;
(0030) temp = byte;
0361 2F46 MOV R20,R22
(0031) for(i=0;i<8;i++)
0362 2766 CLR R22
0363 C019 RJMP 0x037D
(0032) {
(0033) if(temp&0x80)
0364 FF47 SBRS R20,7
0365 C002 RJMP 0x0368
(0034) SET_SDI; //數據送到SPI的SDI口
0366 9A74 SBI 0x0E,4
0367 C003 RJMP 0x036B
(0035) else
(0036) CLR_SDI;
0368 B18E IN R24,0x0E
0369 7E8F ANDI R24,0xEF
036A B98E OUT 0x0E,R24
(0037) delay_loop(2);
036B E002 LDI R16,2
036C E010 LDI R17,0
036D 940E00A4 CALL _delay_loop
(0038) SET_SCK; //時鐘高
036F 9A76 SBI 0x0E,6
(0039) delay_loop(2);
0370 E002 LDI R16,2
0371 E010 LDI R17,0
0372 940E00A4 CALL _delay_loop
(0040) CLR_SCK; //時鐘低
0374 B18E IN R24,0x0E
0375 7B8F ANDI R24,0xBF
0376 B98E OUT 0x0E,R24
(0041) delay_loop(2);
0377 E002 LDI R16,2
0378 E010 LDI R17,0
0379 940E00A4 CALL _delay_loop
(0042) temp<<=1;
037B 0F44 LSL R20
037C 9563 INC R22
037D 3068 CPI R22,0x8
037E F328 BCS 0x0364
(0043) }
(0044) CLR_SDI;
037F B18E IN R24,0x0E
0380 7E8F ANDI R24,0xEF
0381 B98E OUT 0x0E,R24
0382 940E0796 CALL pop_gset2
0384 9508 RET
_AD_read:
i --> R20
data --> R22
0385 940E07A8 CALL push_gset2
(0045) }
(0046) //cs5532讀寄存器
(0047) unsigned char AD_read(void)
(0048) {
(0049) unsigned char i,data=0;
0387 2766 CLR R22
(0050) CLR_SCK;//sclk=0
0388 B18E IN R24,0x0E
0389 7B8F ANDI R24,0xBF
038A B98E OUT 0x0E,R24
(0051) delay_loop(2);
038B E002 LDI R16,2
038C E010 LDI R17,0
038D 940E00A4 CALL _delay_loop
(0052) for(i=0;i<8;i++)
038F 2744 CLR R20
0390 C017 RJMP 0x03A8
(0053) {
(0054) SET_SCK; //時鐘高
0391 9A76 SBI 0x0E,6
(0055) delay_loop(2);
0392 E002 LDI R16,2
0393 E010 LDI R17,0
0394 940E00A4 CALL _delay_loop
(0056) data<<=1;
0396 0F66 LSL R22
(0057) if(SDO)
0397 9B65 SBIS 0x0C,5
0398 C002 RJMP 0x039B
(0058) data|=0x01;
0399 6061 ORI R22,1
039A C001 RJMP 0x039C
(0059) else
(0060) data &= 0xfe;
039B 7F6E ANDI R22,0xFE
(0061) delay_loop(2);
039C E002 LDI R16,2
039D E010 LDI R17,0
039E 940E00A4 CALL _delay_loop
(0062)
(0063) CLR_SCK; //時鐘低
03A0 B18E IN R24,0x0E
03A1 7B8F ANDI R24,0xBF
03A2 B98E OUT 0x0E,R24
(0064) delay_loop(2);
03A3 E002 LDI R16,2
03A4 E010 LDI R17,0
03A5 940E00A4 CALL _delay_loop
03A7 9543 INC R20
03A8 3048 CPI R20,0x8
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -