📄 cac.lst
字号:
01F5 B105 IN R16,0x05
01F6 2711 CLR R17
(0031) temp2=(temp2<<8)+temp1;
01F7 0118 MOVW R2,R16
01F8 2C32 MOV R3,R2
01F9 2422 CLR R2
01FA 0E22 ADD R2,R18
01FB 1E33 ADC R3,R19
01FC 0181 MOVW R16,R2
(0032) return temp2;
01FD 9508 RET
(0033) }
(0034) void ADC_init(void)
(0035) { ADMUX=0x01; //选择通道PA0;外部REF+5V
_ADC_init:
01FE E081 LDI R24,1
01FF B987 OUT 0x07,R24
(0036) ADCSRA|=((1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0));
0200 B186 IN R24,0x06
0201 6E87 ORI R24,0xE7
0202 B986 OUT 0x06,R24
0203 9508 RET
_main:
i --> R20
j --> R22
0204 9724 SBIW R28,4
(0037) //使能AD;启动AD;自由转换模式;8分频
(0038) // ADCSRA=0xc2;
(0039) }
(0040)
(0041) void main(void)
(0042) {uint i,j;
(0043) //uchar a;
(0044) PORTA = 0x00;
0205 2422 CLR R2
0206 BA2B OUT 0x1B,R2
(0045) DDRA = 0xFF;
0207 EF8F LDI R24,0xFF
0208 BB8A OUT 0x1A,R24
(0046) PORTB = 0x01;
0209 E081 LDI R24,1
020A BB88 OUT 0x18,R24
(0047) DDRB = 0xFF;
020B EF8F LDI R24,0xFF
020C BB87 OUT 0x17,R24
(0048) PORTC = 0x00; //m103 output only
020D BA25 OUT 0x15,R2
(0049) DDRC = 0x00;
020E BA24 OUT 0x14,R2
(0050) PORTD = 0x00;
020F BA22 OUT 0x12,R2
(0051) DDRD = 0x0f;
0210 E08F LDI R24,0xF
0211 BB81 OUT 0x11,R24
(0052) PORTE = 0x00;
0212 B823 OUT 0x03,R2
(0053) DDRE = 0xF0;
0213 EF80 LDI R24,0xF0
0214 B982 OUT 0x02,R24
(0054) PORTF = 0x00;
0215 92200062 STS Data+2,R2
(0055) DDRF = 0x00;
0217 92200061 STS Data+1,R2
(0056) PORTG = 0x00;
0219 92200065 STS 0x65,R2
(0057) DDRG = 0x00;
021B 92200064 STS 0x64,R2
(0058)
(0059) LCM_init();//液晶初始化
021D DEEF RCALL _LCM_init
(0060) //DisHZ(0x89,11,"正在启动...");
(0061) /*// ADMUX=(1<<REFS0)|(1<<REFS1);//选择第一通道ADC0,内部REF(2.56V)
(0062) ADMUX=0x01;
(0063) ADCSRA=0xe5;//8M32分频,125k速率,自由模式;启动AD转换器*/
(0064)
(0065)
(0066) ADC_init();
021E DFDF RCALL _ADC_init
(0067)
(0068) delay_nms(10);//延迟100ms等待系统稳定后读取数据
021F E00A LDI R16,0xA
0220 E010 LDI R17,0
0221 DF8B RCALL _delay_nms
0222 C07E RJMP 0x02A1
(0069)
(0070)
(0071) while(1)
(0072) {
(0073)
(0074) i=ADC_convert();
0223 DFCF RCALL _ADC_convert
0224 01A8 MOVW R20,R16
(0075) j=0;
0225 2766 CLR R22
0226 2777 CLR R23
(0076) change(i,Data);
0227 E620 LDI R18,0x60
0228 E030 LDI R19,0
0229 DF92 RCALL _change
(0077) DisHZXY(0,0,10,"AD测试程序");
022A E784 LDI R24,0x74
022B E090 LDI R25,0
022C 839B STD Y+3,R25
022D 838A STD Y+2,R24
022E E08A LDI R24,0xA
022F E090 LDI R25,0
0230 8399 STD Y+1,R25
0231 8388 STD Y+0,R24
0232 2722 CLR R18
0233 2733 CLR R19
0234 2700 CLR R16
0235 2711 CLR R17
0236 DEFC RCALL _DisHZXY
(0078) DisHZXY(3,1,4,Data);
0237 E680 LDI R24,0x60
0238 E090 LDI R25,0
0239 839B STD Y+3,R25
023A 838A STD Y+2,R24
023B E084 LDI R24,4
023C E090 LDI R25,0
023D 8399 STD Y+1,R25
023E 8388 STD Y+0,R24
023F E021 LDI R18,1
0240 E030 LDI R19,0
0241 E003 LDI R16,3
0242 E010 LDI R17,0
0243 DEEF RCALL _DisHZXY
(0079) if(i>650)
0244 E88A LDI R24,0x8A
0245 E092 LDI R25,2
0246 1784 CP R24,R20
0247 0795 CPC R25,R21
0248 F508 BCC 0x026A
(0080) { DisHZXY(2,3,4,"正转");
0249 E68F LDI R24,0x6F
024A E090 LDI R25,0
024B 839B STD Y+3,R25
024C 838A STD Y+2,R24
024D E084 LDI R24,4
024E E090 LDI R25,0
024F 8399 STD Y+1,R25
0250 8388 STD Y+0,R24
0251 E023 LDI R18,3
0252 E030 LDI R19,0
0253 E002 LDI R16,2
0254 E010 LDI R17,0
0255 DEDD RCALL _DisHZXY
(0081) PORTA|=(1<<2);
0256 9ADA SBI 0x1B,2
(0082) PORTC|=(1<<6);
0257 9AAE SBI 0x15,6
0258 C00A RJMP 0x0263
(0083) while(j<=2000)
(0084) {
(0085) PORTA|=(1<<3);
0259 9ADB SBI 0x1B,3
(0086) delay_nus(17);
025A E101 LDI R16,0x11
025B E010 LDI R17,0
025C DF37 RCALL _delay_nus
(0087) PORTA&=~(1<<3);
025D 98DB CBI 0x1B,3
(0088) delay_nus(17);
025E E101 LDI R16,0x11
025F E010 LDI R17,0
0260 DF33 RCALL _delay_nus
(0089) j++;
0261 5F6F SUBI R22,0xFF
0262 4F7F SBCI R23,0xFF
0263 ED80 LDI R24,0xD0
0264 E097 LDI R25,7
0265 1786 CP R24,R22
0266 0797 CPC R25,R23
0267 F788 BCC 0x0259
(0090) }
(0091) PORTC&=~(1<<6);
0268 98AE CBI 0x15,6
(0092) }
0269 C037 RJMP 0x02A1
(0093) else if(i<0xC8&&i>0x64)
026A 3C48 CPI R20,0xC8
026B E0E0 LDI R30,0
026C 075E CPC R21,R30
026D F530 BCC 0x0294
026E E684 LDI R24,0x64
026F E090 LDI R25,0
0270 1784 CP R24,R20
0271 0795 CPC R25,R21
0272 F508 BCC 0x0294
(0094) {DisHZXY(2,3,4,"反转");
0273 E68A LDI R24,0x6A
0274 E090 LDI R25,0
0275 839B STD Y+3,R25
0276 838A STD Y+2,R24
0277 E084 LDI R24,4
0278 E090 LDI R25,0
0279 8399 STD Y+1,R25
027A 8388 STD Y+0,R24
027B E023 LDI R18,3
027C E030 LDI R19,0
027D E002 LDI R16,2
027E E010 LDI R17,0
027F DEB3 RCALL _DisHZXY
(0095) PORTA&=~(1<<2);
0280 98DA CBI 0x1B,2
(0096) PORTC|=(1<<6);
0281 9AAE SBI 0x15,6
0282 C00A RJMP 0x028D
(0097) while(j<=2000)
(0098) {
(0099) PORTA|=(1<<3);
0283 9ADB SBI 0x1B,3
(0100) delay_nus(17);
0284 E101 LDI R16,0x11
0285 E010 LDI R17,0
0286 DF0D RCALL _delay_nus
(0101) PORTA&=~(1<<3);
0287 98DB CBI 0x1B,3
(0102) delay_nus(17);
0288 E101 LDI R16,0x11
0289 E010 LDI R17,0
028A DF09 RCALL _delay_nus
(0103) j++;
028B 5F6F SUBI R22,0xFF
028C 4F7F SBCI R23,0xFF
028D ED80 LDI R24,0xD0
028E E097 LDI R25,7
028F 1786 CP R24,R22
0290 0797 CPC R25,R23
0291 F788 BCC 0x0283
(0104) }
(0105) PORTC&=~(1<<6);
0292 98AE CBI 0x15,6
(0106) }
0293 C00D RJMP 0x02A1
(0107) else
(0108) DisHZXY(2,3,4,"停止");
FILE: <library>
0294 E685 LDI R24,0x65
0295 E090 LDI R25,0
0296 839B STD Y+3,R25
0297 838A STD Y+2,R24
0298 E084 LDI R24,4
0299 E090 LDI R25,0
029A 8399 STD Y+1,R25
029B 8388 STD Y+0,R24
029C E023 LDI R18,3
029D E030 LDI R19,0
029E E002 LDI R16,2
029F E010 LDI R17,0
02A0 DE92 RCALL _DisHZXY
02A1 CF81 RJMP 0x0223
02A2 9624 ADIW R28,4
02A3 9508 RET
mod16u:
02A4 9468 BSET 6
02A5 C001 RJMP xdiv16u
div16u:
02A6 94E8 BCLR 6
xdiv16u:
02A7 92EA ST R14,-Y
02A8 92FA ST R15,-Y
02A9 938A ST R24,-Y
02AA 24EE CLR R14
02AB 24FF CLR R15
02AC E180 LDI R24,0x10
02AD 0F00 LSL R16
02AE 1F11 ROL R17
02AF 1CEE ROL R14
02B0 1CFF ROL R15
02B1 16E2 CP R14,R18
02B2 06F3 CPC R15,R19
02B3 F018 BCS 0x02B7
02B4 1AE2 SUB R14,R18
02B5 0AF3 SBC R15,R19
02B6 9503 INC R16
02B7 958A DEC R24
02B8 F7A1 BNE 0x02AD
02B9 F416 BRTC 0x02BC
02BA 2D0E MOV R16,R14
02BB 2D1F MOV R17,R15
02BC 9189 LD R24,Y+
02BD 90F9 LD R15,Y+
02BE 90E9 LD R14,Y+
02BF 9508 RET
pop_gset2:
02C0 E0E2 LDI R30,2
02C1 940C02D8 JMP pop
pop_gset3:
02C3 E0E4 LDI R30,4
02C4 940C02D8 JMP pop
pop_gset4:
02C6 E0E8 LDI R30,0x8
02C7 940C02D8 JMP pop
pop_gset5:
02C9 27EE CLR R30
02CA 940C02D8 JMP pop
push_gset5:
02CC 92FA ST R15,-Y
02CD 92EA ST R14,-Y
push_gset4:
02CE 92DA ST R13,-Y
02CF 92CA ST R12,-Y
push_gset3:
02D0 92BA ST R11,-Y
02D1 92AA ST R10,-Y
push_gset2:
02D2 937A ST R23,-Y
02D3 936A ST R22,-Y
push_gset1:
02D4 935A ST R21,-Y
02D5 934A ST R20,-Y
02D6 9508 RET
pop_gset1:
02D7 E0E1 LDI R30,1
pop:
02D8 9149 LD R20,Y+
02D9 9159 LD R21,Y+
02DA FDE0 SBRC R30,0
02DB 9508 RET
02DC 9169 LD R22,Y+
02DD 9179 LD R23,Y+
02DE FDE1 SBRC R30,1
02DF 9508 RET
02E0 90A9 LD R10,Y+
02E1 90B9 LD R11,Y+
02E2 FDE2 SBRC R30,2
02E3 9508 RET
02E4 90C9 LD R12,Y+
02E5 90D9 LD R13,Y+
02E6 FDE3 SBRC R30,3
02E7 9508 RET
02E8 90E9 LD R14,Y+
02E9 90F9 LD R15,Y+
02EA 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -