⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noname1.asm

📁 触摸屏幕资料!还有电路图!可以借鉴的!是初学者的好资料
💻 ASM
字号:
; A/D 通道选择命令字和工作寄存器
CHX EQU 094H ;通道X+的选择控制字
CHY EQU 0D4H;通道Y+的选择控制字
CH3 EQU 0A4H 
CH4 EQU 0E4H
AD_CH EQU 35H ;通道选择寄存器
AD_RESULTH EQU 36H ;存放12 bit A/D值
AD_RESULTL EQU 37H
; 存放通道CHX+的A/D值
CHXAdResultH EQU 38H 
CHXAdResultL EQU 39H
; 存放通道CHY+的A/D值
CHYAdResultH EQU 3AH
CHYAdResultL EQU 3BH
; 采集通道CHX+的程序段(CHXAD)
CHXAD: MOV AD_CH,#CHX
LCALL AD_RUN
MOV CHXAdResultH,AD_RESULTH
MOV CHXAdResultL,AD_RESULTL
RET
; 采集通道CHY+的程序段(CHYAD)
CHYAD: MOV AD_CH,#CHY
LCALL AD_RUN
MOV CHYAdResultH,AD_RESULTH
MOV CHYAdResultL,AD_RESULTL
RET
; A/D转换子程序(AD_RUN)
; 输入: AD_CH-模式和通道选择命令字
; 输出: AD_RESULTH,L ;12 bit的A/D转换值
; 使用: R2 ;辅助工作寄存器
AD_RUN: 
CLR CS ; 芯片允许
CLR DCLK 
MOV R2,#8 ;先写8 bit命令字
MOV A,AD_CH 
AD_LOOP: 
MOV C, ACC.7 
MOV DIN,C ;时钟上升沿锁存DIN
SETB DCLK ;开始发送命令字
CLR DCLK ;时钟脉冲,一共24个
RL A
DJNZ R2,AD_LOOP
NOP
NOP
NOP
NOP
ADW0: JNB BUSY,AD_WAIT ;等待转换完成
SJMP ADW1
AD_WAIT: 
LCALL WATCHDOG
NOP
SJMP ADW0
CLR DIN 
ADW1: MOV R2,#12 ;开始读取12bit结果
SETB DCLK
CLR DCLK
AD_READ:
SETB DCLK
CLR DCLK ;用时钟的下降沿读取
MOV A,AD_RESULTL
MOV C,DOUT
RLC A
MOV AD_RESULTL,A
MOV A,AD_RESULTH
RLC A
MOV AD_RESULTH,A
DJNZ R2,AD_READ
MOV R2,#4 ;最后是没用的4个时钟
IGNORE:
SETB DCLK
CLR DCLK
DJNZ R2,IGNORE
SETB CS ;禁止芯片
ANL AD_RESULTH,#0FH ;屏蔽高4 bit
RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -