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

📄 co0511.lst

📁 用m128调试CO0511液晶的源代码!
💻 LST
📖 第 1 页 / 共 3 页
字号:
    03C0 B387      IN	R24,0x17
    03C1 6F89      ORI	R24,0xF9
    03C2 BB87      OUT	0x17,R24
(0431) 	 DDRB&=0Xf9;
    03C3 B387      IN	R24,0x17
    03C4 7F89      ANDI	R24,0xF9
    03C5 BB87      OUT	0x17,R24
(0432) 	 DDRC=0Xff;
    03C6 EF8F      LDI	R24,0xFF
    03C7 BB84      OUT	0x14,R24
(0433) 	 DDRD=0Xff;
    03C8 BB81      OUT	0x11,R24
(0434) 	 DDRE=0Xff;
    03C9 B982      OUT	0x02,R24
(0435) 	 DDRF=0Xff;
    03CA 93800061  STS	0x61,R24
(0436) 	 PORTA=0xff;
    03CC BB8B      OUT	0x1B,R24
(0437) 	 //PORTB=0Xff;
(0438) 	 PORTC=0xff;
    03CD BB85      OUT	0x15,R24
(0439) 	 PORTD=0xff;
    03CE BB82      OUT	0x12,R24
(0440) 	 PORTE=0xff;
    03CF B983      OUT	0x03,R24
(0441) 	 PORTF=0xff;
    03D0 93800062  STS	0x62,R24
(0442) 	
(0443) }
    03D2 9508      RET
(0444) /********max195初始化********/ 
(0445) void max195_inital(void)
(0446)     {
(0447)      set_cs_195(1);
_max195_inital:
    03D3 E001      LDI	R16,1
    03D4 DF0D      RCALL	_set_cs_195
(0448)      set_sclk_195(0);
    03D5 2700      CLR	R16
(0449)     }
    03D6 CEFB      RJMP	_set_sclk_195
(0450) /**********************
(0451) max195转换开始
(0452) **********************/
(0453) void max195_start(void)
(0454) {
(0455)      set_conv(0);//,启动转换
_max195_start:
    03D7 2700      CLR	R16
    03D8 DF01      RCALL	_set_conv
(0456)      delay_nus(10);
    03D9 E00A      LDI	R16,0xA
    03DA E010      LDI	R17,0
    03DB DECE      RCALL	_delay_nus
(0457)      set_conv(1);
    03DC E001      LDI	R16,1
(0458) }
    03DD CEFC      RJMP	_set_conv
_max195_read:
  k                    --> R20
  num1                 --> R22
  num2                 --> R10
    03DE 940E04B3  CALL	push_gset3
(0459) /***********************/
(0460) void max195_read()
(0461) {	 uint num2=0;
    03E0 24AA      CLR	R10
    03E1 24BB      CLR	R11
(0462) 	 uchar num1=0,k;
    03E2 2766      CLR	R22
(0463) 	 while((PINB&0x02)==0x02);
    03E3 B226      IN	R2,0x16
    03E4 2433      CLR	R3
    03E5 FC21      SBRC	R2,1
    03E6 CFFC      RJMP	0x03E3
(0464) 	 set_cs_195(0);
    03E7 2700      CLR	R16
    03E8 DEF9      RCALL	_set_cs_195
(0465) 	 for(k=0;k<16;k++)
    03E9 2744      CLR	R20
    03EA C01A      RJMP	0x0405
(0466) 	 {
(0467) 	 set_sclk_195(1);
    03EB E001      LDI	R16,1
    03EC DEE5      RCALL	_set_sclk_195
(0468) 	 delay_1us();
    03ED DEBA      RCALL	_delay_1us
(0469) 	 if((PINB&0x04)==0x04)//判断pa1是否为1
    03EE B386      IN	R24,0x16
    03EF 7084      ANDI	R24,4
    03F0 3084      CPI	R24,4
    03F1 F411      BNE	0x03F4
(0470) 	 {
(0471) 	 num1=1;
    03F2 E061      LDI	R22,1
(0472) 	 //PORTA|=0x20;
(0473) 	 }
    03F3 C001      RJMP	0x03F5
(0474) 	 else
(0475) 	 {
(0476) 	 num1=0;
    03F4 2766      CLR	R22
(0477) 	 //PORTA&=0xdf;
(0478) 	 }
(0479) 	 num2=num2*2+num1;
    03F5 E002      LDI	R16,2
    03F6 E010      LDI	R17,0
    03F7 0195      MOVW	R18,R10
    03F8 940E047F  CALL	empy16s
    03FA 0158      MOVW	R10,R16
    03FB 2E26      MOV	R2,R22
    03FC 2433      CLR	R3
    03FD 0CA2      ADD	R10,R2
    03FE 1CB3      ADC	R11,R3
(0480) 	 set_sclk_195(0);//下降沿锁存下一位
    03FF 2700      CLR	R16
    0400 DED1      RCALL	_set_sclk_195
(0481) 	 delay_nus(3);
    0401 E003      LDI	R16,3
    0402 E010      LDI	R17,0
    0403 DEA6      RCALL	_delay_nus
    0404 9543      INC	R20
    0405 3140      CPI	R20,0x10
    0406 F320      BCS	0x03EB
(0482) 	 }
(0483) 	 turn[n++]=num2/1024;
    0407 90200180  LDS	R2,0x180
    0409 2433      CLR	R3
    040A 2D82      MOV	R24,R2
    040B 5F8F      SUBI	R24,0xFF
    040C 93800180  STS	0x180,R24
    040E E02A      LDI	R18,0xA
    040F E030      LDI	R19,0
    0410 0185      MOVW	R16,R10
    0411 940E04C1  CALL	lsr16
    0413 E080      LDI	R24,0
    0414 E091      LDI	R25,1
    0415 2DE2      MOV	R30,R2
    0416 27FF      CLR	R31
    0417 0FE8      ADD	R30,R24
    0418 1FF9      ADC	R31,R25
    0419 8300      STD	Z+0,R16
(0484) 	 set_conv(0);//,启动转换
    041A 2700      CLR	R16
    041B DEBE      RCALL	_set_conv
(0485)      delay_nus(10);
    041C E00A      LDI	R16,0xA
    041D E010      LDI	R17,0
    041E DE8B      RCALL	_delay_nus
(0486)      set_conv(1);
    041F E001      LDI	R16,1
    0420 DEB9      RCALL	_set_conv
(0487) }
    0421 940E0492  CALL	pop_gset3
    0423 9508      RET
