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

📄 mix_exp.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0212) 	 unsigned char *char_p;
(0213)      temp=(unsigned int)(((unsigned long)((unsigned long)adc*vref))/1024);
    04C6 0115      MOVW	R2,R10
    04C7 2444      CLR	R4
    04C8 2455      CLR	R5
    04C9 ED49      LDI	R20,0xD9
    04CA E051      LDI	R21,1
    04CB E060      LDI	R22,0
    04CC E070      LDI	R23,0
    04CD 925A      ST	R5,-Y
    04CE 924A      ST	R4,-Y
    04CF 923A      ST	R3,-Y
    04D0 922A      ST	R2,-Y
    04D1 018A      MOVW	R16,R20
    04D2 019B      MOVW	R18,R22
    04D4 940E0D36  CALL	empy32u
    04D5 E08A      LDI	R24,0xA
    04D6 E090      LDI	R25,0
    04D7 938A      ST	R24,-Y
    04D9 940E0DE2  CALL	lsr32
    04DA 0178      MOVW	R14,R16
(0214)      for(i=0;i<3;i++)
    04DB 24CC      CLR	R12
    04DC C019      RJMP	0x04F6
(0215) 	    {
(0216) 		 adcval[3-i]=temp%10+0x30;
    04DD 2C2C      MOV	R2,R12
    04DE 2433      CLR	R3
    04DF E0E3      LDI	R30,3
    04E0 E0F0      LDI	R31,0
    04E1 19E2      SUB	R30,R2
    04E2 09F3      SBC	R31,R3
    04E3 EB8C      LDI	R24,0xBC
    04E4 E091      LDI	R25,1
    04E5 0FE8      ADD	R30,R24
    04E6 1FF9      ADC	R31,R25
    04E7 E02A      LDI	R18,0xA
    04E8 E030      LDI	R19,0
    04E9 0187      MOVW	R16,R14
    04EB 940E0D0A  CALL	mod16u
    04EC 01C8      MOVW	R24,R16
    04ED 96C0      ADIW	R24,0x30
    04EE 8380      STD	R24,0+Z
(0217) 		 temp=temp/10;
    04EF E02A      LDI	R18,0xA
    04F0 E030      LDI	R19,0
    04F1 0187      MOVW	R16,R14
    04F3 940E0D0C  CALL	div16u
    04F4 0178      MOVW	R14,R16
    04F5 94C3      INC	R12
    04F6 2D8C      MOV	R24,R12
    04F7 3083      CPI	R24,3
    04F8 F320      BCS	0x04DD
(0218) 		}
(0219) 	 adcval[0]=adcval[1];
    04FA 902001BD  LDS	R2,_adcval+1
    04FC 922001BC  STS	R2,_adcval
(0220) 	 adcval[1]='.';	
    04FD E28E      LDI	R24,0x2E
    04FF 938001BD  STS	R24,_adcval+1
(0221) 	 adcval[4]='V';	
    0500 E586      LDI	R24,0x56
    0502 938001C0  STS	R24,0x1C0
(0222) 	 adcval[5]=0;	
    0503 2422      CLR	R2
    0505 922001C1  STS	R2,0x1C1
(0223) 	 char_p=adcval;
    0506 EB8C      LDI	R24,0xBC
    0507 E091      LDI	R25,1
    0508 015C      MOVW	R10,R24
(0224) 	 return char_p;
    0509 2F08      MOV	R16,R24
    050A 2F19      MOV	R17,R25
    050C 940E0DDF  CALL	pop_gset5
    050D 9508      RET
