今天研究了一下51單片機(jī)的串口通信,使用的單片機(jī)是普中科技開發(fā)板,但實(shí)際上所運(yùn)用到的硬件和其他品牌單片機(jī)都相同,沒有區(qū)別,總結(jié)一下,自己的理解和看法。
通信原理
通信原理大致分為串行和并行兩種方法,各有優(yōu)缺點(diǎn),也不再這里贅述了,使用到的是串行通信的方法,簡(jiǎn)單介紹一下串行通信的原理,上圖
兩個(gè)設(shè)備,一根互傳線,每次傳一組數(shù)據(jù),總長(zhǎng)度不一定8位,由51單片機(jī)內(nèi)部設(shè)定來決定。設(shè)備間通信有許多接口方式,我用的是51上的串行接口,掛圖:
SBUF:是指串行口中的兩個(gè)緩沖寄存器,一個(gè)是發(fā)送寄存器,一個(gè)是接收寄存器,在物理結(jié)構(gòu)上是完全獨(dú)立的,但地址是重疊的。它們都是字節(jié)尋址的寄存器,字節(jié)地址均為99H,
TXD:Transmit(tx) Data; RXD: Receive(rx) Data;
兩個(gè)口通過縮寫記一下,我經(jīng)常記不?。▉G人),所以上面的那一個(gè)SBUF是發(fā)送,下面的是接收寄存器,發(fā)送或者接收的數(shù)據(jù)將暫時(shí)儲(chǔ)存于里面,編程時(shí)直接賦值就行,TH1和TL1是時(shí)鐘的配置系統(tǒng),主要用于控制波特率,及每秒發(fā)送的總位數(shù)。(調(diào)試時(shí)一定要對(duì)應(yīng)自己設(shè)置的波特率)
控制寄存器SCON:內(nèi)部結(jié)構(gòu)下圖,主要用于設(shè)置串口工作方式、接發(fā)送控制,以及狀態(tài)位的控制
SM0和SM1是控制工作方式下圖,控制每組總數(shù)據(jù)(起止位+數(shù)據(jù)位)的位數(shù)。移位則是一個(gè)脈沖一個(gè)一個(gè)脈沖的發(fā)送輸入輸出數(shù)據(jù)。
SM2多機(jī)通信控制位,方式2和3時(shí)。SM2控制RB8是否會(huì)觸發(fā)RI中斷,SM2=1時(shí)R8=1激活中斷(中斷將數(shù)據(jù)讀走),R8=0則不激活;SM2=0則失去控制作用。不論RB是否為0,RI都能激活,方式0時(shí),SM2必須為0;方式1時(shí),SM2=0,接受到停止位,R1中斷就打開。
REN允許串行接受位,REN=1,則打開接受,否則不能接受數(shù)據(jù)。
TB,方式2和3中才用到,是奇偶效驗(yàn)位
RB,在方式2、3中還是做奇偶效驗(yàn)位,在方式1中做數(shù)據(jù)停止位的存放位,用來將RI自動(dòng)置1,啟動(dòng)中斷。
PCON:用于控制波特率是否加倍,及SMOD=1,波特率加倍。復(fù)位時(shí)SMOD=0;
好了,大致通信原理講到這里,下面到使用講解!
程序編寫
步驟:
1、確定TMOD(計(jì)數(shù)器)工作方式
2、配置TH1和TL1初值
3、配置SCON、PCON
4、打開中斷允許位(總中斷、串口中斷),配置中斷(中斷內(nèi)主要是SBUF讀取發(fā)送數(shù)據(jù)),配置TCON打開中斷即TR1置1.
上代碼:作用串口通信輸入值,再返回
include typedef unsigned char u8; void ready(void) { TMOD = 0X20; TH1=0XFF; TL1=0XF9; //波特率9600 SCON=0X50;//0101 0000 PCON=OX80;//1000 0000 EA=1; //打開總中斷 ES=1; //打開串口中斷,相當(dāng)于ET1 ET0 TR1=1;//打開計(jì)數(shù)器,當(dāng)其溢出時(shí)會(huì)給SMOD一個(gè)脈沖,接受和讀取數(shù)據(jù),達(dá)到設(shè)置波特率作用 //當(dāng)接受到停止位時(shí)RI=1觸發(fā)中斷 } void main(void) { ready(); while(1); } void time1(void) interrupt 4 { static u8 result; result=SBUF;//進(jìn)入配置中斷,讀取數(shù)據(jù) RI=0; SBUF=result;//將數(shù)據(jù)輸入到SBUF里面發(fā)送 while(!TI);//等待發(fā)送完畢 TI=0; } 一個(gè)簡(jiǎn)單的串口通信收發(fā)完成了
上一篇:51單片機(jī)學(xué)習(xí)日志-指令系統(tǒng)
下一篇:data,bdata,idata,pdata,xdata,code存儲(chǔ)類型與存儲(chǔ)區(qū)
推薦閱讀最新更新時(shí)間:2025-07-01 08:50







設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- FAN6224同步整流控制器正激續(xù)流整流典型應(yīng)用
- LTC3621EMS8E-2 1.2Vout、同步至 600kHz、強(qiáng)制連續(xù)模式同步降壓型穩(wěn)壓器的典型應(yīng)用
- MC34071ADR2G快速建立逆變器的典型應(yīng)用
- LT3970EMS-3.3 5V 降壓轉(zhuǎn)換器的典型應(yīng)用
- LT1171HVIT、2.5A 高效恒流充電器的典型應(yīng)用
- 具有輕負(fù)載效率的 NCP5252 2.0 A、1.0 MHz 集成同步降壓穩(wěn)壓器的典型應(yīng)用
- DC124,使用 LTC1416 高速 14 位、400Ksps 模數(shù)轉(zhuǎn)換器的演示板
- AD8618ARZ-REEL單電源緩沖DAC輸出運(yùn)算放大器典型應(yīng)用電路
- 使用 MaxLinear, Inc 的 SPX385AS-1.2/TR 的參考設(shè)計(jì)
- 使用 NXP Semiconductors 的 MC34SB0410AE 的參考設(shè)計(jì)
- 60-基于51單片機(jī)簡(jiǎn)易電子琴設(shè)計(jì)
- 中國(guó)科大在機(jī)器學(xué)習(xí)提高超導(dǎo)量子比特讀取效率上取得進(jìn)展
- 美國(guó)大力吸引企業(yè)投資芯片制造
- 11-S3C2440驅(qū)動(dòng)學(xué)習(xí)(五)嵌入式linux-網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)(一)虛擬網(wǎng)卡驅(qū)動(dòng)程序
- 5.LED流水燈
- 科隆股份:擬轉(zhuǎn)讓聚洵半導(dǎo)體51%股權(quán)
- STM32-一文讀懂EXTI外部中斷/事件系統(tǒng)
- MCS-51單片機(jī)的基本知識(shí)
- Nordic 半導(dǎo)體宣布推出nRF54系列,再次奠定低功耗藍(lán)牙領(lǐng)域的領(lǐng)先地位
- 線控技術(shù)是自動(dòng)駕駛落地的必要條件嗎?
- 探索高鎳正極——未來電池技術(shù)的關(guān)鍵
- AEC-Q解讀:車規(guī)級(jí)芯片的“入場(chǎng)券”與技術(shù)門檻
- 出圈or出局?AI汽車“急速駛來”,市場(chǎng)淘汰賽一觸即發(fā)
- 車載以太網(wǎng)技術(shù)及其EAVB和TSN技術(shù)
- 自動(dòng)駕駛中域控制器有何作用?
- 利用與硬件無關(guān)的方法簡(jiǎn)化嵌入式系統(tǒng)設(shè)計(jì):驅(qū)動(dòng)程序?qū)崿F(xiàn)
- 英飛凌將CAPSENSE?集成至PSOC? HV微控制器, 賦能先進(jìn)觸控傳感應(yīng)用等智能傳感器和執(zhí)行器
- 如何部署流媒體服務(wù)實(shí)現(xiàn)監(jiān)控功能--基于米爾TI AM62x開發(fā)板
- Arm 洞察與思考:AI 技術(shù)破解創(chuàng)新與環(huán)境可持續(xù)發(fā)展難題
- 10 Mbps/100 Mbps/1000 Mbps雙通道、低功耗工業(yè)以太網(wǎng)PHY
- 長(zhǎng)電科技發(fā)布XDFOITM多維先進(jìn)封裝技術(shù)
- 大聯(lián)大品佳集團(tuán)推出三軸智能人臉跟拍云臺(tái)方案
- 嶄星?照明控制系統(tǒng)正式發(fā)布 歐司朗打造一體化智能光環(huán)境
- 小鵬汽車離真正的無人駕駛又進(jìn)了一步
- 是德科技與韓國(guó)電信簽署關(guān)于 5G 新空口技術(shù)合作諒解備忘錄
- 國(guó)際測(cè)試測(cè)量大佬為什么選擇世強(qiáng)共同創(chuàng)辦開放實(shí)驗(yàn)室
- 國(guó)內(nèi)首條年產(chǎn)1000噸黑色光阻示范生產(chǎn)線建成
- “數(shù)字福建”招徠AI“獨(dú)角獸”
- 集成電路產(chǎn)業(yè)鏈大會(huì)暨配套項(xiàng)目簽約儀式在成都舉行
- IGBT連接銅牌怎樣減小電感?
- 新手求助:EVC3.0編譯出錯(cuò)拉!
- vxWorks信號(hào)的使用問題求助
- 異步串行收發(fā)器設(shè)計(jì)報(bào)告.docx
- 中國(guó)想要發(fā)展高清監(jiān)控面臨著多少挑戰(zhàn)?
- 【求助】tshell任務(wù)掛起
- 收藏 不顯示刪除回復(fù)顯示所有回復(fù)顯示星級(jí)回復(fù)顯示得分回復(fù) 發(fā)一個(gè)外包項(xiàng)目貼!請(qǐng)有實(shí)力有精力的工程師速與我聯(lián)系!!斑竹請(qǐng)鼠標(biāo)下留帖!先謝謝啦
- 視頻傳送的問題
- 為何外設(shè)引腳配置為功能后,引腳有電壓輸出!
- 空調(diào)溫度精確控制電路圖