|
发表于 2007-12-1 00:28:25
|
显示全部楼层
从这段代码分析,可能使用的AVR带并口总线扩展的,LCD是采用并口总线连接使用(速度快),不是采用I/O方式操作的.
在指令中LCDCRAddrL是内存空间(外扩)的地址,估计是映射到LCD控制寄存器的低8位,读该地址即读LCD控制寄存器低字节.
;****************************************************************************************
; 写LCD模块左半部分指令
; 指令输入:r17
;****************************************************************************************
WriteLeftLCDIns:
;
lds r16, LCDCRAddrL ;读LCDCRAaddL(内存空间单元)数据到寄存器r16
sbrc r16, LCDBusy ;LCDBusy应该是LCDCR寄存器中的一位,上面在r16中读到了该寄存器的数,
;本句判断LCDBusy是否为为"0";"1"表示忙.sbrc指令为判寄存器某位为0则跳过一条指令执行.
rjmp WriteLeftLCDIns;不为"0"执行该句,转上句循环读
;
sts LCDCWAddrL, r17 ;为"0"跳过上句,执行本句.
;
ret |
|