單片機C語言程序設(shè)計:并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)
掃描二維碼
隨時隨地手機看文章
/* 名稱:并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)
說 明 : 切 換 連 接 到 并 串 轉(zhuǎn) 換 芯 片
74LS165 的撥碼開關(guān),該芯片將并行數(shù)據(jù)以
串行方式發(fā)送到 8051 的 RXD 引腳,移位脈
沖由 TXD 提供,顯示在 P0 口。
*/
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit SPL=P2^5; //shift/load
//延時
void DelayMS(uint ms)
{
uchar i;
while(ms--) for(i=0;i<120;i++);
}
//主程序
void main()
{
SCON=0x10; 串口模式 0,允許串口接收
while(1)
{
SPL=0; //置數(shù)(load),讀入并行輸入口的 8 位數(shù)據(jù)
SPL=1; //移位(shift),并口輸入被封鎖,串行轉(zhuǎn)換開始
while(RI==0); //未接收 1 字節(jié)時等待
RI=0; //RI 軟件置位
P0=SBUF; //接收到的數(shù)據(jù)顯示在 P0 口,顯示撥碼開關(guān)的值
DelayMS(20);
}
}
單片機C語言程序設(shè)計:并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)" width="550" height="390" />