新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51串口通信程序(帶詳細注釋)

        51串口通信程序(帶詳細注釋)

        作者: 時間:2016-11-29 來源:網絡 收藏
        #include

        #include //后面有一個比較函數
        #define uchar unsigned char
        #define uint unsigned int
        bit UART_Flag=0; //定義串口接收標志位

        本文引用地址:http://www.104case.com/article/201611/323366.htm

        uchar str[50]; //定義一數組
        uchar length=0; //數組長度從0開始
        void init() //初始化uart
        {


        TMOD=0X20; //定時器1定時器方式 工作模式2,可自動重載的8位計數器常把定時/計數器1以模式2作為串行口波特率發生器

        SCON=0X50; //選擇工作模式1使能接收,允許發送,允許接收

        EA=1; //開總中斷

        ES=1; //打開串口中斷
        ET1=0; //打開定時器中斷

        PCON=0X80; //8位自動重載,波特率加倍

        TH1=0XFF; //用22.1184 mhz波特率

        TL1=0XFF;

        TR1=1; //打開中時器


        }
        void UART_Putch(uchar dat) //輸出一個字符
        {
        SBUF=dat; //把數據送給sbuf緩存器中

        while(TI!=1);//發送標志位 TI如果發送了為1,沒發送為0,沒發送等待,到了退出循環

        TI=0; //到了,TI清為0

        }
        void init1() interrupt 4 //uart中斷 ,4為串口中斷
        {

        if(RI==1) //收到數據
        {
        uchar m=SBUF; //m為計算機發送給串口的數據,例,open //總體思想是,計算機通知串口,我要發數據了
        RI=0; //收到清0

        if(m==) //判斷m這位數據有無
        {
        UART_Putch(); //回車
        UART_Putch(); // 換行
        str[length]=

        主站蜘蛛池模板: 禄丰县| 翼城县| 板桥市| 益阳市| 沂源县| 凤冈县| 绩溪县| 乌恰县| 宝应县| 溧水县| 芷江| 长阳| 宁海县| 鄂伦春自治旗| 天全县| 房产| 阳泉市| 大名县| 江川县| 柞水县| 酒泉市| 郸城县| 宁安市| 且末县| 丰城市| 和顺县| 饶平县| 英超| 桑植县| 洪洞县| 英山县| 天祝| 蚌埠市| 九龙县| 新营市| 昌乐县| 龙川县| 巧家县| 麻江县| 拜城县| 法库县|