找回密码
 立即注册

QQ登录

只需一步,快速开始

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

新人,不太懂51串口通信怎么应用啊,有一些基础的实例吗

[复制链接]
跳转到指定楼层
楼主
新人,不太懂51串口通信怎么应用啊,有一些基础的实例吗
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:146949 发表于 2017-3-11 16:15 | 只看该作者
这个是我以前在网上找的,你研究一下会有帮助
#include <STC15F2K60S2.H>
#include <stdio.H>
#include<string.h>
void main()
{
        char c, s[20], *p;  
        int a=1234, *i;  
        float f=3.141592653589;  
        double x=0.12345678987654321;  
        p="How do you do";  
        strcpy(s, "Hello, Comrade");  
        *i=12;  
        c='\x41';
        SCON =0x52;            //没置串行工作方式
        AUXR &=0xFE;           //定时器1做波特率发生器
        TMOD =0x20;            //T1设为工作方式2,12T 方式
        TH1=TH1=0xF3;PCON=0x80;//设置波特率=4800 晶振12MHz
        TR1=1;                 //启动T1定时器

           printf("a=%d\n", a);     /*结果输出十进制整数a=1234*/  
     printf("a=%6d\n", a);    /*结果输出6位十进制数a=  1234*/  
     printf("a=%06d\n", a);   /*结果输出6位十进制数a=001234*/  
     printf("a=%2d\n", a);    /*a超过2位, 按实际值输出a=1234*/  
     printf("*i=%4d\n", *i);  /*输出4位十进制整数*i=  12*/  
     printf("*i=%-4d\n", *i); /*输出左对齐4位十进制整数*i=12*/  
     printf("i=%p\n", i);     /*输出地址i=06E4*/  
     printf("f=%f\n", f);     /*输出浮点数f=3.141593*/  
     printf("f=6.4f\n", f);   /*输出6位其中小数点后4位的浮点数f=3.1416*/  
     printf("x=%lf\n", x);    /*输出长浮点数x=0.123457*/  
     printf("x=%18.16lf\n", x);/*输出18位其中小数点后16位的长浮点数x=0.1234567898765432*/  
     printf("c=%c\n", c);     /*输出字符c=A*/  
     printf("c=%x\n", c);     /*输出字符的ASCII码值c=41*/  
     printf("s[]=%s\n", s);   /*输出数组字符串s[]=Hello, Comrade*/  
     printf("s[]=%6.9s\n", s);/*输出最多9个字符的字符串s[]=Hello,Co*/  
     printf("s=%p\n", s);     /*输出数组字符串首字符地址s=FFBE*/  
     printf("*p=%s\n", p);    /* 输出指针字符串p=How do you do*/  
     printf("p=%p\n", p);     /*输出指针的值p=0194*/
        while(1);
}
回复

使用道具 举报

板凳
ID:151348 发表于 2017-3-12 09:48 | 只看该作者
我也给个例子给你(取自JH《单片机C语言程序设计实训100例——基于8051+Proteus仿真》案例压缩包)

45 甲机通过串口控制乙机LED闪烁.zip

45.18 KB, 下载次数: 64

回复

使用道具 举报

地板
ID:170039 发表于 2017-3-12 11:53 | 只看该作者
可以参考下http://www.360doc.com/content/12/0718/09/638363_224866651.shtml,写得很清楚了,主要是下载个串口调试助手或者直接用STC-ISP烧写软件里面的串口助手
回复

使用道具 举报

5#
ID:111634 发表于 2017-3-12 19:51 | 只看该作者
本帖最后由 zl2168 于 2017-3-12 19:59 编辑

4.7  双机通信

实例46  双机串行通信方式1

实例47  双机串行通信方式2 实例77 双机通信方式1.rar (40.4 KB, 下载次数: 30)

实例48  双机串行通信方式3

实例49 RS 232接口的双机通信

实例50 PC机虚拟串行通信
Proteus仿真一下,确认有效。

实例78 双机通信方式2.rar (46.57 KB, 下载次数: 18)
实例79 双机通信方式3.rar (45.3 KB, 下载次数: 11)
实例80 带RS232接口的双机通信.rar (45.52 KB, 下载次数: 12)
实验16 与PC机虚拟串行通信.rar (151.41 KB, 下载次数: 26)


以上摘自张志良编著

《80C51单片机仿真设计实例教程——基于Keil C和Proteus》清华大学出版社ISBN 978-7-302-41682-1,内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。




回复

使用道具 举报

6#
ID:168475 发表于 2017-3-12 20:04 | 只看该作者
我可以给你发个程序,留下联系方式
回复

使用道具 举报

7#
ID:123289 发表于 2017-3-13 12:58 | 只看该作者
还是你的基础不够,先检讨一下,你对串行通讯的原理了解吗?如不了解,则先补之。
回复

使用道具 举报

8#
ID:170310 发表于 2017-3-13 14:02 | 只看该作者
可以上网查一查RS232串口通信实例
回复

使用道具 举报

9#
ID:170188 发表于 2017-3-13 15:24 来自手机 | 只看该作者
51单片机的串口其实就是一个标准的TTL电平串口,前提是透明的通讯协议,你用STC官方的ISP下载软件就有串口调试功能,其实理解简单点就是个发射和接受字符的一种方式,至于多机通讯最好使用TTL转485
回复

使用道具 举报

10#
ID:92673 发表于 2017-3-13 18:51 | 只看该作者
我也在学
回复

使用道具 举报

11#
ID:111634 发表于 2017-3-13 21:39 | 只看该作者
yzwzfyz 发表于 2017-3-13 12:58
还是你的基础不够,先检讨一下,你对串行通讯的原理了解吗?如不了解,则先补之。

很赞同!现在有许多初学者,不扎实打基础,就想登高,事倍功半,甚至半途而废啊!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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