📄 main_wc.lst
字号:
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
MPASM 4.00 Released MAIN_WC.ASM 4-4-2005 11:55:11 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00087
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
00013
00014
00015
00016
0000 00017 global Delay1ms
0000 00018 global Delay10ms
0000 00019 global Delay200ms
0000 00020 global Delay5s
00021
00022
00023
0000 00024 extern AtaUpdate
0000 00025 extern AtaInit
00026 #ifdef LCD
00027 extern LcdUpdate
00028 #endif
00029
00030
00031
00032
00033 _config code
0000 3B32 00034 dw FOSC_HS|WDTE_OFF|PWRTE_ON|CP_OFF|BODEN_OFF|LVP_OFF|CPD_OFF|WRT_ON|ICD_OFF|CP2_OFF
MPASM 4.00 Released MAIN_WC.ASM 4-4-2005 11:55:11 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 _vector code
0000 2??? 00047 goto Start
00048
00049
00050
00051
00052
00053
00054
00055 _rom1 code
0000 00056 Start:
0000 2??? 00057 call SysInit
0001 2??? 00058 call AtaInit
0002 00059 Mainloop:
0002 2??? 00060 call KeyUpdate
0003 2??? 00061 call AtaUpdate
00062 #ifdef LCD
00063 call LcdUpdate
00064 #endif
00065
0004 2??? 00066 goto Mainloop
00067
00068
00069
00070
00071
00072
0005 00073 SysInit:
00074
00075
00076
0005 1303 00077 bcf status,rp1
0006 1683 00078 bsf status,rp0
00079
00080
0007 3001 00081 movlw PORTA_CONFIG1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0008 0085 00082 movwf trisa
0009 30FF 00083 movlw PORTB_CONFIG1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
000A 0086 00084 movwf trisb
MPASM 4.00 Released MAIN_WC.ASM 4-4-2005 11:55:11 PAGE 11
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
000B 30FF 00085 movlw PORTC_CONFIG1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
000C 0087 00086 movwf trisc
000D 3000 00087 movlw PORTD_CONFIG1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
000E 0088 00088 movwf trisd
000F 3000 00089 movlw PORTE_CONFIG1
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0010 0089 00090 movwf trise
00091
00092
0011 308E 00093 movlw B'10001110'
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0012 009F 00094 movwf adcon1
00095
00096
00097
0013 1303 00098 bcf status,rp1
0014 1283 00099 bcf status,rp0
00100
00101
0015 3081 00102 movlw B'10000001'
0016 009F 00103 movwf adcon0
00104
00105
0017 1685 00106 bsf porta,ATA_IOW
0018 1605 00107 bsf porta,ATA_IOR
00108
0019 1788 00109 bsf portd,ATA_RST
001A 1208 00110 bcf portd,LED_STATUS
00111
00112
001B 01B4 00113 clrf KeyEvent
001C 01B5 00114 clrf KeyState
00115
001D 3001 00116 movlw 0x01
001E 00C4 00117 movwf TrackCurrentNr
001F 00CA 00118 movwf TrackStartNr
00119
0020 0008 00120 return
00121
00122
00123
00124
00125
00126
00127
0021 00128 KeyUpdate:
0021 01B4 00129 clrf KeyEvent
0022 2??? 00130 call KeyScan
0023 0850 00131 movf KeyEventTemp1,w
0024 3A00 00132 xorlw 0x00
0025 1903 00133 btfsc status,z
MPASM 4.00 Released MAIN_WC.ASM 4-4-2005 11:55:11 PAGE 12
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0026 2??? 00134 goto Kuend
0027 0850 00135 movf KeyEventTemp1,w
0028 00D1 00136 movwf KeyEventTemp2
0029 2??? 00137 call Delay10ms
002A 2??? 00138 call KeyScan
002B 0850 00139 movf KeyEventTemp1,w
002C 0651 00140 xorwf KeyEventTemp2,w
002D 1D03 00141 btfss status,z
002E 2??? 00142 goto Kuend
002F 0851 00143 movf KeyEventTemp2,w
0030 00B4 00144 movwf KeyEvent
0031 00145 Kuend:
0031 0008 00146 return
00147
00148
00149
00150
00151
00152
00153
0032 00154 KeyScan:
0032 151F 00155 bsf adcon0,godone
0033 191F 00156 Kuw: btfsc adcon0,godone
0034 2??? 00157 goto Kuw
00158
0035 081E 00159 movf adresh,w
0036 00CE 00160 movwf AdcMsb
0037 1303 00161 bcf status,rp1
0038 1683 00162 bsf status,rp0
Message[302]: Register in operand not in bank 0. Ensure that bank bits are correct.
0039 081E 00163 movf adresl,w
003A 1303 00164 bcf status,rp1
003B 1283 00165 bcf status,rp0
003C 00CF 00166 movwf AdcLsb
00167
003D 01D0 00168 clrf KeyEventTemp1
003E 084E 00169 movf AdcMsb,w
003F 3C03 00170 sublw 0x03
0040 1C03 00171 btfss status,c
0041 2??? 00172 goto Kend
0042 084E 00173 movf AdcMsb,w
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -