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

📄 mp3_7210.lst

📁 你熟悉QT吗?Linux系统上领先的GUI
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
    0159 E5CF      LDI	R28,0x5F
    015A E0D4      LDI	R29,4
    015B BFCD      OUT	0x3D,R28
    015C BFDE      OUT	0x3E,R29
    015D 51C0      SUBI	R28,0x10
    015E 40D0      SBCI	R29,0
    015F EA0A      LDI	R16,0xAA
    0160 8308      STD	Y+0,R16
    0161 2400      CLR	R0
    0162 E6E2      LDI	R30,0x62
    0163 E0F1      LDI	R31,1
    0164 E013      LDI	R17,3
    0165 36E6      CPI	R30,0x66
    0166 07F1      CPC	R31,R17
    0167 F011      BEQ	0x016A
    0168 9201      ST	R0,Z+
    0169 CFFB      RJMP	0x0165
    016A 8300      STD	Z+0,R16
    016B EBE0      LDI	R30,0xB0
    016C E0F1      LDI	R31,1
    016D E6A0      LDI	R26,0x60
    016E E0B0      LDI	R27,0
    016F E012      LDI	R17,2
    0170 3BE2      CPI	R30,0xB2
    0171 07F1      CPC	R31,R17
    0172 F021      BEQ	0x0177
    0173 95C8      LPM
    0174 9631      ADIW	R30,1
    0175 920D      ST	R0,X+
    0176 CFF9      RJMP	0x0170
    0177 940E048B  CALL	_main
_exit:
    0179 CFFF      RJMP	_exit
FILE: G:\mega8\atmega16\mp3_7210\usb_F245.c
(0001) #include <iom16v.h>
(0002) 
(0003) #define led1_off      (PORTA|=(1<<4))
(0004) #define led1_on       (PORTA&=~(1<<4))
(0005) 
(0006) #define usb_txrdy	((PINC&0x04)>>2)
(0007) #define usb_rxrdy	((PINC&0x08)>>3)
(0008) #define set_usb_read	(PORTC|=(1<<0))
(0009) #define clr_usb_read	(PORTC&=~(1<<0))
(0010) #define set_usb_write	(PORTC|=(1<<1))
(0011) #define clr_usb_write	(PORTC&=~(1<<1))
(0012) 
(0013) 
(0014) /***********USB_FT245读数据******************/
(0015) unsigned char usb_read(void) 
(0016)      {
_usb_read:
  usb_data             --> R16
    017A C001      RJMP	0x017C
(0017) 	  unsigned char usb_data;
(0018) 	  while (usb_rxrdy) 
(0019) 	  		{
(0020) 			led1_on;  /*空则循环*/
    017B 98DC      CBI	0x1B,4
    017C B383      IN	R24,0x13
    017D 7088      ANDI	R24,0x8
    017E 9586      LSR	R24
    017F 9586      LSR	R24
    0180 9586      LSR	R24
    0181 2388      TST	R24
    0182 F7C1      BNE	0x017B
(0021) 			}
(0022) 	  led1_off;
    0183 9ADC      SBI	0x1B,4
(0023) 	  clr_usb_read;
    0184 98A8      CBI	0x15,0
(0024) 	  set_usb_read;
    0185 9AA8      SBI	0x15,0
(0025) 	  usb_data=PIND;	  
    0186 B300      IN	R16,0x10
(0026) 	  return (usb_data);
    0187 9508      RET
_usb_write:
  usb_data             --> R20
    0188 940E05FE  CALL	push_gset1
    018A 2F40      MOV	R20,R16
(0027) 	 }	
(0028) /***********USB_FT245写数据******************/
(0029) void usb_write(unsigned char usb_data); 
(0030) void usb_write(unsigned char usb_data) 
(0031)      {
    018B C005      RJMP	0x0191
(0032) 	  while (usb_txrdy) 
(0033) 	  		{
(0034) 			led1_on;  /*忙则循环*/
    018C 98DC      CBI	0x1B,4
(0035) 			delay_ms(1000);
    018D EE08      LDI	R16,0xE8
    018E E013      LDI	R17,3
    018F 940E05E6  CALL	_delay_ms
    0191 B383      IN	R24,0x13
    0192 7084      ANDI	R24,4
    0193 9586      LSR	R24
    0194 9586      LSR	R24
    0195 2388      TST	R24
    0196 F7A9      BNE	0x018C
(0036) 			}
(0037) 	  led1_off;			
    0197 9ADC      SBI	0x1B,4
(0038)  	  DDRD =0b11111111;       /*1=output */
    0198 EF8F      LDI	R24,0xFF
    0199 BB81      OUT	0x11,R24
(0039) 	  PORTD=usb_data;	  
    019A BB42      OUT	0x12,R20
(0040) 	  set_usb_write;
    019B 9AA9      SBI	0x15,1
(0041) 	  clr_usb_write;	  	  	  
    019C 98A9      CBI	0x15,1
(0042)  	  DDRD =0b00000000;       /*0=input */
    019D 2422      CLR	R2
    019E BA21      OUT	0x11,R2
(0043) 	  PORTD=0b00000000;       /*三态高阻*/
    019F BA22      OUT	0x12,R2
(0044) 	 }		 	 
    01A0 940E0601  CALL	pop_gset1
    01A2 9508      RET
