日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]單片機在控制本地的外圍期間時,信息的交互是通過8位并行數(shù)據(jù)總線進行的,但是在較大規(guī)模的現(xiàn)代控制系統(tǒng)中,單片機還需要控制遠端的設備,可以利用單片機的串行通信模塊,在學習了RS-232串口通信的原理和時序后,學習了利用RS-232接口實現(xiàn)串口數(shù)據(jù)傳輸?shù)狞c對點通信。

單片機在控制本地的外圍期間時,信息的交互是通過8位并行數(shù)據(jù)總線進行的,但是在較大規(guī)模的現(xiàn)代控制系統(tǒng)中,單片機還需要控制遠端的設備,可以利用單片機的串行通信模塊,在學習了RS-232串口通信的原理和時序后,學習了利用RS-232接口實現(xiàn)串口數(shù)據(jù)傳輸?shù)狞c對點通信。

主要器件:

1、 AT89C52單片機芯片,用于控制串口通信。

2、 接口電平轉換芯片MAX3232,用于實現(xiàn)TTL電平和RS-232電平的轉換。

試驗流程圖:主機部分

 

從機部分:

 

試驗電路圖:

 

試驗程序代碼:

//PPDataR.h程序

#ifndef _PPDATAR_H // 防止PPDataT.h被重復引用

#define _PPDATAR_H

#include

#include

#define uchar unsigned char

#define uint unsigned int

/* 握手信號宏定義 */

#define CALL 0x24 // 主機呼叫

#define BUSY 0x15 // 從機忙

#define OK 0x00 // 從機準備好

#define SUCC 0x2A // 接收成功

#define ERR 0xF0 // 接收錯誤

#define MAXLEN 64 // 緩沖區(qū)最大長度

uchar buf[MAXLEN];

#endif

//PPDataR.c程序

#include "PPDataR.h"

/* 發(fā)送數(shù)據(jù)函數(shù) */

uchar recvdata(uchar *buf)

{

uchar i,tmp;

uchar len; // 保存數(shù)據(jù)長度

uchar ecc; // 保存校驗字節(jié)

/* 接收數(shù)據(jù)長度字節(jié) */

RI = 0;

while(!RI);

len = SBUF;

RI = 0;

/* 使用len的值為校驗字節(jié)ecc賦初值 */

ecc = len;

/* 接收數(shù)據(jù) */

for (i=0;i

{

while(!RI);

*buf = SBUF;

ecc = ecc^(*buf); // 進行字節(jié)校驗

RI = 0;

buf++;

}

*buf = 0; // 表示數(shù)據(jù)結束

/* 接收校驗字節(jié) */

while(!RI);

tmp = SBUF;

RI = 0;

/* 進行數(shù)據(jù)校驗 */

ecc = tmp^ecc;

if (ecc!=0) // 如果校驗錯誤

{

*(buf-len) = 0; // 清空數(shù)據(jù)緩沖區(qū)

/* 發(fā)送校驗錯誤信號ERR */

TI = 0;

SBUF = ERR;

while(!TI);

TI = 0;

return 0xff; // 返回0xff表示校驗錯誤

}

/* 發(fā)送校驗成功信號SUCC */

TI = 0;

SBUF = SUCC;

while(!TI);

TI = 0;

return 0; // 校驗成功,返回0

}

void init_serial()

{

TMOD = 0x20; // 定時器T1使用工作方式2

TH1 = 250;

TL1 = 250;

TR1 = 1; // 開始計時

PCON = 0x80; // SMOD = 1

SCON = 0x50; // 工作方式1,波特率9600kbit/s,允許接收

}

/* 主程序 */

void main()

{

uchar tmp = 0;

/* 串口初始化 */

init_serial();

EA = 0; // 關閉所有中斷

while(1)

{

/* 如果接收到的數(shù)據(jù)不是CALL,則繼續(xù)等待 */

while (tmp!=CALL)

{

RI = 0;

while(!RI)

tmp = SBUF;

RI = 0;

}

/* 檢測P0口判斷當前是否工作忙,若P0=0xBB,則為忙狀態(tài) */

P0 = 0xff;

tmp = P0;

if(tmp==0xBB) // 如果P0口為0xBB,發(fā)送BUSY信號

{

TI = 0;

SBUF = BUSY;

while(!TI);

TI = 0;

continue;

}

/* 否則發(fā)送OK信號,表示從機可以接收數(shù)據(jù) */

TI = 0;

SBUF = OK;

while(!TI);

TI = 0;

/* 數(shù)據(jù)接收 */

tmp = 0xff;

while(tmp==0xff)

{

tmp = recvdata(buf); // 校驗失敗返回0xff,接收成功返回0

}

}

}

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

8位單片機在嵌入式設計領域已經成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設計與硬件實現(xiàn)的關鍵環(huán)節(jié)。當前主流的單片機燒錄技術已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術體系,分別對應開發(fā)調試、量產燒錄、遠程升級等不同場景。...

關鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內容哦。

關鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關鍵字: 單片機 電磁兼容

以下內容中,小編將對單片機的相關內容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關報道。如果你對本文即將要講解的內容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內容如下。

關鍵字: 單片機 仿真器

單片機將是下述內容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關情況以及信息有所認識和了解,詳細內容如下。

關鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關介紹,詳細內容請看下文。

關鍵字: 單片機 數(shù)字信號 模擬信號
關閉