(0225) 	}
(0226) /*     OCMJ4X8LCD初始化     */
(0227) void ocmj_init(void)
(0228)     {
(0229) 	 MCUCR=0;
_ocmj_init:
    050E 2422      CLR	R2
    050F BE25      OUT	P35,R2
(0230) 	 DDRA=0xff;
    0510 EF8F      LDI	R24,0xFF
    0511 BB8A      OUT	P1A,R24
(0231) 	 PORTA=0xff;
    0512 BB8B      OUT	P1B,R24
(0232) 	 DDRE=0x80;
    0513 E880      LDI	R24,0x80
    0514 B982      OUT	P02,R24
(0233) 	 PORTE=0xff;
    0515 EF8F      LDI	R24,0xFF
    0516 B983      OUT	P03,R24
(0234) 	 PORTC=0xff; 
    0517 BB85      OUT	P15,R24
(0235) 	 DDRD=0x00;
    0518 BA21      OUT	P11,R2
(0236) 	 PORTD=0xff;
    0519 BB82      OUT	P12,R24
(0237) 	 clr_reset;//LCD复位
    051A 98AB      CBI	P15,3
(0238) 	 delay_ms(10);
    051B E00A      LDI	R16,0xA
    051C E010      LDI	R17,0
    051E 940E0CE7  CALL	_delay_ms
(0239) 	 set_reset;
    051F 9AAB      SBI	P15,3
(0240) 	 clr_answer;
    0520 981F      CBI	P03,7
(0241) 	 delay_ms(10);
    0521 E00A      LDI	R16,0xA
    0522 E010      LDI	R17,0
(0242) 	 }
    0524 940C0CE7  JMP	_delay_ms
(0243) /*            写数据到LCD        */
(0244) void ocmj_write(unsigned char data)
(0245)     {
(0246) 	 while(ask!=0)
_ocmj_write:
  data                 --> R16
    0525 990E      SBIC	P01,6
    0526 CFFE      RJMP	0x0525
(0247) 	      ;
(0248)      data_port=data;
    0527 BB0B      OUT	P1B,R16
(0249)    	 wait;
    0528 0000      NOP
    0529 0000      NOP
(0250) 	 set_answer;
    052A 9A1F      SBI	P03,7
(0251) 	 wait;
    052B 0000      NOP
    052C 0000      NOP
(0252) 	 while(ask==0)
    052D 9B0E      SBIS	P01,6
    052E CFFE      RJMP	0x052D
(0253) 	      ;		  
(0254) 	 clr_answer; 
    052F 981F      CBI	P03,7
(0255)     }
    0530 9508      RET
_ico_tran:
  j                    --> R20
  i                    --> R14
  ico_p                --> R10
  y                    --> R12
  x                    --> R22
    0532 940E0DD2  CALL	push_gset5
    0533 2EC2      MOV	R12,R18
    0534 2F60      MOV	R22,R16
    0535 84AA      LDD	R10,10+Y
    0536 84BB      LDD	R11,11+Y
(0256) /*         传送32*32ICO点阵数据到LCD       */
(0257) /*         x:0~15(字节为单位)  y:0~64      */
(0258) /*         ico_p:指向图形数据的指针        */	
(0259) void ico_tran(unsigned char x,unsigned char y,const unsigned char *ico_p)
(0260)      {
(0261) 	  unsigned char i,j;
(0262) 	  x+=4;
    0537 5F6C      SUBI	R22,0xFC
(0263) 	  for(j=0;j<32;j++)
    0538 2744      CLR	R20
    0539 C016      RJMP	0x0550
(0264) 	     {
(0265) 		  for(i=0;i<4;i++)
    053A 24EE      CLR	R14
    053B C00E      RJMP	0x054A
(0266) 		    {
(0267) 			 ocmj_write(0xf3);
    053C EF03      LDI	R16,0xF3
    053D DFE7      RCALL	0x0525
(0268) 			 ocmj_write(x);
    053E 2F06      MOV	R16,R22
    053F DFE5      RCALL	0x0525
(0269) 			 ocmj_write(y);
    0540 2D0C      MOV	R16,R12
    0541 DFE3      RCALL	0x0525
(0270) 			 ocmj_write(*ico_p);
    0542 01F5      MOVW	R30,R10
    0543 9104      LD	R16,0(Z)
    0544 DFE0      RCALL	0x0525
(0271) 			 ico_p++;
    0545 01C5      MOVW	R24,R10
    0546 9601      ADIW	R24,1
    0547 015C      MOVW	R10,R24
(0272) 			 x++;
    0548 9563      INC	R22
    0549 94E3      INC	R14
    054A 2D8E      MOV	R24,R14
    054B 3084      CPI	R24,4
    054C F378      BCS	0x053C
(0273) 			}
(0274) 		  x-=4;
    054D 5064      SUBI	R22,4
(0275) 		  y++;	
    054E 94C3      INC	R12
    054F 9543      INC	R20
    0550 3240      CPI	R20,0x20
    0551 F340      BCS	0x053A
(0276) 		 }
(0277) 	 }
    0553 940E0DDF  CALL	pop_gset5
    0554 9508      RET
