
代碼:
#include<reg51.h>
#include<intrins.h>
#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;
TI=1;
while(1)
{
c=_crol_(c,1);
SBUF=c;
while(TI==0);
TI=0;
DelayMS(400);
}
}


問一下為什么這個電路中74LS164沒有接時鐘信號為什么也可以完成串并行資料轉化,還是51單片機的P30和P31埠就有這個作用?
第二個問題

這里懸空為什么可以是高電平呢?
74LS164的內部應該沒有上拉電阻吧?
uj5u.com熱心網友回復:
第一個問題:由單片機P31提供時鐘信號。第二個問題:74LS164內部有弱上拉。
uj5u.com熱心網友回復:
就是P30和P31做串口通信就算不設定也算是打開的狀態對吧uj5u.com熱心網友回復:
SCON=0x00; 用的是方式0,方式0( SM0 SM1 :0 0):串行口的作業方式0為移位暫存器I/O方式,可外接移位暫存器,一擴展I/O口,也可外接同步I/O設備。 發送操作:當執行一條“MOVSBUF,A”指令時,啟動發送操作,由TXD輸出移位脈沖,由RXD串行SBUF中的資料。發送完8位資料后自動置TI=1.請求中斷。要繼續發送時,TI必須有指令清零。 接收操作:REN是串行口接收允許控制位。REN=0時禁止接收;REN=1時允許接收。當軟體將REN置“1”時,即開始從RXD埠以fosc/12波特率輸入資料,當接收到8位資料時,將中斷標志RI置“1”。再次接收資料之前,必須用軟體將RI清0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/70339.html
標籤:單片機/工控
下一篇:單片機如何通過兩芯電源線雙工通信
