📄 dac.lis
字号:
00D2 ; // EICRA=0;
00D2 ; adc_rel=0;
00D2 2224 clr R2
00D4 3324 clr R3
00D6 30920100 sts _adc_rel+1,R3
00DA 20920000 sts _adc_rel,R2
00DE .dbline 68
00DE ; puts("广州天河双龙电子公司");
00DE 00E0 ldi R16,<L17
00E0 10E0 ldi R17,>L17
00E2 00D0 rcall _puts
00E4 .dbline 69
00E4 ; puts("HTTP://WWW.SL.COM.CN");
00E4 00E0 ldi R16,<L18
00E6 10E0 ldi R17,>L18
00E8 00D0 rcall _puts
00EA .dbline 70
00EA ; puts("MEGA48开发板DAC测试程序");
00EA 00E0 ldi R16,<L19
00EC 10E0 ldi R17,>L19
00EE 00D0 rcall _puts
00F0 59C0 rjmp L21
00F2 L20:
00F2 .dbline 73
00F2 ;
00F2 ; while(1)
00F2 ; {
00F2 .dbline 74
00F2 ; i=getchar();
00F2 00D0 rcall _getchar
00F4 A02E mov R10,R16
00F6 .dbline 75
00F6 ; switch (i)
00F6 4A2D mov R20,R10
00F8 5527 clr R21
00FA 4D34 cpi R20,77
00FC E0E0 ldi R30,0
00FE 5E07 cpc R21,R30
0100 09F4 brne X2
0102 3CC0 rjmp L32
0104 X2:
0104 4F34 cpi R20,79
0106 E0E0 ldi R30,0
0108 5E07 cpc R21,R30
010A 61F1 breq L31
010C 4235 cpi R20,82
010E E0E0 ldi R30,0
0110 5E07 cpc R21,R30
0112 09F4 brne X3
0114 39C0 rjmp L33
0116 X3:
0116 4335 cpi R20,83
0118 E0E0 ldi R30,0
011A 5E07 cpc R21,R30
011C 29F0 breq L26
011E 4435 cpi R20,84
0120 E0E0 ldi R30,0
0122 5E07 cpc R21,R30
0124 29F0 breq L28
0126 3EC0 rjmp L23
0128 X0:
0128 .dbline 76
0128 ; {
0128 L26:
0128 .dbline 78
0128 ; case 'S'://MEGA8 DAC程序ID
0128 ; {
0128 .dbline 79
0128 ; puts("DAC TEST ver1.0");
0128 00E0 ldi R16,<L27
012A 10E0 ldi R17,>L27
012C 00D0 rcall _puts
012E .dbline 80
012E ; break;
012E 3AC0 rjmp L24
0130 L28:
0130 .dbline 83
0130 ; }
0130 ; case 'T'://调节输出电压
0130 ; {
0130 .dbline 84
0130 ; temp=getchar();
0130 00D0 rcall _getchar
0132 602F mov R22,R16
0134 7727 clr R23
0136 .dbline 85
0136 ; temp=temp<<8;
0136 762F mov R23,R22
0138 6627 clr R22
013A .dbline 86
013A ; temp|=getchar();
013A 00D0 rcall _getchar
013C 202E mov R2,R16
013E 3324 clr R3
0140 6229 or R22,R2
0142 7329 or R23,R3
0144 .dbline 87
0144 ; if (temp<0x400)
0144 6030 cpi R22,0
0146 E4E0 ldi R30,4
0148 7E07 cpc R23,R30
014A 28F4 brsh L29
014C .dbline 88
014C ; OCR1A=temp;
014C 70938900 sts 136+1,R23
0150 60938800 sts 136,R22
0154 27C0 rjmp L24
0156 L29:
0156 .dbline 90
0156 ; else
0156 ; OCR1A=0x3ff;
0156 8FEF ldi R24,1023
0158 93E0 ldi R25,3
015A 90938900 sts 136+1,R25
015E 80938800 sts 136,R24
0162 .dbline 91
0162 ; break;
0162 20C0 rjmp L24
0164 L31:
0164 .dbline 94
0164 ; }
0164 ; case 'O'://读取OCR1A寄存器值
0164 ; {
0164 .dbline 95
0164 ; temp=OCR1A;
0164 60918800 lds R22,136
0168 70918900 lds R23,136+1
016C .dbline 96
016C ; putchar(temp/256);
016C 8B01 movw R16,R22
016E 012F mov R16,R17
0170 1127 clr R17
0172 00D0 rcall _putchar
0174 .dbline 97
0174 ; putchar(temp%256);
0174 062F mov R16,R22
0176 1070 andi R17,0
0178 00D0 rcall _putchar
017A .dbline 98
017A ; break;
017A 14C0 rjmp L24
017C L32:
017C .dbline 101
017C ; }
017C ; case 'M'://设置ADC工作通道
017C ; {
017C .dbline 102
017C ; adc_mux=getchar()&0x03;
017C 00D0 rcall _getchar
017E 802F mov R24,R16
0180 8370 andi R24,3
0182 80930000 sts _adc_mux,R24
0186 .dbline 103
0186 ; break;
0186 0EC0 rjmp L24
0188 L33:
0188 .dbline 106
0188 ; }
0188 ; case 'R'://读取ADC通道及ADC转换结果
0188 ; {
0188 .dbline 107
0188 ; putchar(adc_mux);
0188 00910000 lds R16,_adc_mux
018C 00D0 rcall _putchar
018E .dbline 108
018E ; putchar(adc_old/256);
018E 00910000 lds R16,_adc_old
0192 10910100 lds R17,_adc_old+1
0196 012F mov R16,R17
0198 1127 clr R17
019A 00D0 rcall _putchar
019C .dbline 109
019C ; putchar(adc_old%256);
019C 00910000 lds R16,_adc_old
01A0 1070 andi R17,0
01A2 00D0 rcall _putchar
01A4 .dbline 110
01A4 ; }
01A4 .dbline 111
01A4 ; }
01A4 L23:
01A4 L24:
01A4 .dbline 112
01A4 L21:
01A4 .dbline 72
01A4 A6CF rjmp L20
01A6 X1:
01A6 .dbline -2
01A6 L16:
01A6 .dbline 0 ; func end
01A6 0895 ret
01A8 .dbsym r temp 22 i
01A8 .dbsym r i 10 c
01A8 .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\调试程序\mega48\DAC\dac.c
0000 _adc_old::
0000 .blkb 2
0002 .dbsym e adc_old _adc_old i
.area data(ram, con, rel)
0000 .dbfile C:\调试程序\mega48\DAC\dac.c
0000 L27:
0000 .blkb 16
.area idata
0000 444143205445535420766572312E3000 .byte 'D,'A,'C,32,'T,'E,'S,'T,32,'v,'e,'r,49,46,48,0
.area data(ram, con, rel)
0010 .dbfile C:\调试程序\mega48\DAC\dac.c
0010 L19:
0010 .blkb 24
.area idata
0010 4D4547413438BFAAB7A2B0E5444143B2 .byte 'M,'E,'G,'A,52,56,191,170,183,162,176,229,'D,'A,'C,178
0020 E2CAD4B3CCD0F200 .byte 226,202,212,179,204,208,242,0
.area data(ram, con, rel)
0028 .dbfile C:\调试程序\mega48\DAC\dac.c
0028 L18:
0028 .blkb 21
.area idata
0028 485454503A2F2F5757572E534C2E434F .byte 'H,'T,'T,'P,58,47,47,'W,'W,'W,46,'S,'L,46,'C,'O
0038 4D2E434E00 .byte 'M,46,'C,'N,0
.area data(ram, con, rel)
003D .dbfile C:\调试程序\mega48\DAC\dac.c
003D L17:
003D .blkb 21
.area idata
003D B9E3D6DDCCECBAD3CBABC1FAB5E7D7D3 .byte 185,227,214,221,204,236,186,211,203,171,193,250,181,231,215,211
004D B9ABCBBE00 .byte 185,171,203,190,0
.area data(ram, con, rel)
0052 .dbfile C:\调试程序\mega48\DAC\dac.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -