51单片机串口程序C语言版
图1 (该图来自51单片机技术文档)
下面来逐个介绍个寄存器。
SCON寄存器的SM1,SM2主要用来设置串行口的工作方式,具体对应关系见图2,REN:串行口接受使能位,当单片机要接受数据时该位应该置一,TB8:发送数据的第九位。在方式2或者方式3中TB8为发送的第九位数据。该位不是很常用,具体介绍请查看51单片机的技术文档,这里不多做介绍。TI:发送中断标志,由硬件在方式0串行发送第8位结束时置位,或在其它方式串行发送停止位的开始时置位,必须由软件清零。RI:接受中断标志,由硬件由硬件在方式0串行发送第8位结束时置位,或在其它方式串行发送停止位的中间时置位,必须由软件清零。
在这里需要提醒的是,大家在看技术文档是一定要注意那些必须由软件清零的标志位,在写程序时一定要记得清零。
图2(本图来自51单片机技术文档)
SBUF寄存器:(为了方便就直接截图说明了)
PCON寄存器D7位SMOD是串行波特率倍增位,SMOD为一时,串行口在工作方式1,方式2,方式3中波特率加倍,复位时,SMOD=0.
寄存器IPH,IPSADEN,SADDR不是很常用,在这里就不做介绍,我下面的程序中也没有用到,感兴趣的可以自己查阅一下技术文档。
接下来开始调试串口的方法和步骤。
1.STC—ISP下载软件自带串口调试功能。下面是软件界面
2.在串口调试之前还必须知道自己学习板接的是电脑的哪个端口,查看端口的方法如下:
右键单击桌面上的:我的电脑—设备管理器,如果学习板通过下载线连接到了电脑会显示如下界面:
从端口选项中可以看到我连接的是COM3.
3接下来的任务就是不程序下载到单片机中开始调试了(程序我会在下面给出,先把调试步骤介绍完)
程序下载完毕之后单击STC-ISP下载软件中的:串口助手按钮,就会出现如下界面:
然后在点击打开串口按钮,上图中显示的是:关闭串口,是因为我的串口已经打开了,接下来在单字符串发送区,输入要传送的数据,例如传送:77,选择十六进制发送,观察,学习班上LED的亮灭情况,和数据接区的反应。如下图:
需要注意的是必须要将COM(即端口号),比特率,校验位,数据位,停止位,设置正确否则会显示乱码。
可以观察到的现象是:led的第八个和第四个点亮了,原因也很简单,因为发送的数据是77,选择的是十六进制发送,即0111 0111,可以看到第8位和第四位是零,所以LED点亮了。接受单口显示data recieve ok,说明单片机数据接受成功。
最后也是最重要的就是编写程序了:下面是我的调试程序,希望对大家能有帮助。
(因为程序粘贴过来的时候注释会显示乱码,没办法只好使用截图,请大家将就着看一下,还有需要提醒的是程序的第57,58和第29行在截图时重复了请大家仔细对着行标号看就很清楚了)
程序的注释写的很清楚,我在这里就不重复解释了,不懂的请大家仔细看注释。
51单片机串口程序C语言 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)