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

📄 elevator.lst

📁 AVR ATmegal128开发的电梯控制系统
💻 LST
📖 第 1 页 / 共 5 页
字号:
 58a:	90 e5       	ldi	r25, 0x50	; 80
 58c:	90 93 02 02 	sts	0x0202, r25
 590:	80 93 01 02 	sts	0x0201, r24
 ppi_ctrl1=PPI_1_CT;
 594:	83 e0       	ldi	r24, 0x03	; 3
 596:	90 e6       	ldi	r25, 0x60	; 96
 598:	90 93 00 02 	sts	0x0200, r25
 59c:	80 93 ff 01 	sts	0x01FF, r24
 seg=PPI_1_PA;
 5a0:	80 e0       	ldi	r24, 0x00	; 0
 5a2:	90 e6       	ldi	r25, 0x60	; 96
 5a4:	90 93 df 01 	sts	0x01DF, r25
 5a8:	80 93 de 01 	sts	0x01DE, r24
 ppi_pb=PPI_1_PB;
 5ac:	81 e0       	ldi	r24, 0x01	; 1
 5ae:	90 e6       	ldi	r25, 0x60	; 96
 5b0:	90 93 fb 01 	sts	0x01FB, r25
 5b4:	80 93 fa 01 	sts	0x01FA, r24
 key=PPI_1_PC;
 5b8:	82 e0       	ldi	r24, 0x02	; 2
 5ba:	90 e6       	ldi	r25, 0x60	; 96
 5bc:	90 93 fd 01 	sts	0x01FD, r25
 5c0:	80 93 fc 01 	sts	0x01FC, r24
 *ppi_ctrl=0x80;
 5c4:	80 e8       	ldi	r24, 0x80	; 128
 5c6:	80 93 03 50 	sts	0x5003, r24
 *ppi_ctrl1=0x80;
 5ca:	80 93 03 60 	sts	0x6003, r24
 *key=0x00;
 5ce:	10 92 02 60 	sts	0x6002, r1
 5d2:	08 95       	ret

000005d4 <delay>:
 5d4:	40 e0       	ldi	r20, 0x00	; 0
 5d6:	50 e0       	ldi	r21, 0x00	; 0
 5d8:	48 17       	cp	r20, r24
 5da:	59 07       	cpc	r21, r25
 5dc:	6c f4       	brge	.+26     	; 0x5f8 <delay+0x24>
 5de:	20 e0       	ldi	r18, 0x00	; 0
 5e0:	30 e0       	ldi	r19, 0x00	; 0
 5e2:	02 c0       	rjmp	.+4      	; 0x5e8 <delay+0x14>
 5e4:	2f 5f       	subi	r18, 0xFF	; 255
 5e6:	3f 4f       	sbci	r19, 0xFF	; 255
 5e8:	26 17       	cp	r18, r22
 5ea:	37 07       	cpc	r19, r23
 5ec:	dc f3       	brlt	.-10     	; 0x5e4 <delay+0x10>
 5ee:	4f 5f       	subi	r20, 0xFF	; 255
 5f0:	5f 4f       	sbci	r21, 0xFF	; 255
 5f2:	48 17       	cp	r20, r24
 5f4:	59 07       	cpc	r21, r25
 5f6:	9c f3       	brlt	.-26     	; 0x5de <delay+0xa>
 5f8:	08 95       	ret

000005fa <key_scan>:
}

//=============================================================
// 功能模块:	点阵显示模块
// 实现功能:   实现点阵的静态与动态的显示
// 包含函数:   void matrix(unsigned char *matrix1)
//              void move(unsigned char *move1,unsigned char i)
//              void display(unsigned char *green1,unsigned char *red1)
//				void display(unsigned char *green1,unsigned char *red1)
//=============================================================
void matrix(unsigned char *matrix1)
{ unsigned char i=0;
      for(i=0;i<8;i++)
	   {move(matrix1,i); display(all,blank);}
	  for(i=0;i<8;i++) font[i]=0;
}

