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