国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【51單片機(jī)】串口通信&&使用串口通信控制LED燈

這篇具有很好參考價(jià)值的文章主要介紹了【51單片機(jī)】串口通信&&使用串口通信控制LED燈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

??專欄【51單片機(jī)】

??喜歡的詩(shī)句:更喜岷山千里雪 三軍過(guò)后盡開顏。

??音樂分享【Promise】

??大一同學(xué)小吉,歡迎并且感謝大家指出我的問題??

目錄

??串口通信

??代碼?

???串口初始化

?分析?

??????確定T1的工作方式

??TMOD=0X20;?

??????確定T1的初值

??TH1=0XF3;??TL1=0XF3;

??????波特率加倍(操作SMOD)

??PCON=0X80;

??????啟動(dòng)T1?

??TR1=1

??????確定串行口控制(編程SCON寄存器)

??SCON=0x50

??????打開中斷?

??ES=1;? EA=1?

??中斷分析

??串口通信控制LED燈

??效果

??代碼


?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-582537.html

??串口通信

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

??代碼?

#include "reg52.h"			 //此文件中定義了單片機(jī)的一些特殊功能寄存器

typedef unsigned int u16;	  //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;


void UsartInit()
{
	SCON=0X50;			//設(shè)置為工作方式1      
	TMOD=0X20;			//設(shè)置計(jì)數(shù)器工作方式2
	PCON=0X80;			//波特率加倍
	TH1=0XF3;				//計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
	TL1=0XF3;
	ES=1;						//打開接收中斷
	EA=1;						//打開總中斷
	TR1=1;					//打開計(jì)數(shù)器
}

void main()
{	
	UsartInit();  //	串口初始化
	while(1);		
}

void Usart() interrupt 4
{
	u8 receiveData;

	receiveData=SBUF;    //出去接收到的數(shù)據(jù)
	RI = 0;            //清除接收中斷標(biāo)志位
	SBUF=receiveData;    //將接收到的數(shù)據(jù)放入到發(fā)送寄存器
	while(!TI);			 //等待發(fā)送數(shù)據(jù)完成
	TI=0;						 //清除發(fā)送完成標(biāo)志位
}

???串口初始化

void UsartInit()
{
?? ?SCON=0X50;?? ??? ??? ?//設(shè)置為工作方式1 ? ? ?看視頻P62 ?4:30
?? ?TMOD=0X20;?? ??? ??? ?//設(shè)置計(jì)數(shù)器工作方式2
?? ?PCON=0X80;?? ??? ??? ?//波特率加倍
?? ?TH1=0XF3;?? ??? ??? ??? ?//計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
?? ?TL1=0XF3;
?? ?ES=1;?? ??? ??? ??? ??? ??? ?//打開接收中斷
?? ?EA=1;?? ??? ??? ??? ??? ??? ?//打開總中斷
?? ?TR1=1;?? ??? ??? ??? ??? ?//打開計(jì)數(shù)器
}

?分析?

??????確定T1的工作方式

??TMOD=0X20;?


為什么是20

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

?用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

?M1 M0 這兩位控制的是工作方式,是方式2,M1 M0 是10

對(duì)應(yīng)到前面就是0010,那么高四位對(duì)應(yīng)的就是2


??????確定T1的初值

??TH1=0XF3;??TL1=0XF3;

根據(jù)下面的軟件,設(shè)置?TH1 TL1

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

?通過(guò)上圖,可以讀出是F3H

那么?TH1=0XF3;??TL1=0XF3;


??????波特率加倍(操作SMOD)

??PCON=0X80;

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

?通過(guò)上圖,發(fā)現(xiàn)SMOD是在PCON這個(gè)寄存器里面,

由于SMOD在最高位,二進(jìn)制中最高位一般表示符號(hào)位,所以SMOD不能進(jìn)行位操作

所以要對(duì)這整個(gè)寄存器進(jìn)行操作,

由于SMOD=0,波特率不加倍,否則加倍

所以設(shè)置PCON=0X80;就是1000 0000 相當(dāng)于對(duì)SMOD進(jìn)行操作


??????啟動(dòng)T1?

??TR1=1

就是編程TCON的TR1位,打開計(jì)數(shù)器


??????確定串行口控制(編程SCON寄存器)

??SCON=0x50

為什么是5

我們選擇方式1,那么波特率就是可變的,

由圖可知,方式1的SM0=0 SM1=1

SM2我們?cè)O(shè)置為0

REN,是允許串行接收位,我們?cè)O(shè)置為1

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)??

由下圖可知,后四位都是0

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

???所以高四位是5,所以是0x50?


??????打開中斷?

??ES=1;? EA=1?

ES=1;?? ??? ???串口中斷
EA=1; ????????打開總中斷


??中斷分析

