文档介绍:§8-2 80C51移位寄存器
串行扩展技术
一、移位寄存器串行扩展方式
80C51串行方式0时,串行口作为同步移位寄存器使用。TXD端()发出移位脉冲,频率为fosc/12,RXD端()输入输出数据。
1、80C51扩展并行输出口
74LS164为串入并出移位寄存器,其中A、B为串行数据输入端,QA、QB、…、QH为并行数据输出端(QA为高位),CLK为同步时钟输入端,CLR为输出清0端。若不需将输出数据清0,。
2、80C51扩展并行输入口
74LS165为并入串出移位寄存器,A、B、…、H为并行输入端(A为高位),QH为串行数据输出端,SER为串行数据输入端,CLK为同步时钟输入端,S/L为预置控制端。S/L=0时,锁存并行输入数据;S/L=1时,可进行串行移位操作。
80C51串行方式0归一化子程序:
⑴单字节串行输出子程序
⑵单字节串行输入子程序
⑶多字节串行输出子程序
⑷多字节串行输入子程序
二、串行方式0归一化子程序
所谓归一化子程序,即通用或标准化操作子程序,将80C51串行方式0所有应用操作归纳成几个基本的输入输出子程序,并使这些标准子程序具有规范的入口条件和出口状态。应用时,只要设置相应的入口和出口,调用归一化子程序,就能达到串行输入输出的目的。
80C51虚拟串行I/O口归一化子程序:
⑴单字节虚拟串行输出子程序
⑵单字节虚拟串行输入子程序
⑶多字节虚拟串行输出子程序
⑷多字节虚拟串行输入子程序
三、80C51 I/O虚拟串行接口
利用80C51通用I/O口虚拟移位寄存器工作方式实现串行扩展,只需用任一通用I/O口代替RXD和TXD,设为VRXD和VTXD。
四、移位寄存器串行扩展应用
80C51移位寄存器串行扩展应用,只需根据标准化的电路形式连接,设置好入口条件,然后调用串行方式0归一化子程序或虚拟串行接口归一化子程序,即可完成扩展应用。
【例8-1】电路如图8-5所示,fosc = 12MHz,要求发光二极管从左向右依次点亮,点亮时间为1秒,不断循环。设串行方式0归一化子程序已存在ROM中。
解:
PIOX1 BIT ;定义PIOX1
WORK: MOV A,#10000000B ;置D7灯亮,其余暗
LOOP: CLR PIOX1 ;74LS164输出全0,灯全暗
LCALL UART0 ;调用单字节串行输出子程序
LCALL DLY1s ;调用延时1秒子程序(略)
RR A ;右移
SJMP LOOP ;
【例8-2】电路如图8-6所示,fosc=12MHz,要求每隔10ms,检测键K0~K7状态,并存入内RAM 2FH。设虚拟串行接口归一化子程序已存在ROM中。
解: ORG 0000H ;复位地址
L