?? exp5.asm
字號:
P0 DATA 080H ;PORT 0
SP DATA 081H ;STACK POINTER
DPL DATA 082H ;DATA POINTER - LOW BYTE
DPH DATA 083H ;DATA POINTER - HIGH BYTE
DPP DATA 084H ;DATA POINTER - PAGE BYTE
PCON DATA 087H ;POWER CONTROL
TCON DATA 088H ;TIMER CONTROL
TMOD DATA 089H ;TIMER MODE
TL0 DATA 08AH ;TIMER 0 - LOW BYTE
TL1 DATA 08BH ;TIMER 1 - LOW BYTE
TH0 DATA 08CH ;TIMER 0 - HIGH BYTE
TH1 DATA 08DH ;TIMER 1 - HIGH BYTE
P1 DATA 090H ;PORT 1
SCON DATA 098H ;SERIAL PORT CONTROL
SBUF DATA 099H ;SERIAL PORT BUFFER
I2CDAT DATA 09AH ;I2C DATA BUFFER
I2CADD DATA 09BH ;I2C ADDRESS
P2 DATA 0A0H ;PORT 2
IE DATA 0A8H ;INTERRUPT ENABLE 1
IE2 DATA 0A9H ;INTERRUPT ENABLE 2
P3 DATA 0B0H ;PORT 3
IP DATA 0B8H ;INTERRUPT PRIORITY
ECON DATA 0B9H ;FLASH EEPROM CONTROL
ETIM1 DATA 0BAH
ETIM2 DATA 0BBH ;FLASH EEPROM TIMING2
EDATA1 DATA 0BCH ;FLASH EEPROM DATA1
EDATA2 DATA 0BDH ;FLASH EEPROM DATA2
EDATA3 DATA 0BEH ;FLASH EEPROM DATA3
EDATA4 DATA 0BFH ;FLASH EEPROM DATA4
WDCON DATA 0C0H ;WATCHDOG TIMER CONTROL
ETIM3 DATA 0C4H ;FLASH EEPROM TIMING3
EADRL DATA 0C6H ;FLASH EEPROM PAGE ADDRESS
T2CON DATA 0C8H ;TIMER 2 CONTROL
RCAP2L DATA 0CAH ;TIMER 2 CAPTURE REGISTER - LOW BYTE
RCAP2H DATA 0CBH ;TIMER 2 CAPTURE REGISTER - HIGH BYTE
TL2 DATA 0CCH ;TIMER 2 - LOW BYTE
TH2 DATA 0CDH ;TIMER 2 - HIGH BYTE
PSW DATA 0D0H ;PROGRAM STATUS WORD
DMAL DATA 0D2H ;DMA ADDRESS LOW BYTE
DMAH DATA 0D3H ;DMA ADDRESS HIGH BYTE
DMAP DATA 0D4H ;DMA ADDRESS PAGE BYTE
ADCCON2 DATA 0D8H ;ADC CONTROL
ADCDATAL DATA 0D9H ;ADC DATA LOW BYTE
ADCDATAH DATA 0DAH ;ADC DATA HIGH BYTE
PSMCON DATA 0DFH ;POWER SUPPLY MONITOR
ACC DATA 0E0H ;ACCUMULATOR
I2CCON DATA 0E8H ;I2C CONTROL
ADCCON1 DATA 0EFH ;ADC CONTROL
B DATA 0F0H ;MULTIPLICATION REGISTER
ADCOFSL DATA 0F1H ;ADC OFFSET LOW BYTE
ADCOFSH DATA 0F2H ;ADC OFFSET HIGH BYTE
ADCGAINL DATA 0F3H ;ADC GAIN LOW BYTE
ADCGAINH DATA 0F4H ;ADC GAIN HIGH BYTE
ADCCON3 DATA 0F5H ;ADC CONTROL
SPIDAT DATA 0F7H ;SPI DATA REGISTER
SPICON DATA 0F8H ;SPI CONTROL REGISTER
DAC0L DATA 0F9H ;DAC0 LOW BYTE
DAC0H DATA 0FAH ;DAC0 HIGH BYTE
DAC1L DATA 0FBH ;DAC1 LOW BYTE
DAC1H DATA 0FCH ;DAC1 HIGH BYTE
DACCON DATA 0FDH ;DAC CONTROL REGISTER
IT0 BIT 088H ;TCON.0 - EXT. INTERRUPT 0 TYPE
IE0 BIT 089H ;TCON.1 - EXT. INTERRUPT 0 EDGE FLAG
IT1 BIT 08AH ;TCON.2 - EXT. INTERRUPT 1 TYPE
IE1 BIT 08BH ;TCON.3 - EXT. INTERRUPT 1 EDGE FLAG
TR0 BIT 08CH ;TCON.4 - TIMER 0 ON/OFF CONTROL
TF0 BIT 08DH ;TCON.5 - TIMER 0 OVERFLOW FLAG
TR1 BIT 08EH ;TCON.6 - TIMER 1 ON/OFF CONTROL
TF1 BIT 08FH ;TCON.7 - TIMER 1 OVERFLOW FLAG
T2 BIT 090H ;P1.0 - TIMER 2 TRIGGER INPUT
T2EX BIT 091H ;P1.1 - TIMER 2 COUNT INPUT
RI BIT 098H ;SCON.0 - RECEIVE INTERRUPT FLAG
TI BIT 099H ;SCON.1 - TRANSMIT INTERRUPT FLAG
RB8 BIT 09AH ;SCON.2 - RECEIVE BIT 8
TB8 BIT 09BH ;SCON.3 - TRANSMIT BIT 8
REN BIT 09CH ;SCON.4 - RECEIVE ENABLE
SM2 BIT 09DH ;SCON.5 - SERIAL MODE CONTROL BIT 2
SM1 BIT 09EH ;SCON.6 - SERIAL MODE CONTROL BIT 1
SM0 BIT 09FH ;SCON.7 - SERIAL MODE CONTROL BIT 0
EX0 BIT 0A8H ;IE.0 - EXTERNAL INTERRUPT 0 ENABLE
ET0 BIT 0A9H ;IE.1 - TIMER 0 INTERRUPT ENABLE
EX1 BIT 0AAH ;IE.2 - EXTERNAL INTERRUPT 1 ENABLE
ET1 BIT 0ABH ;IE.3 - TIMER 1 INTERRUPT ENABLE
ES BIT 0ACH ;IE.4 - SERIAL PORT INTERRUPT ENABLE
ET2 BIT 0ADH ;IE.5 - TIMER 2 INTERRUPT ENABLE
EADC BIT 0AEH ;IE.6 - ENABLE ADC INTURRUPT
EA BIT 0AFH ;IE.7 - GLOBAL INTERRUPT ENABLE
RXD BIT 0B0H ;P3.0 - SERIAL PORT RECEIVE INPUT
TXD BIT 0B1H ;P3.1 - SERIAL PORT TRANSMIT OUTPUT
INT0 BIT 0B2H ;P3.2 - EXTERNAL INTERRUPT 0 INPUT
INT1 BIT 0B3H ;P3.3 - EXTERNAL INTERRUPT 1 INPUT
T0 BIT 0B4H ;P3.4 - TIMER 0 COUNT INPUT
T1 BIT 0B5H ;P3.5 - TIMER 1 COUNT INPUT
WR BIT 0B6H ;P3.6 - WRITE CONTROL FOR EXT. MEMORY
RD BIT 0B7H ;P3.7 - READ CONTROL FOR EXT. MEMORY
PX0 BIT 0B8H ;IP.0 - EXTERNAL INTERRUPT 0 PRIORITY
PT0 BIT 0B9H ;IP.1 - TIMER 0 PRIORITY
PX1 BIT 0BAH ;IP.2 - EXTERNAL INTERRUPT 1 PRIORITY
PT1 BIT 0BBH ;IP.3 - TIMER 1 PRIORITY
PS BIT 0BCH ;IP.4 - SERIAL PORT PRIORITY
PT2 BIT 0BDH ;IP.5 - TIMER 2 PRIORITY
PADC BIT 0BEH ;IP.6 - ADC PRIORITY
PSI BIT 0BFH ;IP.7 - SPI OR 2-WIRE SERIAL INTERFACE PRIORITY
WDE BIT 0C0H ;WDCON.0 - WATCHDOG ENABLE
WDS BIT 0C1H ;WDCON.1 - WATCHDOG STATUS
WDR2 BIT 0C2H ;WDCON.2 - WATCHDOG TIMER REFRESH BIT2
WDR1 BIT 0C3H ;WDCON.3 - WATCHDOG TIMER REFRESH BIT1
PRE0 BIT 0C5H ;WDCON.5 - WATCHDOG TIMEOUT SELECTION BIT0
PRE1 BIT 0C6H ;WDCON.6 - WATCHDOG TIMEOUT SELECTION BIT1
PRE2 BIT 0C7H ;WDCON.7 - WATCHDOG TIMEOUT SELECTION BIT2
CAP2 BIT 0C8H ;T2CON.0 - CAPTURE OR RELOAD SELECT
CNT2 BIT 0C9H ;T2CON.1 - TIMER OR COUNTER SELECT
TR2 BIT 0CAH ;T2CON.2 - TIMER 2 ON/OFF CONTROL
EXEN2 BIT 0CBH ;T2CON.3 - TIMER 2 EXTERNAL ENABLE FLAG
TCLK BIT 0CCH ;T2CON.4 - TRANSMIT CLOCK SELECT
RCLK BIT 0CDH ;T2CON.5 - RECEIVE CLOCK SELECTT
EXF2 BIT 0CEH ;T2CON.6 - EXTERNAL TRANSITION FLAG
TF2 BIT 0CFH ;T2CON.7 - TIMER 2 OVERFLOW FLAG
P BIT 0D0H ;PSW.0 - ACCUMULATOR PARITY FLAG
F1 BIT 0D1H ;PSW.1 - FLAG 0
OV BIT 0D2H ;PSW.2 - OVERFLOW FLAG
RS0 BIT 0D3H ;PSW.3 - REGISTER BANK SELECT 0
RS1 BIT 0D4H ;PSW.4 - REGISTER BANK SELECT 1
F0 BIT 0D5H ;PSW.5 - FLAG 0
AC BIT 0D6H ;PSW.6 - AUXILIARY CARRY FLAG
CY BIT 0D7H ;PSW.7 - CARRY FLAG
CS0 BIT 0D8H ;ADCCON2.0 - ADC INPUT CHANNEL SELECT BIT0
CS1 BIT 0D9H ;ADCCON2.1 - ADC INPUT CHANNEL SELECT BIT1
CS2 BIT 0DAH ;ADCCON2.2 - ADC INPUT CHANNEL SELECT BIT2
CS3 BIT 0DBH ;ADCCON2.3 - ADC INPUT CHANNEL SELECT BIT3
SCONV BIT 0DCH ;ADCCON2.4 - SINGLE CONVERSION ENABLE
CCONV BIT 0DDH ;ADCCON2.5 - CONTINUOUS CONVERSION ENABLE
DMA BIT 0DEH ;ADCCON2.6 - DMA MODE ENABLE
ADCI BIT 0DFH ;ADCCON2.7 - ADC INTURRUPT FLAG
I2CI BIT 0E8H ;I2CCON.0 - I2C INTURRUPT FLAG
I2CTX BIT 0E9H ;I2CCON.1 - I2C TRANSMIT SELECT
I2CRS BIT 0EAH ;I2CCON.2 - I2C RESET
I2CM BIT 0EBH ;I2CCON.3 - I2C MASTER MODE SELECT
MDI BIT 0ECH ;I2CCON.4 - I2C MASTER MODE SDATA INPUT
MCO BIT 0EDH ;I2CCON.5 - I2C MASTER MODE SCLOCK OUTPUT
MDE BIT 0EEH ;I2CCON.6 - I2C MASTER MODE SDATA ENABLE
MDO BIT 0EFH ;I2CCON.7 - I2C MASTER MODE SDATA OUTPUT
SPR0 BIT 0F8H ;SPICON.0 - SPI BITRATE SELECT BIT0
SPR1 BIT 0F9H ;SPICON.1 - SPI BITRATE SELECT BIT1
CPHA BIT 0FAH ;SPICON.2 - SPI CLOCK PHASE SELECT
CPOL BIT 0FBH ;SPICON.3 - SPI CLOCK POLARITY SELECT
SPIM BIT 0FCH ;SPICON.4 - SPI MASTER/SLAVE MODE SELECT
SPE BIT 0FDH ;SPICON.5 - SPI INTERFACE ENABLE
WCOL BIT 0FEH ;SPICON.6 - SPI WRITE COLLISION ERROR FLAG
ISPI BIT 0FFH ;SPICON.7 - SPI END OF TRANSFER FLAG
ORG 0000H
AJMP START
ORG 0100H
START:
MOV SP,#60H
MOV DACCON,#00001101B ;DAC0 on, 12bit, asynchronous
MOV A,#00H
MOV DPP,02H
MOV DPTR,#0000H ;鋸齒波緩沖區首址
NEXT: MOVX @DPTR,A ;填鋸齒波數據
INC DPTR
INC A
JZ NEXT1 ;寫完256個數據后退出
AJMP NEXT
NEXT1:
MOV A,#00H
MOV R0,#00H
MOV DPTR,#0100H ;三角波緩沖區首址
NEXT2: MOVX @DPTR,A ;填三角波數據(上升部分)
INC DPTR
ADD A,#02H
INC R0
CJNE R0,#80H,NEXT2
SUBB A,#02H
CLR C
NEXT3:
MOVX @DPTR,A ;填三角波數據(下升部分)
INC DPTR
SUBB A,#02H
INC R0
CJNE R0,#00H,NEXT3 ;寫完256個數據后退出
;波形顯示程序
WAVE: MOV R1,#00H
WAVE1: MOV DPTR,#0000H ;顯示鋸齒波(256次)
LCALL D_A
DJNZ R1,WAVE1
WAVE2: MOV DPTR,#0100H ;顯示三角波(256次)
LCALL D_A
DJNZ R1,WAVE2
WAVE3: MOV R0,#00H ;置計數器
MOV DPTR,#SINTABLE
LOOP: MOV A,R0
MOVC A,@A+DPTR ;查波形表
MOV DAC0H,0
MOV DAC0L,A ;啟動 D/A
INC R0
CJNE R0,#00H,LOOP ;判斷是否顯示完
DJNZ R1,WAVE3 ;顯示正弦波(256次)
SJMP WAVE1 ;循環顯示
D_A:
MOV R0,#00H ;置計數器
LOOP: MOVX A,@DPTR ;查波形表
MOV DAC0H,0
MOV DAC0L,A ;啟動 D/A
INC DPTR ;改變表格地址
INC R0
CJNE R0,#00H,LOOP ;判斷是否顯示完
RET
;正弦表
SINTABLE:
DB 80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,0D4H
DB 0D6H,0D8H,0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH,0EEH,0EFH
DB 0F1H,0F2H,0F4H,0F5H,0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FDH,0FEH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H,0F5H,0F4H,0F2H,0F1H,0EFH,0EEH
DB 0ECH,0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH,0DAH,0D8H,0D6H,0D4H,0D1H
DB 0CFH,0CCH,0CAH,0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H,0AEH,0ABH
DB 0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H,90H,8DH,89H,86H,83H,80H,7CH,79H
DB 76H,72H,6FH,6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51H,4EH,4CH,48H,45H,43H
DB 40H,3DH,3AH,39H,35H,33H,30H,2EH,2BH,29H,27H,25H,22H,20H,1EH,1CH,1AH,18H
DB 16H,15H,13H,11H,10H,0EH,0DH,0BH,0AH,09H,08H,07H,06H,05H,04H,03H,02H,02H
DB 02H,01H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,01H,02H,02H,03H
DB 04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,10H,11H,13H,15H,16H,18H,1AH
DB 1CH,1EH,20H,22H,25H,27H,29H,2BH,2EH,30H,33H,36H,38H,3AH,3DH,40H,43H,45H
DB 48H,4CH,4EH,51H,55H,57H,5AH,5DH,60H,63H,66H,69H,6CH,6FH,72H,76H,79H,7CH
DB 80H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -