📄 dac.lis
字号:
00A8 01BF out 0x31,R16
00AA .dbline 68
00AA ; adc_mux=0;
00AA 2224 clr R2
00AC 20920000 sts _adc_mux,R2
00B0 .dbline 69
00B0 ; uart_init();
00B0 00D0 rcall _uart_init
00B2 .dbline 70
00B2 ; timer1_init();
00B2 A6DF rcall _timer1_init
00B4 .dbline 71
00B4 ; adc_init();
00B4 00D0 rcall _adc_init
00B6 .dbline 72
00B6 ; GICR = 0xC0;//int0,int1中断使能
00B6 80EC ldi R24,192
00B8 8BBF out 0x3b,R24
00BA .dbline 73
00BA ; SEI();
00BA 7894 sei
00BC .dbline 74
00BC ; adc_rel=0;
00BC 2224 clr R2
00BE 3324 clr R3
00C0 30920100 sts _adc_rel+1,R3
00C4 20920000 sts _adc_rel,R2
00C8 57C0 rjmp L18
00CA L17:
00CA .dbline 79
00CA ; //puts("广州天河双龙电子公司");
00CA ; //puts("HTTP://WWW.SL.COM.CN");
00CA ; //puts("MEGA8开发板DAC测试程序");
00CA ; while(1)
00CA ; {
00CA .dbline 80
00CA ; i=getchar();
00CA 00D0 rcall _getchar
00CC A02E mov R10,R16
00CE .dbline 81
00CE ; switch (i)
00CE 4A2D mov R20,R10
00D0 5527 clr R21
00D2 4D34 cpi R20,77
00D4 E0E0 ldi R30,0
00D6 5E07 cpc R21,R30
00D8 09F4 brne X2
00DA 3AC0 rjmp L29
00DC X2:
00DC 4F34 cpi R20,79
00DE E0E0 ldi R30,0
00E0 5E07 cpc R21,R30
00E2 61F1 breq L28
00E4 4235 cpi R20,82
00E6 E0E0 ldi R30,0
00E8 5E07 cpc R21,R30
00EA 09F4 brne X3
00EC 37C0 rjmp L30
00EE X3:
00EE 4335 cpi R20,83
00F0 E0E0 ldi R30,0
00F2 5E07 cpc R21,R30
00F4 29F0 breq L23
00F6 4435 cpi R20,84
00F8 E0E0 ldi R30,0
00FA 5E07 cpc R21,R30
00FC 29F0 breq L25
00FE 3CC0 rjmp L20
0100 X0:
0100 .dbline 82
0100 ; {
0100 L23:
0100 .dbline 84
0100 ; case 'S'://MEGA8 DAC程序ID
0100 ; {
0100 .dbline 85
0100 ; puts("DAC TEST ver1.0");
0100 00E0 ldi R16,<L24
0102 10E0 ldi R17,>L24
0104 00D0 rcall _puts
0106 .dbline 86
0106 ; break;
0106 38C0 rjmp L21
0108 L25:
0108 .dbline 89
0108 ; }
0108 ; case 'T'://调节输出电压
0108 ; {
0108 .dbline 90
0108 ; temp=getchar();
0108 00D0 rcall _getchar
010A 602F mov R22,R16
010C 7727 clr R23
010E .dbline 91
010E ; temp=temp<<8;
010E 762F mov R23,R22
0110 6627 clr R22
0112 .dbline 92
0112 ; temp|=getchar();
0112 00D0 rcall _getchar
0114 202E mov R2,R16
0116 3324 clr R3
0118 6229 or R22,R2
011A 7329 or R23,R3
011C .dbline 93
011C ; if (temp<0x400)
011C 6030 cpi R22,0
011E E4E0 ldi R30,4
0120 7E07 cpc R23,R30
0122 28F4 brsh L26
0124 .dbline 94
0124 ; OCR1A=temp;
0124 70934B00 sts 74+1,R23
0128 60934A00 sts 74,R22
012C 25C0 rjmp L21
012E L26:
012E .dbline 96
012E ; else
012E ; OCR1A=0x3ff;
012E 8FEF ldi R24,1023
0130 93E0 ldi R25,3
0132 90934B00 sts 74+1,R25
0136 80934A00 sts 74,R24
013A .dbline 97
013A ; break;
013A 1EC0 rjmp L21
013C L28:
013C .dbline 100
013C ; }
013C ; case 'O'://读取OCR1A寄存器值
013C ; {
013C .dbline 101
013C ; temp=OCR1A;
013C 6AB5 in R22,0x2a
013E 7BB5 in R23,0x2b
0140 .dbline 102
0140 ; putchar(temp/256);
0140 8B01 movw R16,R22
0142 012F mov R16,R17
0144 1127 clr R17
0146 00D0 rcall _putchar
0148 .dbline 103
0148 ; putchar(temp%256);
0148 062F mov R16,R22
014A 1070 andi R17,0
014C 00D0 rcall _putchar
014E .dbline 104
014E ; break;
014E 14C0 rjmp L21
0150 L29:
0150 .dbline 107
0150 ; }
0150 ; case 'M'://设置ADC工作通道
0150 ; {
0150 .dbline 108
0150 ; adc_mux=getchar()&0x03;
0150 00D0 rcall _getchar
0152 802F mov R24,R16
0154 8370 andi R24,3
0156 80930000 sts _adc_mux,R24
015A .dbline 109
015A ; break;
015A 0EC0 rjmp L21
015C L30:
015C .dbline 112
015C ; }
015C ; case 'R'://读取ADC通道及ADC转换结果
015C ; {
015C .dbline 113
015C ; putchar(adc_mux);
015C 00910000 lds R16,_adc_mux
0160 00D0 rcall _putchar
0162 .dbline 114
0162 ; putchar(adc_old/256);
0162 00910000 lds R16,_adc_old
0166 10910100 lds R17,_adc_old+1
016A 012F mov R16,R17
016C 1127 clr R17
016E 00D0 rcall _putchar
0170 .dbline 115
0170 ; putchar(adc_old%256);
0170 00910000 lds R16,_adc_old
0174 1070 andi R17,0
0176 00D0 rcall _putchar
0178 .dbline 116
0178 ; }
0178 .dbline 117
0178 ; }
0178 L20:
0178 L21:
0178 .dbline 118
0178 L18:
0178 .dbline 78
0178 A8CF rjmp L17
017A X1:
017A .dbline -2
017A .dbline 119
017A ; }
017A ; }
017A L16:
017A .dbline 0 ; func end
017A 0895 ret
017C .dbsym r temp 22 i
017C .dbsym r i 10 c
017C .dbend
.area bss(ram, con, rel)
0000 .dbfile C:\mega8\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:\mega8\DAC\DAC.c
0000 L24:
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:\mega8\DAC\DAC.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -