娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年07月06日(星期日)

2020年07月06日 | 51單片機IO口模擬串口通訊6

發布者:BlissfulWhisper 來源: eefocus關鍵字:51單片機  IO口  模擬串口通訊 手機看文章 掃描二維碼
隨時隨地手機看文章

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

*模擬接收程序,這個程序的作用從模擬串口接收數據,然后將這些數據發送到實際串口

*在單片機上模擬了一個串口,使用P3.2作為發送和接收端

*以P3.2模擬串口接收端,從模擬串口接收數據發至串口

*本程序來源于《單片機IO口模擬串口程序(發送+接收)》

*硬件環境:11.0592MHz, RXD P3.2

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

#include

#include

#include

 

typedef unsigned char uchar ;

 

//這里用來切換晶振頻率,支持11.0592MHz和18.432MHz

//#define F18_432

#define F11_0592

 

//用來作為模擬串口接收數據的緩存 

uchar tmpbuf2[64]={0};

 

struct 

{

uchar recv :6 ; //tmpbuf2數組下標,用來將模擬串口接收到的數據存放到tmpbuf2中

uchar send :6 ; //tmpbuf2數組下標,用來將tmpbuf2中的數據發送到串口

}tmpbuf2_point={0,0};

 

//模擬串口的接收端設為P3.2

sbit newRXD=P3^2 ;

 

void UartInit()

{

    SCON=0x50 ; // SCON: serail mode 1, 8-bit UART

    TMOD|=0x21 ; // TMOD: timer 1, mode 2, 8-bit reload,自動裝載預置數(自動將TH1送到TL1);T0工作在方式1,十六位定時

    PCON|=0x80 ; // SMOD=1;

    

    #ifdef F11_0592 

TH1=0xE8 ; // Baud:2400  fosc=11.0592MHz 2400bps為從串口接收數據的速率

TL1=0xE8 ; // 計數器初始值,fosc=11.0592MHz 因為TH1一直往TL1送,所以這個初值的意義不大

TH0=0xFF ; // 定時器0初始值,延時208us,目的是令模擬串口的波特率為9600bps fosc=11.0592MHz

TL0=0xA0 ; // 定時器0初始值,延時208us,目的是令模擬串口的波特率為9600bps fosc=11.0592MHz

#endif 

 

    #ifdef F18_432 

TH1=0xD8 ; // Baud:2400  fosc=18.432MHz 2400bps為從串口接收數據的速率

TL1=0xD8 ; // 計數器初始值,fosc=18.432MHz 因為TH1一直往TL1送,所以這個初值的意義不大

TH0=0xFF ; // 定時器0初始值,延時104us,目的是令模擬串口的波特率為9600bps fosc=18.432MHz

TL0=0x60 ; // 定時器0初始值,延時104us,目的是令模擬串口的波特率為9600bps fosc=18.432MHz

#endif 

 

IE|=0x81 ; // 中斷允許總控制位EA=1;使能外部中斷0

TF0=0 ;

IT0=1 ; // 設置外部中斷0為邊沿觸發方式

TR1=1 ; // 啟動TIMER1,用于產生波特率

}

 

void WaitTF0(void)

{

    while(!TF0);

    TF0=0 ;

 

    #ifdef F11_0592 

    TH0=0xFF ; // 定時器重裝初值 模擬串口的波特率為9600bps fosc=11.0592MHz

    TL0=0xA0 ; // 定時器重裝初值 模擬串口的波特率為9600bps fosc=11.0592MHz

    #endif 

 

    #ifdef F18_432 

TH0=0xFF ; // 定時器重裝初值 fosc=18.432MHz

TL0=0x60 ; // 定時器重裝初值 fosc=18.432MHz

    #endif 

}

 

//接收一個字符

uchar RByte()

{

    uchar Output=0 ;

    uchar i=8 ;

    TR0=1 ;    //啟動Timer0

    

    #ifdef F11_0592 

    TH0=0xFF ; // 定時器重裝初值 模擬串口的波特率為9600bps fosc=11.0592MHz

    TL0=0xA0 ; // 定時器重裝初值 模擬串口的波特率為9600bps fosc=11.0592MHz

    #endif 

 

    #ifdef F18_432 

    TH0=0xFF ; // 定時器重裝初值 fosc=18.432MHz

    TL0=0x60 ; // 定時器重裝初值 fosc=18.432MHz

    #endif 

 

    TF0=0 ;

 

    WaitTF0(); //等過起始位

 

    //接收8位數據位

    while(i--)

    {

Output>>=1 ;

if(newRXD)

Output|=0x80 ; //先收低位

WaitTF0(); //位間延?

    }

 

    TR0=0 ; //停止Timer0

    return Output ;

}

 

//向COM1發送一個字符

void SendChar(uchar byteToSend)

{

    SBUF=byteToSend ;

    while(!TI);

    TI=0 ;

}

 

void main()

{

    UartInit();

    while(1)

    {

        if(tmpbuf2_point.recv!=tmpbuf2_point.send)//差值表示模擬串口接收數據緩存中還有多少個字節的數據未被處理(發送至串口)

        {

            SendChar(tmpbuf2[tmpbuf2_point.send++]);

        }

    }

}

 

 

//外部中斷0,說明模擬串口的起始位到來了

void Simulated_Serial_Start()interrupt 0 

{

    EX0=0 ;    //屏蔽外部中斷0

    tmpbuf2[tmpbuf2_point.recv++]=RByte();    //從模擬串口讀取數據,存放到tmpbuf2數組中

    IE0=0 ;    //防止外部中斷響應2次,防止外部中斷函數執行2次

    EX0=1 ;    //打開外部中斷0

}


關鍵字:51單片機  IO口  模擬串口通訊 引用地址:51單片機IO口模擬串口通訊6

上一篇:51單片機的定時器T1的使用1-中斷法
下一篇:51單片機IO口模擬串口通訊5

推薦閱讀

硬件平臺:STM32F10X PWM模塊 + JLink + 示波器軟件平臺:Keil 4 一、基礎知識首先,根據芯片的型號,STM32小容量、中容量產品和STM32F105xx/STM32F107xx的互聯型產品,包含一個高級控制定時器(TIM1)。大容量產品的STM32F103xx包含有二個高級控制定時器(TIM1和TIM8)。一個高級定時器可以輸出七路PWM波,而一個通用定時器則最多只能輸出四路互補PWM波。通...
C-V2X可以預警潛在的危險。歐盟成員國昨天拒絕將Wi-Fi作為未來汽車對汽車通信的標準。21個歐盟國家投票對歐盟委員會的一項計劃表示反對,該計劃將禁止使用5G蜂窩網絡連接,支持使用短程Wi-Fi。這一決定可以說為歐洲的5G支持汽車打開了大門,那么這對汽車行業到底意味著什么呢?這幾年來,汽車行業對于在汽車上聯網是使用Wi-Fi還是5G一直存在著分歧,通用汽...
/**********************************************方法1:延時法硬件:11.0592MHz晶振,STC89C52,RXD P1.0 TXD P1.1波特率:9600描述:T0用于定時,方式1,定時時間50ms,中斷方式,定時時間到,TF1=1,利用模擬串口發送字符0x67**********************************************/#include "reg52.h"#define uchar unsigned char sbit P1_0 = 0x90...
據臺媒聯合報報道,記憶體分銷商透露,三星、SK海力士及美光三大記憶體廠,上季DRAM(動態隨機存取記憶體)庫存已降至十季以來低點,全球DRAM龍頭三星仍主導本季合約價持續漲價,在終端應用備貨需求仍然強勁下,本季DRAM合約價估計漲幅可達百分之七至九。南亞科總經理李培瑛接受專訪時也證實,三大記憶體廠DRAM庫存偏低,且預期南亞科本...

史海拾趣

問答坊 | AI 解惑

基于DM642的視頻編碼Cache優化策略

基于DM642的視頻編碼Cache優化策略…

查看全部問答∨

智能手機上可以使用的3G模組都有哪些?

我們現在需要用ARM的CPU做兩款產品,一個是Netbook,一個是Barcode scanner,都需要加上CDMA2000/EVDO/HSxPA的3G模組,其中Netbook使用Android系統,Barcode scanner使用WM6.5系統,請問大家在開發類似產品的時候使用的都是哪家的3G模組呢? 我有 ...…

查看全部問答∨

Windows Mobile 5.0,Windows Mobile 60設備,如何在我的程序運行過程中禁用上面的Power電源按鈕

Windows Mobile 5.0,Windows Mobile 60設備,如何在我的程序運行過程中禁用上面的Power電源按鈕…

查看全部問答∨

如何上傳圖片?ADS調試C和匯編混合編程 只顯示反匯編內容 怎么按照C逐行調試

就這么多分了   如題問題 不知道怎么上傳圖片 知道告訴一聲…

查看全部問答∨

ST32X103做電機控制好得不得了,服務也天下第一好.

                                 ST32X103做電機控制好得不得了,服務也天下第一好.…

查看全部問答∨

stm32f107phy搭配問題

                                 最近想尋找一款PHY,工業級要求,10-100M的,dp83848或者類似產品,想找一款價格和貨期合適的,不知道大家有什么建 ...…

查看全部問答∨

無線通信模塊在M2M領域的應用(四)

無線通信模塊在M2M領域的應用(四) 傳統農業生產的物質技術手段落后,主要依靠人力、畜力和各種手工工具以及一些簡單機械。在現實中主要存在農業科技含量低,裝備水平低,農業污染和水資源浪費嚴重,農業產出少,農民收入低,農產品品種少等問題。 ...…

查看全部問答∨

F28027用SPI操作SD卡

大家好,最近在做一個比賽,需要使用SD卡來記錄工作狀態下的數據。但是對于文件系統和怎樣對于SD卡進行操作不是很了解,所以和大家商討一下。我先把我的兩個函數放上來,大家幫我看看。 了、我沒有使用FIFO功能,因為我覺得對于SD卡返回的信息的讀 ...…

查看全部問答∨

quartus ii 是不是不能像vc++那樣自動調整代碼格式啊?

我是新手,在用quartus ii 寫代碼的時候,沒有手動加空格,找了半天沒發現有自動調整格式的按鈕或者快捷鍵啥的。 quartus ii 是不是不能像vc++那樣自動調整代碼格式啊?必須得手動加空格縮進?…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 曲阜市| 东丰县| 鹤岗市| 胶州市| 阿勒泰市| 阜新市| 镶黄旗| 东平县| 弥渡县| 榕江县| 句容市| 建阳市| 伊宁市| 凭祥市| 英吉沙县| 三亚市| 古田县| 龙川县| 台安县| 岱山县| 库尔勒市| 泾川县| 吴堡县| 盐城市| 泰安市| 吉木乃县| 美姑县| 灯塔市| 阿拉善右旗| 台北市| 建湖县| 西丰县| 梅河口市| 永济市| 武城县| 磐安县| 遵义市| 塘沽区| 朝阳区| 周至县| 原阳县|