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

📄 usb_f245.lis

📁 你熟悉QT吗?Linux系统上领先的GUI
💻 LIS
字号:
                        .module usb_F245.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\mega8\atmega16\mp3_7210\usb_F245.c
 0000                   .dbfunc e usb_read _usb_read fc
 0000           ;       usb_data -> R16
                        .even
 0000           _usb_read::
 0000                   .dbline -1
 0000                   .dbline 16
 0000           ; #include <iom16v.h>
 0000           ; 
 0000           ; #define led1_off      (PORTA|=(1<<4))
 0000           ; #define led1_on       (PORTA&=~(1<<4))
 0000           ; 
 0000           ; #define usb_txrdy     ((PINC&0x04)>>2)
 0000           ; #define usb_rxrdy     ((PINC&0x08)>>3)
 0000           ; #define set_usb_read  (PORTC|=(1<<0))
 0000           ; #define clr_usb_read  (PORTC&=~(1<<0))
 0000           ; #define set_usb_write (PORTC|=(1<<1))
 0000           ; #define clr_usb_write (PORTC&=~(1<<1))
 0000           ; 
 0000           ; 
 0000           ; /***********USB_FT245读数据******************/
 0000           ; unsigned char usb_read(void) 
 0000           ;      {
 0000 01C0              xjmp L3
 0002           L2:
 0002                   .dbline 19
 0002                   .dbline 20
 0002 DC98              cbi 0x1b,4
 0004                   .dbline 21
 0004           L3:
 0004                   .dbline 18
 0004           ;         unsigned char usb_data;
 0004           ;         while (usb_rxrdy) 
 0004 83B3              in R24,0x13
 0006 8870              andi R24,8
 0008 8695              lsr R24
 000A 8695              lsr R24
 000C 8695              lsr R24
 000E 8823              tst R24
 0010 C1F7              brne L2
 0012                   .dbline 22
 0012           ;                       {
 0012           ;                       led1_on;  /*空则循环*/
 0012           ;                       }
 0012           ;         led1_off;
 0012 DC9A              sbi 0x1b,4
 0014                   .dbline 23
 0014           ;         clr_usb_read;
 0014 A898              cbi 0x15,0
 0016                   .dbline 24
 0016           ;         set_usb_read;
 0016 A89A              sbi 0x15,0
 0018                   .dbline 25
 0018           ;         usb_data=PIND;          
 0018 00B3              in R16,0x10
 001A                   .dbline 26
 001A           ;         return (usb_data);
 001A                   .dbline -2
 001A           L1:
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r usb_data 16 c
 001C                   .dbend
 001C                   .dbfunc e usb_write _usb_write fV
 001C           ;       usb_data -> R20
                        .even
 001C           _usb_write::
 001C 0E940000          xcall push_gset1
 0020 402F              mov R20,R16
 0022                   .dbline -1
 0022                   .dbline 31
 0022           ;        }      
 0022           ; /***********USB_FT245写数据******************/
 0022           ; void usb_write(unsigned char usb_data); 
 0022           ; void usb_write(unsigned char usb_data) 
 0022           ;      {
 0022 05C0              xjmp L7
 0024           L6:
 0024                   .dbline 33
 0024                   .dbline 34
 0024 DC98              cbi 0x1b,4
 0026                   .dbline 35
 0026 08EE              ldi R16,1000
 0028 13E0              ldi R17,3
 002A 0E940000          xcall _delay_ms
 002E                   .dbline 36
 002E           L7:
 002E                   .dbline 32
 002E           ;         while (usb_txrdy) 
 002E 83B3              in R24,0x13
 0030 8470              andi R24,4
 0032 8695              lsr R24
 0034 8695              lsr R24
 0036 8823              tst R24
 0038 A9F7              brne L6
 003A                   .dbline 37
 003A           ;                       {
 003A           ;                       led1_on;  /*忙则循环*/
 003A           ;                       delay_ms(1000);
 003A           ;                       }
 003A           ;         led1_off;                     
 003A DC9A              sbi 0x1b,4
 003C                   .dbline 38
 003C           ;         DDRD =0b11111111;       /*1=output */
 003C 8FEF              ldi R24,255
 003E 81BB              out 0x11,R24
 0040                   .dbline 39
 0040           ;         PORTD=usb_data;         
 0040 42BB              out 0x12,R20
 0042                   .dbline 40
 0042           ;         set_usb_write;
 0042 A99A              sbi 0x15,1
 0044                   .dbline 41
 0044           ;         clr_usb_write;                          
 0044 A998              cbi 0x15,1
 0046                   .dbline 42
 0046           ;         DDRD =0b00000000;       /*0=input */
 0046 2224              clr R2
 0048 21BA              out 0x11,R2
 004A                   .dbline 43
 004A           ;         PORTD=0b00000000;       /*三态高阻*/
 004A 22BA              out 0x12,R2
 004C                   .dbline -2
 004C                   .dbline 44
 004C           ;        }                       
 004C           L5:
 004C 0E940000          xcall pop_gset1
 0050                   .dbline 0 ; func end
 0050 0895              ret
 0052                   .dbsym r usb_data 20 c
 0052                   .dbend

⌨️ 快捷键说明

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