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

📄 ata_wc.lst

📁 This is the famous CD-ROM interfacing using 8051. It also contains schematic.
💻 LST
📖 第 1 页 / 共 5 页
字号:

  00000048            00035 TrackStatus                     equ     0x48
                      00036 
  00000049            00037 TrackTempNr                     equ     0x49
  0000004A            00038 TrackStartNr                    equ     0x4a ;initialise to 1
                      00039 
  0000004B            00040 AtaTemp                         equ     0x4b
  0000004C            00041 AtaReadBytesLsb         equ     0x4c
  0000004D            00042 AtaReadBytesMsb         equ     0x4d
                      00043 
  0000004E            00044 AdcMsb                          equ     0x4e
  0000004F            00045 AdcLsb                          equ     0x4f
                      00046 
  00000050            00047 KeyEventTemp1                   equ     0x50
  00000051            00048 KeyEventTemp2                   equ     0x51
                      00049 
  00000052            00050 timera                          equ     0x52
  00000053            00051 timerb                          equ     0x53
  00000054            00052 timerc                          equ     0x54
  00000055            00053 AtaRegister                     equ     0x55
  00000056            00054 AtaErrorRetries         equ     0x56
                      00055 ;*******************
                      00056 ;PORT CONFIGURATIONS
                      00057 ;*******************
                      00058 ;analog key input, IDE control signals
  00000001            00059 PORTA_CONFIG1           equ     0x01    ;bit5: out,out,out,out,out,in :bit0
  00000005            00060 ATA_IOW                 equ     5
  00000004            00061 ATA_IOR                 equ     4
  00000003            00062 ATA_A2                  equ     3
  00000002            00063 ATA_A1                  equ     2
  00000001            00064 ATA_A0                  equ     1
  00000000            00065 KEYS                            equ     0
                      00066 
                      00067 ;used as a bidirectional data bus for IDE_D00/D15
  000000FF            00068 PORTB_CONFIG1           equ     0xff    ;bit7: in,in,in,in,in,in,in,in :bit0
  000000FF            00069 PORTC_CONFIG1           equ     0xff    ;bit7: in,in,in,in,in,in,in,in :bit0
                      00070         
  00000000            00071 PORTB_CONFIG2           equ     0x00    ;bit7: out,out,out,out,out,out,out,out :bit0
  00000000            00072 PORTC_CONFIG2           equ     0x00    ;bit7: out,out,out,out,out,out,out,out :bit0
                      00073 
                      00074 
                      00075 ;lcd data bus D0/D4, IDE reset, status leds
  00000000            00076 PORTD_CONFIG1           equ     0x00    ;bit7: out,in,out,out,out,out,out,out :bit0
  00000007            00077 ATA_RST                 equ     7
  00000006            00078 LED_3                   equ     6
  00000005            00079 LED_2                   equ     5
  00000004            00080 LED_STATUS              equ     4
                      00081 
                      00082 ;lcd control signals
  00000000            00083 PORTE_CONFIG1           equ     0x00    ;bit2: out,out,out :bit0
  00000002            00084 LCD_CLK                 equ     2
  00000001            00085 LCD_RW                  equ     1
  00000000            00086 LCD_RS                  equ     0
                      00087 
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE  9


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00088 ;keypad events
  00000000            00089 KEY_EVENT_PLAY_STOP     equ     0
  00000001            00090 KEY_EVENT_NEXT          equ     1
  00000002            00091 KEY_EVENT_PREVIOUS      equ     2
  00000003            00092 KEY_EVENT_OPEN_CLOSE    equ     3
  00000004            00093 KEY_EVENT_PAUSE_ONOFF   equ     4
  00000005            00094 KEY_EVENT_LCD_INFO      equ     5
                      00095 
                      00096 ;key states (bit in variable KeyState)
  00000000            00097 KEY_STATE_PLAY_STOP             equ     0
  00000001            00098 KEY_STATE_PAUSE_ONOFF           equ     1
  00000002            00099 KEY_STATE_OPEN_CLOSE            equ     2
                      00100 
                      00101 
                      00102 ;keypad inputs voltages
                      00103 ;DigValue=(Vin*1023)/5
                      00104 ;KEYPAD_NO_KEY                          equ     73      ;msb=0,lsb=73   (0x49)  ;<0,35V
                      00105 ;KEYPAD_PAUSE_ONOFF                     equ     74      ;msb=0,lsb=74(0x4a)     ;0,36V-0,71V-1,06V
                      00106 ;KEYPAD_PREVIOUS                                equ     219     ;msb=0,lsb=219(0xdb)    ;1,07V-1,43V-1,7
                            8V
                      00107 ;                                                       equ     365     ;msb=1,lsb=109(0x6d)
                      00108 ;KEYPAD_PLAY_STOP                               equ     366     ;msb=1,lsb=110(0x6e)    ;1,79V-2,14V-2,4
                            9V
                      00109 ;KEYPAD_NEXT                                    equ     512     ;msb=2,lsb=0                    ;2,50V-2
                            ,86V-3,20V
                      00110 ;KEYPAD_OPEN_CLOSE                      equ     657     ;msb=2,lsb=145(0x91)    ;3,21V-3,57V-3,92V
                      00111 ;                                                       equ     803     ;msb=3,lsb=35(0x23)
                      00112 ;KEYPAD_LCD_INFO                                equ     804     ;msb=3,lsb=36(0x24)     ;3,93V-4,29V-4,6
                            4V
                      00113 ;KEYPAD_MORE_THAN_ONE_KEY               equ     951     ;msb=3,lsb=183(0xb7)    ;>4,65V
                      00012         include "ata.inc"                               
                      00001 ;****************************************************************
                      00002 ;* MUSIC CD PLAYER - MuCoP                                      
                      00003 ;* BY KEITH WILSON                                      
                      00004 ;* VERSION 1                                            
                      00005 ;****************************************************************
                      00006 
                      00007 
                      00008 ;ATA registers
  00000000            00009 ATA_REG_DATA                    equ     0x00
  00000001            00010 ATA_REG_ERROR                   equ     0x01
  00000001            00011 ATA_REG_FEATURES                equ     0x01
  00000002            00012 ATA_REG_SECTORCOUNT     equ     0x02
  00000003            00013 ATA_REG_SECTORNUMBER    equ     0x03
  00000004            00014 ATA_REG_CYLINDERLOW     equ     0x04
  00000005            00015 ATA_REG_CYLINDERHIGH    equ     0x05
  00000006            00016 ATA_REG_DRIVEHEAD               equ     0x06
  00000007            00017 ATA_REG_STATUS          equ     0x07
  00000007            00018 ATA_REG_COMMAND         equ     0x07
                      00019 
                      00020 ;ATA commands
  000000A1            00021 ATA_COMMAND_IDENTIFY_DRIVE              equ     0xa1
  000000A0            00022 ATA_COMMAND_PACKET                      equ     0xa0
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE 10


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00023 
                      00024 
                      00013 
                      00014                                                                  
                      00015                            
                      00016                                                                  
  0000                00017         global  AtaUpdate
  0000                00018         global  AtaInit
                      00019 
                      00020                                                                  
                      00021                              
                      00022                                                                  
  0000                00023         extern  Delay1ms
  0000                00024         extern  Delay10ms
  0000                00025         extern  Delay200ms
  0000                00026         extern  Delay5s
                      00027 
                      00028 _rom1 code
                      00029                                                                  
                      00030                   
                      00031                                                               
                      00032                
                      00033                 
                      00034                                                                  
0000                  00035 AtaUpdate:
0000   0834           00036         movf    KeyEvent,w                          
0001   3A00           00037         xorlw   0x00
0002   1903           00038         btfsc   status,z        
0003   0008           00039         return                                     
0004   1608           00040         bsf             portd,LED_STATUS            
0005   300A           00041         movlw   D'10'                                             
0006   00D6           00042         movwf   AtaErrorRetries                                         
                      00043                                                 
                      00044                          
                      00045                     
                      00046                                                 
0007   1935           00047         btfsc   KeyState,KEY_STATE_OPEN_CLOSE
0008   2???           00048         goto    Iu2
0009   1C34           00049         btfss   KeyEvent,KEY_EVENT_PLAY_STOP    
000A   2???           00050         goto    Iu2
000B   1835           00051         btfsc   KeyState,KEY_STATE_PLAY_STOP
000C   2???           00052         goto    Kst
000D   2???           00053 Kpl:    call    AtaCmdReadToc
000E   0838           00054         movf    TrackStartMSF_M,w
000F   00A5           00055         movwf   AtaPacket+3
0010   0839           00056         movf    TrackStartMSF_S,w
0011   00A6           00057         movwf   AtaPacket+4
0012   083A           00058         movf    TrackStartMSF_F,w
0013   00A7           00059         movwf   AtaPacket+5
0014   2???           00060         call    AtaCmdPlayAudio
0015   1435           00061         bsf             KeyState,KEY_STATE_PLAY_STOP
0016   10B5           00062         bcf             KeyState,KEY_STATE_PAUSE_ONOFF
0017   2???           00063         goto    IuEnd
MPASM  4.00 Released                               ATA_WC.ASM   4-4-2005  11:55:09         PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0018   2???           00064 Kst:    call    AtaCmdStopAudio
0019   1035           00065         bcf             KeyState,KEY_STATE_PLAY_STOP
001A   2???           00066         goto    IuEnd
                      00067                                                 
                      00068                          
                      00069                     
                      00070                   
                      00071                                                 
001B   1935           00072 Iu2:    btfsc   KeyState,KEY_STATE_OPEN_CLOSE
001C   2???           00073         goto    Iu3
001D   18B5           00074         btfsc   KeyState,KEY_STATE_PAUSE_ONOFF
001E   2???           00075         goto    Iu3
001F   1CB4           00076         btfss   KeyEvent,KEY_EVENT_NEXT
0020   2???           00077         goto    Iu3
0021   0ACA           00078         incf    TrackStartNr,f
0022   1C35           00079         btfss   KeyState,KEY_STATE_PLAY_STOP
0023   2???           00080         goto    IuEnd
0024   2???           00081         call    AtaCmdReadSubChannel
0025   0A44           00082         incf    TrackCurrentNr,w
0026   00CA           00083         movwf   TrackStartNr
0027   2???           00084         call    AtaCmdReadToc
0028   0838           00085         movf    TrackStartMSF_M,w
0029   00A5           00086         movwf   AtaPacket+3
002A   0839           00087         movf    TrackStartMSF_S,w
002B   00A6           00088         movwf   AtaPacket+4
002C   083A           00089         movf    TrackStartMSF_F,w
002D   00A7           00090         movwf   AtaPacket+5
002E   2???           00091         call    AtaCmdPlayAudio
002F   2???           00092         goto    IuEnd
                      00093                                                 
                      00094                              

⌨️ 快捷键说明

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