導航:首頁 > 電器電路 > 51串口電路

51串口電路

發布時間:2021-10-09 16:43:41

⑴ 誰有51單片機連接USB串口電路原理圖。要CAXA畫的。謝謝了

自己在電路圖軟體里畫好然後導出DXF,再導入CAXA即可

⑵ 高分求救,關於51單片機埠外接電路有圖!

1、當光電管接通時,P2.3口是高電平。
2、有四個LED燈,但是沒有畫出來,單片機的P1口,P3口引腳還有剩餘吧,那就用啊。

⑶ 51單片機的串口通信這塊怎麼也學不懂,誰介紹個好方法來。謝謝了

外部接線電路、串口設置、方式、T1...,樓主什麼地方不懂,說說看。
看看這個有幫助否:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d50edc2f1321965b4ec22662.html

⑷ 51單片機與rs485連接電路在串口程序中怎麼驅動485在線等!!!謝謝

像使用串口一樣就可以了

⑸ 51單片機串口工作原理,硬體原理

一般必須有晶振,復位電路,還有就是給單片機供電,這樣就是一個最小系統,至於單片機內部電路我也不知道,但是我會用單片機,會寫程序,就可以了,不知道可不可以幫到你

⑹ 請問一下 STC89C51單片機如果不買開發板,自己做電路,需要USB轉串口的下載線嗎

如果你的電腦是台式機,有串口的話,就不需要USB
最小系統電路很簡單,你搜下就有
STC89c51不用下載器,內部有編好的程序,不用管,硬體用max232晶元就好,連接rxd,txd和串口就可以了,用stc提供的在線編程下載軟體就行了

⑺ 電腦接入51單片機的串口,然後通過串口來控制51的4部步進電機正轉反轉和停止。最好C語言有電路圖,多謝!

如果單純的只是控制正反轉,應該很簡單啊,就給幾個控制命令字就行了,然後在中斷里進行對應的狀態位來控製程序的流程轉向就行了。
如果想要程序可以qq我,471361865,但是必須有你的步進電機的資料,才能寫出來對應的驅動脈沖。

⑻ 電路圖中51/STC串口口是什麼

串口就是PLC或者單片機,還有電腦互相傳遞信號的端子。一般有硬體和軟體共同完成信號傳遞。

⑼ 51單片機串口的原理和過程

單片機C51串口中斷接收和發送測試常式(含通信協議的實現)

通信協議:第1位元組,MSB為1,為第1位元組標志,第2位元組,MSB為0,為非第一位元組標志,其餘類推……,最後一個位元組為前幾個位元組後7位的異或校驗和。

測試方法:可以將串口調試助手的發送框寫上 95 10 20 25,並選上16進制發送,接收框選上16進制顯示,如果每發送一次就接收到95 10 20 25,說明測試成功。

//這是一個單片機C51串口接收(中斷)和發送常式,可以用來測試51單片機的中斷接收
//和查詢發送,另外我覺得發送沒有必要用中斷,因為程序的開銷是一樣的
//程序編寫: 龔建偉 [email protected]
//技術主頁:http://www.gjwtech.com
//您有這方面的問題可以和我討論

#include <reg51.h>
#include <string.h>

#define INBUF_LEN 4 //數據長度

unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag=0;

void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x80; //SMOD=1;
TH1 = 0xF4; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
// TI=1;
}

//向串口發送一個字元
void send_char_com(unsigned char ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}

//向串口發送一個字元串,strlen為該字元串長度
void send_string_com(unsigned char *str,unsigned int strlen)
{
unsigned int k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen);
}

//串口接收中斷函數
void serial () interrupt 4 using 3
{
if(RI)
{
unsigned char ch;
RI = 0;
ch=SBUF;
if(ch>127)
{
count3=0;
inbuf1[count3]=ch;
checksum= ch-128;
}
else
{
count3++;
inbuf1[count3]=ch;
checksum ^= ch;
if( (count3==(INBUF_LEN-1)) && (!checksum) )
{
read_flag=1; //如果串口接收的數據達到INBUF_LEN個,且校驗沒錯,
//就置位取數標志
}
}
}
}

main()
{
init_serialcomm(); //初始化串口
while(1)
{
if(read_flag) //如果取數標志已置位,就將讀到的數從串口發出
{
read_flag=0; //取數標志清0
send_string_com(inbuf1,INBUF_LEN);
}
}

}

⑽ 51單片機和計算機之間實現串口通信的電路圖

串口通訊參考程序如下:

來源:深入淺出AVR單片機

#include<reg51.h>

unsignedcharUART_RX;//定義串口接收數據變數

unsignedcharRX_flag;//定義穿行接收標記

/*********************************************************************************************

函數名:UART串口初始化函數

調用:UART_init();

參數:無

返回值:無

結果:啟動UART串口接收中斷,允許串口接收,啟動T/C1產生波特率(佔用)

備註:振盪晶體為12MHz,PC串口端設置[4800,8,無,1,無]

/**********************************************************************************************/

voidUART_init(void){

EA=1;//允許總中斷(如不使用中斷,可用//屏蔽)

ES=1;//允許UART串口的中斷

TMOD=0x20;//定時器T/C1工作方式2

SCON=0x50;//串口工作方式1,允許串口接收(SCON=0x40時禁止串口接收)

TH1=0xF3;//定時器初值高8位設置

TL1=0xF3;//定時器初值低8位設置

PCON=0x80;//波特率倍頻(屏蔽本句波特率為2400)

TR1=1;//定時器啟動

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:UART串口接收中斷處理函數

調用:[SBUF收到數據後中斷處理]

參數:無

返回值:無

結果:UART串口接收到數據時產生中斷,用戶對數據進行處理(並發送回去)

備註:過長的處理程序會影響後面數據的接收

/**********************************************************************************************/

voidUART_R(void)interrupt4using1{//切換寄存器組到1

RI=0;//令接收中斷標志位為0(軟體清零)

UART_RX=SBUF;//將接收到的數據送入變數UART_data

RX_flag=1;//標記接收

//用戶函數內容(用戶可使用UART_data做數據處理)

//SBUF=UART_data;//將接收的數據發送回去(刪除//即生效)

//while(TI==0);//檢查發送中斷標志位

//TI=0;//令發送中斷標志位為0(軟體清零)

}

/**********************************************************************************************/

/*********************************************************************************************

函數名:UART串口發送函數

調用:UART_T(?);

參數:需要UART串口發送的數據(8位/1位元組)

返回值:無

結果:將參數中的數據發送給UART串口,確認發送完成後退出,採用非中斷方式

備註:

/**********************************************************************************************/

voidUART_T(unsignedcharUART_data){//定義串口發送數據變數

ES=0;//禁止穿行中斷

SBUF=UART_data;//將接收的數據發送回去

while(TI==0);//檢查發送中斷標志位

TI=0;//令發送中斷標志位為0(軟體清零)

ES=1;//打開穿行中斷

}

/*********************************************************************************************

函數名:UART串口發送字元串函數

調用:UART_S(?);

參數:需要UART串口發送的數據(8位/1位元組)

返回值:無

結果:將參數中的數據發送給UART串口,確認發送完成後退出,採用非中斷方式

備註:

/**********************************************************************************************/

voidUART_S(unsignedchar*str)

{

while(1)

{

if(*str=='')break;

UART_T(*str++);

}

}

/*********************************************************************************************

函數名:主函數

調用:main();

參數:

返回值:無

結果:

備註:

/**********************************************************************************************/

voidmain()

{

unsignedcharBuf_data[]={"welcometoMCUworld. "};

UART_init();

UART_S(Buf_data);

while(1){

if(RX_flag==1)

{

UART_T(UART_RX);

RX_flag=0;

}

}

}

祝願樓主馬到功成

閱讀全文

與51串口電路相關的資料

熱點內容
維修費屬於服務業嗎 瀏覽:729
紅磚鋪地怎麼做防水 瀏覽:562
哈爾濱會展中心傢具展 瀏覽:40
fendi保修 瀏覽:756
大件傢具怎麼裝修 瀏覽:472
防水雨毛氈多少錢一平方 瀏覽:648
黃色地板搭配什麼顏色傢具 瀏覽:998
菏澤維修電工電話 瀏覽:150
淘寶買的電器為什麼只能維修師傅拆 瀏覽:549
京東意外保修無理由 瀏覽:844
防水防油罩衣多少錢 瀏覽:792
房屋維修工程分為哪些 瀏覽:596
阿爾法小蛋維修電話 瀏覽:82
電器維修技巧ppt 瀏覽:290
宜昌平安碎屏險維修點 瀏覽:989
維修點爆炸 瀏覽:346
武漢小米之家維修電話是多少 瀏覽:254
上海apple售後維修點 瀏覽:677
汽車維修標書哪個牌子好 瀏覽:718
怎麼維修起動熄火 瀏覽:453