添加收藏夹  设为首页  深圳服务热线:13751165337  13692101218
51电子网联系电话:13751165337
位置:首页 > IC型号导航 > 首字符D型号页 > 首字符D的型号第253页 > DAC8420FQ > DAC8420FQ PDF资料 > DAC8420FQ PDF资料2第21页
DAC8420
DAC8420 TO M68HC11接口汇编程序
* M68HC11寄存器定义
PORTC EQU 1003美元端口C控制寄存器
*“ 0,0,0,0 ; 0 , CLSEL ,CLR CS ”
DDRC EQU 1007美元端口C数据方向
PORTD EQU 1008美元端口D数据寄存器
*“ 0,0 , LD , SCLK , SDI , 0,0,0 ”
DDRD EQU 1009美元端口D数据方向
SPCR EQU 1028美元SPI控制寄存器
*“ SPIE , SPE , DWOM , MSTR , CPOL , CPHA , SPR1 , SPR0 ”
SPSR EQU 1029美元SPI状态寄存器
*“ SPIF和WCOL , 0 , MODF ; 0,0,0,0 ”
SPDR EQU $ 102A SPI数据寄存器;读缓冲区;写移位
*
* SDI RAM变量: SDI1从0 (十六进制) ,以CF (十六进制)编码
*选择: DAC A - 设置SDI1至0X
DAC B - 设置SDI1至4倍
DAC - 设置SDI1至8倍
DAC - 设置SDI1至CX
SDI2是从00 (十六进制)为FF (十六进制)编码
* DAC需要两个8位的负荷 - 地址+ 12位
SDI1 EQU 00美元SDI压缩字节1 “A1 , A0,0,0 ; MSB , DB10 , DB9 , DB 8 ”
SDI2 EQU 01美元SDI压缩字节2
“DB7,DB6,DB5,DB4;DB3,DB2,DB1,DB0”
*主程序
在EVB用户的RAM ORG $ C000启动
INIT LDS # $ CFFF顶了C RAM页
*初始化端口C输出
LDAA # 07美元0,0,0,0 ; 0,1,1,1
* CLSEL喜CLR -嗨, CS-喜
*要重置DAC至零标度,设置CLSEL罗($ 03)
*要重置DAC到中等规模,集CLSEL喜($ 07)
STAA PORTC初始化端口C输出
LDAA # 07美元0,0,0,0 ; 0,1,1,1
STAA DDRC CLSEL , CLR和CS现在已启用为输出
*初始化端口D输出
LDAA # 30美元0,0,1,1 ; 0,0,0,0
* LD-嗨, SCLK喜SDI罗
STAA初始化PORTD端口D输出
LDAA # 38美元0,0,1,1 ; 1,0,0,0
STAA DDRD LD ,SCLK和SDI现在已启用为输出
*初始化SPI接口
LDAA # $ 5F
STAA SPCR SPI是法师, CPHA = 1 , CPOL = 1时,CLK率= E / 32
*调用子程序更新
BSR更新XFER 2 8位字DAC- 8420
JMP $ E000重启BUFFALO
*子程序更新
UPDATE PSHX保存寄存器X,Y和A
PSHY
民政事务局常任秘书长
*输入SDI1数据寄存器的内容( DAC #和4个MSB )
LDAA # 80美元1,0,0,0 ; 0,0,0,0
STAA SDI1 SDI1被设置为80 (十六进制)
*输入SDI2数据寄存器的内容
LDAA # 00美元0,0,0,0 ; 0,0,0,0
STAA SDI2 SDI2设置为00 (十六进制)
LDX # SDI1堆栈指针指向第1个字节通过SDI发
LDY #千美元堆栈指针在片内寄存器
*清除DAC输出为零
BCLR PORTC ,Y 02美元断言CLR
BSET PORTC ,Y 02美元解除报警CLR
*获取DAC可以进行数据的输入
BCLR PORTC ,Y 01美元断言CS
TFRLP LDAA 0 ,X获取一个字节通过SPI传输
STAA SPDR写SDI数据寄存器开始XFER
等待LDAA SPSR循环等待SPIF
BPL等待SPIF是SPSR的MSB
*
(当SPIF置, SPSR被否定)
INX
增量专柜,为XFER下一个字节
CPX # SDI2 + 1难道我们做了吗?
BNE TFRLP如果不是, XFER第二字节
*更新DAC输出DAC寄存器的内容
BCLR PORTD ,Y 520断言LD
BSET PORTD ,Y 20美元锁存DAC寄存器
BSET PORTC ,Y 01美元德断言CS
普拉完成后,恢复寄存器X,Y &一
PULY
PULX
RTS
**返回到主程序**
版本B |第21页24

深圳市碧威特网络技术有限公司