久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4150|回復: 0
打印 上一主題 下一主題
收起左側(cè)

單片機學習筆記(十四)串口實驗

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:108531 發(fā)表于 2016-3-12 16:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
RS232串行通信是常見的通信方式之一,本版采用MAX232電平轉(zhuǎn)換芯片使單片機的串口和計算機的串口相連進行通信。
C語言源程序:
/***************************************************************************
功能:首先LED顯示串口接收的數(shù)據(jù),然后將該數(shù)據(jù)發(fā)送給上位機
***************************************************************************/
#include <reg52.h> //52單片機頭文件包含
#define uint unsigned  int  //定義uint 為 unsigned int 型
#define uchar unsigned char //定義uchar 為 unsigned char 型
sbit wei1=P2^0; //定義wei1 為 P2端口的0號引腳接數(shù)碼管第一位
sbit wei2=P2^1; //定義wei2 為 P2端口的1號引腳接數(shù)碼管第二位
uchar code table[]={0xC0,0xF9,0xA4,0xB0,
                        0x99,0x92,0x82,0xF8,
                        0x80,0x90,0x88,0x83,
                        0xC6,0xA1,0x86,0x8E}; //定義共陽數(shù)碼管碼表
uchar idata buffer[32]; //定義一個32個字節(jié)的緩沖區(qū)
uchar l_datatemp;  //定義l_datatemp用于存儲新接收的數(shù)據(jù)
uchar l_data; //定義l_data用于存儲顯示的數(shù)據(jù)
void init (void); // 初始化函數(shù)聲明
void send_char_com(uchar ch); //串口發(fā)送函數(shù)聲明
void delay(uint z); //延時函數(shù)聲明
void main() //入口函數(shù)
{
    uchar l_data1,l_data2; //定義臨時變量l_data1,l_data2用于處理臨時數(shù)據(jù)
    l_datatemp=0; //將l_datatemp賦值為0
    l_data=0; //將l_data賦值為0
    init(); //串口收發(fā)初始化
    while(1) //主循環(huán)
    {
        if(l_data!=l_datatemp) //如果接收的數(shù)據(jù)與原來顯示的數(shù)據(jù)不同,更新原來顯示的數(shù)據(jù)
        {
            l_data=l_datatemp; //更新原來的數(shù)據(jù)        
            send_char_com(l_data); //向串口發(fā)送更新后的數(shù)據(jù)
        }
          l_data1=l_data&0xf0;//取高四位顯示
          l_data1=l_data1>>4;
           wei1=0;
           P0=table[l_data1];
           delay(5);
           wei1=1;
          l_data2=l_data&0x0f; //取低四位顯示
           wei2=0;
           P0=table[l_data2];
           delay(5);
           wei2=1;
    }
}
void init(void) //串口初始化,波特率2400 方式1 8 UART
{
    TMOD=0x20;
    PCON=0x00;
    SCON=0x50;
    TH1=0xF3;
    TL1=0xF3;
    TR1=1; //啟動定時器/計數(shù)器,還與GATE位狀態(tài)有關(guān)
    ES=1; //允許串行中斷
    EA=1; //總中斷開
}
void send_char_com(uchar ch) //查詢方式向串口發(fā)送一個字符
{
    SBUF=ch;
    while(TI==0);
    TI=0;
}
void receive(void) interrupt 4 using3 //中斷方式從串口接收字符
{
    if(RI)
    {
        if(TI) //處理發(fā)送中斷
        {
            TI=0;
        }
        RI=0;
        l_datatemp=SBUF;
    }
}
void delay(uint z) //延時
{
    uint x,y; //定義x,y用于循環(huán)計數(shù)
    for(x=z;x>0;x--) //主循環(huán)循環(huán)z次
        for(y=110;y>0;y--) //子循環(huán)循環(huán)110次
}
//實驗現(xiàn)象用串口調(diào)試助手軟件向單片機發(fā)送字符09則數(shù)碼管將顯示09

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九色视频网站 | 日韩在线中文字幕 | 蜜桃av一区二区三区 | 欧美久久一区二区三区 | 国产在线一区二区 | 欧美视频二区 | 久久福利 | 中文字幕免费在线 | 91久久爽久久爽爽久久片 | 日韩欧美在线一区二区 | 狠狠操av| 国产成人99久久亚洲综合精品 | 手机在线观看av | 欧美久久久网站 | 欧美一级黄视频 | 中文字幕av一区 | 午夜av电影 | 91精品国产综合久久久久 | 国产精品久久久久久久久久免费看 | 在线观看的av | 亚洲国产精品精华素 | 91精品国产手机 | 先锋av资源在线 | 日韩免费 | 欧美成人a∨高清免费观看 91伊人 | 久久免费精品 | 亚洲欧美在线观看视频 | 在线观看视频一区二区三区 | 自拍第一页| 亚洲成人久久久 | 国产精品久久久久久亚洲调教 | 色综合99 | 久久狠狠 | 91毛片在线观看 | 成人高清在线 | 精品国产91乱码一区二区三区 | 亚洲三级av| 在线观看成人av | 亚洲欧美一区二区三区国产精品 | 亚洲精品久久久久中文字幕欢迎你 | 红色av社区 |