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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

C51單片機串口通信

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月13日   【字體:

1、在使用串口之前,應對其進行初始化,步驟如下:
(1)定時器1工作模式,設置TMOD寄存器
(2)裝載TH1,TL1,決定波特率的值
(3)啟動定時器1
(4)串口工作模式設置,SCON
(5)如需中斷,開總中斷,開串行中斷

 

2、如需奇偶校驗:
偶校驗:就是發送的8個數據位的1的個數為偶數時,TB8=0;為奇數時,TB8=1;
奇校驗:與偶校驗相反的TB8。

用軟件產生奇偶校驗位是根據51系列單片機的狀態寄存器PSW的定義:當累加器ACC中為1的個數為奇數時,P=1,否則P=0。

 

3、程序(采用偶校驗)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar rcvd_num;
bit chk_error;
bit rcvd_ok;
void init(void);
void main(void)
{
    init();
    while(1)
    {
        if(rcvd_ok)
        {
            rcvd_ok=0;
            ES=0;
            if(chk_error)
            {
                ACC='e';
                TB8=P;
                SBUF='e';
                while(!TI);
                TI=0;               
            }
            else
            {
                P0=rcvd_num;
                ACC='c';
                TB8=P;
                SBUF='c';
                while(!TI);
                TI=0;
            }
            ES=1;
        }
     
}
void init(void)
{
    TMOD=0x20;  //定時器1工作模式2
    TH1=0xfd; //初值裝載,波特率9600
    TL1=0xfd;
    SCON=0x50;  //串口工作模式3
    EA=1;       //開總中斷
    ES=1;       //開串行中斷
    TR1=1;      //啟動定時器1
}
void serial() interrupt 4
{
    rcvd_num=SBUF;
    ACC=rcvd_num;       //將數據送入累加器中算出1奇偶個數,奇數時P為1,偶數時P為0;
    if(RB8==P)chk_error=0; //1奇偶個數與發送的相同,則數據無錯
    else chk_error=1;
    RI=0;
    rcvd_ok=1;      //接收完成標志位 
}

 

關閉窗口

相關文章

主站蜘蛛池模板: 日本粉嫩一区二区三区视频 | 手机av网 | 欧美日韩成人一区二区 | 91色在线 | 日韩欧美亚洲 | 中国一级特黄真人毛片 | 久久久久久精 | 国产成人亚洲精品自产在线 | 久久久久久免费精品一区二区三区 | 国产欧美日韩在线播放 | 日韩中文字幕久久 | 日韩一区和二区 | 欧美一区二区大片 | 天天爽夜夜爽精品视频婷婷 | 成人国产精品入口免费视频 | 午夜精品一区二区三区在线视频 | 一道本不卡| 激情久久网 | 欧美日本韩国一区二区 | 国产精品theporn | 先锋资源站 | 激情av| 国产午夜久久 | 日韩欧美国产不卡 | 美女久久视频 | 国产小视频在线观看 | 亚洲综合色网 | 精品国产一区二区三区性色av | 做a的各种视频 | 日韩精品成人免费观看视频 | 国产精品日韩欧美一区二区 | 黄视频在线网站 | 成年精品 | 免费网站在线 | 精品自拍视频在线观看 | 超碰高清| 欧美日韩国产精品一区二区 | 国产亚洲精品久久久久动 | 性做久久久久久免费观看欧美 | 少妇一级淫片免费放播放 | 日本在线免费看最新的电影 |