欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1934|回復(fù): 0
收起左側(cè)

單片機(jī)UART接收中斷接收數(shù)據(jù)再發(fā)送出去

[復(fù)制鏈接]
ID:284161 發(fā)表于 2018-12-21 10:11 | 顯示全部樓層 |閱讀模式
實(shí)驗(yàn)五 UART實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?br /> 1. 了解單片機(jī)的UART的工作原理。
2. 掌握單片機(jī)的UART的應(yīng)用。
二、實(shí)驗(yàn)內(nèi)容

//1. 編寫程序,設(shè)置單片機(jī)UART的波特率為9600,用UART的接收中斷接收數(shù)據(jù),每接收10個數(shù)據(jù),再用UART的發(fā)送出去。
typedef unsigned char u8;
#include <stc15.h>



void UartInit(void);        //9600bps@11.0592MHz

u8 uart=0;
u8 num=0;
u8 rxdbuf[10]={0};
void main()
{
    UartInit();        
    EA=1;
    while(1)
    {

    }
}

void UartInit(void)        //9600bps@11.0592MHz
{
    SCON = 0x50;        //8位數(shù)據(jù),可變波特率
    AUXR |= 0x40;        //定時器1時鐘為Fosc,即1T
    AUXR &= 0xFE;        //串口1選擇定時器1為波特率發(fā)生器
    TMOD &= 0x0F;        //設(shè)定定時器1為16位自動重裝方式
    TL1 = 0xE0;        //設(shè)定定時初值
    TH1 = 0xFE;        //設(shè)定定時初值
    ET1 = 0;        //禁止定時器1中斷
    ES = 1;                     //使能串口中斷
    TR1 = 1;        //啟動定時器1
}

void Uart2() interrupt 4
{
    if(RI==1) //接收中斷
    {
        RI=0;        // 標(biāo)志位清零
    rxdbuf[num]=SBUF;  //將數(shù)據(jù)送到數(shù)據(jù)存儲器
        num++;
         if(num>=10)
        {
            num=0;
            SBUF=rxdbuf[0]; // 傳輸十次回到第一次傳輸?shù)臄?shù)據(jù)
            uart=1;  // 成功接收的標(biāo)志位
            
        }
    }
   
    if(TI==1)  //發(fā)送中斷
    {        
        TI=0;    //標(biāo)志位清零
        if(uart<10)
        {
            SBUF=rxdbuf[uart];//數(shù)據(jù)發(fā)送到 數(shù)據(jù)存儲器
            uart++;
        }
        
    }

}



回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表