警告:由于格式的原因,直接从网页上复制程序,粘贴到编译环境里面,编译时会出错。敬请直接下载word档,从word里面直接复制到编译环境里面即可。 ( word原文件下载) |
AD设置
1.设置PA为AD输入端,使用PA1进行AD转换,采用中断方式读取结果。
lda #$FF
sta P_IOA_Attrib ;PA as float
lda #C_AD_CE ;Enable ADC power
sta P_AD_Ctrl2
lda #(C_AD_EN+C_AD_CS_8+C_AD_RDY)
sta P_AD_Ctrl0 ;Enable ADC function, ADC clock= Fsys(8MHz)/8= 1MHz(max)
lda #(C_AD_Pin0+C_AD_Pin1+C_AD_Pin2+C_AD_Pin3+C_AD_Pin4+C_AD_Pin5+C_AD_Pin6+C_AD_Pin7)
;Set analog PIN, PA[7:0] as AN[7:0] sta P_AD_Ctrl1
lda #(C_AD_CE+C_AD_Ch1) ;select AN1
sta P_AD_Ctrl2
clr P_AD_Ctrl0,CB_AD_Start ;start convert
set P_INT_Flag0,CB_INT_ADIF
;clear INT request flag
set P_INT_Ctrl0,CB_INT_ADIE
;enable AD INT
cli ;enable INT
Loop:
jmp Loop
|
2.PA为AD输入端,使用PA1进行AD转换,采用查询方式读取结果。
lda #$FF
sta P_IOA_Attrib ;PA as float
lda #C_AD_CE ;Enable ADC power
sta P_AD_Ctrl2
lda #(C_AD_EN+C_AD_CS_8+C_AD_RDY)
sta P_AD_Ctrl0 ;Enable ADC function, ADC clock= Fsys(8MHz)/8= 1MHz(max)
lda #(C_AD_Pin0+C_AD_Pin1+C_AD_Pin2+C_AD_Pin3+C_AD_Pin4+C_AD_Pin5+C_AD_Pin6+C_AD_Pin7)
;Set analog PIN, PA[7:0] as AN[7:0]
sta P_AD_Ctrl1
lda #(C_AD_CE+C_AD_Ch1) ;select AN1
sta P_AD_Ctrl2
clr P_AD_Ctrl0,CB_AD_Start ;start convert
set P_INT_Flag0,CB_INT_ADIF ;clear INT request flag
Loop:
tst P_INT_Flag0,CB_INT_ADIF
beq Loop
set P_INT_Flag0,CB_INT_ADIF
lda P_AD_DataHi ;read high 8 bit convert reasult
nop
clr P_AD_Ctrl0,CB_AD_Start ;start convert
jmp Loop
|
|