_cls:
  j                    --> R20
  i                    --> R14
  width                --> R22
  high                 --> R10
  y                    --> R12
  x                    --> Y+10
    0556 940E0D7C  CALL	push_arg4
    0558 940E0DD2  CALL	push_gset5
    0559 0169      MOVW	R12,R18
    055A 84AE      LDD	R10,14+Y
    055B 8968      LDD	R22,16+Y
(0278) /*      清除屏幕区域      */	 
(0279) void cls(unsigned x,unsigned y,unsigned char high,unsigned char width)
(0280)   {
(0281)    unsigned char i,j;
(0282)    x+=2;
    055C 858A      LDD	R24,10+Y
    055D 859B      LDD	R25,11+Y
    055E 9602      ADIW	R24,2
    055F 878A      STD	R24,10+Y
    0560 879B      STD	R25,11+Y
(0283)    for(j=0;j<high;j++)
    0561 2744      CLR	R20
    0562 C021      RJMP	0x0584
(0284)       {
(0285)        for(i=0;i<width;i++)
    0563 24EE      CLR	R14
    0564 C011      RJMP	0x0576
(0286)           {
(0287)             ocmj_write(0xf0);
    0565 EF00      LDI	R16,0xF0
    0566 DFBE      RCALL	0x0525
(0288)             ocmj_write(x);
    0567 850A      LDD	R16,10+Y
    0568 851B      LDD	R17,11+Y
    0569 DFBB      RCALL	0x0525
(0289)             ocmj_write(y);
    056A 2D0C      MOV	R16,R12
    056B DFB9      RCALL	0x0525
(0290)             ocmj_write(55);
    056C E307      LDI	R16,0x37
    056D DFB7      RCALL	0x0525
(0291) 			ocmj_write(90);
    056E E50A      LDI	R16,0x5A
    056F DFB5      RCALL	0x0525
(0292)             x++;
    0570 858A      LDD	R24,10+Y
    0571 859B      LDD	R25,11+Y
    0572 9601      ADIW	R24,1
    0573 878A      STD	R24,10+Y
    0574 879B      STD	R25,11+Y
    0575 94E3      INC	R14
    0576 16E6      CP	R14,R22
    0577 F368      BCS	0x0565
(0293)            }
(0294)        x-=width;
    0578 2E26      MOV	R2,R22
    0579 2433      CLR	R3
    057A 840A      LDD	R0,10+Y
    057B 841B      LDD	R1,11+Y
    057C 1802      SUB	R0,R2
    057D 0813      SBC	R1,R3
    057E 860A      STD	R0,10+Y
    057F 861B      STD	R1,11+Y
(0295)        y++;	
    0580 01C6      MOVW	R24,R12
    0581 9601      ADIW	R24,1
    0582 016C      MOVW	R12,R24
    0583 9543      INC	R20
    0584 154A      CP	R20,R10
    0585 F2E8      BCS	0x0563
(0296)       }
(0297)   }	 
    0587 940E0DDF  CALL	pop_gset5
    0588 9624      ADIW	R28,4
    0589 9508      RET
_bmp_tran:
  j                    --> R20
  i                    --> R14
  bmp_p                --> R22
  width                --> R10
  high                 --> R12
  y                    --> Y+12
  x                    --> Y+10
    058B 940E0D7C  CALL	push_arg4
    058D 940E0DD2  CALL	push_gset5
    058E 84CE      LDD	R12,14+Y
    058F 88A8      LDD	R10,16+Y
    0590 896A      LDD	R22,18+Y
    0591 897B      LDD	R23,19+Y
(0298) /*         传送bmp点阵数据到LCD            */
(0299) /*         x:0~15(字节为单位)  y:0~64      */
(0300) /*         bmp_p:指向图形数据的指针        */	
(0301) /*         high:位图高度(点阵行为单位)     */
(0302) /*         width:位图宽度(以字节为单位)

⌨️ 快捷键说明

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