ad8802/ad8804
rev. 0
–12–
*
* ad8802/ad8804 至 m68hc11 接口 组装 程序
*
* m68hc11 寄存器 定义
*
PORTC EQU $1003 端口 c 控制 寄存器
* “0,0,0,0;0,0,rs/, shdn/”
DDRC EQU $1007 端口 c 数据 方向
PORTD EQU $1008 端口 d 数据 寄存器
* “0,0,/cs,clk;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 数据 寄存器; 读-缓存区; 写-shifter
*
* sdi 内存 变量: sdi1 是 encoded 从 0h 至 7h
* sdi2 是 encoded 从 00h 至 ffh
* ad8802/ad8804 需要 二 8-位 负载; upper 4 位
* 的 sdi1 是 ignored. ad8802/ad8804 地址 位 在 last
* 四 lsbs 的 sdi1.
*
SDI1 EQU $00 sdi packed 字节 1 “0,0,0,0;a3,a2,a1,a0”
SDI2 EQU $01 sdi packed 字节 2 “db7–db4;db3–db0”
*
* 主要的 程序
*
ORG $C000 开始 的 用户’s 内存 在 evb
INIT LDS #$CFFF 顶 的 c 页 内存
*
* initialize 端口 c 输出
*
LDAA #$03 0,0,0,0;0,0,1,1
* /rs-hi, /shdn-hi
STAA PORTC initialize 端口 c 输出
LDAA #$03 0,0,0,0;0,0,1,1
STAA DDRC /rs 和 /shdn 是 now 使能 作 输出
*
* initialize 端口 d 输出
*
LDAA #$20 0,0,1,0;0,0,0,0
* /cs-hi,/clk-lo,sdi-lo
STAA PORTD initialize 端口 d 输出
LDAA #$38 0,0,1,1;1,0,0,0
STAA DDRD /cs,clk, 和 sdi 是 now 使能 作 输出
*
* initialize spi 接口
*
LDAA #$53
STAA SPCR spi 是 主控,cpha=0,cpol=0,clk 比率=e/32
*
* call 更新 子例程
*
BSR 更新 xfer 2 8-位 words 至 ad8402
JMP $E000 重新开始 buffalo
*
* 子例程 更新
*
更新 PSHX 保存 寄存器 x, y, 和 一个
PSHY
PSHA
*
* enter 内容 的 sdi1 数据 寄存器