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

📄 disp.lss

📁 我学习AVR的代码例子
💻 LSS
📖 第 1 页 / 共 2 页
字号:
 168:	1f 91       	pop	r17
 16a:	08 95       	ret

0000016c <disp_init>:
 } 
void disp_init(void)
 {
 16c:	cf 93       	push	r28
 16e:	df 93       	push	r29
 170:	cd b7       	in	r28, 0x3d	; 61
 172:	de b7       	in	r29, 0x3e	; 62
 174:	21 97       	sbiw	r28, 0x01	; 1
 176:	0f b6       	in	r0, 0x3f	; 63
 178:	f8 94       	cli
 17a:	de bf       	out	0x3e, r29	; 62
 17c:	0f be       	out	0x3f, r0	; 63
 17e:	cd bf       	out	0x3d, r28	; 61
   volatile unsigned char i;
   SENDCOMA(0X0a); /*禁止WDT溢出标志输出*/
 180:	8a e0       	ldi	r24, 0x0A	; 10
 182:	0e 94 9b 00 	call	0x136
   SENDCOMA(0X52); //设置偏压,背极数 定义1/3 偏压4背极
 186:	82 e5       	ldi	r24, 0x52	; 82
 188:	0e 94 9b 00 	call	0x136
   SENDCOMA(0X30); //*使用内部256KRC 振荡器*
 18c:	80 e3       	ldi	r24, 0x30	; 48
 18e:	0e 94 9b 00 	call	0x136
   SENDCOMA(0X02); //*启动振荡器*    
 192:	82 e0       	ldi	r24, 0x02	; 2
 194:	0e 94 9b 00 	call	0x136
   SENDCOMA(0X06); //LCDON
 198:	86 e0       	ldi	r24, 0x06	; 6
 19a:	0e 94 9b 00 	call	0x136
   SENDCOMA(0X08);//timer dis
 19e:	88 e0       	ldi	r24, 0x08	; 8
 1a0:	0e 94 9b 00 	call	0x136
   SENDCOMB(0x00); //*把数据指针指回0 接着写入数据*   
 1a4:	80 e0       	ldi	r24, 0x00	; 0
 1a6:	0e 94 a8 00 	call	0x150
   for(i=0;i<15;i++) /*写入16 字节数据*/
 1aa:	19 82       	std	Y+1, r1	; 0x01
 1ac:	89 81       	ldd	r24, Y+1	; 0x01
 1ae:	8f 30       	cpi	r24, 0x0F	; 15
 1b0:	48 f4       	brcc	.+18     	; 0x1c4
     {
       SendByte(0x0); /*写入数据*/
 1b2:	80 e0       	ldi	r24, 0x00	; 0
 1b4:	0e 94 97 00 	call	0x12e
 1b8:	89 81       	ldd	r24, Y+1	; 0x01
 1ba:	8f 5f       	subi	r24, 0xFF	; 255
 1bc:	89 83       	std	Y+1, r24	; 0x01
 1be:	89 81       	ldd	r24, Y+1	; 0x01
 1c0:	8f 30       	cpi	r24, 0x0F	; 15
 1c2:	b8 f3       	brcs	.-18     	; 0x1b2
 1c4:	21 96       	adiw	r28, 0x01	; 1
 1c6:	0f b6       	in	r0, 0x3f	; 63
 1c8:	f8 94       	cli
 1ca:	de bf       	out	0x3e, r29	; 62
 1cc:	0f be       	out	0x3f, r0	; 63
 1ce:	cd bf       	out	0x3d, r28	; 61
 1d0:	df 91       	pop	r29
 1d2:	cf 91       	pop	r28
 1d4:	08 95       	ret

000001d6 <disp_off>:
     }
 }
void disp_off(void)
  {
    SENDCOMA(0X04);//lcdoff
 1d6:	84 e0       	ldi	r24, 0x04	; 4
 1d8:	0e 94 9b 00 	call	0x136
    SENDCOMA(0X00);//sys dis
 1dc:	80 e0       	ldi	r24, 0x00	; 0
 1de:	0e 94 9b 00 	call	0x136
 1e2:	08 95       	ret

000001e4 <disp>:
  }
void disp(unsigned char add,unsigned char dat)
 {
 1e4:	cf 93       	push	r28
 1e6:	c6 2f       	mov	r28, r22
   switch(add)
 1e8:	99 27       	eor	r25, r25
 1ea:	85 30       	cpi	r24, 0x05	; 5
 1ec:	91 05       	cpc	r25, r1
 1ee:	31 f1       	breq	.+76     	; 0x23c
 1f0:	86 30       	cpi	r24, 0x06	; 6
 1f2:	91 05       	cpc	r25, r1
 1f4:	7c f4       	brge	.+30     	; 0x214
 1f6:	82 30       	cpi	r24, 0x02	; 2
 1f8:	91 05       	cpc	r25, r1
 1fa:	d1 f0       	breq	.+52     	; 0x230
 1fc:	83 30       	cpi	r24, 0x03	; 3
 1fe:	91 05       	cpc	r25, r1
 200:	1c f4       	brge	.+6      	; 0x208
 202:	01 97       	sbiw	r24, 0x01	; 1
 204:	99 f0       	breq	.+38     	; 0x22c
 206:	2c c0       	rjmp	.+88     	; 0x260
 208:	83 30       	cpi	r24, 0x03	; 3
 20a:	91 05       	cpc	r25, r1
 20c:	99 f0       	breq	.+38     	; 0x234
 20e:	04 97       	sbiw	r24, 0x04	; 4
 210:	99 f0       	breq	.+38     	; 0x238
 212:	26 c0       	rjmp	.+76     	; 0x260
 214:	87 30       	cpi	r24, 0x07	; 7
 216:	91 05       	cpc	r25, r1
 218:	a9 f0       	breq	.+42     	; 0x244
 21a:	87 30       	cpi	r24, 0x07	; 7
 21c:	91 05       	cpc	r25, r1
 21e:	84 f0       	brlt	.+32     	; 0x240
 220:	88 30       	cpi	r24, 0x08	; 8
 222:	91 05       	cpc	r25, r1
 224:	89 f0       	breq	.+34     	; 0x248
 226:	09 97       	sbiw	r24, 0x09	; 9
 228:	89 f0       	breq	.+34     	; 0x24c
 22a:	1a c0       	rjmp	.+52     	; 0x260
     {
	   case 1: add=a1;break;
 22c:	84 e0       	ldi	r24, 0x04	; 4
 22e:	0f c0       	rjmp	.+30     	; 0x24e
	   case 2: add=a2;break;
 230:	8c e0       	ldi	r24, 0x0C	; 12
 232:	0d c0       	rjmp	.+26     	; 0x24e
	   case 3: add=a3;break;
 234:	84 e1       	ldi	r24, 0x14	; 20
 236:	0b c0       	rjmp	.+22     	; 0x24e
	   case 4: add=a4;break;
 238:	8c e1       	ldi	r24, 0x1C	; 28
 23a:	09 c0       	rjmp	.+18     	; 0x24e
	   case 5: add=a5;break;
 23c:	84 e2       	ldi	r24, 0x24	; 36
 23e:	07 c0       	rjmp	.+14     	; 0x24e
	   case 6: add=a6;break;
 240:	8c e2       	ldi	r24, 0x2C	; 44
 242:	05 c0       	rjmp	.+10     	; 0x24e
	   case 7: add=a7;break;
 244:	84 e3       	ldi	r24, 0x34	; 52
 246:	03 c0       	rjmp	.+6      	; 0x24e
	   case 8: add=a8;break;
 248:	8c e3       	ldi	r24, 0x3C	; 60
 24a:	01 c0       	rjmp	.+2      	; 0x24e
	   case 9: add=a9;break;
 24c:	84 e4       	ldi	r24, 0x44	; 68
	   //default: add=a1;break;
	   default: goto nodisp;
	 }
   SENDCOMB(add);             //write address
 24e:	0e 94 a8 00 	call	0x150
   SendByte(pgm_read_byte(S+dat));            //write data
 252:	ec 2f       	mov	r30, r28
 254:	ff 27       	eor	r31, r31
 256:	ec 5a       	subi	r30, 0xAC	; 172
 258:	ff 4f       	sbci	r31, 0xFF	; 255
 25a:	84 91       	lpm	r24, Z
 25c:	0e 94 97 00 	call	0x12e
 260:	cf 91       	pop	r28
 262:	08 95       	ret

00000264 <__vector_8>:
 nodisp:return;
 }
SIGNAL(SIG_OVERFLOW1)
{
 264:	1f 92       	push	r1
 266:	0f 92       	push	r0
 268:	0f b6       	in	r0, 0x3f	; 63
 26a:	0f 92       	push	r0
 26c:	11 24       	eor	r1, r1
 26e:	2f 93       	push	r18
 270:	3f 93       	push	r19
 272:	4f 93       	push	r20
 274:	5f 93       	push	r21
 276:	6f 93       	push	r22
 278:	7f 93       	push	r23
 27a:	8f 93       	push	r24
 27c:	9f 93       	push	r25
 27e:	af 93       	push	r26
 280:	bf 93       	push	r27
 282:	ef 93       	push	r30
 284:	ff 93       	push	r31
   TCNT1H=0xc2;
 286:	82 ec       	ldi	r24, 0xC2	; 194
 288:	8d bd       	out	0x2d, r24	; 45
   TCNT1L=0xf7;
 28a:	87 ef       	ldi	r24, 0xF7	; 247
 28c:	8c bd       	out	0x2c, r24	; 44
   TCCR1B=0x04;
 28e:	84 e0       	ldi	r24, 0x04	; 4
 290:	8e bd       	out	0x2e, r24	; 46
   disp(k,j);
 292:	60 91 60 00 	lds	r22, 0x0060
 296:	80 91 61 00 	lds	r24, 0x0061
 29a:	0e 94 f2 00 	call	0x1e4
   if(k>9)
 29e:	80 91 61 00 	lds	r24, 0x0061
 2a2:	8a 30       	cpi	r24, 0x0A	; 10
 2a4:	40 f0       	brcs	.+16     	; 0x2b6
   {
     k=1;
 2a6:	81 e0       	ldi	r24, 0x01	; 1
 2a8:	80 93 61 00 	sts	0x0061, r24
	 j=1;
 2ac:	80 93 60 00 	sts	0x0060, r24
	 disp_init();
 2b0:	0e 94 b6 00 	call	0x16c
 2b4:	08 c0       	rjmp	.+16     	; 0x2c6
	}
	else
	{
	  k++;
 2b6:	8f 5f       	subi	r24, 0xFF	; 255
 2b8:	80 93 61 00 	sts	0x0061, r24
      j++;
 2bc:	80 91 60 00 	lds	r24, 0x0060
 2c0:	8f 5f       	subi	r24, 0xFF	; 255
 2c2:	80 93 60 00 	sts	0x0060, r24
 2c6:	ff 91       	pop	r31
 2c8:	ef 91       	pop	r30
 2ca:	bf 91       	pop	r27
 2cc:	af 91       	pop	r26
 2ce:	9f 91       	pop	r25
 2d0:	8f 91       	pop	r24
 2d2:	7f 91       	pop	r23
 2d4:	6f 91       	pop	r22
 2d6:	5f 91       	pop	r21
 2d8:	4f 91       	pop	r20
 2da:	3f 91       	pop	r19
 2dc:	2f 91       	pop	r18
 2de:	0f 90       	pop	r0
 2e0:	0f be       	out	0x3f, r0	; 63
 2e2:	0f 90       	pop	r0
 2e4:	1f 90       	pop	r1
 2e6:	18 95       	reti

000002e8 <start_t1>:
	}
}
void start_t1(void)
{
  TCNT1H=0xc2;
 2e8:	82 ec       	ldi	r24, 0xC2	; 194
 2ea:	8d bd       	out	0x2d, r24	; 45
  TCNT1L=0xf7;              //设初值
 2ec:	87 ef       	ldi	r24, 0xF7	; 247
 2ee:	8c bd       	out	0x2c, r24	; 44
  TCCR1B=0X05;               //启动定时器1,采用1024分频
 2f0:	85 e0       	ldi	r24, 0x05	; 5
 2f2:	8e bd       	out	0x2e, r24	; 46
  TIMSK|=(1<<TOIE1);
 2f4:	89 b7       	in	r24, 0x39	; 57
 2f6:	84 60       	ori	r24, 0x04	; 4
 2f8:	89 bf       	out	0x39, r24	; 57
  sei();
 2fa:	78 94       	sei
 2fc:	08 95       	ret

000002fe <main>:
}
int main(void)
{
 2fe:	cf e5       	ldi	r28, 0x5F	; 95
 300:	d4 e0       	ldi	r29, 0x04	; 4
 302:	de bf       	out	0x3e, r29	; 62
 304:	cd bf       	out	0x3d, r28	; 61
  //char k,j;
  port_init();
 306:	0e 94 4d 00 	call	0x9a
  disp_init();
 30a:	0e 94 b6 00 	call	0x16c
  //for(k=1,j=9;k<10;k++,j--) disp(k,j);
  start_t1();
 30e:	0e 94 74 01 	call	0x2e8
  //timer_enable_int(BV(TOIE1)); 	 /*允许TIMER1溢出中断*/					 
  //sei();                         /*打开全局中断允许*/
  while(1)
  {
    delay_ms(100);
 312:	84 e6       	ldi	r24, 0x64	; 100
 314:	90 e0       	ldi	r25, 0x00	; 0
 316:	0e 94 5b 00 	call	0xb6
 31a:	fb cf       	rjmp	.-10     	; 0x312

⌨️ 快捷键说明

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