void Usart() interrupt 4
{
?? ?u8 receiveData;

?? ?receiveData=SBUF; ? ?//出去接收到的數(shù)據(jù)
?? ?RI = 0; ? ? ? ? ? ?//清除接收中斷標(biāo)志位
?? ?SBUF=receiveData; ? ?//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
?? ?while(!TI);?? ??? ??? ? //等待發(fā)送數(shù)據(jù)完成
?? ?TI=0;?? ??? ??? ??? ??? ??? ? //清除發(fā)送完成標(biāo)志位
}

使用SBUF寄存器來(lái)存儲(chǔ)數(shù)據(jù)

為什么要RI=0 TI=0

用串口通信控制led燈,51單片機(jī),c語(yǔ)言,開發(fā)語(yǔ)言,單片機(jī),51單片機(jī)?

?清零后,等待下一次的接收

發(fā)射完成后,TI為1,那么 !TI為0,就會(huì)跳出while循環(huán)

假設(shè)發(fā)射沒有完成,那么TI為0,就不會(huì)跳出while循環(huán)

??串口通信控制LED燈

??效果

串口通信控制LED燈

??代碼

#include "reg52.h"			 //此文件中定義了單片機(jī)的一些特殊功能寄存器

typedef unsigned int u16;	  //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;


void UsartInit()
{
	SCON=0X50;			//設(shè)置為工作方式1      
	TMOD=0X20;			//設(shè)置計(jì)數(shù)器工作方式2
	PCON=0X80;			//波特率加倍
	TH1=0XF3;				//計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
	TL1=0XF3;
	ES=1;						//打開接收中斷
	EA=1;						//打開總中斷
	TR1=1;					//打開計(jì)數(shù)器
}


void main()
{	
	UsartInit();  //	串口初始化
	while(1);		
}

void UART_SendByte(unsigned char Byte)
{
	SBUF = Byte;
	while (!TI);
	TI = 0;
}

void Usart() interrupt 4
{

	if (RI == 1)					//如果接收標(biāo)志位為1,接收到了數(shù)據(jù)
	{
		P2 = ~SBUF;				//讀取數(shù)據(jù),取反后輸出到LED
		UART_SendByte(SBUF);	//將受到的數(shù)據(jù)發(fā)回串口
		RI = 0;					//接收標(biāo)志位清0
	}
	
}

??如果大家有不明白的地方,或者文章有問題,歡迎大家在評(píng)論區(qū)討論,指正???

?