_LCD_write:
  temp                 --> R20
  dc                   --> R18
  data                 --> R16
    01A3 940E05FE  CALL	push_gset1
FILE: G:\mega8\atmega16\mp3_7210\lcd6610.c
(0001) 
(0002) #include<iom16v.h>
(0003) 
(0004) #define set_lcd_data  (PORTB|=(1<<5))
(0005) #define clr_lcd_data  (PORTB&=~(1<<5))
(0006) #define set_lcd_clk   (PORTB|=(1<<7))
(0007) #define clr_lcd_clk   (PORTB&=~(1<<7))
(0008) #define set_lcd_cs    (PORTB|=(1<<3))
(0009) #define clr_lcd_cs    (PORTB&=~(1<<3))
(0010) #define set_lcd_reset (PORTB|=(1<<4))
(0011) #define clr_lcd_reset (PORTB&=~(1<<4))
(0012) 
(0013) 
(0014)  #define LCD_CMD_SWRESET	0x01
(0015)  #define LCD_CMD_SLEEPOUT	0x11
(0016)  #define LCD_CMD_DISPON		0x29
(0017)  #define LCD_CMD_BSTRON		0x03 
(0018)  #define LCD_CMD_MADCTL		0x36  
(0019)   /*next is a data byte*/
(0020)  #define MADCTL_HORIZ		0x48    
(0021)  #define LCD_CMD_COLMOD		0x3A
(0022)  /*第8步是02,256色*/
(0023)  #define LCD_CMD_INVON		0x21
(0024)  #define LCD_CMD_RGBSET		0x2D
(0025)  #define LCD_CMD_SETCON		0x25
(0026)     
(0027)  #define LCD_CMD_SLEEPIN	0x10
(0028)  #define LCD_CMD_CASET		0x2A
(0029)  #define LCD_CMD_PASET		0x2B
(0030)  #define LCD_CMD_RAMWR		0x2C
(0031)  #define MADCTL_VERT		0x68
(0032) 
(0033) 
(0034) unsigned char Bmp004[]=
(0035) {
(0036) /*------------------------------------------------------------------------------
(0037)   源文件 / 文字 : www.smart-io.com
(0038)   宽×高(像素): 128×16
(0039)   字模格式/大小 : 单色点阵液晶字模,横向取模,字节倒序/256字节
(0040)   数据转换日期  : 2004-5-27 2:04:32
(0041) ------------------------------------------------------------------------------*/
(0042) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0043) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0044) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0045) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
(0046) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
(0047) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0048) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0049) 0xEB,0xEB,0xEB,0x00,0x7C,0x7F,0x3C,0x77,0x3E,0x00,0x0E,0x3C,0x00,0x38,0x3C,0x7F,
(0050) 0x49,0x49,0x49,0x00,0x42,0x92,0x42,0x4C,0x08,0xFE,0x08,0x42,0x00,0x44,0x42,0x92,
(0051) 0x49,0x49,0x49,0x00,0x02,0x92,0x78,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
(0052) 0x55,0x55,0x55,0x00,0x3C,0x92,0x44,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
(0053) 0x55,0x55,0x55,0x00,0x40,0x92,0x42,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
(0054) 0x22,0x22,0x22,0x06,0x42,0x92,0x42,0x04,0x08,0x00,0x08,0x42,0x06,0x44,0x42,0x92,
(0055) 0x22,0x22,0x22,0x06,0x3E,0xB7,0xFC,0x1F,0x30,0x00,0x3E,0x3C,0x06,0x38,0x3C,0xB7,
(0056) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0057) 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
(0058) };
(0059) 
(0060) const unsigned char Bmp_ascii[]=
(0061) {
(0062) /*------------------------------------------------------------------------------
(0063)   源文件 / 文字 : a ~Z
(0064)   宽×高(像素): 5*7
(0065)   字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/44字节
(0066)   数据转换日期  : 2004-7-31 2:36:43
(0067) ------------------------------------------------------------------------------*/
(0068) 0x7E,0x81,0x81,0x81,0x7E,
(0069) 0x00,0x82,0xFF,0x80,0x00,
(0070) 0xC6,0xA1,0x91,0x89,0x86,
(0071) 0x42,0x81,0x89,0x89,0x76,
(0072) 0x30,0x2C,0x22,0xFF,0x20,
(0073) 0x4F,0x89,0x89,0x89,0x71,
(0074) 0x7E,0x89,0x89,0x89,0x72,
(0075) 0x03,0x01,0xF9,0x07,0x01,
(0076) 0x76,0x89,0x89,0x89,0x76,
(0077) 0x4E,0x91,0x91,0x91,0x7E,
(0078) 
(0079) 0x28,0x54,0x54,0x78,0x40,
(0080) 0x01,0x7F,0x48,0x48,0x30,
(0081) 0x38,0x44,0x44,0x4C,0x00,
(0082) 0x30,0x48,0x49,0x7F,0x40,
(0083) 0x38,0x54,0x54,0x58,0x00,
(0084) 0x48,0x7E,0x49,0x49,0x01,
(0085) 0x3A,0x55,0x55,0x53,0x21,
(0086) 0x41,0x7F,0x08,0x48,0x70,
(0087) 0x00,0x44,0x7D,0x40,0x00,
(0088) 0x40,0x44,0x44,0x3D,0x00,
(0089) 0x41,0x7F,0x10,0x68,0x4C,
(0090) 0x00,0x41,0x7F,0x40,0x00,
(0091) 0x7C,0x04,0x7C,0x04,0x78,
(0092) 0x7C,0x04,0x04,0x78,0x00,
(0093) 0x00,0x38,0x44,0x44,0x38,
(0094) 0x42,0x7E,0x52,0x12,0x0C,
(0095) 0x0C,0x12,0x52,0x7E,0x42,
(0096) 0x44,0x7C,0x48,0x04,0x04,
(0097) 0x4C,0x54,0x54,0x64,0x00,
(0098) 0x04,0x3F,0x44,0x40,0x00,
(0099) 0x3C,0x40,0x40,0x7C,0x40,
(0100) 0x0C,0x30,0x60,0x30,0x0C,
(0101) 0x0C,0x70,0x1C,0x70,0x0C,
(0102) 0x44,0x6C,0x10,0x6C,0x44,
(0103) 0x02,0x4E,0x50,0x70,0x0E,
(0104) 0x00,0x64,0x54,0x4C,0x44
(0105) };
(0106) 
(0107)  
(0108) void LCD_write(unsigned char data,unsigned char dc);
(0109) void LCD_contrast(unsigned char data);
(0110) void lcd_ascii(char *s,unsigned char len);
(0111) void lcd_color(unsigned char bkg,unsigned char text);
(0112) void lcd_window(unsigned char xp,unsigned char yp,unsigned char xe,unsigned char ye);
(0113) void lcd_gotoxy(unsigned char x, unsigned char y);
(0114) void lcd_bar(unsigned char len,unsigned char val,unsigned char bkgcol,unsigned char fillcol);
(0115) unsigned char lcd_bkg_color;
(0116) unsigned char lcd_text_color;
(0117) unsigned char lcd_x;
(0118) unsigned char lcd_y;
(0119) 
(0120) 	 
(0121) 
(0122) /***********LCD WRITE******************/
(0123) /**********基础程序直接调用即可*********/
(0124) void LCD_write(unsigned char data,unsigned char dc) 
(0125)      {
(0126) 	  unsigned char temp;
(0127) 
(0128)       temp=0;
    01A5 2744      CLR	R20
(0129) 	  clr_lcd_data;    
    01A6 98C5      CBI	0x18,5
(0130) 	  clr_lcd_clk;
    01A7 98C7      CBI	0x18,7
(0131) 
(0132) 	  if (dc) set_lcd_data;  /*dc=0 instrution*/
    01A8 2322      TST	R18
    01A9 F011      BEQ	0x01AC
    01AA 9AC5      SBI	0x18,5
    01AB C001      RJMP	0x01AD
(0133) 	  else clr_lcd_data;
    01AC 98C5      CBI	0x18,5
(0134)       set_lcd_clk;
    01AD 9AC7      SBI	0x18,7
(0135) 	  clr_lcd_clk;
    01AE 98C7      CBI	0x18,7
(0136)   	  if (data&0x80) set_lcd_data; //high 4 bit
    01AF FF07      SBRS	R16,7
    01B0 C002      RJMP	0x01B3
    01B1 9AC5      SBI	0x18,5
    01B2 C001      RJMP	0x01B4
(0137) 	  else clr_lcd_data;
    01B3 98C5      CBI	0x18,5
(0138)       set_lcd_clk;
    01B4 9AC7      SBI	0x18,7
(0139) 	  clr_lcd_clk;
    01B5 98C7      CBI	0x18,7
(0140) 	  if (data&0x40) set_lcd_data;
    01B6 FF06      SBRS	R16,6
    01B7 C002      RJMP	0x01BA
    01B8 9AC5      SBI	0x18,5
    01B9 C001      RJMP	0x01BB
(0141) 	  else clr_lcd_data;
    01BA 98C5      CBI	0x18,5
(0142) 	  set_lcd_clk;
    01BB 9AC7      SBI	0x18,7
(0143) 	  clr_lcd_clk;
    01BC 98C7      CBI	0x18,7
(0144) 	  if (data&0x20) set_lcd_data;
    01BD FF05      SBRS	R16,5
    01BE C002      RJMP	0x01C1
    01BF 9AC5      SBI	0x18,5
    01C0 C001      RJMP	0x01C2
(0145) 	  else clr_lcd_data;
    01C1 98C5      CBI	0x18,5
(0146) 	  set_lcd_clk;
    01C2 9AC7      SBI	0x18,7
(0147) 	  clr_lcd_clk;
    01C3 98C7      CBI	0x18,7
(0148) 	  if (data&0x10) set_lcd_data;
    01C4 FF04      SBRS	R16,4
    01C5 C002      RJMP	0x01C8
    01C6 9AC5      SBI	0x18,5
    01C7 C001      RJMP	0x01C9
(0149) 	  else clr_lcd_data;
    01C8 98C5      CBI	0x18,5
(0150) 	  set_lcd_clk;
    01C9 9AC7      SBI	0x18,7
(0151) 	  clr_lcd_clk;
    01CA 98C7      CBI	0x18,7
(0152) 	  if (data&0x08) set_lcd_data;//low 4 bit
    01CB FF03      SBRS	R16,3
    01CC C002      RJMP	0x01CF
    01CD 9AC5      SBI	0x18,5
    01CE C001      RJMP	0x01D0
(0153) 	  else clr_lcd_data;
    01CF 98C5      CBI	0x18,5
(0154) 	  set_lcd_clk;
    01D0 9AC7      SBI	0x18,7
(0155) 	  clr_lcd_clk;
    01D1 98C7      CBI	0x18,7
(0156) 	  if (data&0x04) set_lcd_data;
    01D2 FF02      SBRS	R16,2
    01D3 C002      RJMP	0x01D6
    01D4 9AC5      SBI	0x18,5
    01D5 C001      RJMP	0x01D7
(0157) 	  else clr_lcd_data;
    01D6 98C5      CBI	0x18,5
(0158) 	  set_lcd_clk;
    01D7 9AC7      SBI	0x18,7
(0159) 	  clr_lcd_clk;
    01D8 98C7      CBI	0x18,7
(0160) 	  if (data&0x02) set_lcd_data;
    01D9 FF01      SBRS	R16,1
    01DA C002      RJMP	0x01DD
    01DB 9AC5      SBI	0x18,5
    01DC C001      RJMP	0x01DE
(0161) 	  else clr_lcd_data;
    01DD 98C5      CBI	0x18,5
(0162) 	  set_lcd_clk;
    01DE 9AC7      SBI	0x18,7
(0163) 	  clr_lcd_clk;
    01DF 98C7      CBI	0x18,7
(0164) 	  if (data&0x01) set_lcd_data;
    01E0 FF00      SBRS	R16,0
    01E1 C002      RJMP	0x01E4
    01E2 9AC5      SBI	0x18,5
    01E3 C001      RJMP	0x01E5
(0165) 	  else clr_lcd_data;
    01E4 98C5      CBI	0x18,5
(0166) 	  set_lcd_clk;
    01E5 9AC7      SBI	0x18,7
(0167) 	  clr_lcd_clk;
    01E6 98C7      CBI	0x18,7
(0168) 	}
    01E7 940E0601  CALL	pop_gset1
    01E9 9508      RET
(0169) /***********液晶初始化******************/
(0170) /**********基础程序直接调用即可*********/
(0171) /*****************************/
(0172) void lcd_init(void) 
(0173)      {
(0174) 	 clr_lcd_cs;          //enable lcd
_lcd_init:
    01EA 98C3      CBI	0x18,3
(0175) 	 clr_lcd_reset;
    01EB 98C4      CBI	0x18,4

⌨️ 快捷键说明

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