?? com.asm
字號(hào):
;*******************************************************
; moliasm-1.ASM *
; VER1.0 *
; *
; BY Ren Jia Fu *
; 2007.9.8 *
;*******************************************************
NAME NPASM
EXTRN XDATA(chii)
EXTRN XDATA(BB)
public OUTDAC0,DAC712,DAC8541
sfr EIE2 = 0xE7; /* EXTERNAL INTERRUPT ENABLE 2 */
sfr XBR0 = 0xE1; /* DIGITAL CROSSBAR CONFIGURATION REGISTER 0 */
sfr XBR1 = 0xE2; /* DIGITAL CROSSBAR CONFIGURATION REGISTER 1 */
sfr XBR2 = 0xE3; /* DIGITAL CROSSBAR CONFIGURATION REGISTER 2 */
sfr AMX0CF = 0xBA; /* ADC 0 MUX CONFIGURATION */
sfr AMX0SL = 0xBB; /* ADC 0 MUX CHANNEL SELECTION */
sfr TMR3L = 0x94; /* TIMER 3 - LOW BYTE */
sfr TMR3H = 0x95; /* TIMER 3 - HIGH BYTE */
sfr P7 = 0x96; /* PORT 7 */
sfr P6 = 0x86; /* PORT 6 */
sfr ADC0CF = 0xBC; /* ADC 0 CONFIGURATION */
sfr ADC0L = 0xBE; /* ADC 0 DATA - LOW BYTE */
sfr ADC0H = 0xBF; /* ADC 0 DATA - HIGH BYTE
sfr ADC0CN = 0xE8; /* ADC 0 CONTROL
sfr DAC0L =0xd3;
sfr DAC0H=0xd4;
sfr DAC1L=0xd5;
sfr DAC1H=0xd6;
;-----------------------------------------
; 20H 21H 22H 23H 24H 25H
; AA 55 CGQNO 命令 FDBS 校驗(yàn)和
;------------------------------------------
ORG 0003H
LJMP INTT0
ORG 000BH
LJMP timer0
ORG 0013H
LJMP INTT1
ORG 0023H
LJMP INTT0
ORG 0073H
LJMP T3INT
ORG 007BH
LJMP ADC0INT
;============================================
T3INT: PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
POP PSW
POP DPL
POP DPH
POP ACC
RETI
;==================================
; 設(shè)置T0=5秒
;==================================
SETTIME: MOV TMR3L,#90 ;10秒=200 5秒=100
MOV TMR3H,#00H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TMOD,#21H
SETB ET0
SETB EA
SETB TR0
LCALL SAMPLE ;START SAMPLE
RET
;--------------------------------------
; T0中斷
;--------------------------------------
timer0: CLR TR0
PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0B0H ;50ms
MOV A,TMR3L
DEC A
MOV TMR3L,A
JNZ TTIM1
MOV TMR3H,#01H ;置T0定時(shí)到
CLR ET0 ;關(guān)T0
LCALL ENDSAMP ;STOP SAMPLE
; LCALL GETPU512 ;pudata->BB[0]--BB[511]
TTIM1: POP PSW
POP ACC
SETB TR0
RETI
;===================================
; HAD-512 for NP441
; ardd:7C00-7FFFH 1K
;-----------------------------------
PUCLEAR:MOV DPTR,#0C00H ;7C00H ???????????????????????????
MOV R0,#04
PUCL1: MOV R1,#00
PUCL2: MOV A,#00H
MOVX @DPTR,A
INC DPTR
DJNZ R1,PUCL2
DJNZ R0,PUCL1
RET
;-----------------------------------------------------------
; START SAMPLE
;------------------------------------------------------------
SAMPLE: MOV ADC0CN,#88H ;ADC0 開(kāi) 跟蹤方試,CNVST上生沿起動(dòng)
;數(shù)據(jù)右對(duì)齊(000H-FFFH)
MOV ADC0CF,#48H ;ADC0時(shí)鐘為系統(tǒng)時(shí)鐘 5分頻 11.05M/5=2.2M 放大器=1
MOV AMX0CF,#00H ;Ain0-Ain7 單端輸入 0-3.3V
MOV AMX0SL,#00H ;轉(zhuǎn)換 Ain0.0
; MOV AMX0SL,7FH ;轉(zhuǎn)換通道=(7FH) ??????
ORL EIE2,#02H ;ADC0中短開(kāi)
SETB EA ;中短開(kāi)
ANL P1,#3FH ;P1.6=0 P1.7=0
MOV R7,#100
DJNZ R7,$
ORL P1,#0C0H ;P1.6=1 P1.7=1
MOV R7,#100
DJNZ R7,$
ANL P1,#3FH ;P1.6=0 P1.7=0
RET
;-----------------------------------
; STOP SAMPLE
;------------------------------------
ENDSAMP:ANL EIE2,#0FDH ; ADC0中段off
MOV P1,#0C0H ; P1.6=1 P1.7=1
RET
;-----------------------------------
;-----------------------------------
; C00H-FFFH ---->BB[0]-BB[511]
; 對(duì)整型變量:高位在前,低位在后
; 對(duì)譜線: 低位在前, 高位在后
;-----------------------------------
;-----------------------------------
; ADC0 中斷 HAD-512
;-----------------------------------
ADC0INT:PUSH ACC
PUSH DPL
PUSH DPH
CLR P1.7
SETB P1.7
;數(shù)據(jù)右對(duì)齊
CLR C
MOV A,ADC0H ;取ADC0的高4位:D11 D10 D9 D8
RRC A ;C->D7 ,Dn+1->Dn,D0->C
MOV DPH,A ;DPH:0 0 0 0 0 D11 D10 D9 C=D8
MOV A,ADC0L ;取ADC0的低8位: D7 D6 D5 D4 D3 D2 D1 D0
ANL A,#0F8H ;D7 D6 D5 D4 D3 0 0 0
RRC A ;C->D7 ,Dn+1->Dn,D0->C
MOV DPL,A ;DPL:D8 D7 D6 D5 D4 D3 D2 0 C=0
CLR C
MOV A,DPH ;DPH:0 0 0 0 0 D11 D10 D9 C=0
RRC A ;C->D7 ,Dn+1->Dn,D0->C
MOV DPH,A ;DPH:0 0 0 0 0 0 D11 D10 C=D9
MOV A,DPL ;DPL:D8 D7 D6 D5 D4 D3 0 0 C=D9
RRC A ;C->D7 ,Dn+1->Dn,D0->C
MOV DPL,A ;DPL:D9 D8 D7 D6 D5 D4 D3 0 C=0
MOV A,DPH
ADD A,#0CH ;ADD C00H 7CH??????????????
MOV DPH,A
MOVX A,@DPTR
INC A ;A++ 不影響C
MOVX @DPTR,A
JNZ ADC0END
INC DPTR
MOVX A,@DPTR
INC A
MOVX @DPTR,A
ADC0END:CLR P1.7
ANL ADC0CN,#0DFH ;清ADC標(biāo)志
POP DPH
POP DPL
POP ACC
RETI
;=============================================
;
;=============================================
INTT0: PUSH ACC
PUSH DPH
PUSH DPL
MOV A,#00H
MOVX @DPTR,A
POP DPL
POP DPH
POP ACC
RETI
;=============================================
INTT1: PUSH ACC
PUSH DPH
PUSH DPL
MOVX A,@DPTR
INC A
INTT10: MOVX @DPTR,A
POP DPH
POP DPL
POP ACC
RETI
;----------------------------------------------
OUTDAC0: MOV DPTR,#chii
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
MOV DAC1L,R6
MOV DAC1H,R7
RET
;-----------------------------------------------
;************************************完成整個(gè)轉(zhuǎn)換過(guò)程
DAC8541: CLR P2.1
CLR P2.2
CLR P2.7
SETB P2.6
CLR P2.6
;SETB P2.0
MOV DPTR,#BB
MOV R7,#04H
OUT852: MOV R6,#00H
OUT8521: MOVX A,@DPTR
LCALL CHANGD
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
LCALL CHANGD
MOVX @DPTR,A
INC DPTR
DJNZ R6,OUT8521
DJNZ R7,OUT852
RET
;******************************************************
;------------------------------------------------------
DAC712:
MOV DPTR,#BB
MOV R7,#04H
OUTT2: MOV R6,#00H
OUTT1: MOVX A,@DPTR
MOV P6,A
INC DPTR
MOVX A,@DPTR
MOV P7,A
INC DPTR
CLR P2.3
CLR P2.4
CLR P2.5
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
SETB P2.5
SETB P2.4
SETB P2.3
DJNZ R6,OUTT1
DJNZ R7,OUTT2
RET
;---------------------------------------------
CHANGD: MOV B,#00H
JNB ACC.0,OUT85432
ORL B,#80H
OUT85432:JNB ACC.1,OUT85433
ORL B,#40H
OUT85433:JNB ACC.2,OUT85434
ORL B,#20H
OUT85434:JNB ACC.3,OUT85435
ORL B,#10H
OUT85435:JNB ACC.4,OUT85436
ORL B,#08H
OUT85436:JNB ACC.5,OUT85437
ORL B,#04H
OUT85437:JNB ACC.6,OUT85438
ORL B,#02H
OUT85438:JNB ACC.7,OUT85439
ORL B,#01H
OUT85439:MOV A,B
RET
;-----------------------------------
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -