匯編語言看懂了,但是改不成C51的程序,請各位高手能幫我一下,謝謝!
LED_MCU_START EQU P3.7
ADC_CONTR EQU 0C5H
ADC_DATA EQU 0C6H
;ADC_LOW2 EQU 0BEH
P1M0 EQU 91H
P1M1 EQU 92H
ADC_Power_On_Speed_Channel_0 EQU 11100000B
ADC_Power_On_Speed_Channel_1 EQU 11100001B
ADC_Power_On_Speed_Channel_2 EQU 11100010B
ADC_Power_On_Speed_Channel_3 EQU 11100011B
ADC_Power_On_Speed_Channel_4 EQU 11100100B
ADC_Power_On_Speed_Channel_5 EQU 11100101B
ADC_Power_On_Speed_Channel_6 EQU 11100110B
ADC_Power_On_Speed_Channel_7 EQU 11100111B
ADC_Channel_0_Result EQU 30H
ADC_Channel_1_Result EQU 31H
ADC_Channel_2_Result EQU 32H
ADC_Channel_3_Result EQU 33H
ADC_Channel_4_Result EQU 34H
ADC_Channel_5_Result EQU 35H
ADC_Channel_6_Result EQU 36H
ADC_Channel_7_Result EQU 37H
ORG 0000H
LJMP MAIN
ORG 0050H
MAIN:
CLR LED_MCU_START
MOV SP, #7FH
ACALL Initiate_RS232
ACALL ADC_Power_On
ACALL Set_P12_Open_Drain
ACALL Set_ADC_Channel_2
ACALL Get_AD_Result
ACALL Send_AD_Result
ACALL Set_P12_Normal_10
MOV A, ADC_Channel_2_Result
CPL A
MOV P1, A
Wait_Loop:
SJMP Wait_Loop
Initiate_RS232;
CLR ES
MOV TMOD, #20H
MOV SCON, #50H
MOV TH1, #0FBH
MOV TL1, #0FBH
SETB TR1
RET
Send_Byte:
CLR TI
MOV SBUF, A
Send_Byte_Wait_Finish:
JNB TI, Send_Byte_Wait_Finish
CLR TI
RET
ADC_Power_On:
PUSH ACC ORL ADC_CONTR, #80H
MOV A, #20H
ACALL Delay
POP ACC
RET
;設置P1.2,設置A/D通道所在的I/O為開漏模式
Set_P12_Open_Drain;
PUSH ACC
MOV A, #00000100B
ORL P1M0, A
ORL P1M1, A
POP ACC
RET
;設置P1.2,為普通IO
Set_P12_Normal_IO
PUSH ACC
MOV A, #11111011B
ANL P1M0, A
ANL P1M1, A
POP ACC
RET
Set_ADC_Channel_2;
MOV ADC_CONTR, #ADC_Power_On_Speed_Channel_2
MOV A, #05H
ACALL Delay
RET
Send_AD_Result;
PUSH ACC
MOV A, ADC_Channel_2_Result
ACALL Send_Byte
POP ACC
RET
Get_AD_Result:
PUSH ACC MOV ADC_DATA, #0
ORL ADC_CONTR, #00001000B
Wait_AD_Finishe:
MOV A, #00010000B
ANL A, ADC_CONTR
JZ Wait_AD_Finishe
ANL ADC_CONTR, #11100111B
MOV A, ADC_DATA
MOV ADC_Channel_2_Result, A
POP ACC
RET
Delay:
PUSH 02
PUSH 03
PUSH 04
MOV R4, A
Delay_Loop0:
MOV R3, #200
Delay_Loop1;
MOV R2, #249
Delay_Loop:
DJNZ R2, Delay_Loop
DJNZ R3, Delay_Loop1
DJNZ R4, Delay_Loop0
POP 04
POP 03
POP 02
RET
END
[此貼子已經被作者于2010-4-13 9:25:59編輯過]
|