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

📄 测试.lst

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 LST
📖 第 1 页 / 共 5 页
字号:
     3F6 9AAA      SBI	0x15,2
(0174)  RW_L;
     3F7 9AA3      SBI	0x14,3
     3F8 98AB      CBI	0x15,3
(0175)  E_H;
     3F9 9AA4      SBI	0x14,4
     3FA 9AAC      SBI	0x15,4
(0176)  DDRA=0XFF;
     3FB EF8F      LDI	R24,0xFF
     3FC BB8A      OUT	0x1A,R24
(0177)  PORTA=data;
     3FD BAAB      OUT	0x1B,R10
(0178)  delay_us(5);
     3FE E005      LDI	R16,5
     3FF E010      LDI	R17,0
     400 DFA4      RCALL	_delay_us
(0179)  E_L;
     401 9AA4      SBI	0x14,4
     402 98AC      CBI	0x15,4
     403 90A9      LD	R10,Y+
     404 9508      RET
_wezhi:
  p                    --> R20
  y                    --> R10
  x                    --> R22
     405 940E 09C2 CALL	push_xgsetF00C
     407 2EA2      MOV	R10,R18
     408 2F60      MOV	R22,R16
(0180) }
(0181) //****************************************************
(0182) /*写入显示内部带字库型的字体的位置*/
(0183) //****************************************************
(0184) void wezhi(uchar x,uchar y)//x为在哪一行,y是在哪一列
(0185) {
(0186)  uchar p;
(0187)  if(x==0) p=0x80;//第一行
     409 2366      TST	R22
     40A F409      BNE	0x040C
     40B E840      LDI	R20,0x80
(0188)  if(x==1) p=0x90;//第二行
     40C 3061      CPI	R22,1
     40D F409      BNE	0x040F
     40E E940      LDI	R20,0x90
(0189)  if(x==2) p=0x88;//第三行
     40F 3062      CPI	R22,2
     410 F409      BNE	0x0412
     411 E848      LDI	R20,0x88
(0190)  if(x==3) p=0x98;//第四行
     412 3063      CPI	R22,3
     413 F409      BNE	0x0415
     414 E948      LDI	R20,0x98
(0191)  p+=y;//再加上y列
     415 0D4A      ADD	R20,R10
(0192)  writecomd(p) ;
     416 2F04      MOV	R16,R20
     417 DFC7      RCALL	_writecomd
(0193)  delay_ms(1);
     418 E001      LDI	R16,1
     419 E010      LDI	R17,0
     41A DF75      RCALL	_delay_ms
     41B 940C 09C9 JMP	pop_xgsetF00C
_zhiti:
  data                 --> R20
     41D 934A      ST	R20,-Y
     41E 935A      ST	R21,-Y
     41F 01A8      MOVW	R20,R16
(0194) }
(0195) //****************************************************
(0196) /*写入字体*/
(0197) //**************************************************
(0198) void zhiti(uchar *data)
(0199) {
     420 C008      RJMP	0x0429
(0200)  
(0201)  while(*data!='\0')
(0202)   {
(0203)    writedata(*data);
     421 01FA      MOVW	R30,R20
     422 8100      LDD	R16,Z+0
     423 DFCE      RCALL	_writedata
(0204)    delay_ms(5);
     424 E005      LDI	R16,5
     425 E010      LDI	R17,0
     426 DF69      RCALL	_delay_ms
(0205)    data++;
     427 5F4F      SUBI	R20,0xFF
     428 4F5F      SBCI	R21,0xFF
     429 01FA      MOVW	R30,R20
     42A 8020      LDD	R2,Z+0
     42B 2022      TST	R2
     42C F7A1      BNE	0x0421
     42D 9159      LD	R21,Y+
     42E 9149      LD	R20,Y+
     42F 9508      RET
(0206)   }
(0207) }
(0208) //********************************************************
(0209) /*基本指令初始化*/
(0210) //*******************************************************
(0211) void frist1()
(0212) {
(0213)  writecomd(0x01);//清屏显示
_frist1:
     430 E001      LDI	R16,1
     431 DFAD      RCALL	_writecomd
(0214)  writecomd(0x30);//8位并口,基本指令
     432 E300      LDI	R16,0x30
     433 DFAB      RCALL	_writecomd
(0215)  delay_us(10);
     434 E00A      LDI	R16,0xA
     435 E010      LDI	R17,0
     436 DF6E      RCALL	_delay_us
(0216)  writecomd(0x0c);//整体显示,无游标,无反百,
     437 E00C      LDI	R16,0xC
     438 DFA6      RCALL	_writecomd
(0217)  delay_us(10);
     439 E00A      LDI	R16,0xA
     43A E010      LDI	R17,0
     43B DF69      RCALL	_delay_us
(0218)  writecomd(0x02);//地址归位
     43C E002      LDI	R16,2
     43D DFA1      RCALL	_writecomd
(0219)  delay_us(10);
     43E E00A      LDI	R16,0xA
     43F E010      LDI	R17,0
     440 DF64      RCALL	_delay_us
(0220)  writecomd(0x40);//设置CGRAM地址
     441 E400      LDI	R16,0x40
     442 DF9C      RCALL	_writecomd
     443 9508      RET
(0221) 
(0222) }
(0223) //*****************************************************
(0224) /*扩充指令*/
(0225) //*****************************************************
(0226) void frist2()
(0227) {
(0228)  writecomd(0x01);//清屏显示
_frist2:
     444 E001      LDI	R16,1
     445 DF99      RCALL	_writecomd
(0229)  delay_us(10);
     446 E00A      LDI	R16,0xA
     447 E010      LDI	R17,0
     448 DF5C      RCALL	_delay_us
(0230)  writecomd(0x36);//8位控制,扩充指令,绘图开
     449 E306      LDI	R16,0x36
     44A DF94      RCALL	_writecomd
(0231)  delay_ms(5);
     44B E005      LDI	R16,5
     44C E010      LDI	R17,0
     44D DF42      RCALL	_delay_ms
     44E 9508      RET
_drwa:
  k                    --> R22
  temp_y               --> R10
  temp_x               --> Y,+0
  i                    --> R12
  j                    --> R20
  data                 --> Y,+11
     44F 931A      ST	R17,-Y
     450 930A      ST	R16,-Y
     451 940E 09A3 CALL	push_xgsetF0FC
     453 9721      SBIW	R28,1
(0232) }
(0233) //*****************************************************
(0234) /*绘图程序,整页显示*/
(0235) //*****************************************************
(0236) void drwa(const uchar *data) 
(0237) {
(0238)  uchar i,j,k,temp_x,temp_y;
(0239)  temp_x=0x80;
     454 E880      LDI	R24,0x80
     455 8388      STD	Y+0,R24
(0240)  temp_y=0x80;
     456 2EA8      MOV	R10,R24
(0241)  for(i=0;i<32;i++)
     457 24CC      CLR	R12
     458 C017      RJMP	0x0470
(0242)  {
(0243)    writecomd(temp_y++);
     459 2C2A      MOV	R2,R10
     45A 2D82      MOV	R24,R2
     45B 5F8F      SUBI	R24,0xFF
     45C 2EA8      MOV	R10,R24
     45D 2D02      MOV	R16,R2
     45E DF80      RCALL	_writecomd
(0244)    writecomd(temp_x);
     45F 8108      LDD	R16,Y+0
     460 DF7E      RCALL	_writecomd
(0245)    for(j=0;j<16;j++)
     461 2744      CLR	R20
     462 C00A      RJMP	0x046D
(0246)     {
(0247) 	 writedata(*data);
     463 85EB      LDD	R30,Y+11
     464 85FC      LDD	R31,Y+12
     465 9104      LPM	R16,12(Z)
     466 DF8B      RCALL	_writedata
(0248) 	 data++;
     467 858B      LDD	R24,Y+11
     468 859C      LDD	R25,Y+12
     469 9601      ADIW	R24,1
     46A 879C      STD	Y+12,R25
     46B 878B      STD	Y+11,R24
     46C 9543      INC	R20
     46D 3140      CPI	R20,0x10
     46E F3A0      BCS	0x0463
     46F 94C3      INC	R12
     470 2D8C      MOV	R24,R12
     471 3280      CPI	R24,0x20
     472 F330      BCS	0x0459
(0249) 	}
(0250)   }
(0251)   temp_x=0x88;
     473 E888      LDI	R24,0x88
     474 8388      STD	Y+0,R24
(0252)   temp_y=0x80;
     475 E880      LDI	R24,0x80
     476 2EA8      MOV	R10,R24
(0253)   for(i=0;i<32;i++)
     477 24CC      CLR	R12
     478 C017      RJMP	0x0490
(0254)    {
(0255)     writecomd(temp_y++);
     479 2C2A      MOV	R2,R10
     47A 2D82      MOV	R24,R2
     47B 5F8F      SUBI	R24,0xFF
     47C 2EA8      MOV	R10,R24
     47D 2D02      MOV	R16,R2
     47E DF60      RCALL	_writecomd
(0256)     writecomd(temp_x);
     47F 8108      LDD	R16,Y+0
     480 DF5E      RCALL	_writecomd
(0257)     for(j=0;j<16;j++)
     481 2744      CLR	R20
     482 C00A      RJMP	0x048D
(0258) 	 {
(0259) 	  writedata(*data);
     483 85EB      LDD	R30,Y+11
     484 85FC      LDD	R31,Y+12
     485 9104      LPM	R16,12(Z)
     486 DF6B      RCALL	_writedata
(0260) 	  data++;
     487 858B      LDD	R24,Y+11
     488 859C      LDD	R25,Y+12
     489 9601      ADIW	R24,1
     48A 879C      STD	Y+12,R25
     48B 878B      STD	Y+11,R24
     48C 9543      INC	R20
     48D 3140      CPI	R20,0x10
     48E F3A0      BCS	0x0483
     48F 94C3      INC	R12
     490 2D8C      MOV	R24,R12
     491 3280      CPI	R24,0x20
     492 F330      BCS	0x0479
(0261) 	 }
(0262)    }
(0263)    for(k=0;k<11;k++)    ////下面程序是为了实现动画的
     493 2766      CLR	R22
     494 C024      RJMP	0x04B9
(0264)    {
(0265)    temp_x=0x98;
     495 E988      LDI	R24,0x98
     496 8388      STD	Y+0,R24
(0266)    temp_y=0x9B;
     497 E98B      LDI	R24,0x9B
     498 2EA8      MOV	R10,R24
(0267)       for(i=0;i<3;i++)
     499 24CC      CLR	R12
     49A C017      RJMP	0x04B2
(0268)        {
(0269)         writecomd(temp_y++);
     49B 2CEA      MOV	R14,R10
     49C 2D8E      MOV	R24,R14
     49D 5F8F      SUBI	R24,0xFF
     49E 2EA8      MOV	R10,R24
     49F 2D0E      MOV	R16,R14
     4A0 DF3E      RCALL	_writecomd
(0270)         writecomd(temp_x);
     4A1 8108      LDD	R16,Y+0
     4A2 DF3C      RCALL	_writecomd
(0271)         for(j=0;j<16;j++)
     4A3 2744      CLR	R20
     4A4 C00A      RJMP	0x04AF
(0272) 	     {
(0273) 	      writedata(*data);
     4A5 85EB      LDD	R30,Y+11
     4A6 85FC      LDD	R31,Y+12
     4A7 9104      LPM	R16,12(Z)
     4A8 DF49      RCALL	_writedata
(0274) 	      data++;
     4A9 858B      LDD	R24,Y+11
     4AA 859C      LDD	R25,Y+12
     4AB 9601      ADIW	R24,1
     4AC 879C      STD	Y+12,R25
     4AD 878B      STD	Y+11,R24
     4AE 9543      INC	R20
     4AF 3140      CPI	R20,0x10
     4B0 F3A0      BCS	0x04A5
     4B1 94C3      INC	R12
     4B2 2D8C      MOV	R24,R12
     4B3 3083      CPI	R24,3
     4B4 F330      BCS	0x049B
(0275) 	      }
(0276)        }
(0277) 	delay_ms(100);
     4B5 E604      LDI	R16,0x64
     4B6 E010      LDI	R17,0
     4B7 DED8      RCALL	_delay_ms
     4B8 9563      INC	R22
     4B9 306B      CPI	R22,0xB
     4BA F2D0      BCS	0x0495
     4BB 9621      ADIW	R28,1
     4BC 940E 0998 CALL	pop_xgsetF0FC
     4BE 9622      ADIW	R28,2
     4BF 9508      RET
(0278) 	}
(0279)  }
(0280) /*********************************************
(0281)                 开机画面
(0282) ***********************************************/
(0283) void kaiji(void)
(0284) {
(0285)    frist2();
_kaiji:
     4C0 DF83      RCALL	_frist2
(0286)    drwa(data00);
     4C1 E504      LDI	R16,0x54
     4C2 E010      LDI	R17,0
     4C3 DF8B      RCALL	_drwa
(0287)    frist1();
     4C4 DF6B      RCALL	_frist1
(0288)    writecomd(0x01);//清屏显示
     4C5 E001      LDI	R16,1
     4C6 DF18      RCALL	_writecomd
(0289)    wezhi(1,2);
     4C7 E022      LDI	R18,2
     4C8 E001      LDI	R16,1
     4C9 DF3B      RCALL	_wezhi
(0290)    zhiti(data01);
     4CA E600      LDI	R16,0x60
     4CB E010      LDI	R17,0
     4CC DF50      RCALL	_zhiti
(0291)    wezhi(2,0);
     4CD 2722      CLR	R18
     4CE E002      LDI	R16,2
     4CF DF35      RCALL	_wezhi
(0292)    zhiti(data02);
     4D0 E609      LDI	R16,0x69
     4D1 E010      LDI	R17,0
     4D2 DF4A      RCALL	_zhiti
     4D3 9508      RET
_key_scan:
  j                    --> R10

⌨️ 快捷键说明

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