74LS165并行数据转换为串行数据
//切换连接到并串转换芯片74LS165的拨码开关,该芯片将并行数据
//以串行方式发送到8051的RXD引脚,移位脉冲由TXD提供,显示在P0端口。
//74LS165 的并行数据输入端D7~D0连接的是8位的拨码开关,串行输出端SO连接单片机
//RXD引脚,与74LS164一样,TXD仍负责发送移位时钟脉冲,它与74LS165的CLK引脚相连,
//本例还要特别注意SH/LD 引脚,SH/LD即Shif/Load,高时表示SH(移位),低时表示LD(置
//数),在开始移位之前,需要先从并行输入端口读入数据,这时应将SH/LD置0,并行口的8位
//数据将被置入74LS165内部的8个触发器,在SH/LD为1时,并行输入被封锁,移位操作开始,
//在TXD引脚移位时钟脉冲控制下,8位并行数据逐位串行发送到SO引脚。在模式0下,移位时
//钟由单片机硬件完成,而SH/LD引脚需要程序控制。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SH_LD=P2^7;
//延时
void yan_shi(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<120;i++);
}
//主程序
void main()
{
SCON=0X10;//设为串口模式0,REN(位4):接收使能控制位,1允许接收,
while(1)
{
SH_LD=0;//置数,读入并行输入口的8位数据
SH_LD=1;//移位,并口输入被封锁,串行转换开始
while(RI==0);//RI——接收中断标志位,等待接收一字节
RI=0;
P0=SBUF;//接收到的字显示到PO口
yan_shi(20);
}
//以串行方式发送到8051的RXD引脚,移位脉冲由TXD提供,显示在P0端口。
//74LS165 的并行数据输入端D7~D0连接的是8位的拨码开关,串行输出端SO连接单片机
//RXD引脚,与74LS164一样,TXD仍负责发送移位时钟脉冲,它与74LS165的CLK引脚相连,
//本例还要特别注意SH/LD 引脚,SH/LD即Shif/Load,高时表示SH(移位),低时表示LD(置
//数),在开始移位之前,需要先从并行输入端口读入数据,这时应将SH/LD置0,并行口的8位
//数据将被置入74LS165内部的8个触发器,在SH/LD为1时,并行输入被封锁,移位操作开始,
//在TXD引脚移位时钟脉冲控制下,8位并行数据逐位串行发送到SO引脚。在模式0下,移位时
//钟由单片机硬件完成,而SH/LD引脚需要程序控制。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SH_LD=P2^7;
//延时
void yan_shi(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<120;i++);
}
//主程序
void main()
{
SCON=0X10;//设为串口模式0,REN(位4):接收使能控制位,1允许接收,
while(1)
{
SH_LD=0;//置数,读入并行输入口的8位数据
SH_LD=1;//移位,并口输入被封锁,串行转换开始
while(RI==0);//RI——接收中断标志位,等待接收一字节
RI=0;
P0=SBUF;//接收到的字显示到PO口
yan_shi(20);
}
}
通过网盘分享的文件:74LS165并行数据转换为串行数据
链接: https://pan.baidu.com/s/1n5hYuENmY--I15sdEaZLTA 提取码: rayb








最新发布