找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

標(biāo)準(zhǔn)單片機(jī)串口通信程序

[復(fù)制鏈接]
ID:72705 發(fā)表于 2015-1-24 16:11 | 顯示全部樓層 |閱讀模式
#include <reg51.h>
#include <string.h>
#include <stdio.h>
#define STR_LEN 4
bit      sendFlag;
unsigned char checksum;
unsigned char count3;
unsigned char inBUF[STR_LEN];
/**   Initlize IE TCON SCON function **/
void initCOM(void)
{
     SCON = 0x50;        //SCON: serail mode 1, 8-bit UART, enable ucvr
     TMOD = 0x20;        //TMOD: timer 1, mode 2, 8-bit reload
     PCON = 0x80;        //SMOD=1;
     TH1   = 0xF4;        //Baud:4800   fosc=11.0592MHz
     IE    = 0x90;        //interrupt enable
     TR1   = 1;           //Run
}
/**   Send a char to MC               **/
void sendChar(unsigned char ch)
{
     SBUF = ch;
     while(TI == 0);
     TI = 0;
}
/**   Send a String to MC             **/
void sendString(unsigned char *str, char length)
{
     char strlen = 0;
     while(strlen < length)
     {
         sendChar( *(str+strlen) );
         strlen ++;
     }
}
/**   COM receive message interrupt function**/
void inteReceive (void) interrupt 4 using 1
{
     if(RI == 1)
     {
unsigned char chr;
             RI = 0;
             chr=SBUF;
             if(chr>127)
             {
                 count3=0;
                 inBUF[count3]=chr;
                 checksum= chr-128;
             }
             else
             {     count3++;
                  inBUF[count3]=chr;
                  checksum    ^= chr;
                  if( (count3 == (STR_LEN-1) ) && ( !checksum ) )
                  {
                      sendFlag = 1;
                  }
             }
}
}
int main(void)
{
     initCOM();
     if (sendFlag == 1)    //sendFlag want to send message to MC
     {
         sendString(inBUF,STR_LEN);
         sendFlag = 0;
     }
}


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:72859 發(fā)表于 2015-1-27 11:03 | 顯示全部樓層
哈哈哈
回復(fù)

使用道具 舉報(bào)

ID:79287 發(fā)表于 2015-5-8 12:13 | 顯示全部樓層
有用哦
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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