51单片机c语言编程300例串口通讯

没有更多推荐了,
不良信息举报
举报内容:
(C51学习五)单片机与PC通过串口通信
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!9(串口通信:单片机与电脑)
说明:&&51单片机串口通信,代码功能:单片机和电脑的串口通信,(用串口助手这个软件,让电脑给单片机发信息)(Serial communication of 51 single chip microcomputer)
文件列表:
9(串口通信:单片机与电脑)\STARTUP.A51, 6376 ,
9(串口通信:单片机与电脑)\STARTUP.LST, 14048 ,
9(串口通信:单片机与电脑)\STARTUP.OBJ, 749 ,
9(串口通信:单片机与电脑)\text9, 2728 ,
9(串口通信:单片机与电脑)\text9.c, 1994 ,
9(串口通信:单片机与电脑)\text9.hex, 250 ,
9(串口通信:单片机与电脑)\text9.lnp, 43 ,
9(串口通信:单片机与电脑)\text9.LST, 4053 ,
9(串口通信:单片机与电脑)\text9.M51, 5127 ,
9(串口通信:单片机与电脑)\text9.OBJ, 2340 ,
9(串口通信:单片机与电脑)\text9.plg, 585 ,
9(串口通信:单片机与电脑)\text9.uvopt, 55654 ,
9(串口通信:单片机与电脑)\text9.uvproj, 13398 ,
9(串口通信:单片机与电脑)\text9_uvopt.bak, 55656 ,
9(串口通信:单片机与电脑)\text9_uvproj.bak, 13399 ,
9(串口通信:单片机与电脑), 0 ,
近期下载者:
相关文件:没有更多推荐了,
不良信息举报
举报内容:
【51单片机】(手把手教你)串口通信-基础篇
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!查看: 5510|回复: 0
单片机和PC机串口通讯试验
本帖最后由 51黑黑黑 于
00:46 编辑
 前言:站长在学习这个单片机和PC串口通讯实验共花费了整整3个星期的时间,其间翻了好几本书和上网搜索了不少相关资料,这也是我自学单片机过程中的一个里程碑。串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如可以很直观地把红外遥控器键值的数据码显示在电脑上,可以使编写红外遥控程序时方便不少,起到仿真器的某些功效。
   51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。电子制作实验室网站的提供的带扩展元件的51单片机实验板上已经装配好了全部硬件。
   串口通讯的硬件电路如上图所示,我们可以采用以下方法来判断串口是否存在硬件问题,将MAX232的第9脚接地,测量一下串口的第3脚和第5脚之间是否输出10V左右的直流电压?将MAX232的第9脚接正5V,测量一下串口的第3脚和第5脚之间是否输出-10V左右的直流电压?这样可以判断MAX232是否完好和串口线的排线压接处是否有接触不良。
    为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。
    点击这里可以下载并运行这个串口调试软件,这是一个绿色的软件,无需安装,可以直接在当前位置运行这个软件。软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源,这时只要按下K1一次,在串口调试助手软件的接收区界面中就会增加一个“AF”字符,表示单片机向电脑发送“AF”字符成功。串口实验的源程序如下所示:
;这是一个AT89C51单片机实验开发板向PC机的串口单向发送数据AF的演示程序
;采用MAX232专用芯片作RS232/TTL电平转换.
;通讯波特率为4800KBPS,只要按下一次K1(就是P3.6引脚变成低电平)
;就发送一个16进制的AF字符ORG 0000H 
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为0BPS
MOV TH1,#0F3H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F3H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
;以上完成通讯初始化设置
WRIT:JB P3.6,$;判断K1是否按下,如果没有按下就等待
ACALL DELAY10;延时10毫秒消触点抖动
JB P3.6,WRIT;去除干扰信号
JNB P3.6,$;等待按键松开
MOV A,#0AFH;将16进制的字符AF发送到串口去
MOV SBUF,A;将AF通过串口发送出去
;10毫秒延时子程序
DELAY10:MOV R4,#20
D2:MOV R5,#248
DJNZ R4,D2
   常用的各种波特率设置表
Powered by51单片机与PC机的串行通信到底有多难
> 51单片机与PC机的串行通信到底有多难
51单片机与PC机的串行通信到底有多难
本人从事单片机相关工作多年,刚开始学习串行通信时,没有老师指导,自己看完了好几本单片机教材,又上网查了很多关于单片机与计算机串行通信的文章,足足花了三个月时间才能够较自由的控制单片机的串口,当然包括做一个简单的属于自己的上位机界面,对于我们搞单片机的工程师来说,没有必要会做上位机界面,只要会用VB的Mscomm控件做一个简单的就可以了。学习是很艰苦的,但到底走了多少弯路呢?当然我是走了弯路:第一、我认真的看完了好几本单片机教材的单片机串行口部分,每本都是大几十页,好几本,当然就是好几百页了。看得我头都大了。第二、为了能看到效果,还得做一个上位机界面,如果像专业人士那样做,用VC编程,那是很难的,我首选VB,还是花了我不少的功夫(幸亏我好多年前就学习过用VB做界面,看过不少书,做过不少)。第三、在串口的控制方面也花了不少时间。本文引用地址:现在我有了设计经验,同时也有了学习经验,想告诉我的热心的读者,到底怎么学习做串口通信,才是捷径。我个人认为主要有以下几点:第一、必须会用定时器模式二(重点要了解定时器的TMOD),第二、至于单片机串口的多种工作方式中,只要了解通信协议、波特率设置就行了,其中只要知道SCON的设置就行了,当然这点的内容也很多,我们又只要知道串口的方式一就可以了。第三、至于上位机软件,我们是在搞单片机的软件设计,不是在搞计算机的软件设计,只要用一个串口调试助手看看结果,或是用它从上位机往下位机发送几个数据看能不能控制就行了。完全没有必要去学VB、VC或是Delphi等软件。本人认为,只要抓位了我上面提到的三点,就行了,如果要看下位程序实例,看看本人已经发表的相关的文章就绰绰有余了。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一

我要回帖

更多关于 单片机数码管动态显示 的文章

 

随机推荐