📄 mian1.lis
字号:
00CE ; UCSRA = 0x00;
00CE 2BB8 out 0xb,R2
00D0 .dbline 84
00D0 ; UCSRC = BIT(URSEL) | 0x06;
00D0 86E8 ldi R24,134
00D2 80BD out 0x20,R24
00D4 .dbline 85
00D4 ; UBRRL = 0x33; //set baud rate lo
00D4 83E3 ldi R24,51
00D6 89B9 out 0x9,R24
00D8 .dbline 86
00D8 ; UBRRH = 0x00; //set baud rate hi
00D8 20BC out 0x20,R2
00DA .dbline 87
00DA ; UCSRB = 0x90;
00DA 80E9 ldi R24,144
00DC 8AB9 out 0xa,R24
00DE .dbline -2
00DE L15:
00DE .dbline 0 ; func end
00DE 0895 ret
00E0 .dbend
00E0 .dbfunc e spi_init _spi_init fV
.even
00E0 _spi_init::
00E0 .dbline -1
00E0 .dbline 102
00E0 ; }
00E0 ;
00E0 ; //-------------------------------------------------------------
00E0 ; /*
00E0 ; #pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
00E0 ; void uart0_rx_isr(void)
00E0 ; {
00E0 ; command= UDR;//uart has received a character in UDR
00E0 ;
00E0 ; }*/
00E0 ; //-------------------------------------------------------------
00E0 ; //SPI initialize
00E0 ; // clock rate: 2000000hz
00E0 ; void spi_init(void)
00E0 ; {
00E0 .dbline 103
00E0 ; SPCR = 0x50; //setup SPI
00E0 80E5 ldi R24,80
00E2 8DB9 out 0xd,R24
00E4 .dbline 104
00E4 ; SPSR = 0x00; //setup SPI
00E4 2224 clr R2
00E6 2EB8 out 0xe,R2
00E8 .dbline -2
00E8 L16:
00E8 .dbline 0 ; func end
00E8 0895 ret
00EA .dbend
00EA .dbfunc e init_devices _init_devices fV
.even
00EA _init_devices::
00EA .dbline -1
00EA .dbline 109
00EA ; }
00EA ; //call this routine to initialize all peripherals
00EA ; //-------------------------------------------------------------
00EA ; void init_devices(void)
00EA ; {
00EA .dbline 111
00EA ; //stop errant interrupts until set up
00EA ; CLI(); //disable all interrupts
00EA F894 cli
00EC .dbline 112
00EC ; port_init();
00EC 89DF rcall _port_init
00EE .dbline 113
00EE ; timer0_init();
00EE 94DF rcall _timer0_init
00F0 .dbline 114
00F0 ; timer1_init();
00F0 D5DF rcall _timer1_init
00F2 .dbline 116
00F2 ; //uart0_init();
00F2 ; spi_init();
00F2 F6DF rcall _spi_init
00F4 .dbline 118
00F4 ;
00F4 ; MCUCR = 0x00;
00F4 2224 clr R2
00F6 25BE out 0x35,R2
00F8 .dbline 119
00F8 ; GICR = 0x00;
00F8 2BBE out 0x3b,R2
00FA .dbline 120
00FA ; TIMSK = 0x01; //timer interrupt sources
00FA 81E0 ldi R24,1
00FC 89BF out 0x39,R24
00FE .dbline 121
00FE ; SEI(); //re-enable interrupts
00FE 7894 sei
0100 .dbline -2
0100 L17:
0100 .dbline 0 ; func end
0100 0895 ret
0102 .dbend
0102 .dbfunc e Reset_Meter _Reset_Meter fc
.even
0102 _Reset_Meter::
0102 2397 sbiw R28,3
0104 .dbline -1
0104 .dbline 127
0104 ; //all peripherals are now initialized
0104 ; }
0104 ;
0104 ; //-------------------------------------------------------------
0104 ; u8 Reset_Meter(void)
0104 ; {
0104 .dbline 129
0104 ;
0104 ; init_devices();
0104 F2DF rcall _init_devices
0106 .dbline 130
0106 ; EEPROMReadBytes(0,(u8 *)(& Cal),6);
0106 86E0 ldi R24,6
0108 90E0 ldi R25,0
010A 9983 std y+1,R25
010C 8883 std y+0,R24
010E 20E0 ldi R18,<_Cal
0110 30E0 ldi R19,>_Cal
0112 0027 clr R16
0114 1127 clr R17
0116 00D0 rcall _EEPROMReadBytes
0118 .dbline 131
0118 ; disbuff0=Table[1];
0118 20900100 lds R2,_Table+1
011C 20921300 sts _disbuff+7,R2
0120 .dbline 132
0120 ; disbuff1=Table[2];
0120 20900200 lds R2,_Table+2
0124 20921200 sts _disbuff+6,R2
0128 .dbline 133
0128 ; disbuff2=Table[3];
0128 20900300 lds R2,_Table+3
012C 20921100 sts _disbuff+5,R2
0130 .dbline 134
0130 ; disbuff3=Table[4];
0130 20900400 lds R2,_Table+4
0134 20921000 sts _disbuff+4,R2
0138 .dbline 135
0138 ; disbuff4=Table[5];
0138 20900500 lds R2,_Table+5
013C 20920F00 sts _disbuff+3,R2
0140 .dbline 136
0140 ; disbuff5=Table[6];
0140 20900600 lds R2,_Table+6
0144 20920E00 sts _disbuff+2,R2
0148 .dbline 137
0148 ; disbuff6=Table[7];
0148 20900700 lds R2,_Table+7
014C 20920D00 sts _disbuff+1,R2
0150 .dbline 138
0150 ; disbuff7=Table[8];
0150 20900800 lds R2,_Table+8
0154 20920C00 sts _disbuff,R2
0158 .dbline 140
0158 ;
0158 ; Clr_RST();
0158 82B3 in R24,0x12
015A 877F andi R24,247
015C 82BB out 0x12,R24
015E .dbline 141
015E ; Delay(4000);
015E 00EA ldi R16,160
0160 1FE0 ldi R17,15
0162 20E0 ldi R18,0
0164 30E0 ldi R19,0
0166 12D5 rcall _Delay
0168 .dbline 142
0168 ; Set_RST();
0168 939A sbi 0x12,3
016A .dbline 143
016A ; CS5460a_Write(SYNC1,SYNC1,SYNC1,SYNC0);
016A 8EEF ldi R24,254
016C 8A83 std y+2,R24
016E 8FEF ldi R24,255
0170 8883 std y+0,R24
0172 2FEF ldi R18,255
0174 0FEF ldi R16,255
0176 00D0 rcall _CS5460a_Write
0178 .dbline 144
0178 ; CS5460A_REG_WR(0,0x00,0x00,0x71);
0178 81E7 ldi R24,113
017A 8A83 std y+2,R24
017C 2224 clr R2
017E 2882 std y+0,R2
0180 2227 clr R18
0182 0027 clr R16
0184 00D0 rcall _CS5460A_REG_WR
0186 .dbline 145
0186 ; CS5460A_REG_WR(15,0xff,0xff,0xff);
0186 8FEF ldi R24,255
0188 8A83 std y+2,R24
018A 8883 std y+0,R24
018C 2FEF ldi R18,255
018E 0FE0 ldi R16,15
0190 00D0 rcall _CS5460A_REG_WR
0192 .dbline 146
0192 ; CS5460A_REG_WR(26,0x80,0x00,0x00);
0192 2224 clr R2
0194 2A82 std y+2,R2
0196 2882 std y+0,R2
0198 20E8 ldi R18,128
019A 0AE1 ldi R16,26
019C 00D0 rcall _CS5460A_REG_WR
019E .dbline 149
019E ;
019E ; // CS5460A_REG_WR(U_GAIN,UK_H,UK_M,UK_L);
019E ; Delay(1000);
019E 08EE ldi R16,232
01A0 13E0 ldi R17,3
01A2 20E0 ldi R18,0
01A4 30E0 ldi R19,0
01A6 F2D4 rcall _Delay
01A8 .dbline 151
01A8 ; // CS5460A_REG_WR(I_GAIN,IK_H,IK_M,IK_L);
01A8 ; Delay(1000);
01A8 08EE ldi R16,232
01AA 13E0 ldi R17,3
01AC 20E0 ldi R18,0
01AE 30E0 ldi R19,0
01B0 EDD4 rcall _Delay
01B2 .dbline 152
01B2 ; CS5460a_Write_Byte(0xe8);
01B2 08EE ldi R16,232
01B4 00D0 rcall _CS5460a_Write_Byte
01B6 .dbline 153
01B6 ; CalTemp=0;
01B6 2224 clr R2
01B8 3324 clr R3
01BA 30920400 sts _CalTemp+1,R3
01BE 20920300 sts _CalTemp,R2
01C2 .dbline 154
01C2 ; Per=1800;
01C2 88E0 ldi R24,1800
01C4 97E0 ldi R25,7
01C6 90930200 sts _Per+1,R25
01CA 80930100 sts _Per,R24
01CE .dbline 155
01CE ; return(GOTO_WAIT);
01CE 01E0 ldi R16,1
01D0 .dbline -2
01D0 L18:
01D0 .dbline 0 ; func end
01D0 2396 adiw R28,3
01D2 0895 ret
01D4 .dbend
01D4 .dbfunc e Wait _Wait fc
01D4 ; temp -> y+0
.even
01D4 _Wait::
01D4 00D0 rcall push_xgsetF000
01D6 2497 sbiw R28,4
01D8 .dbline -1
01D8 .dbline 159
01D8 ; }
01D8 ; //-------------------------------------------------------------
01D8 ; u8 Wait(void)
01D8 ; {
01D8 .dbline 172
01D8 ; unsigned long temp;
01D8 ; //return(GOTO_WAIT);
01D8 ; //temp= CS5460a_Read(5);
01D8 ; /*disbuff3=Table[temp&0xf];
01D8 ; temp>>=4;
01D8 ; disbuff2=Table[temp&0xf];
01D8 ; temp>>=4;
01D8 ; disbuff1=Table[temp&0xf];
01D8 ; temp>>=4;
01D8 ; disbuff0=Table[temp&0xf];
01D8 ; */
01D8 ;
01D8 ; if(SetKey==0)
01D8 B099 sbic 0x16,0
01DA 2EC0 rjmp L35
01DC X3:
01DC .dbline 173
01DC ; {
01DC .dbline 174
01DC ; Delay(10);
01DC 0AE0 ldi R16,10
01DE 10E0 ldi R17,0
01E0 20E0 ldi R18,0
01E2 30E0 ldi R19,0
01E4 D3D4 rcall _Delay
01E6 .dbline 175
01E6 ; if(SetKey==0)
01E6 B099 sbic 0x16,0
01E8 27C0 rjmp L37
01EA X4:
01EA .dbline 176
01EA ; {
01EA .dbline 177
01EA ; Cal.OutH=0x325C;
01EA 8CE5 ldi R24,12892
01EC 92E3 ldi R25,50
01EE 90930A00 sts _Cal+4+1,R25
01F2 80930900 sts _Cal+4,R24
01F6 .dbline 178
01F6 ; OCR1B=Cal.OutH;
01F6 99BD out 0x29,R25
01F8 88BD out 0x28,R24
01FA .dbline 179
01FA ; CalTemp=0;
01FA 2224 clr R2
01FC 3324 clr R3
01FE 30920400 sts _CalTemp+1,R3
0202 20920300 sts _CalTemp,R2
0206 .dbline 180
0206 ; disbuff0=Table[20];
0206 20901400 lds R2,_Table+20
020A 20921300 sts _disbuff+7,R2
020E .dbline 181
020E ; disbuff1=Table[18];
020E 20901200 lds R2,_Table+18
0212 20921200 sts _disbuff+6,R2
0216 .dbline 182
0216 ; disbuff2=Table[19];
0216 20901300 lds R2,_Table+19
021A 20921100 sts _disbuff+5,R2
021E .dbline 183
021E ; disbuff3=Table[22];
021E 20901600 lds R2,_Table+22
0222 20921000 sts _disbuff+4,R2
0226 .dbline 184
0226 ; Delay(50000);
0226 00E5 ldi R16,80
0228 13EC ldi R17,195
022A 20E0 ldi R18,0
022C 30E0 ldi R19,0
022E AED4 rcall _Delay
0230 L49:
0230 .dbline 185
0230 ; while(SetKey==0);
0230 L50:
0230 .dbline 185
0230 B09B sbis 0x16,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -