第七章片内接口.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 例:采用查询法实现多通道A/D转换 RESULT-TBL EQU 60H ORG 2080H START:LD SP #00E0H LDB BL #00H ;从4号通道开始 NEXT: ADDB AD-COMMAND BL #0CH ;立即启动,通道号由 NOP ; BL内容决定 NOP CHECK:JBS AD-RESULT,3,CHECK ;判断是否正在转换 LDB AL AD-RESULTLO ;将内容读出 LDB AH AD-RESULTHI ADDB DL,BL,BL ;BL乘以2 LDBZE DX,DL ;扩展为一个字 ST AX RESULT-TABL[DX] ;将内容放到RESULT-TAB INCB BL ;开始的地址中 ANDB BL #03H ;通道号按模递增 SJMP NEXT 例:上例用中断法实现 ORG 2080H START:LD SP #00E0H DI LDB BL #04H ;通道号为4 LD TEMP #3000H ;加载中断矢量 ST TEMP 2002H[0] LDB INT-MASK #02H ;允许A/D中断 CLRB INT-PENDING EI ADDB AD-COMMAND,BL,#0CH HERE: SJMP HERE ORG 3000H PUSHF LDB AL,AD-RESULTLO ;将转换结果读出来 LDB AH,AD-RESULTHI ADDB DL,BL,BL ;BL乘以2 LDBZE DX,DL ;扩展为字 ST AX,RESULT-TBL[DX] ;将结果存起来 INCB BL ANDB BL #03H ;通道号按模递增 ADDB AD-COMMAND,BL,#0CH POPF RET 例:假设某空调房间需要进行温度控制。为了保持室温,当温度超过允许温度的上限时,打开鼓风机(P2.0置1)。当温度低于允许温度下限时,打开加热器(P2.5置1)。否则,鼓风机和加热器都不打开(P2.0=0,P2.5=0) LIMITLO EQU 54H ;存放下限值 LIMITHI EQU 56H ;存放上限值 ORG 2080H LD SP,#00E0H OK: ANDB P 2,#0DEH ;清P2.0和P 2.5 START: L DB AD_COMMAND #0FH

文档评论(0)

1亿VIP精品文档

相关文档