- ;21.7.3 格式化 ADC 转换结果
- ;汇编代码
- ;测试工作频率为 11.0592MHz
- ADC_CONTR DATA 0BCH
- ADC_RES DATA 0BDH
- ADC_RESL DATA 0BEH
- ADCCFG DATA 0DEH
- P_SW2 DATA 0BAH
- ADCTIM XDATA 0FEA8H
- P1M1 DATA 091H
- P1M0 DATA 092H
- P0M1 DATA 093H
- P0M0 DATA 094H
- P2M1 DATA 095H
- P2M0 DATA 096H
- P3M1 DATA 0B1H
- P3M0 DATA 0B2H
- P4M1 DATA 0B3H
- P4M0 DATA 0B4H
- P5M1 DATA 0C9H
- P5M0 DATA 0CAH
- ORG 0000H
- LJMP START
- ORG 0100H
- START:
- MOV SP, #5FH
- ORL P_SW2,#80H ;使能访问 XFR,没有冲突不用关闭
- MOV P0M0, #00H
- MOV P0M1, #00H
- MOV P1M0, #00H
- MOV P1M1, #00H
- MOV P2M0, #00H
- MOV P2M1, #00H
- MOV P3M0, #00H
- MOV P3M1, #00H
- MOV P4M0, #00H
- MOV P4M1, #00H
- MOV P5M0, #00H
- MOV P5M1, #00H
- MOV P1M0, #00H ;设置 P1.0 为 ADC 口
- MOV P1M1, #01H
- MOV DPTR, #ADCTIM ;设置 ADC 内部时序
- MOV A,#3FH
- MOVX @DPTR,A
- MOV ADCCFG,#0FH ;设置 ADC 时钟为系统时钟/2/16
- MOV ADC_CONTR,#80H ;使能 ADC 模块
- ORL ADC_CONTR,#40H ;启动 AD 转换
- NOP
- NOP
- MOV A,ADC_CONTR ;查询 ADC 完成标志
- JNB ACC.5,$-2
- ANL ADC_CONTR,#NOT 20H ;清完成标志
- MOV ADCCFG,#00H ;设置结果左对齐
- MOV A,ADC_RES ;A 存储 ADC 的 10 位结果的高 8 位
- MOV B,ADC_RESL ;B[7:6]存储 ADC 的 10 位结果的低 2 位,B[5:0]为 0
- ; MOV ADCCFG,#20H ;设置结果右对齐
- ; MOV A,ADC_RES ;A[3:0]存储 ADC 的 10 位结果的高 2 位,A[7:2]为 0
- ; MOV B,ADC_RESL ;B 存储 ADC 的 10 位结果的低 8 位
- SJMP $
- END
-
复制代码
|