串入并出(74LS164)和并入串出(74LS165)
-
我们在进行数据转换的时候经常会用到
74L
S164,74LS165
,
在单片机
课程和数字电子基础里都可以看到,
这两个芯片是思绪上要形成互补
的思想,一个是串入并出,另外一个是并入串出!
一下两
个例题用到的是单片机的串行线,
TXD
(发送
标志是
TI
)和
RXD
(接收
标志是
RI
)
串行数据转换为并行数据(
74ls
164
串入并出)
/*
名称:串行数据转换为并行数据
<
/p>
说明:串行数据由
RXD
发送给串并转换
芯片
74164
,
TXD
则用
于输出移位时钟脉冲,
74164
将串行输入的
1
字节转换为并行数据,
并将转换的数据通过
8
只
L
ED
显示出来。本例串口工作模式
0
,
即
移位寄存器
I/O
模式。
TXD
发送
*/
#include
#include
#define
uchar unsigned char
#define uint
unsigned int
//
延时
void DelayMS(uint ms)
{
uchar i;
while(ms--) for(i=0;i<120;i++);
}
//
主程序
void main()
{
uchar c=0x80;
SCON=0x00;
//
串口模式
0
,即移位寄存器输入
/
输出方式
TI=1;
while(1)
{
c=_crol_(c,1);
SBUF=c;
while(TI==0);
//
等待发送结束
TI=0;
//TI
软件置位
DelayMS(400);
}
}
实验结果:
1.
我们要送的数是
0x80
,串行方式
0
是移位寄存器输入输出方式。<
/p>
2. _crol_
()在
#include
里,是左移函数。
3.
把这数每一位放在
C
里,
TXD
进行发送,也就是产生移
位脉冲。