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