帮忙看看下面的汇编代码,由于我不是学汇编的,帮忙分析一下是发送什么数据到AD7543.
感激不尽
LD2 EQU P1.1 ;加载脉冲输出端及停止向AD7543输送数据 SRI EQU P1.2 ;数据输入AD7543端 STB2 EQU P1.3 ;数据向AD7543发送的使能端 CR EQU P1.0 ;清除AD7543中寄存器B的内容与把A中的数据转到B中 ORG 0000H LJMP START ORG 0030H START: MOV 30H,#66H ;低字节存储单元 MOV 31H,#06H ;高字节存储单元 CLR CR ;清零B寄存器做准备 NOP NOP SETB CR MAIN: CLR STB2 LCALL QDONG ;调用驱动AD7543子程序 LJMP MAIn QDONG: ;驱动AD7543子程序 SETB LD2 ;加载脉冲输出信号 MOV R7,#04H ;转送数据4次(高4位) MOV A,31H ;数据高4位 SWAP A ;高四位与低四位互换 LOOP1: RLC A ;A带进位左移 MOV SRI,C ;向AD7543输出数据 LCALL PULSE ;向AD7543发送数据脉冲信号 DJNZ R7,LOOP1 ;4位未完继续 MOV R7,#08H ;转送数据8次(低8位) MOV A,30H ;数据低8位 LOOP2: RLC A ;A带进位左移 MOV SRI,C ;向AD7543输出数据 LCALL PULSE ;向AD7543发送数据脉冲信号 DJNZ R7,LOOP2 ;8位未完继续 CLR LD2 ;停止向AD7543输送数据并把AD7543寄存器A中数据转到AD7543B寄存器中 SETB CR NOP NOP RET ;传送完毕 PULSE: ;STB2上跳沿时,在SRI输入的数据送入AD7543寄存器A中 CLR STB2 ;输出低电平 MOV R3,#4 DJNZ R3,$ SETB STB2 ;输出高电平 MOV R3,#4 DJNZ R3,$ CLR STB2 RET
|