找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3665|回复: 2
打印 上一主题 下一主题
收起左侧

标准单片机串口通信程序

[复制链接]
跳转到指定楼层
楼主
ID:72705 发表于 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;
     }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:72859 发表于 2015-1-27 11:03 | 只看该作者
哈哈哈
回复

使用道具 举报

板凳
ID:79287 发表于 2015-5-8 12:13 | 只看该作者
有用哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表