到了這里,關(guān)于【51單片機(jī)】串口通信&&使用串口通信控制LED燈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [物聯(lián)網(wǎng)工程]基于Protues仿真平臺(tái)的C51/2單片機(jī)藍(lán)牙串口通信控制繼電器實(shí)驗(yàn)

    目錄 實(shí)驗(yàn)?zāi)康?實(shí)驗(yàn)內(nèi)容 仿真部分 實(shí)戰(zhàn)部分 環(huán)境搭建 軟件下載 仿真實(shí)驗(yàn)過(guò)程 模擬電路仿真 打開Proteus并創(chuàng)建新項(xiàng)目 繪制仿真電路圖 程序?qū)崿F(xiàn) 程序編寫 程序?qū)?運(yùn)行仿真 真實(shí)設(shè)備實(shí)戰(zhàn) 硬件連接 程序?qū)崿F(xiàn) 程序編寫 程序?qū)?運(yùn)行驗(yàn)證 總結(jié)拓展 掌握AT89C51藍(lán)牙通信的工作原

    2024年03月20日
    瀏覽(37)
  • 51單片機(jī)串口通信的原理及使用方法(附串口收發(fā)數(shù)據(jù)例程代碼)

    51單片機(jī)串口通信的原理及使用方法(附串口收發(fā)數(shù)據(jù)例程代碼)

    溫馨提示:本篇文章詳細(xì)介紹了串口的原理及使用方法,涉及的內(nèi)容較多,但也較為全面,學(xué)者若想充分掌握串口通信的原理和具體使用方法(部分限于51單片機(jī)),請(qǐng)靜下心來(lái)將其讀完,相信一定會(huì)受益匪淺!而且對(duì)32單片機(jī)的串口學(xué)習(xí)也有非常好的輔助! 一.串行通信的原

    2024年02月09日
    瀏覽(24)
  • 51單片機(jī)串口通信

    51單片機(jī)串口通信

    串口通信(serial communication)是指外設(shè)和計(jì)算機(jī)間通過(guò)數(shù)據(jù)信號(hào)線、地線等按位進(jìn)行傳輸數(shù)據(jù)的一種通信方式,屬于串行通信方式。 接口標(biāo)準(zhǔn):常用RS-232和RS-485 RS-232C有一種9針的非標(biāo)準(zhǔn)連接器口,簡(jiǎn)稱DB9。串口通信使用的大多都是DB9接口。在串口通信中,通常我們只使用2、

    2024年02月05日
    瀏覽(26)
  • 51單片機(jī)-串口通信

    51單片機(jī)-串口通信

    目錄 1.什么是通信 1.1.通信的概念 1.2.傳送方式 1.3.同步方式 1.4.傳送方向 1.5.校驗(yàn)方式 2.單片機(jī)串口介紹 2.1.硬件電路 2.2.電平標(biāo)準(zhǔn) 2.3.常見接口 2.4.內(nèi)部結(jié)構(gòu) 2.5.相關(guān)寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中斷 3.實(shí)際應(yīng)用 3.1.單片機(jī)向電腦發(fā)送數(shù)據(jù) 3.2.電腦向單片機(jī)發(fā)送

    2024年02月01日
    瀏覽(24)
  • 51單片機(jī)學(xué)習(xí)--串口通信

    51單片機(jī)學(xué)習(xí)--串口通信

    首先需要配置寄存器: 下面這里SCON配0x40和0x50都可以,因?yàn)闀簳r(shí)還不需要接受信息,所以REN置1置0都可 在main中調(diào)用SendByte函數(shù),每按下一次復(fù)位鍵,接收緩沖區(qū)就會(huì)收到一個(gè)11 這就是單向發(fā)送的一個(gè)簡(jiǎn)單實(shí)例,接下來(lái)實(shí)現(xiàn)每隔一秒發(fā)送一個(gè)遞增的數(shù)據(jù),只需要添加一個(gè)全局變

    2024年02月14日
    瀏覽(25)
  • 51單片機(jī)(串口通信、藍(lán)牙)

    51單片機(jī)(串口通信、藍(lán)牙)

    串行接口簡(jiǎn)稱串口,也稱 串行通信接口 或串行通訊接口(通常指COM接口),是采用串行通信方 式的擴(kuò)展接口。串行接口(Serial Interface)是指 數(shù)據(jù)一位一位地順序傳送。 其特點(diǎn)是通信線路簡(jiǎn) 單,只要一對(duì)傳輸線就可以實(shí)現(xiàn) 雙向通信( 可以直接利用電話線作為傳輸線),從

    2024年02月15日
    瀏覽(24)
  • 51單片機(jī) | 串口通信實(shí)驗(yàn)

    51單片機(jī) | 串口通信實(shí)驗(yàn)

    ??這一節(jié)我們就來(lái)學(xué)習(xí) 51 單片機(jī)的串口通信。開發(fā)板上集成了 1 個(gè)串口通信電路,是 USB 轉(zhuǎn)串口模塊,它既可下載程序也可實(shí)現(xiàn)串口通信功能。本節(jié)要實(shí)現(xiàn)的功能是: 51 單片機(jī)通過(guò)串口( UART )實(shí)現(xiàn)與 PC 機(jī)對(duì)話, 51 單片機(jī)的串口收到 PC 機(jī)發(fā)來(lái)的數(shù)據(jù)后原封不動(dòng)的返回給

    2024年02月04日
    瀏覽(27)
  • 51單片機(jī)(八)串口通信

    51單片機(jī)(八)串口通信

    ?? 專欄簡(jiǎn)介:本專欄記錄了從零學(xué)習(xí)單片機(jī)的過(guò)程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級(jí)單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時(shí)才能融會(huì)貫通。 ?? 專欄適用人群 :適用于想要從零基礎(chǔ)開始學(xué)習(xí)入門單片機(jī),且有一定C語(yǔ)言基礎(chǔ)的的童鞋

    2024年02月05日
    瀏覽(28)
  • 51單片機(jī)-按鍵控制led燈

    51單片機(jī)-按鍵控制led燈

    1.開發(fā)環(huán)境介紹 使用C語(yǔ)言,環(huán)境為keil Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用. 什么是單片機(jī) 單片機(jī)(Single-Chip Microcomputer)是一種集成電路芯片,把具

    2024年02月09日
    瀏覽(23)
  • 51單片機(jī)按鍵控制LED亮滅

    51單片機(jī)按鍵控制LED亮滅

    通過(guò)單片機(jī)按鍵控制LED亮滅與傳統(tǒng)電路的物理邏輯不同,在物理邏輯中開關(guān)控制電路的通斷來(lái)控制LED的亮滅,而通過(guò)單片機(jī)完成該項(xiàng)目至于要不斷地讀取按鍵所連接IO口的電平來(lái)判斷對(duì)LED連接的IO口輸出的電平即可。 原理圖如下: ?根據(jù)原理圖,我們可以發(fā)現(xiàn)按鍵按下時(shí)P2.1口

    2023年04月18日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包