_display:
  page                 --> R20
  point                --> R22
  i                    --> R10
  num                  --> R12
    0424 940E04B7  CALL	push_gset4
(0488) /*************************************/
(0489)  display()
(0490)   {uchar i,point,page,num;
(0491)    clrram ();
    0426 DF34      RCALL	_clrram
(0492)    w_com (0xaf);
    0427 EA0F      LDI	R16,0xAF
    0428 DF1A      RCALL	_w_com
(0493)    w_com (0xc0);
    0429 EC00      LDI	R16,0xC0
    042A DF18      RCALL	_w_com
(0494)    for(i=0;i<128;i++)
    042B 24AA      CLR	R10
    042C C020      RJMP	0x044D
(0495)     {
(0496)      point=turn[i];
    042D E080      LDI	R24,0
    042E E091      LDI	R25,1
    042F 2DEA      MOV	R30,R10
    0430 27FF      CLR	R31
    0431 0FE8      ADD	R30,R24
    0432 1FF9      ADC	R31,R25
    0433 8160      LDD	R22,Z+0
(0497)      page=point/8;
    0434 2F46      MOV	R20,R22
    0435 9546      LSR	R20
    0436 9546      LSR	R20
    0437 9546      LSR	R20
(0498)      num=point%8;
    0438 E018      LDI	R17,0x8
    0439 2F06      MOV	R16,R22
    043A 940E0467  CALL	mod8u
    043C 2EC0      MOV	R12,R16
(0499)      w_com(0xb0+page);
    043D 2F04      MOV	R16,R20
    043E 5500      SUBI	R16,0x50
    043F DF03      RCALL	_w_com
(0500)      //  num=0x01<<(num);
(0501)       //  wr_dat(num);
(0502) 	 if(num==0)
    0440 20CC      TST	R12
    0441 F419      BNE	0x0445
(0503)        w_data(0x02);
    0442 E002      LDI	R16,2
    0443 DF0B      RCALL	_w_data
    0444 C005      RJMP	0x044A
(0504)      else
(0505)        num=0x03<<(num);
    0445 E003      LDI	R16,3
    0446 2D1C      MOV	R17,R12
    0447 940E04BB  CALL	lsl8
    0449 2EC0      MOV	R12,R16
(0506)         w_data(num);
    044A 2D0C      MOV	R16,R12
    044B DF03      RCALL	_w_data
    044C 94A3      INC	R10
    044D 2D8A      MOV	R24,R10
    044E 3880      CPI	R24,0x80
    044F F2E8      BCS	0x042D
(0507)      }
(0508) 	 //w_com(0xae);
(0509)    }
    0450 940E0495  CALL	pop_gset4
    0452 9508      RET
(0510) /***************主函数**************************/
(0511) void main()
(0512) {
(0513)   uchar i,k;
(0514)   uint m;
(0515)   init_m16();
_main:
  m                    --> Y+1
  k                    --> Y+1
  i                    --> Y+1
    0453 DF6A      RCALL	_init_m16
(0516)   set_c86(1);
    0454 E001      LDI	R16,1
    0455 DEBC      RCALL	_set_c86
(0517)   set_ps(0);
    0456 2700      CLR	R16
    0457 DEC2      RCALL	_set_ps
(0518)   w_com(0xaf);
    0458 EA0F      LDI	R16,0xAF
    0459 DEE9      RCALL	_w_com
(0519)   clrram ();
    045A DF00      RCALL	_clrram
(0520)   init_lcd ();
    045B DF19      RCALL	_init_lcd
(0521)   max195_inital();
    045C DF76      RCALL	_max195_inital
(0522)  /* for(i=64;i>0;i--)
(0523)   {
(0524)   w_com(0x40+i);
(0525)   img_disp(tab5);
(0526)   w_com(0xc0);
(0527)   delay_nms(100);
(0528)   }*/
(0529)    max195_start();
    045D DF79      RCALL	_max195_start
    045E C006      RJMP	0x0465
(0530)   //delay_nms(1);
(0531)    while (1)
(0532)   {
(0533)    //PORTC&=0xfe;
(0534)  while(n<128) 
(0535)  max195_read();
    045F DF7E      RCALL	_max195_read
    0460 91800180  LDS	R24,0x180
    0462 3880      CPI	R24,0x80
    0463 F3D8      BCS	0x045F
(0536) //for(i=0;i<128;i++)
(0537) 	//    FFT_Re[i]*=turn[i];
(0538)  // FFT_Proc();
(0539)   display();
    0464 DFBF      RCALL	_display
    0465 CFFA      RJMP	0x0460
(0540)   //w_com(0xc0);
(0541)   //delay_nms(100);
(0542)   }
(0543) }
FILE: <library>
    0466 9508      RET
mod8u:
    0467 9468      BSET	6
    0468 C001      RJMP	xdiv8u
div8u:
    0469 94E8      BCLR	6
xdiv8u:
    046A 932A      ST	R18,-Y
    046B 92FA      ST	R15,-Y
    046C 92EA      ST	R14,-Y
    046D 24FF      CLR	R15
    046E 24EE      CLR	R14
    046F E120      LDI	R18,0x10
    0470 0F00      LSL	R16
    0471 1CFF      ROL	R15
    0472 1CEE      ROL	R14
    0473 16E1      CP	R14,R17
    0474 F010      BCS	0x0477
    0475 1AE1      SUB	R14,R17
    0476 9503      INC	R16
    0477 952A      DEC	R18
    0478 F7B9      BNE	0x0470
    0479 F40E      BRTC	0x047B
    047A 2D0E      MOV	R16,R14
    047B 90E9      LD	R14,Y+
    047C 90F9      LD	R15,Y+
    047D 9129      LD	R18,Y+
    047E 9508      RET
empy16s:
    047F 920A      ST	R0,-Y
    0480 921A      ST	R1,-Y
    0481 938A      ST	R24,-Y
    0482 939A      ST	R25,-Y
    0483 9F02      MUL	R16,R18
    0484 01C0      MOVW	R24,R0
    0485 9F12      MUL	R17,R18
    0486 0D90      ADD	R25,R0
    0487 9F03      MUL	R16,R19
    0488 0D90      ADD	R25,R0
    0489 018C      MOVW	R16,R24
    048A 9199      LD	R25,Y+
    048B 9189      LD	R24,Y+
    048C 9019      LD	R1,Y+
    048D 9009      LD	R0,Y+
    048E 9508      RET
pop_gset2:
    048F E0E2      LDI	R30,2
    0490 940C049C  JMP	pop
pop_gset3:
    0492 E0E4      LDI	R30,4
    0493 940C049C  JMP	pop
pop_gset4:
    0495 E0E8      LDI	R30,0x8
    0496 940C049C  JMP	pop
push_gset1:
    0498 935A      ST	R21,-Y
    0499 934A      ST	R20,-Y
    049A 9508      RET
pop_gset1:
    049B E0E1      LDI	R30,1
pop:
    049C 9149      LD	R20,Y+
    049D 9159      LD	R21,Y+
    049E FDE0      SBRC	R30,0
    049F 9508      RET
    04A0 9169      LD	R22,Y+
    04A1 9179      LD	R23,Y+
    04A2 FDE1      SBRC	R30,1
    04A3 9508      RET
    04A4 90A9      LD	R10,Y+
    04A5 90B9      LD	R11,Y+
    04A6 FDE2      SBRC	R30,2
    04A7 9508      RET
    04A8 90C9      LD	R12,Y+
    04A9 90D9      LD	R13,Y+
    04AA FDE3      SBRC	R30,3
    04AB 9508      RET
    04AC 90E9      LD	R14,Y+
    04AD 90F9      LD	R15,Y+
    04AE 9508      RET
push_gset2:
    04AF 937A      ST	R23,-Y
    04B0 936A      ST	R22,-Y
    04B1 940C0498  JMP	push_gset1
push_gset3:
    04B3 92BA      ST	R11,-Y
    04B4 92AA      ST	R10,-Y
    04B5 940C04AF  JMP	push_gset2
push_gset4:
    04B7 92DA      ST	R13,-Y
    04B8 92CA      ST	R12,-Y
    04B9 940C04B3  JMP	push_gset3
lsl8:
    04BB 2311      TST	R17
    04BC F019      BEQ	0x04C0
    04BD 0F00      LSL	R16
    04BE 951A      DEC	R17
    04BF CFFB      RJMP	lsl8
    04C0 9508      RET
lsr16:
    04C1 2322      TST	R18
    04C2 F021      BEQ	0x04C7
    04C3 9516      LSR	R17
    04C4 9507      ROR	R16
    04C5 952A      DEC	R18
    04C6 CFFA      RJMP	lsr16
    04C7 9508      RET

⌨️ 快捷键说明

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