
DAC8562
DAC8562 - M68HC11接口程序源代码
*
* DAC8562以M68HC11接口汇编程序
·阿道夫· A·加西亚
* 1992年9月14日,
*
* M68HC11寄存器定义
*
PORTB
EQU
$1004
PORTC
EQU
$1003
端口C控制寄存器
*
“0,0,0,0;0,CLR/,CE/,MSB-LSB/”
DDRC
EQU
$1007
端口C数据方向
*
*内存变量:
最高位是0 (十六进制)到F (十六进制)编码
*
LSBS从00 (十六进制)到F (十六进制)编码
*
DAC需要两个8位的负载
*
最高位
EQU
$00
喜字节: “ 0,0,0,0 ; MSB , DB10 , DB9 , DB 8 ”
最低有效位
EQU
$01
罗字节: “ DB7 , DB6 , DB5 , DB4 , DB3 , DB2 ,
DB1,DB0”
*
*主程序
*
ORG
$C000
开始在EVB用户的RAM
INIT
LDS
# $ CFFF
顶了C RAM页
*
*初始化端口C输出
*
LDAA # 07美元
0,0,0,0;0,1,1,1
STAA DDRC
CLR / , CE /和MSB - LSB /现在已启用
为输出
LDAA # 06美元
0,0.0,0;0,1,1,0
*
CLR /嗨, CE /嗨, MSB - LSB / -lo
STAA PORTC
初始化端口C输出
*
*调用子程序更新
*
BSR
更新
XFER 2 8位字DAC8562
JMP
$E000
重新启动BUFFALO
*
*子程序更新
*
UPDATE PSHX
保存寄存器X,Y和A
PSHY
民政事务局常任秘书长
*
*输入的Hi-字节输入寄存器的内容
*
LDAA # $ 0A
0,0,0,0;1,0,1,0
STAA MSBS
最高位是设置为0A (十六进制)
*
*输入'罗字节的输入寄存器的内容
*
LDAA # $ AA
1,0,1,0;1,0,1,0
STAA LSBS
LSB被设定为AA (十六进制)
*
LDX
#MSBS
堆栈指针指向第1个字节,通过端口B发送
LDY
#$1000
堆栈指针在片内寄存器
*
*清除DAC输出为零
*
BCLR PORTC ,Y 04美元断言CLR /
BSET PORTC ,Y 04美元德断言CLR /
*
*加载输入缓冲锁存器
*
BSET PORTC ,Y 01美元集高科技字节的寄存器写入
TFRLP
LDAA 0中,x
获取一个字节通过端口B传输
STAA PORTB
将数据写入输入寄存器
INX
递增计数器转移下一个字节
CPX
#LSBS+1
我们做了吗?
BEQ
DUMP
如果是的话,更新DAC输出
BCLR PORTC ,Y 01美元锁存器HI-字节寄存器并设置LO字节的寄存器
负载
BRA
TFRLP
*
DAC8562 - M68HC11接口程序源代码(续)
*更新DAC输出与输入寄存器的内容
*
DUMP
BCLR PORTC ,Y 02美元断言CE /
BSET PORTC ,Y 02美元锁存DAC寄存器
*
普拉
完成后,恢复寄存器X,Y &一
PULY
PULX
RTS
**返回到主程序**
REV 。一
–15–