void move(unsigned char *move1,unsigned char i)
{  unsigned char k,j,m;
   k=0;
   j=7-i;
   do{ font[j]=move1[k];
       if(dir==0)
        {for(m=0;m<8;m++)
		 all[m]=font[m]|font_number[f][m];}
	   else
	   {for(m=0;m<8;m++)
	    all[m]=font[m]|font_number[f][7-m];}
       j++;
       k++;
    } while(i--);
}

void display(unsigned char *green1,unsigned char *red1)
{unsigned char i=0,j=0;
   for (j=0;j<15;j++)
     {for (i=0;i<8;i++)
	      { *green=green1[i];
            *red=red1[i];
            if(dir==0)   *line=(0x01<<i);
			else         *line=(0x80>>i);
            delay(100,70);
          }
     }
}

//=============================================================
// 功能模块:	键盘模块
// 实现功能:   实现键盘扫描与键值和所实现功能按键值得转化
// 包含函数:   unsigned char key_scan(void)    使用的是线翻转法
//              void out_put(unsigned char in)
//=============================================================
unsigned char key_scan(void)
{unsigned char save_low,save_high;
 5fa:	1f 93       	push	r17
 5fc:	cf 93       	push	r28
 *ppi_ctrl1=0x81;
 5fe:	e0 91 ff 01 	lds	r30, 0x01FF
 602:	f0 91 00 02 	lds	r31, 0x0200
 606:	81 e8       	ldi	r24, 0x81	; 129
 608:	80 83       	st	Z, r24
 *seg=fnd[bin];
 60a:	a0 91 de 01 	lds	r26, 0x01DE
 60e:	b0 91 df 01 	lds	r27, 0x01DF
 612:	80 91 fe 01 	lds	r24, 0x01FE
 616:	e8 2f       	mov	r30, r24
 618:	ff 27       	eor	r31, r31
 61a:	e0 50       	subi	r30, 0x00	; 0
 61c:	ff 4f       	sbci	r31, 0xFF	; 255
 61e:	80 81       	ld	r24, Z
 620:	8c 93       	st	X, r24
 *key=0xf0;
 622:	e0 91 fc 01 	lds	r30, 0x01FC
 626:	f0 91 fd 01 	lds	r31, 0x01FD
 62a:	80 ef       	ldi	r24, 0xF0	; 240
 62c:	80 83       	st	Z, r24
 delay(10,10);
 62e:	6a e0       	ldi	r22, 0x0A	; 10
 630:	70 e0       	ldi	r23, 0x00	; 0
 632:	cb 01       	movw	r24, r22
 634:	0e 94 ea 02 	call	0x5d4 <delay>
 save_low=*key&0x0f;
 638:	e0 91 fc 01 	lds	r30, 0x01FC
 63c:	f0 91 fd 01 	lds	r31, 0x01FD
 640:	c0 81       	ld	r28, Z
 642:	cf 70       	andi	r28, 0x0F	; 15
 *ppi_ctrl1=0x80;
 644:	e0 91 ff 01 	lds	r30, 0x01FF
 648:	f0 91 00 02 	lds	r31, 0x0200
 64c:	10 e8       	ldi	r17, 0x80	; 128
 64e:	10 83       	st	Z, r17
 *seg=fnd[bin];
 650:	a0 91 de 01 	lds	r26, 0x01DE
 654:	b0 91 df 01 	lds	r27, 0x01DF
 658:	80 91 fe 01 	lds	r24, 0x01FE
 65c:	e8 2f       	mov	r30, r24
 65e:	ff 27       	eor	r31, r31
 660:	e0 50       	subi	r30, 0x00	; 0
 662:	ff 4f       	sbci	r31, 0xFF	; 255
 664:	80 81       	ld	r24, Z
 666:	8c 93       	st	X, r24
 *key=0x00;
 668:	e0 91 fc 01 	lds	r30, 0x01FC
 66c:	f0 91 fd 01 	lds	r31, 0x01FD
 670:	10 82       	st	Z, r1
 if(save_low)
 672:	cc 23       	and	r28, r28
 674:	19 f4       	brne	.+6      	; 0x67c <key_scan+0x82>
 {
 *ppi_ctrl1=0x88;
 *seg=fnd[bin];
 *key=0x0f;
 delay(10,10);
  save_high=*key&0xf0;
  *ppi_ctrl1=0x80;
  *seg=fnd[bin];
  *key=0x00;
  if(!save_high)
    return 0;
	save_high|=save_low;
	return save_high;
  }
  return 0;
 676:	80 e0       	ldi	r24, 0x00	; 0
 678:	90 e0       	ldi	r25, 0x00	; 0
 67a:	3e c0       	rjmp	.+124    	; 0x6f8 <key_scan+0xfe>
 67c:	e0 91 ff 01 	lds	r30, 0x01FF
 680:	f0 91 00 02 	lds	r31, 0x0200
 684:	88 e8       	ldi	r24, 0x88	; 136
 686:	80 83       	st	Z, r24
 688:	a0 91 de 01 	lds	r26, 0x01DE
 68c:	b0 91 df 01 	lds	r27, 0x01DF
 690:	80 91 fe 01 	lds	r24, 0x01FE
 694:	e8 2f       	mov	r30, r24
 696:	ff 27       	eor	r31, r31
 698:	e0 50       	subi	r30, 0x00	; 0
 69a:	ff 4f       	sbci	r31, 0xFF	; 255
 69c:	80 81       	ld	r24, Z
 69e:	8c 93       	st	X, r24
 6a0:	e0 91 fc 01 	lds	r30, 0x01FC
 6a4:	f0 91 fd 01 	lds	r31, 0x01FD
 6a8:	8f e0       	ldi	r24, 0x0F	; 15
 6aa:	80 83       	st	Z, r24
 6ac:	6a e0       	ldi	r22, 0x0A	; 10
 6ae:	70 e0       	ldi	r23, 0x00	; 0
 6b0:	cb 01       	movw	r24, r22
 6b2:	0e 94 ea 02 	call	0x5d4 <delay>
 6b6:	e0 91 fc 01 	lds	r30, 0x01FC
 6ba:	f0 91 fd 01 	lds	r31, 0x01FD
 6be:	90 81       	ld	r25, Z
 6c0:	90 7f       	andi	r25, 0xF0	; 240
 6c2:	e0 91 ff 01 	lds	r30, 0x01FF
 6c6:	f0 91 00 02 	lds	r31, 0x0200
 6ca:	10 83       	st	Z, r17
 6cc:	a0 91 de 01 	lds	r26, 0x01DE
 6d0:	b0 91 df 01 	lds	r27, 0x01DF
 6d4:	80 91 fe 01 	lds	r24, 0x01FE
 6d8:	e8 2f       	mov	r30, r24
 6da:	ff 27       	eor	r31, r31
 6dc:	e0 50       	subi	r30, 0x00	; 0
 6de:	ff 4f       	sbci	r31, 0xFF	; 255
 6e0:	80 81       	ld	r24, Z
 6e2:	8c 93       	st	X, r24
 6e4:	e0 91 fc 01 	lds	r30, 0x01FC
 6e8:	f0 91 fd 01 	lds	r31, 0x01FD
 6ec:	10 82       	st	Z, r1
 6ee:	99 23       	and	r25, r25
 6f0:	11 f2       	breq	.-124    	; 0x676 <key_scan+0x7c>
 6f2:	9c 2b       	or	r25, r28
 6f4:	89 2f       	mov	r24, r25
 6f6:	99 27       	eor	r25, r25
 6f8:	cf 91       	pop	r28
 6fa:	1f 91       	pop	r17
 6fc:	08 95       	ret

000006fe <out_put>:
}

void out_put(unsigned char in)
{unsigned char a=0;
 6fe:	a0 e0       	ldi	r26, 0x00	; 0
switch(in){
 700:	99 27       	eor	r25, r25
 702:	88 32       	cpi	r24, 0x28	; 40
 704:	91 05       	cpc	r25, r1
 706:	09 f4       	brne	.+2      	; 0x70a <out_put+0xc>
 708:	5e c0       	rjmp	.+188    	; 0x7c6 <out_put+0xc8>
 70a:	89 32       	cpi	r24, 0x29	; 41
 70c:	91 05       	cpc	r25, r1
 70e:	9c f4       	brge	.+38     	; 0x736 <out_put+0x38>
 710:	88 31       	cpi	r24, 0x18	; 24
 712:	91 05       	cpc	r25, r1
 714:	c9 f1       	breq	.+114    	; 0x788 <out_put+0x8a>
 716:	89 31       	cpi	r24, 0x19	; 25
 718:	91 05       	cpc	r25, r1
 71a:	f4 f4       	brge	.+60     	; 0x758 <out_put+0x5a>
 71c:	82 31       	cpi	r24, 0x12	; 18
 71e:	91 05       	cpc	r25, r1
 720:	09 f4       	brne	.+2      	; 0x724 <out_put+0x26>
 722:	4c c0       	rjmp	.+152    	; 0x7bc <out_put+0xbe>
 724:	83 31       	cpi	r24, 0x13	; 19
 726:	91 05       	cpc	r25, r1
 728:	0c f0       	brlt	.+2      	; 0x72c <out_put+0x2e>
 72a:	40 c0       	rjmp	.+128    	; 0x7ac <out_put+0xae>
 72c:	41 97       	sbiw	r24, 0x11	; 17
 72e:	09 f0       	breq	.+2      	; 0x732 <out_put+0x34>
 730:	4a c0       	rjmp	.+148    	; 0x7c6 <out_put+0xc8>
            case  0x11:a=0x01;
 732:	a1 e0       	ldi	r26, 0x01	; 1
 734:	48 c0       	rjmp	.+144    	; 0x7c6 <out_put+0xc8>
 736:	88 34       	cpi	r24, 0x48	; 72
 738:	91 05       	cpc	r25, r1
 73a:	41 f1       	breq	.+80     	; 0x78c <out_put+0x8e>
 73c:	89 34       	cpi	r24, 0x49	; 73
 73e:	91 05       	cpc	r25, r1
 740:	ac f4       	brge	.+42     	; 0x76c <out_put+0x6e>
 742:	82 34       	cpi	r24, 0x42	; 66
 744:	91 05       	cpc	r25, r1
 746:	c1 f1       	breq	.+112    	; 0x7b8 <out_put+0xba>
 748:	83 34       	cpi	r24, 0x43	; 67
 74a:	91 05       	cpc	r25, r1
 74c:	0c f5       	brge	.+66     	; 0x790 <out_put+0x92>
 74e:	81 34       	cpi	r24, 0x41	; 65
 750:	91 05       	cpc	r25, r1
 752:	c9 f5       	brne	.+114    	; 0x7c6 <out_put+0xc8>
			break;
			case  0x21:a=0x02;
			break;
			case  0x41:a=0x03;
 754:	a3 e0       	ldi	r26, 0x03	; 3
 756:	37 c0       	rjmp	.+110    	; 0x7c6 <out_put+0xc8>
 758:	82 32       	cpi	r24, 0x22	; 34
 75a:	91 05       	cpc	r25, r1
 75c:	59 f1       	breq	.+86     	; 0x7b4 <out_put+0xb6>
 75e:	83 32       	cpi	r24, 0x23	; 35
 760:	91 05       	cpc	r25, r1
 762:	04 f5       	brge	.+64     	; 0x7a4 <out_put+0xa6>
 764:	81 97       	sbiw	r24, 0x21	; 33
 766:	79 f5       	brne	.+94     	; 0x7c6 <out_put+0xc8>
 768:	a2 e0       	ldi	r26, 0x02	; 2
 76a:	2d c0       	rjmp	.+90     	; 0x7c6 <out_put+0xc8>
 76c:	82 38       	cpi	r24, 0x82	; 130
 76e:	91 05       	cpc	r25, r1
 770:	39 f1       	breq	.+78     	; 0x7c0 <out_put+0xc2>
 772:	83 38       	cpi	r24, 0x83	; 131
 774:	91 05       	cpc	r25, r1
 776:	8c f0       	brlt	.+34     	; 0x79a <out_put+0x9c>
 778:	84 38       	cpi	r24, 0x84	; 132
 77a:	91 05       	cpc	r25, r1
 77c:	19 f1       	breq	.+70     	; 0x7c4 <out_put+0xc6>
 77e:	88 38       	cpi	r24, 0x88	; 136
 780:	91 05       	cpc	r25, r1
 782:	09 f5       	brne	.+66     	; 0x7c6 <out_put+0xc8>
			break;
			case  0x81:a=0x0a;
			break;
			case  0x12:a=0x04;
			break;
			case  0x22:a=0x05;
			break;
			case  0x42:a=0x06;
			break;
			case  0x82:a=0x0b;
			break;
			case  0x14:a=0x07;
			break;
			case  0x24:a=0x08;
			break;
			case  0x44:a=0x09;
			break;
			case  0x84:a=0x0c;
			break;
			case  0x18:a=0x0d;
			break;
			case  0x28:a=0x00;
			break;
			case  0x48:a=0x0e;
			break;
			case  0x88:a=0x0f;
 784:	af e0       	ldi	r26, 0x0F	; 15
 786:	1f c0       	rjmp	.+62     	; 0x7c6 <out_put+0xc8>
 788:	ad e0       	ldi	r26, 0x0D	; 13
 78a:	1d c0       	rjmp	.+58     	; 0x7c6 <out_put+0xc8>
 78c:	ae e0       	ldi	r26, 0x0E	; 14
 78e:	1b c0       	rjmp	.+54     	; 0x7c6 <out_put+0xc8>
 790:	84 34       	cpi	r24, 0x44	; 68
 792:	91 05       	cpc	r25, r1
 794:	c1 f4       	brne	.+48     	; 0x7c6 <out_put+0xc8>
 796:	a9 e0       	ldi	r26, 0x09	; 9
 798:	16 c0       	rjmp	.+44     	; 0x7c6 <out_put+0xc8>
 79a:	81 38       	cpi	r24, 0x81	; 129
 79c:	91 05       	cpc	r25, r1
 79e:	99 f4       	brne	.+38     	; 0x7c6 <out_put+0xc8>
 7a0:	aa e0       	ldi	r26, 0x0A	; 10
 7a2:	11 c0       	rjmp	.+34     	; 0x7c6 <out_put+0xc8>
 7a4:	84 97       	sbiw	r24, 0x24	; 36
 7a6:	79 f4       	brne	.+30     	; 0x7c6 <out_put+0xc8>
 7a8:	a8 e0       	ldi	r26, 0x08	; 8
 7aa:	0d c0       	rjmp	.+26     	; 0x7c6 <out_put+0xc8>
 7ac:	44 97       	sbiw	r24, 0x14	; 20
 7ae:	59 f4       	brne	.+22     	; 0x7c6 <out_put+0xc8>
 7b0:	a7 e0       	ldi	r26, 0x07	; 7
 7b2:	09 c0       	rjmp	.+18     	; 0x7c6 <out_put+0xc8>
 7b4:	a5 e0       	ldi	r26, 0x05	; 5
 7b6:	07 c0       	rjmp	.+14     	; 0x7c6 <out_put+0xc8>
 7b8:	a6 e0       	ldi	r26, 0x06	; 6
 7ba:	05 c0       	rjmp	.+10     	; 0x7c6 <out_put+0xc8>

⌨️ 快捷键说明

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