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

📄 main.inc

📁 This is the famous CD-ROM interfacing using 8051. It also contains schematic.
💻 INC
字号:
;****************************************************************
;* MUSIC CD PLAYER - MuCoP					
;* BY KEITH WILSON					
;* VERSION 1						
;****************************************************************

;****************************************************************
;All global memory variables
;****************************************************************

AtaCounter			equ	0x20
AtaCommand			equ	0x21
AtaPacket			equ	0x22
AtaDataLsb			equ	0x30
AtaDataMsb			equ	0x31

KeyEvent				equ	0x34
KeyState				equ	0x35

;updated by ReadToc function
TrackFirstNr			equ	0x36
TrackLastNr			equ	0x37
TrackStartMSF_M		equ	0x38
TrackStartMSF_S		equ	0x39
TrackStartMSF_F		equ	0x3a
TrackLeadOutMSF_M		equ	0x3b
TrackLeadOutMSF_S		equ	0x3c
TrackLeadOutMSF_F		equ	0x3d

;updated by ReadSubChannel function
TrackCurrentNr		equ	0x44 ;initialise to 1 (default 1st track)
TrackCurrentMSF_M		equ	0x45
TrackCurrentMSF_S		equ	0x46
TrackCurrentMSF_F		equ	0x47
TrackStatus			equ	0x48

TrackTempNr			equ	0x49
TrackStartNr			equ	0x4a ;initialise to 1

AtaTemp				equ	0x4b
AtaReadBytesLsb		equ	0x4c
AtaReadBytesMsb		equ	0x4d

AdcMsb				equ	0x4e
AdcLsb				equ	0x4f

KeyEventTemp1			equ	0x50
KeyEventTemp2			equ	0x51

timera				equ	0x52
timerb				equ	0x53
timerc				equ	0x54
AtaRegister			equ	0x55
AtaErrorRetries		equ	0x56
;*******************
;PORT CONFIGURATIONS
;*******************
;analog key input, IDE control signals
PORTA_CONFIG1		equ	0x01	;bit5: out,out,out,out,out,in :bit0
ATA_IOW			equ	5
ATA_IOR			equ	4
ATA_A2			equ	3
ATA_A1			equ	2
ATA_A0			equ	1
KEYS				equ	0

;used as a bidirectional data bus for IDE_D00/D15
PORTB_CONFIG1		equ	0xff	;bit7: in,in,in,in,in,in,in,in :bit0
PORTC_CONFIG1		equ	0xff	;bit7: in,in,in,in,in,in,in,in :bit0
	
PORTB_CONFIG2		equ	0x00	;bit7: out,out,out,out,out,out,out,out :bit0
PORTC_CONFIG2		equ	0x00	;bit7: out,out,out,out,out,out,out,out :bit0


;lcd data bus D0/D4, IDE reset, status leds
PORTD_CONFIG1		equ	0x00	;bit7: out,in,out,out,out,out,out,out :bit0
ATA_RST			equ	7
LED_3			equ	6
LED_2			equ	5
LED_STATUS		equ	4

;lcd control signals
PORTE_CONFIG1		equ	0x00	;bit2: out,out,out :bit0
LCD_CLK			equ	2
LCD_RW			equ	1
LCD_RS			equ	0

;keypad events
KEY_EVENT_PLAY_STOP	equ	0
KEY_EVENT_NEXT		equ	1
KEY_EVENT_PREVIOUS	equ	2
KEY_EVENT_OPEN_CLOSE	equ	3
KEY_EVENT_PAUSE_ONOFF	equ	4
KEY_EVENT_LCD_INFO	equ	5

;key states (bit in variable KeyState)
KEY_STATE_PLAY_STOP		equ	0
KEY_STATE_PAUSE_ONOFF		equ	1
KEY_STATE_OPEN_CLOSE		equ	2


;keypad inputs voltages
;DigValue=(Vin*1023)/5
;KEYPAD_NO_KEY				equ	73	;msb=0,lsb=73	(0x49)	;<0,35V
;KEYPAD_PAUSE_ONOFF			equ	74	;msb=0,lsb=74(0x4a)	;0,36V-0,71V-1,06V
;KEYPAD_PREVIOUS				equ	219	;msb=0,lsb=219(0xdb)	;1,07V-1,43V-1,78V
;							equ	365	;msb=1,lsb=109(0x6d)
;KEYPAD_PLAY_STOP				equ	366	;msb=1,lsb=110(0x6e)	;1,79V-2,14V-2,49V
;KEYPAD_NEXT					equ	512	;msb=2,lsb=0			;2,50V-2,86V-3,20V
;KEYPAD_OPEN_CLOSE			equ	657	;msb=2,lsb=145(0x91)	;3,21V-3,57V-3,92V
;							equ	803	;msb=3,lsb=35(0x23)
;KEYPAD_LCD_INFO				equ	804	;msb=3,lsb=36(0x24)	;3,93V-4,29V-4,64V
;KEYPAD_MORE_THAN_ONE_KEY		equ	951	;msb=3,lsb=183(0xb7)	;>4,65V

⌨️ 快捷键说明

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