www.pudn.com > usbcode.rar > MainLoop.s


	.module MainLoop.c 
	.area text(rom, con, rel) 
	.dbfile G:\source\MainLoop.c 
	.dbfunc s main _main fI 
	.even 
_main:: 
	.dbline -1 
	.dbline 48 
; /*++ 
;  
; Module Name: 
;  
;          MainLoop.h 
;  
; Abstract: 
;  
;          Header file related to D12 module 
;  
; Environment: 
;  
;         ICCAVR 6.29 
;  
; Revision History: 
;  
;         04/23/2004      chenchi   created 
;  
; --*/ 
; /******************************************************************/ 
; #include "io8515v.h" 
; #include  
; #include "d12.h" 
; /************************************************************ 
; **工程名称:U盘固件程序开发 
; **编译器类型及版本:ICCAVR 6.26C 
; **日期:2004.4.30 
; **创建人:陈驰 
; **所属单位:湖南大学计算机与通信学院 
;  
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0 
; **时钟频率:8MHZ 
;  
; **函数功能:主函数 
; **函数输入参数及说明:无 
;  
; **函数返回值:无 
; **在本函数以外定义的变量:D12_COMMAND,D12_DATA 
; **调用的函数说明: 
;   D12_ISR(); 
;   中断处理函数 
;    
; **修改人:陈驰 
; **修改日期:2004.4.30 
; **修改说明:创建 
; *************************************************************/ 
; void main(void) 
; { 
	.dbline 50 
; 	//芯片初始化 
; 	PORTC = 0xff; 
	ldi R24,255 
	out 0x15,R24 
	.dbline 51 
; 	DDRC  = 0xff;//保持状态 
	out 0x14,R24 
	.dbline 53 
;  
; 	DDRD  = 0xea; //1110 1010关闭引脚上拉电阻,使正确读取引脚输入 
	ldi R24,234 
	out 0x11,R24 
	.dbline 54 
; 	PORTD = 0xd8; //1101 1000 
	ldi R24,216 
	out 0x12,R24 
	.dbline 55 
; 	DDRA  = 0xff; //关闭上拉电阻,使正确读写外部SRAM 
	ldi R24,255 
	out 0x1a,R24 
	.dbline 57 
; 	 
; 	MCUCR = 0xc5; 
	ldi R24,197 
	out 0x35,R24 
	.dbline 58 
; 	DDRC  = 0x00; 
	clr R2 
	out 0x14,R2 
	.dbline 59 
; 	D12_COMMAND = 0xf3; 
	ldi R24,243 
	sts 31745,R24 
	.dbline 60 
; 	cwait; 
	nop 
	.dbline 61 
; 	D12_DATA = 0x06;//设置模式0 
	ldi R24,6 
	sts 31744,R24 
	.dbline 62 
; 	cwait; 
	nop 
	.dbline 63 
; 	D12_COMMAND = 0xd0; 
	ldi R24,208 
	sts 31745,R24 
	.dbline 64 
; 	cwait; 
	nop 
	.dbline 65 
; 	D12_DATA = 0x80;//设置地址 0 使能 
	ldi R24,128 
	sts 31744,R24 
	.dbline 66 
; 	cwait; 
	nop 
	.dbline 67 
; 	D12_COMMAND = 0xf3;//连接主机 
	ldi R24,243 
	sts 31745,R24 
	.dbline 68 
; 	cwait; 
	nop 
	.dbline 69 
; 	D12_DATA = 0x16; 
	ldi R24,22 
	sts 31744,R24 
	.dbline 70 
; 	cwait; 
	nop 
	.dbline 71 
; 	D12_DATA = 0x05;//初始化频率 8MHz 
	ldi R24,5 
	sts 31744,R24 
	.dbline 72 
; 	csram; 
	sts 0xfc01,R22 
	.dbline 72 
	.dbline 74 
; 	 
; 	TCCR1B = 0xc0;//启动ICP上升沿出入捕获 
	ldi R24,192 
	out 0x2e,R24 
	.dbline 76 
; 	 
; 	UCR  = 0x00; //disable while setting baud rate 
	out 0xa,R2 
	.dbline 77 
; 	UBRR = 25; //set baud rate 19.2K 波特率 
	ldi R24,25 
	out 0x9,R24 
	.dbline 78 
; 	UCR  = 0xd8; //enable 0001 1101 
	ldi R24,216 
	out 0xa,R24 
	rjmp L4 
L3: 
	.dbline 80 
; 	while(1) 
; 	{ 
	.dbline 81 
; 		if(!D12_int_n)//判断D12中断,低电平触发 
	sbic 0x10,2 
	rjmp L6 
	.dbline 82 
; 		{ 
	.dbline 83 
; 			D12_ISR();//中断服务程序 
	rcall _D12_ISR 
	.dbline 84 
; 		} 
L6: 
	.dbline 85 
L4: 
	.dbline 79 
	rjmp L3 
X0: 
	.dbline -2 
	.dbline 86 
; 	} 
; } 
L2: 
	.dbline 0 ; func end 
	ret