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

📄 yj12864.lst

📁 AVR单片机开发版资料测试程序里的源程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
__text_start:
__start:
    024D E5CF      LDI	R28,0x5F
    024E E0D4      LDI	R29,4
    024F BFCD      OUT	P3D,R28
    0250 BFDE      OUT	P3E,R29
    0251 51C0      SUBI	R28,0x10
    0252 40D0      SBCI	R29,0
    0253 EA0A      LDI	R16,0xAA
    0254 8308      STD	R16,0+Y
    0255 2400      CLR	R0
    0256 E9EA      LDI	R30,0x9A
    0257 E0F0      LDI	R31,0
    0258 E010      LDI	R17,0
    0259 39EA      CPI	R30,0x9A
    025A 07F1      CPC	R31,R17
    025B F011      BEQ	0x025E
    025C 9201      ST	R0,Z+
    025D CFFB      RJMP	0x0259
    025E 8300      STD	R16,0+Z
    025F E6E0      LDI	R30,0x60
    0260 E0F4      LDI	R31,4
    0261 E6A0      LDI	R26,0x60
    0262 E0B0      LDI	R27,0
    0263 E014      LDI	R17,4
    0264 39EA      CPI	R30,0x9A
    0265 07F1      CPC	R31,R17
    0266 F021      BEQ	0x026B
    0267 95C8      LPM
    0268 9631      ADIW	R30,1
    0269 920D      ST	R0,X+
    026A CFF9      RJMP	0x0264
    026B 940E03D4  CALL	_main
_exit:
    026D CFFF      RJMP	_exit
_Delayus:
  i                    --> R20
  US                   --> R22
    026E 940E0426  CALL	push_gset2
    0270 01B8      MOVW	R22,R16
FILE: C:\icc\include\AVR_PQ1A.h
(0001) /*******************************************
(0002)   文件:AVR_PQ1A.H
(0003)   功能:定义一些AVR_PQ1A开发板上应用程序用到的常量
(0004) /******************************************/
(0005) 
(0006) #include <iom16v.h>			//包含型号头文件
(0007) #include <macros.h>			//包含"位"操作头文件
(0008) 
(0009) /******************数据类型宏定义******************/
(0010) #define uchar unsigned char
(0011) #define uint unsigned int
(0012) 
(0013) /******************数码管和LED常量******************/
(0014) #define LEDLK PA2	//LED锁存器控制端
(0015) #define SEGLK PA3	//数码管段选锁存器控制端
(0016) #define BITLK PA4	//数码管位选锁存器控制端
(0017) 
(0018) #define TRUE 1
(0019) #define FALSE 0
(0020) #define ALLLED 0XFF
(0021) /*******************************************
(0022) 函数名称: Delayus
(0023) 功    能: 延时指定微秒(8M晶振)
(0024) 参    数: US--延时的微秒数(大约,不是很精确,MS越大越准确)
(0025) 返回值  : 无
(0026) /********************************************/
(0027) void Delayus(uint US)		  
(0028) {
(0029)  uint i;
(0030)  US=US*5/4;		  	 //5/4是在8MHz晶振下,通过软件仿真反复实验得到的数值
    0271 E005      LDI	R16,5
    0272 E010      LDI	R17,0
    0273 019B      MOVW	R18,R22
    0274 940E03FF  CALL	empy16s
    0276 01B8      MOVW	R22,R16
    0277 9576      LSR	R23
    0278 9567      ROR	R22
    0279 9576      LSR	R23
    027A 9567      ROR	R22
(0031)  for( i=0;i<US;i++); 
    027B 2744      CLR	R20
    027C 2755      CLR	R21
    027D C002      RJMP	0x0280
    027E 5F4F      SUBI	R20,0xFF
    027F 4F5F      SBCI	R21,0xFF
    0280 1746      CP	R20,R22
    0281 0757      CPC	R21,R23
    0282 F3D8      BCS	0x027E
(0032) }
    0283 940E0432  CALL	pop_gset2
    0285 9508      RET
_Delayms:
  i                    --> R20
  j                    --> R22
  MS                   --> R16
    0286 940E0426  CALL	push_gset2
(0033) /*******************************************
(0034) 函数名称: Delayms
(0035) 功    能: 延时指定毫秒(8M晶振)
(0036) 参    数: MS--延时的毫秒数
(0037) 返回值  : 无
(0038) /********************************************/
(0039) void Delayms(uint MS)		  
(0040) {
(0041)  uint i,j;
(0042)  for( i=0;i<MS;i++)
    0288 2744      CLR	R20
    0289 2755      CLR	R21
    028A C00B      RJMP	0x0296
(0043)  for(j=0;j<1141;j++);	//1141是在8MHz晶振下,通过软件仿真反复实验得到的数值
    028B 2766      CLR	R22
    028C 2777      CLR	R23
    028D C002      RJMP	0x0290
    028E 5F6F      SUBI	R22,0xFF
    028F 4F7F      SBCI	R23,0xFF
    0290 3765      CPI	R22,0x75
    0291 E0E4      LDI	R30,4
    0292 077E      CPC	R23,R30
    0293 F3D0      BCS	0x028E
    0294 5F4F      SUBI	R20,0xFF
    0295 4F5F      SBCI	R21,0xFF
    0296 1740      CP	R20,R16
    0297 0751      CPC	R21,R17
    0298 F390      BCS	0x028B
(0044) }
    0299 940E0432  CALL	pop_gset2
    029B 9508      RET
(0045) /*******************************************
(0046) 函数名称: Board_init
(0047) 功    能: 初始化实验板,关闭全部功能
(0048) 参    数: 无
(0049) 返回值  : 无
(0050) /********************************************/
(0051) void Board_init(void)
(0052) {
(0053) 	DDRA=0xFF;	//将四个IO口全部配置为输出
_Board_init:
    029C EF8F      LDI	R24,0xFF
    029D BB8A      OUT	P1A,R24
(0054) 	DDRB=0xFF;
    029E BB87      OUT	P17,R24
(0055) 	DDRC=0xFF;
    029F BB84      OUT	P14,R24
(0056) 	DDRD=0xFF;
    02A0 BB81      OUT	P11,R24
(0057) 
(0058) 	SPCR=0x00;	//还原SPI口,使其为正常端口	
    02A1 2422      CLR	R2
    02A2 B82D      OUT	P0D,R2
(0059) 
(0060) 	PORTA|=BIT(PA6);//(BEEP)关闭蜂鸣器
    02A3 9ADE      SBI	P1B,6
(0061) 	PORTC&=~BIT(PC6);	  //(RELAY)初始化继电器为常闭连接状态	
    02A4 98AE      CBI	P15,6
(0062) 	PORTA&=~BIT(PA1);	//关闭SPI总线DA
    02A5 98D9      CBI	P1B,1
(0063) 	PORTB=0xFF;	//关闭LED
    02A6 BB88      OUT	P18,R24
(0064) 	PORTA|=BIT(LEDLK);	//锁存数据,使LED熄灭
    02A7 9ADA      SBI	P1B,2
(0065)  	Delayus(5);		
    02A8 E005      LDI	R16,5
    02A9 E010      LDI	R17,0
    02AA DFC3      RCALL	_Delayus
(0066)  	PORTA&=~BIT(LEDLK);
    02AB 98DA      CBI	P1B,2
(0067) 	
(0068) 	PORTB=0x00;	   //输出段选
    02AC 2422      CLR	R2
    02AD BA28      OUT	P18,R2
(0069)  	PORTA|=BIT(SEGLK);		  
    02AE 9ADB      SBI	P1B,3
(0070)  	Delayus(50);			  
    02AF E302      LDI	R16,0x32
    02B0 E010      LDI	R17,0
    02B1 DFBC      RCALL	_Delayus
(0071)  	PORTA&=~BIT(SEGLK);	    
    02B2 98DB      CBI	P1B,3
(0072)  	
(0073)  	PORTB=0xFF;	   //输出位选
    02B3 EF8F      LDI	R24,0xFF
    02B4 BB88      OUT	P18,R24
(0074)  	PORTA|=BIT(BITLK);		   
    02B5 9ADC      SBI	P1B,4
(0075)  	Delayus(50);				   
    02B6 E302      LDI	R16,0x32
    02B7 E010      LDI	R17,0
    02B8 DFB5      RCALL	_Delayus
(0076)  	PORTA&=~BIT(BITLK);	   
    02B9 98DC      CBI	P1B,4
(0077) 	
(0078) 	PORTD=0xFF;
    02BA EF8F      LDI	R24,0xFF
    02BB BB82      OUT	P12,R24
(0079) 	PORTA|=BIT(PA7);
    02BC 9ADF      SBI	P1B,7
(0080) 	Delayus(50);
    02BD E302      LDI	R16,0x32
    02BE E010      LDI	R17,0
    02BF DFAE      RCALL	_Delayus
(0081) 	PORTA&=~BIT(PA7);
    02C0 98DF      CBI	P1B,7
(0082) 
(0083) 	
(0084) }
    02C1 9508      RET
FILE: C:\icc\examples.avr\AVR_PQ1A_DEMO\4_12864\YJ12864.C
(0001) /*******************************************
(0002)   文件:YJ12864.C
(0003)   环境:编译为ICC AVR6.25A,仿真为AVR Studio4.10 
(0004)   硬件:ATMEGA16芯片
(0005)   日期:2006年12月10日 
(0006)   功能:驱动开发板上的12864液晶
(0007)   备注:参考《AVR系列单片机C语言编程与应用实例》(清华大学出版社)
(0008) /******************************************/
(0009) #include <iom16v.h>			//包含型号头文件
(0010) #include <macros.h>			//包含"位"操作头文件
(0011) #include <stdio.h>			//标准输入输出头文件
(0012) #include <AVR_PQ1A.h>		//包含自定义常量头文件
(0013) 
(0014) #pragma data:code //以下是字模工具取出的图片数组
(0015) const uchar GDRAM[1024]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0016) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0017) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0018) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0019) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0020) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0021) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0022) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0023) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0024) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0025) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0026) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0027) 0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
(0028) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0029) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0030) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0031) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0032) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0033) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0034) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0035) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0036) 0x20,0x40,0x00,0x40,0x80,0x00,0x80,0x80,0x00,0x80,0x80,0x00,0x82,0x00,0x02,0x04,
(0037) 0x20,0x7F,0xFF,0xC0,0xFF,0xFF,0x80,0xFF,0xFF,0x80,0xFF,0xFF,0x83,0xFF,0xFE,0x04,
(0038) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0039) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0040) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0041) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0042) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0043) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0044) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0045) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0046) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0047) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0048) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0049) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0050) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0051) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0052) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0053) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0054) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0055) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0056) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0057) 0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0058) 0x2F,0xFF,0xFF,0xFF,0xC1,0xF8,0x7F,0xBF,0xC1,0xE3,0x9C,0x00,0x78,0x1E,0x3F,0xC4,
(0059) 0x26,0xD9,0xB6,0x6D,0x80,0x60,0x33,0x1B,0x63,0x31,0x8C,0x00,0xCC,0x33,0x1B,0x64,
(0060) 0x26,0xD9,0xB6,0x6D,0x80,0x60,0x1E,0x1B,0x66,0x31,0x8C,0x01,0x8C,0x61,0x9B,0x64,
(0061) 0x27,0xF9,0xFE,0x7F,0x80,0x60,0x0C,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
(0062) 0x27,0xF9,0xFE,0x7F,0x80,0x60,0x1E,0x1B,0x66,0x01,0x8C,0x01,0x80,0x61,0x9B,0x64,
(0063) 0x23,0x30,0xCC,0x33,0x1C,0x6C,0x33,0x1B,0x63,0x31,0x9C,0x70,0xCC,0x33,0x1B,0x64,
(0064) 0x23,0x30,0xCC,0x33,0x1C,0x78,0x7F,0xBF,0xF1,0xE0,0xFC,0x70,0x78,0x1E,0x3F,0xF4,
(0065) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0066) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0067) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0068) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0069) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0070) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0071) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0072) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0073) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0074) 0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,
(0075) 0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,
(0076) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0077) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
(0078) 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
(0079) #pragma data:data
(0080) 
(0081) /*******************************************
(0082) 函数名称: LCD12864_portini
(0083) 功    能: 初始化12864液晶用到的IO口
(0084) 参    数: 无
(0085) 返回值  : 无
(0086) /********************************************/
(0087) void LCD12864_portini(void)
(0088) {
(0089) 	LCDb_CTRL_DDR |= BIT(LCDb_RS)|BIT(LCDb_RW)|BIT(LCDb_E)|BIT(LCDb_RST);//配置控制管脚为输出
_LCD12864_portini:

⌨️ 快捷键说明

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