74Ls164串行数据转换为并行数据
//单片机工作于串口模式0,即移位寄存器输入/输出模式,串行数据通过RXD输出,TXD
//则用于输出移位时钟脉冲,这种模式有利于用最少硬件实现接口扩展。
//本例在单片机串行口外接一片8位串入并出(SIPO)移位寄存器74LS164,构成单片机输出
//接口电路,控制8只LED滚动显示。
//SCON串行口控制寄存器:SM0 SM1 SM2 REN TB8 RB8 TI RI;
//SM0(位7):工作模式选择高位,与SM1共同决定工作方式(如模式0~3)。
//SM1(位6):工作模式选择低位。
//SM2(位5):多机通信控制位,在模式2/3中启用多机通信。
//REN(位4):接收使能控制位,1允许接收,0禁止。
//TB8(位3):发送的第9位数据/奇偶校验位。
//RB8(位2):接收的第9位数据/停止位。
//TI(位1):发送完成中断标志,1表示发送完成需软件清零。
//RI(位0):接收完成中断标志,1表示接收完成需软件清零。
//串行口控制寄存SCON高两位是SM0和SM1,它们可设定以下4种串口工作模式。
//00:模式0,同步移位寄存器,波特率为Fosc/12;
//01:模式1,10位异步收发,波特率由定时器控制;
//10:模式2,11位异步收发,波特率为Fosc/32或Fosc/64:
//11:模式3,11位异步收发,波特率由定时器控制。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void yan_shi(uint ms)
{
uint i,j;
for(i=0;i
}
//主程序
void main()
{
uchar c=0x80;
SCON=0x00;//串口模式0,即移位寄存器入/输出方式
TI=1;//TI置1
while(1)
{
c=_crol_(c,1);
SBUF=c;
while(TI==0);//等待发送结束
TI=0;//TI软件置位
yan_shi(100);
}
}
通过网盘分享的文件:74Ls164串行数据转换为并行数据
链接: https://pan.baidu.com/s/1LuTEqiGU8wi6O16nNsC_tA 提取码: mmys







最新发布