⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edu.lst

📁 一个单片机的完整开发程序AVR的
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0147) 
(0148) unsigned char receive()//
(0149) {
(0150)  unsigned char i,j;
(0151)  begin:	if(t>18)    return 0;//goto A;
    013D E182      LDI	R24,0x12
    013E 9020013F  LDS	R2,_t
    0140 1582      CP	R24,R2
    0141 F410      BCC	0x0144
    0142 2700      CLR	R16
    0143 C036      RJMP	0x017A
(0152) 	i=getchar();     //get data from RF
    0144 DF63      RCALL	_getchar
    0145 2F40      MOV	R20,R16
(0153)   	if(i==0x0f)      //get the start signal
    0146 300F      CPI	R16,0xF
    0147 F7A9      BNE	0x013D
(0154)   	{
(0155) 	 data[0]=getchar();
    0148 DF5F      RCALL	_getchar
    0149 9300006D  STS	_data,R16
(0156) 	 if(data[0]==0xf0)
    014B 3F00      CPI	R16,0xF0
    014C F781      BNE	0x013D
(0157) 	 {
(0158)       data[1]=getchar();
    014D DF5A      RCALL	_getchar
    014E 9300006E  STS	_data+1,R16
(0159) 	  if(data[1]==0xdd)
    0150 3D0D      CPI	R16,0xDD
    0151 F759      BNE	0x013D
(0160) 	  {
(0161) 	   data[2]=getchar();
    0152 DF55      RCALL	_getchar
    0153 9300006F  STS	_data+2,R16
(0162) 	   if(data[2]==0xbb)
    0155 3B0B      CPI	R16,0xBB
    0156 F731      BNE	0x013D
(0163) 	   {
(0164) 	   	data[3]=getchar();
    0157 DF50      RCALL	_getchar
    0158 93000070  STS	_data+3,R16
(0165) 	  	if(data[3]==host_id)
    015A 90200141  LDS	R2,_host_id
    015C 1502      CP	R16,R2
    015D F6F9      BNE	0x013D
(0166) 	  	{
(0167) 	  	 data[4]=getchar();
    015E DF49      RCALL	_getchar
    015F 93000071  STS	0x71,R16
(0168) 	  	 if(data[4]==guest_id||data[4]==0xfe||data[4]==0xdb)
    0161 90200140  LDS	R2,_guest_id
    0163 1502      CP	R16,R2
    0164 F021      BEQ	0x0169
    0165 3F0E      CPI	R16,0xFE
    0166 F011      BEQ	0x0169
    0167 3D0B      CPI	R16,0xDB
    0168 F6A1      BNE	0x013D
(0169) 	 	 {
(0170) 	  	  for(j=5;j<12+ques_num;j++)   //
    0169 E045      LDI	R20,5
    016A C009      RJMP	0x0174
(0171) 	  	  data[j]=getchar();
    016B DF3C      RCALL	_getchar
    016C E68D      LDI	R24,0x6D
    016D E090      LDI	R25,0
    016E 2FE4      MOV	R30,R20
    016F 27FF      CLR	R31
    0170 0FE8      ADD	R30,R24
    0171 1FF9      ADC	R31,R25
    0172 8300      STD	Z+0,R16
    0173 9543      INC	R20
    0174 9180006C  LDS	R24,_ques_num
    0176 5F84      SUBI	R24,0xF4
    0177 1748      CP	R20,R24
    0178 F390      BCS	0x016B
(0172)   	 	 }
(0173) 		 else goto begin;
(0174) 		}
(0175) 		else goto begin;
(0176) 	   }
(0177) 	   else goto begin;
(0178) 	  }
(0179) 	  else goto begin;
(0180) 	 }
(0181) 	 else goto begin; 
(0182) 	}
(0183) 	else goto begin;
(0184)    return 1;
    0179 E001      LDI	R16,1
    017A 940E0BA4  CALL	pop_gset1
    017C 9508      RET
_main:
  d1                   --> Y+1
  score                --> R10
  temp                 --> Y+217
  keye_flag            --> Y+216
  keyd_flag            --> Y+215
  keyb_flag            --> Y+214
  keya_flag            --> Y+213
  nques_id             --> Y+212
  adc_l                --> R12
  adc_h                --> R22
  key_flag             --> Y+211
  adc_rel              --> R20
  keyc_flag            --> Y+210
  d                    --> Y+209
  adc_old              --> Y+207
  n_ques               --> Y+100
  n_num                --> R14
  key                  --> Y+206
  ques_id              --> Y+205
  ans                  --> Y+0
  j                    --> Y+204
  k                    --> Y+203
  i                    --> Y+202
    017D 97EF      SBIW	R28,0x3F
    017E 97EF      SBIW	R28,0x3F
    017F 97EF      SBIW	R28,0x3F
    0180 976D      SBIW	R28,0x1D
(0185) }
(0186) 
(0187) void main()
(0188) {
(0189)  	 unsigned char i,j,k,temp,ques_id,key,key_flag,d,d1,
(0190) 	               n_ques[100],n_num,nques_id,score,ans[100],keya_flag,
(0191) 	               keyb_flag,keyc_flag,keyd_flag,keye_flag,adc_h,adc_l;
(0192) 	 unsigned int adc_rel,adc_old;
(0193) 	 guest_id=EEPROMread(0x02);
    0181 E002      LDI	R16,2
    0182 E010      LDI	R17,0
    0183 940E0BC4  CALL	_EEPROMread
    0185 93000140  STS	_guest_id,R16
(0194) 	 host_id=EEPROMread(0x03);
    0187 E003      LDI	R16,3
    0188 E010      LDI	R17,0
    0189 940E0BC4  CALL	_EEPROMread
    018B 93000141  STS	_host_id,R16
(0195) 	 i=0;
    018D 2400      CLR	R0
    018E 01FE      MOVW	R30,R28
    018F 53E6      SUBI	R30,0x36
    0190 4FFF      SBCI	R31,0xFF
    0191 8200      STD	Z+0,R0
(0196) 	 j=0;
    0192 01FE      MOVW	R30,R28
    0193 53E4      SUBI	R30,0x34
    0194 4FFF      SBCI	R31,0xFF
    0195 8200      STD	Z+0,R0
(0197) 	 k=0;
    0196 01FE      MOVW	R30,R28
    0197 53E5      SUBI	R30,0x35
    0198 4FFF      SBCI	R31,0xFF
    0199 8200      STD	Z+0,R0
(0198) 	 t=0;
    019A 2422      CLR	R2
    019B 9220013F  STS	_t,R2
(0199) 	 temp=0;
    019D 01FE      MOVW	R30,R28
    019E 52E7      SUBI	R30,0x27
    019F 4FFF      SBCI	R31,0xFF
    01A0 8200      STD	Z+0,R0
(0200) 	 ques_num=0;
    01A1 9220006C  STS	_ques_num,R2
(0201) 	 ques_id=1;
    01A3 2400      CLR	R0
    01A4 9403      INC	R0
    01A5 01FE      MOVW	R30,R28
    01A6 53E3      SUBI	R30,0x33
    01A7 4FFF      SBCI	R31,0xFF
    01A8 8200      STD	Z+0,R0
(0202) 	 nques_id=1;
    01A9 01FE      MOVW	R30,R28
    01AA 52EC      SUBI	R30,0x2C
    01AB 4FFF      SBCI	R31,0xFF
    01AC 8200      STD	Z+0,R0
(0203) 	 keya_flag=0;
    01AD 2400      CLR	R0
    01AE 01FE      MOVW	R30,R28
    01AF 52EB      SUBI	R30,0x2B
    01B0 4FFF      SBCI	R31,0xFF
    01B1 8200      STD	Z+0,R0
(0204) 	 keyb_flag=0;
    01B2 01FE      MOVW	R30,R28
    01B3 52EA      SUBI	R30,0x2A
    01B4 4FFF      SBCI	R31,0xFF
    01B5 8200      STD	Z+0,R0
(0205) 	 keyc_flag=0;
    01B6 01FE      MOVW	R30,R28
    01B7 52EE      SUBI	R30,0x2E
    01B8 4FFF      SBCI	R31,0xFF
    01B9 8200      STD	Z+0,R0
(0206) 	 keyd_flag=0;
    01BA 01FE      MOVW	R30,R28
    01BB 52E9      SUBI	R30,0x29
    01BC 4FFF      SBCI	R31,0xFF
    01BD 8200      STD	Z+0,R0
(0207) 	 keye_flag=0;
    01BE 01FE      MOVW	R30,R28
    01BF 52E8      SUBI	R30,0x28
    01C0 4FFF      SBCI	R31,0xFF
    01C1 8200      STD	Z+0,R0
(0208) 	 key_flag=1;
    01C2 2400      CLR	R0
    01C3 9403      INC	R0
    01C4 01FE      MOVW	R30,R28
    01C5 52ED      SUBI	R30,0x2D
    01C6 4FFF      SBCI	R31,0xFF
    01C7 8200      STD	Z+0,R0
(0209) 	 init_devices();
    01C8 DECF      RCALL	_init_devices
(0210) 	 init_lcd();
    01C9 940E0A9E  CALL	_init_lcd
(0211) 	 display(0x00);
    01CB 2700      CLR	R16
    01CC 940E0AA6  CALL	_display
(0212)    //temp=EEPROMread(0x04);
(0213)    //ques_num=EEPROMread(0x05);
(0214)    //score=EEPROMread(0x06);
(0215)    //for(i=0;i<100;i++)
(0216)    //{
(0217)    // ques[i]=EEPROMread(i+7);
(0218)   // } 
(0219)   //for(i=0;i<100;i++)
(0220)    //{
(0221)    // ans[i]=EEPROMread(i+107);
(0222)   // } 
(0223) 	// while(1);
(0224) 	  if((PIND|0x9f)==0x9f)
    01CE B380      IN	R24,0x10
    01CF 698F      ORI	R24,0x9F
    01D0 398F      CPI	R24,0x9F
    01D1 F009      BEQ	0x01D3
    01D2 C115      RJMP	0x02E8
(0225) 	 {
    01D3 C10D      RJMP	0x02E1
(0226) 	  while(key!=5)
(0227) 	  {
(0228) 		 if(keyc_flag==0)
    01D4 01FE      MOVW	R30,R28
    01D5 52EE      SUBI	R30,0x2E
    01D6 4FFF      SBCI	R31,0xFF
    01D7 8000      LDD	R0,Z+0
    01D8 2000      TST	R0
    01D9 F4D1      BNE	0x01F4
(0229) 		{
(0230) 		 i=host_id/10;
    01DA E01A      LDI	R17,0xA
    01DB 91000141  LDS	R16,_host_id
    01DD 940E0B82  CALL	div8u
    01DF 01FE      MOVW	R30,R28
    01E0 53E6      SUBI	R30,0x36
    01E1 4FFF      SBCI	R31,0xFF
    01E2 8300      STD	Z+0,R16
(0231) 		 k=host_id-(10*i);
    01E3 E08A      LDI	R24,0xA
    01E4 2E00      MOV	R0,R16
    01E5 9D80      MUL	R24,R0
    01E6 90200141  LDS	R2,_host_id
    01E8 1820      SUB	R2,R0
    01E9 01FE      MOVW	R30,R28
    01EA 53E5      SUBI	R30,0x35
    01EB 4FFF      SBCI	R31,0xFF
    01EC 8220      STD	Z+0,R2
(0232) 		 lcd_buffer[9]=0x02;
    01ED E082      LDI	R24,2
    01EE 9380014B  STS	0x14B,R24
(0233) 		 lcd_buffer[1]=0;
    01F0 2422      CLR	R2
    01F1 92200143  STS	_lcd_buffer+1,R2
(0234) 		}
    01F3 C019      RJMP	0x020D
(0235) 		else
(0236) 		{
(0237) 		 i=guest_id/10;
    01F4 E01A      LDI	R17,0xA
    01F5 91000140  LDS	R16,_guest_id
    01F7 940E0B82  CALL	div8u
    01F9 01FE      MOVW	R30,R28
    01FA 53E6      SUBI	R30,0x36
    01FB 4FFF      SBCI	R31,0xFF
    01FC 8300      STD	Z+0,R16
(0238) 		 k=guest_id-10*i;
    01FD E08A      LDI	R24,0xA
    01FE 2E00      MOV	R0,R16
    01FF 9D80      MUL	R24,R0
    0200 90200140  LDS	R2,_guest_id
    0202 1820      SUB	R2,R0
    0203 01FE      MOVW	R30,R28
    0204 53E5      SUBI	R30,0x35
    0205 4FFF      SBCI	R31,0xFF
    0206 8220      STD	Z+0,R2
(0239) 		 lcd_buffer[1]=0x02;
    0207 E082      LDI	R24,2
    0208 93800143  STS	_lcd_buffer+1,R24
(0240) 		 lcd_buffer[9]=0;
    020A 2422      CLR	R2
    020B 9220014B  STS	0x14B,R2
(0241) 		}
(0242) 		lcd_buffer[7]=table[i];
    020D E680      LDI	R24,0x60
    020E E090      LDI	R25,0
    020F 01DE      MOVW	R26,R28
    0210 53A6      SUBI	R26,0x36
    0211 4FBF      SBCI	R27,0xFF
    0212 91EC      LD	R30,0(X)
    0213 27FF      CLR	R31
    0214 0FE8      ADD	R30,R24
    0215 1FF9      ADC	R31,R25
    0216 8020      LDD	R2,Z+0
    0217 92200149  STS	0x149,R2
(0243) 		lcd_buffer[15]=table[k]&0xef;
    0219 01DE      MOVW	R26,R28
    021A 53A5      SUBI	R26,0x35
    021B 4FBF      SBCI	R27,0xFF
    021C 91EC      LD	R30,0(X)
    021D 27FF      CLR	R31
    021E 0FE8      ADD	R30,R24
    021F 1FF9      ADC	R31,R25
    0220 8180      LDD	R24,Z+0
    0221 7E8F      ANDI	R24,0xEF
    0222 93800151  STS	0x151,R24
(0244) 		send_data(14,lcd_buffer[7]);
    0224 2D22      MOV	R18,R2
    0225 E00E      LDI	R16,0xE
    0226 940E0A59  CALL	_send_data
(0245) 		send_data(30,lcd_buffer[15]);
    0228 91200151  LDS	R18,0x151
    022A E10E      LDI	R16,0x1E
    022B 940E0A59  CALL	_send_data
(0246) 		send_data(2,lcd_buffer[1]);
    022D 91200143  LDS	R18,_lcd_buffer+1
    022F E002      LDI	R16,2
    0230 940E0A59  CALL	_send_data
(0247) 		send_data(18,lcd_buffer[9]);
    0232 9120014B  LDS	R18,0x14B
    0234 E102      LDI	R16,0x12
    0235 940E0A59  CALL	_send_data
(0248) 		key=key_scan();
    0237 940E0AB7  CALL	_key_scan
    0239 01FE      MOVW	R30,R28
    023A 53E2      SUBI	R30,0x32
    023B 4FFF      SBCI	R31,0xFF
    023C 8300      STD	Z+0,R16
(0249) 		if(key==3)
    023D 3003      CPI	R16,3
    023E F449      BNE	0x0248
(0250) 		keyc_flag=~keyc_flag;
    023F 01FE      MOVW	R30,R28
    0240 52EE      SUBI	R30,0x2E
    0241 4FFF      SBCI	R31,0xFF
    0242 8000      LDD	R0,Z+0
    0243 9400      COM	R0
    0244 01FE      MOVW	R30,R28
    0245 52EE      SUBI	R30,0x2E
    0246 4FFF      SBCI	R31,0xFF
    0247 8200      STD	Z+0,R0
(0251) 		if(key==7)
    0248 01FE      MOVW	R30,R28
    0249 53E2      SUBI	R30,0x32
    024A 4FFF      SBCI	R31,0xFF
    024B 8180      LDD	R24,Z+0
    024C 3087      CPI	R24,7
    024D F489      BNE	0x025F
(0252) 		{
(0253) 		 if(keyc_flag==0)
    024E 01FE      MOVW	R30,R28
    024F 52EE      SUBI	R30,0x2E
    0250 4FFF      SBCI	R31,0xFF
    0251 8000      LDD	R0,Z+0
    0252 2000      TST	R0
    0253 F431      BNE	0x025A
(0254) 		 host_id++;
    0254 91800141  LDS	R24,_host_id
    0256 5F8F      SUBI	R24,0xFF
    0257 93800141  STS	_host_id,R24
    0259 C005      RJMP	0x025F
(0255) 		 else
(0256) 		 guest_id++;
    025A 91800140  LDS	R24,_guest_id
    025C 5F8F      SUBI	R24,0xFF
    025D 93800140  STS	_guest_id,R24
(0257) 		}
(0258) 		if(key==4)
    025F 01FE      MOVW	R30,R28
    0260 53E2      SUBI	R30,0x32
    0261 4FFF      SBCI	R31,0xFF
    0262 8180      LDD	R24,Z+0
    0263 3084      CPI	R24,4
    0264 F489      BNE	0x0276
(0259) 		{
(0260) 		 if(keyc_flag==0)
    0265 01FE      MOVW	R30,R28
    0266 52EE      SUBI	R30,0x2E
    0267 4FFF      SBCI	R31,0xFF
    0268 8000      LDD	R0,Z+0
    0269 2000      TST	R0
    026A F431      BNE	0x0271
(0261) 		 host_id--;
    026B 91800141  LDS	R24,_host_id
    026D 5081      SUBI	R24,1
    026E 93800141  STS	_host_id,R24
    0270 C005      RJMP	0x0276
(0262) 		 else
(0263) 		 guest_id--;
    0271 91800140  LDS	R24,_guest_id
    0273 5081      SUBI	R24,1
    0274 93800140  STS	_guest_id,R24
(0264) 		}
(0265) 		if(host_id>80||host_id<1)
    0276 E580      LDI	R24,0x50
    0277 90200141  LDS	R2,_host_id
    0279 1582      CP	R24,R2
    027A F018      BCS	0x027E
    027B 2D82      MOV	R24,R2
    027C 3081      CPI	R24,1
    027D F418      BCC	0x0281
(0266) 		host_id=1;
    027E E081      LDI	R24,1
    027F 93800141  STS	_host_id,R24
(0267) 		if(guest_id>80||guest_id<1)
    0281 E580      LDI	R24,0x50
    0282 90200140  LDS	R2,_guest_id
    0284 1582      CP	R24,R2
    0285 F018      BCS	0x0289
    0286 2D82      MOV	R24,R2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -