PC机如何实现与单片机间串行通信
矩阵键盘来输入O~9的数字和a~f的字母。
3 软件设计
本系统的软件设计方面包括上位机程序和单片机程序的设计。上位机程序要实现的功能是在电脑上显示一个操作界面,它可代替串口调试工具。
3.1 上位机程序
上位机程序可以用VB,VC++等语言来编程,但本方案采用比较方便的C#来编程实现,其流程图如图3所示。
2.2 实现电路图
对应于上述框图的电路实物图如图2所示。其左右两个电路分别对应上述框图中的左右两个部分。总体来说,它包括电平转换电路、单片机处理部分、无线收发部分(CCll00收发器)、液晶显示模块和键盘输入模块五个部分。
(1)电平转换电路
PC机的串行口采用的是标准的RS 232接口,单片机的串行口电平是FTL电平,而TTL电平特性与RS 232的电气特性不匹配,因此为了使单片机的串行口能与RS 232接口通信,必须将串行口的输入/输出电平进行转换。通常用MAX232芯片来完成电平转换。
(2)单片机部分
单片机部分包括单片机、复位电路和时钟电路。它将串口送过来的数据传输给CC1100收发器,或者将CCll00收发器传送过来的数据通过串口给PC机。单片机的复位电路和时钟电路是单片机工作所必需的。
(3)无线收发部分
无线收发部分由CC1100收发器组成,它将接收到的数据通过天线发射出去或从天线接收发送过来的数据。
(4)液晶显示模块
此处选用LCDl602液晶模块,其内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码。
(5)键盘输入模块
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4×4=16个按键,比之直接将端口用于键盘多出了一倍。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是比较好的。矩阵式键盘的按键识别方法为行扫描法。此处选用4×4的矩阵键盘来输入O~9的数字和a~f的字母。
3 软件设计
本系统的软件设计方面包括上位机程序和单片机程序的设计。上位机程序要实现的功能是在电脑上显示一个操作界面,它可代替串口调试工具。
3.1 上位机程序
上位机程序可以用VB,VC++等语言来编程,但本方案采用比较方便的C#来编程实现,其流程图如图3所示。
3.2 单片机程序
单片机程序主要包括主程序、单片机发送子程序、单片机接收子程序、液晶显示子程序、键盘输入子程序五部分,均采用C语言进行模块化编程。由于篇幅原因,下面只给出了单片机发送子程序和接收子程序,如图4,图5所示。
4 测试结果
测试时,连接好硬件打开串行口COM1,并设波特率为9 600 b/s。单片机发送字符串“675”给PC机,其液晶显示如图6所示,相应的PC机界面显示如图7所示。PC机发送"69asd"给单片机,液晶屏上即可接收到“69asd",如图8,图9所示。测试结果说明:基于串行口的PC机与单片机之间的双工无线通信是切实可行的,而且无线传输的距离至少可达到100 m。
5 结语
采用CCll00收发器通过串口实现了PC机与单片机之间的双工无线通信。此系统可应用到一些远距离控制或者是危险性比较高的数据采集和控制的场合,用于采集温度、湿度等参数,还可扩展到无线传感器网络领域,实现诸如无线抄表、智能家居等系统。
PC机单片机串行通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)