当前位置:文档之家› 基于单片机的计算机之间无线通信的实现

基于单片机的计算机之间无线通信的实现

基于单片机的计算机之间无线通信的实现
基于单片机的计算机之间无线通信的实现

课程设计报告学院:

专业名称:

学生姓名:

指导教师:

时间:

课程设计任务书

题目:基于单片机的计算机之间无线通信的实现

一、设计内容

1.制作实物实现计算机之间的无线通信。

2.设计硬件PCB电路板,并焊接,编写程序,调试以实现指定的功能;编写上位机界面,使得使用简单,可操作性强。

3.要求系统可靠、稳定。

二、进度要求

1.了解设计内容2天

2.方案设计3天

3.系统设计4天

4.结果分析 2天

6.撰写设计报告2天

7.汇报1天

学生指导教师

目录

摘要 ............................................ 错误!未定义书签。

引言 (3)

1.课程设计目的 (3)

2.方案设计 (4)

系统组成及功能概述 (4)

系统硬件设计 (6)

供电部分 (6)

USB转串口模块 (7)

单片机系统 (9)

无线模块 (10)

软件设计 (11)

SPI初始化程序设计 (11)

发送子程序设计 (12)

接收子程序设计 (12)

上位机程序设计 (13)

3.实验结果及分析 (13)

4.结束语 (14)

5.参考文献 (15)

6.致谢 ........................................... 错误!未定义书签。

7.附录 ........................................... 错误!未定义书签。

摘要

本文给出了一种基于STM8系列单片机的无线通信系统的设计与实现方案,介绍了系统的结构组成,介绍了单片机作为核心控制器是如何连接PC机和无线收发器的。单片机通过串口接收PC机发来的信息,通过校验数据接收是否丢包,然后通过SPI与无线模块通信将数据发送出去。接收端接收到信息后再通过串口发给另外的PC机从而实现计算机之间的通信。实验结果表明,该方案运行稳定,对实际的无线通信有参考价值。

关键词:无线通信;STM8;NEF24L01

基于单片机的计算机之间无线通信的实现

引言

无线通信在科学技术发展的今天已经变得越来越重要,并且已渗透到社会的各个角落,有着广阔的市场和业务需要。目前主要的无线技术有:蓝牙(Bluetooth),红外数据传输(IrDA),无线局域网(Wi—Fi)等¨。Bluetooth是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。由于蓝牙采用无线接口来代替有线电缆连接,具有很强的移植性,并且适用于多种场合,加上该技术功耗低、对人体危害小,而且应用简单、容易实现,所以易于推广。但同时其应用成本升高,普及难度增大,且通信速率较慢;IrDA是一种利用红外线进行点对点通信的技术,是第一个实现无线个人局域网(PAN)的技术,但它对于点对多点的通信显得无能为力,且红外技术只能在视线可以达到的范围内定向传输,中间不能有任何阻挡,同时要求通信设备的位置相对固定,这样就无法应用于移动设备;Wi—Fi是以太网的一种无线扩展,主要目的是提供WLAN接人,但由于其硬件实现需要很大的容纳空间,且往往在商用计算机系统中实现,这就限制了其在工业领域,尤其是在某些不依赖通用计算机的特殊工业场合的应用。针对这些问题提出了一种功耗低、成本低且利于在嵌入式系统中实现的通用无线通信系统,它基于无需申请就可使用的 ISM频段,可广泛适用于消费类电子、无线遥控玩具、汽车用自动化、家庭自动化控制及建筑安全装置等领域。

1.课程设计目的

掌握了解单片机硬件的设计方法、单片机编程和SCI、SPI的通信原理。课程设计主要以制作实物为主,设计、制作、焊接和调试PCB电路板,编写单片机程序和上位机程序,最后再综合调试,完成基于单片机的计算机之间无线通信的整个设计。

2.方案设计

、系统组成及功能概述

系统主要包括两个分别具有收发功能的无线通信模块,每个模块均由单片机和无线收发模块组成。系统的原理框图如图1所示,发送时,单片机接收到来自计算机的串口信息,经过校验后,通过SPI总线向RF写入控制命令及所需发送的数据,RF通过天线发送出去;接收时,单片机通过SPI总线读取RF的工作状态,获取芯片相关信息及接收到的数据,再通过串口发送给计算机。两个收发模块之间相互通信,从而实现数据的无线传输。

图1.通信系统结构图

在系统结构中,单片机作为主控制器,需要完成数据的处理和对系统的控制。选用意法半导体公司的8位单片机STM8S103F3P6。STM8S103系列单片机具有高级STM8内核,具有3级流水线的哈佛结构,内核为扩展指令集。具有更低的系统成本,高性能和高可靠性,16MHz CPU时钟频率,完善的文档和多种开发工具选择。其外设丰富,和本文中相关的外设有,带有32个中断的嵌套中断控制器,6个外部中断向量,最多27个外部中断;16位通用定时器,带有3个捕获/ 比较通道(IC、OC 或 PWM);带有8位预分频器的8位基本定时器;带有同步时钟输出的UART;SPI接口最高到8Mbit/s;32脚封装芯片上最多有28个I/O ,包括21个高吸收电流输出非常强健的I/O 设计,对倒灌电流有非强的承受能力等。另外其使用简单,到工作电压,灵活的时钟控制,4个主时钟源,带有时钟监控的时钟安全保障系统,永远打开的低功耗上电和掉电复位等等。其完全能够满足本系统的设计需要。

无线模块用以实现无线通信的功能,通信的可靠性需要满足要求。我们直接使用一种无线收发模块,其使用的是NRF24L01芯片。NRF24L01是一款工作在世界通用ISM频段的单片收发芯片,无线收发器包括:频率发生器增强型SchockBurstTM 模式控制器功率放大器晶体放大器调制器解调器输出功率

频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗,当工作在发射模式下发射功率为6dBm时电流消耗为接受模式为掉电模式和待机模式下电流消耗模式更低。其具有以下优点:1、支持六路通道的数据接收,低工作电压:~

低电压工作;2、高速率:2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率);3、多频点:125频点,满足多点通信和跳频通信需要;4、超小型:内置天线,体积小巧,15x29mm (包括天线);5、低功耗:当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗;6、低应用成本:NRF24L01集成了所有与RF协议相关的高速信号处理部分,比如:自动重发丢失数据包和自动产生应答信号等,NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。

单片机与无线收发模块之间是通过SPI通信实现通信的。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI (数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。其中,CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCLK时钟线存在的原因,由SCLK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过 SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。

、系统硬件设计

本系统硬件部分主要由供电部分,USB转串口,单片机系统,无线模块4部分构成。

供电部分

本模块需要通过USB与计算机连接,并直接由计算机的USB口供电。再通过线性稳压芯片提供电压供单片机工作。原理图如图2。

图2.供电部分原理图

LM1117是一个低压差电压调节器系列。其压差在输出,负载电流为800mA时为。它与国家半导体的工业标准器件LM317有相同的管脚排列。LM1117有可调电压的版本,通过2个外部电阻可实现~输出电压范围。另外还有5个固定电压输出(、、、和5V)的型号。

LM1117提供电流限制和热保护。电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在±1%以内。LM1117系列具有LLP、TO-263、SOT-223、TO-220和TO-252D-PAK封装。输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。

其特性如下:

提供、、、、5V和可调电压的型号;

节省空间的SOT-223和LLP封装;

电流限制和热保护功能;

输出电流可达800mA;

线性调整率:%(Max);

负载调整率:%(Max);

温度范围:0℃~125℃。

本系统通过USB口与计算机通信,但是单片机外设中不支持USB通信,因此需要将usb转换成串口再与单片机通信。选择CH340G可将USB转成TTL电平与单片机直接相连,原理图如图3。

CH340是一个USB总线的转接芯片,实现USB转串口、USB转IrDA红外或者USB转打印口。在串口方式下,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。

图转串口模块原理图

其有如下特点:

●全速USB设备接口,兼容USB,外围元器件只需要晶体和电容。

●仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串

口。

●计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。

●硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。

●支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。

●通过外加电平转换器件,提供RS232、RS485、RS422等接口。

●支持IrDA规范SIR红外线通讯,支持波特率2400bps到115200bps。

●软件兼容CH341,可以直接使用CH341的驱动程序。

●支持5V电源电压和电源电压。

●提供SSOP-20和SOP-16无铅封装,兼容RoHS。

CH340芯片正常工作时需要外部向XI引脚提供12MHz的时钟信号。一般情况下,时钟信号由CH340内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI和XO引脚之间连接一个12MHz的晶体,并且分别为XI和XO引脚对地连接振荡电容。

CH340芯片支持5V电源电压或者电源电压。当使用5V工作电压时,CH340芯片的VCC引脚输入外部5V电源,并且V3引脚应该外接容量为4700pF或者的电源退耦电容。当使用工作电压时,CH340芯片的V3引脚应该与VCC引脚相连接,同时输入外部的电源,并且与CH340芯片相连接的其它电路的工作电压不能超过。

CH340自动支持USB设备挂起以节约功耗,NOS#引脚为低电平时将禁止USB设备挂起。异步串口方式下CH340芯片的引脚包括:数据传输引脚、MODEM联络信号引脚、辅助引脚。数据传输引脚包括:TXD引脚和RXD引脚。串口输入空闲时,RXD 应该为高电平,如果R232引脚为高电平启用辅助RS232功能,那么RXD引脚内部自动插入一个反相器,默认为低电平。串口输出空闲时,CH340T芯片的TXD为高电平,CH340R芯片的TXD为低电平。

使用的是STM8S103F3P6,最小系统原理图如图4。

图4.单片机系统原理图

STM8S是基于8 位框架结构的微控制器,其CPU内核有6 个内部寄存器,通过这些寄存器可高效地进行数据处理。STM8S的指令集支持80条基本语句及20种寻址模式,而且CPU的6 个内部寄存器都拥有可寻址的地址。

串行外设接口(SPI)允许芯片与其他设备以半/ 全双工、同步、串行方式通信。此接口可以被配置成主模式,并为从设备提供通信时钟(SCK) 。接口还能以多主配置方式工作。它可用于多种用途,包括带或不带第三根双向数据线的双线单工同步传输,还可使用CRC校验来进行可靠通信。

SPI主要特征

● 3线全双工同步传输

●带或不带第三根双向数据线的双线单工同步传输

● 8或16位传输帧格式选择

●主或从操作

● 8个主模式频率(最大为fMASTER/2)

●从模式频率 ( 最大为fPCLK/2)

●快速通信:最大SPI速度达到10MHz

●主模式和从模式下均可以由软件或硬件进行NSS管理

●可编程的时钟极性和相位

●可编程的数据顺序,MSB在前或LSB 在前

●可触发中断的专用发送和接收标志

● SPI总线忙状态标志

●可触发中断的主模式出错和溢出标志

直接使用无线收发模块,简单可靠。原理图如图5。

图5.无线模块原理图

nRF24L01是由NORDIC生产的工作在~的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。输出功率频道选择和协议的设置可以通过SPI 接口进行设置。几乎可以连接到各种单片机芯片,并完成无线数据传送工作。其电流消耗极低:当工作在发射模式下发射功率为0dBm 时电流消耗为,接收模式时为,掉电模式和待机模式下电流消耗更低。

其应用领域有:

●无线鼠标键盘游戏机操纵杆

● 无线门禁

● 无线数据通讯

● 安防系统

● 遥控装置

● 遥感勘测

● 智能运动设备

● 工业传感器

● 玩具

、软件设计

系统软件设计首先需完成对各个芯片的初始化设计,接下来其主要工作是数据发送和接收程序。发送数据时单片机直接通过MOSI端口控制射频器件发送数据,而接收时则要扫描单片机的MISO口,判断是否有待接收的数据,下面具体说明单片机如何实现SPI与NRF24L01的初始化程序,及发送、接收子程序的功能与实现。

本无线通信系统几乎所有的数据传输与芯片控制都是通过SPI实现的,SPI 读写程序是软件控制的基础。为了使单片机的SPI控制器正常工作,需要先对其进行初始化设置,这可通过向SPI控制寄存器SPCTL和状态寄存器SPSTAT写入适当的控制字实现。它们是二个8位的寄存器,其中SPCTL的第2位时钟相位CPHA 允许用户设置采样和改变数据的时钟边沿,第3位时钟极性位CPOL允许用户设置时钟极性。SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合。本系统中,STC12C5A60S2为SPI主设备,IA4421为从设备,且要求SPICLK

的极性在空闲时为低电平,用到SPI CPOL=0、CPHA=0的这种时序模式,数据在SCK 的上升沿时移人到IA4421,并且器件会在SS生效之后的第一个上升沿时等待数据;如果时钟的起始状态是高电平,它在开始传输数据之前将下降以产生第一个上升沿。

先要配置无线模块工作在发送状态之下,配置步骤为:

1 )写Tx 节点的地址 TX_ADDR

2 )写Rx 节点的地址(主要是为了使能Auto Ack ) RX_ADDR_P0

3 )使能AUTO ACK EN_AA

4 )使能PIPE 0 EN_RXADDR

5 )配置自动重发次数 SETUP_RETR

6 )选择通信频率 RF_CH

7 )配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP

8 ) 选择通道0 有效数据宽度 Rx_Pw_P0

9 )配置24L01 的基本参数以及切换工作模式 CONFIG 。

配置完成之后,将需要发送的数据写到相应的寄存器中即可完成发送。

先要配置无线模块工作在接收状态之下,配置步骤为:

1 )写Rx 节点的地址 RX_ADDR_P0

2 )使能AUTO ACK EN_AA

3 )使能PIPE 0 EN_RXADDR

4 )选择通信频率 RF_CH

5) 选择通道0 有效数据宽度 Rx_Pw_P0

6 )配置发射参数(低噪放大器增益、发射功率、无线速率) RF_SETUP

7 )配置24L01 的基本参数以及切换工作模式 CONFIG 。

配置完成之后,循环查询相关接收状态的寄存器,当有数据时,读出即可。

上位机使用Qt编写,通过计算机输入需要发送的内容,软件对将发送的数据进行处理,加入包头、长度、校验、发送者等信息,通过串口发送给单片机。同

时若单片机给上位机发送信息之后,上位机先校验数据接收是否正确。若正确,

解析出发送者和具体发送信息,在上位机中显示出来即可。这样,即可完成两个

或多个计算机之间的无线通信。

Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言

3.实验结果及分析

为了仿真实际的应用情形,将本无线通信系统在一个布满桌椅和电子设备,

如电脑、打印机、示波器等的室内环境中进行数据通信实验,以确认所述方案的

实际应用效能。将两台电脑相隔数米,插上烧写完程序的模块,打开上位机,设

置好串口通信的相关协议,输入要发送的内容,点击发送即可在另外一台电脑上

接收到发送者的信息和发送的内容。多次进行试验,改变发送者的信息和发送内容,多次试验,检验系统的稳定性和可靠性。试验截图如图6。

图6.试验截图

4.结束语

本文中给出了设计一个单片机控制的无线数据传输系统,该系统使用了超低功耗的STM8S103F3P6单片机和同样是低功耗的无线收发芯片NRF24L01,它们之问的控制与数据连接则是借助SPI接口来实现。SPI接口具有很高的数据传输速率,且器件操作遵循统一的规范,使系统软硬件具有良好的通用性。以无线方式传输数据在实际应用中由于其方便灵活,可望在嵌入式系统中得到广泛应用。本实现方案无需复杂的协议与价格较为昂贵的协议支持芯片,可作为嵌人式系统无线数据传输的一种低成本、低功耗选送的一帧数据择方案。经过实验验证,本系统能在实际应用环境中可靠运行,且在设计时不局限于特定的嵌入式系统,具有较高的通用性,能方便地移植到其他的系统中去,满足无接触数据传输的要求。

5.参考文献

1.谢平. USB与nRF2401无线通信系统设计[J]. 单片机开发与应用, 2010,

26(4): 88-89

2.黄婷, 施国梁, 黄坤. 单片机无线通信系统的设计与实现[J]. 微处理机,

2010, (1): 27-31

6.致谢

历时两周的时间终于将这篇报告写完,在报告的写作过程中遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢付老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行论文的修改和改进。另外,也非常感谢我的两名队友,有了他们友好的合作,才会有这次顺利完成的课程设计。

感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。

感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的撰写和排版灯过程中提供热情的帮助。

由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!

特此致谢!

6.附录

、单片机程序

文件

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

u8 state = wait_Nrf_Data; //程序状态标志位

int main(void)

{

u8 RxBuf[33];

u16 nCount = 0; //nCount统计接收数据的组数,len接收数据的总长度

/*设置外部晶振24M为主时钟*/

//SystemClock_Init(HSE_Clock);

/*设置内部晶振16M为主时钟*/

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);

LED_Init ();

Uart1_Init();

Tim1_Init();

nRF24L01_Pin_Conf();

__enable_interrupt(); // 开启总中断

nRF24L01_Set_RxMode(); // 接收状态

while(1)

{

if (state == wait_Nrf_Data)

{

if (!(nRF24L01_RevData(RxBuf))) //接收到数据时

{

nCount ++;

check_RevData (RxBuf , nCount);

if (RxBuf[30] == RxBuf[31])

{

nCount = 0;

}

}

}

else if (state == get_Sci_Data)

{

Protocal_Analysis();

}

}

}

文件

#include ""

#include ""

#include ""

#include ""

#include ""

#include ""

enum STATE STATE_NOW = TEST_BEGIN;

extern u8 state;

unsigned int In = 0 , Out = 0; //计数

unsigned char FilePool[400]; //串口接收数据缓冲区unsigned int Instruction_Length = 0; //数据长度

unsigned char check = 0; //校验位

unsigned char Receive_Flag = 0; //接收完成标志位unsigned int my_i = 0; //计数

void Protocal_Analysis()

{

unsigned int i = 0 , j = 0;

unsigned char group = 0; //发送时用到

unsigned char TxBuf[32] = {0};

if (In > Out) //有数据尚未处理

switch (STATE_NOW){

case ALLBEGIN:

STATE_NOW = TEST_BEGIN;

case TEST_BEGIN:

if (FilePool[Out++] == 0x41)

{

STATE_NOW = TEST_LENGTH_L;

TIM1_SetCounter(0);

TIM1_Cmd(ENABLE); //使能TIM1,测试数据间隔 }

else

{

Reset_Analysis();

}

break;

case TEST_LENGTH_L:

Instruction_Length = FilePool[Out++];

STATE_NOW = TEST_LENGTH_H;

break;

case TEST_LENGTH_H:

Instruction_Length = Instruction_Length + (FilePool[Out++] << 8) + 1;

STATE_NOW = TEST_DATA;

my_i = 3; //0x0a,长度*2

break;

case TEST_DATA:

Out++;

if (my_i ++ == Instruction_Length - 1) //数据接收完成

{

for (i = 1; i < Instruction_Length - 1; i++)

check += FilePool[i];

check = ~check;

if (check == FilePool[Instruction_Length - 1])

Receive_Flag = 1; //校验成功

Reset_Analysis();

}

default: break;

}

if (Receive_Flag)

{

nRF24L01_Set_TxMode(); //进入发送模式

Receive_Flag = 0;

GPIO_WriteReverse(GPIOB , (GPIO_Pin_TypeDef)LED1);

if (Instruction_Length%30) //每组发送30个有效字节 group = Instruction_Length/30 + 1;

else group = Instruction_Length/30;

// group += 8;

for(i = 0; i < 30; i++)

{

FilePool[Instruction_Length + i] = 0;

}

for (i = 0; i < group; i++)

{

for (j = 0;j < 30; j++)

TxBuf[j] = FilePool[30*i + j];

TxBuf[30] = i + 1; //这两句用于接收之后的简单校验

TxBuf[31] = group;

nRF24L01_SendData(TxBuf); // 发送数据 while(nRRF24L01_CheckACK()); //检测是否发送完毕

//delay (0xff); //不延时的话会有丢数据的情况

}

nRF24L01_Set_RxMode(); //等待接收数据

}

}

void check_RevData (u8 * RxBuf , u16 nCount)

{

u8 i = 0 ;

for (i = 0; i < 30; i++)

{

FilePool[(RxBuf[30] - 1)*30 + i] = RxBuf[i]; //将接收到的数据存放在FilePool中

}

if (nCount == RxBuf[30])

{

if (RxBuf[31] == RxBuf[30]) //则接受数据正确

{

sendPacket (FilePool); //通过串口发送给上位机

}

}

}

void Reset_Analysis() //重新开始接收数据

{

In = 0;

Out = 0;

check = 0;

STATE_NOW = TEST_BEGIN;

TIM1_Cmd(DISABLE);

state = wait_Nrf_Data;

}

、PCB图

、通信效果演示图

课程设计成绩评定表

C51单片机和电脑串口通信电路图

C51单片机和电脑串口通信电路图与源码 51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 串口通讯的硬件电路如上图所示 在制作电路前我们先来看看要用的MAX232,这里我们不去具体讨论它,只要知道它是TTL和RS232电平相互转换的芯片和基本的引脚接线功能就行了。通常我会用两个小功率晶体管加少量的电路去替换MAX232,可以省一点,效果也不错,下图就是MAX232的基本接线图。

按图7-3加上MAX232就可以了。这大热天的拿烙铁焊焊,还真的是热气迫人来呀:P串口座用DB9的母头,这样就可以用买来的PC串口延长线进行和电脑相连接,也可以直接接到电脑com口上。

为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件。本串口软件在本网站https://www.doczj.com/doc/825732616.html,可以找到 软件界面如上图,我们先要设置一下串口通讯的参数,将波特率调整为4800,勾选十六进制显示。串口选择为COM1,当然将网站提供的51单片机实验板的串口也要和电脑的COM1连接,将烧写有以下程序的单片机插入单片机实验板的万能插座中,并接通51单片机实验板的电源。

单片机35个实例1(汇编)

1.闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此, 我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太 大,所以我们在执行某一指令时,插入延时程序,来达到我们 的要求,但这样的延时程序是如何设计呢?下面具体介绍其原 理: 如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248 =498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002

因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7 =248时,延时10ms,以此为基本的计时单位。如本实验要求 0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如 下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据 发光二极管的单向导电性可知,这时发光二极管L1熄灭;当 P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我 们可以使用SETB P1.0指令使P1.0端口输出高电平,使用 CLR P1.0指令使P1.0端口输出低电平。 5.程序框图

汇编语言实现串口通信(PC和单片机间)教学文案

8.用C语言或汇编语言实现串口通信(PC和单片机间) 上位机和下位机的主从工作方式为工业控制及自动控制系统所采用。由于PC 机分析能力强、处理速度更快及单片机使用灵活方便等特点,所以一般都将PC 机作为上位机,单片机作为下位机,二者通过RS-232或者RS-485接收、发送数据和传送指令。单片机可单独处理数据和控制任务,同时也将数据传送给PC机,由PC机对这些数据进行处理或显示 1 硬件电路的设计 MCS-51单片机有一个全双工的串行通讯口UART,利用其RXD和TXD与外界进行通信,其内部有2个物理上完全独立的接收、发送缓冲器SBUF,可同时发送和接收数据。所以单片机和PC机之间可以方便地进行串口通讯。单片机串口有3条引线:TXD(发送数据),RXD(接收数据)和GND(信号地)。因此在通信距离较短时可采用零MODEM方式,简单三连线结构。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平;为了PC机与MCS-51 机之间能可靠地进行串行通信,需要用电平转换芯片,可以采用MAXIM公司生产的专用芯片MAX232进行转换。电路如图1所示。硬件连接时,可从MAX232中的2路发送器和接收器中任选一路,只要注意发送与接收的引脚对应关系即可。接口电路如图3.5所示。

总体设计按照整体设计思路方案绘制原理图如下所示: 2 系统软件设计 软件设计分上位机软件设计和下位机软件设计。这两部分虽然在不同的机器上编写和运行,但它们要做的工作是对应的:一个发送,另一个接收。为了保证数据通信的可靠性,要制定通信协议,然后各自根据协议分别编制程序。现约定通信协议如下:PC机和单片机都可以发送和接收。上位机和下位机均采用查询方式发送控字符和数据、中断方式接收控制字符和数据。采用RS-232串口异步通信, 1上位PC机与下位单片机异步串行通信的通信协议

51单片机与PC串口通讯

目录 第1章需求分析 ............................................................................................................................ - 1 - 1.1课题名称 (1) 1.2任务 (1) 1.3要求 (1) 1.4设计思想 (1) 1.5课程设计环境 (1) 1.6设备运行环境 (2) 1.7我在本实验中完成的任务 (2) 第2章概要设计 ............................................................................................................................ - 2 - 2.1程序流程图 (2) 2.2设计方法及原理 (3) 第3章详细设计 ............................................................................................................................ - 3 - 3.1电路原理 (3) 3.1.1STC89C52芯片 ............................................................................................................. - 3 -3.2串口通信协议 (4) 3.3程序设计 (5) 3.3.1主程序模块 .................................................................................................................... - 5 - 3.3.2串口通讯模块 ................................................................................................................ - 6 - 3.3.3控制部分文件 ................................................................................................................ - 8 - 3.3.4公共部分模块 .............................................................................................................. - 11 -3.4电路搭建 (12) 3.4.1电路原理图 .................................................................................................................. - 12 -第4章上位机关键代码分析 ...................................................................................................... - 12 - 4.1打开串口操作 (12) 4.2后台线程处理串口程序 (15) 4.3程序运行界面 (18) 第5章课程设计总结与体会 ...................................................................................................... - 19 -第6章致谢 .................................................................................................................................. - 19 -参考文献........................................................................................................................................... - 19 -

基于单片机控制的蓝牙无线通信系统

基于单片机控制的蓝牙数据传输系统的设计 1 引言 蓝牙作为一种支持设备短距离通信的无线电技术,可以在众多设备之间进行无线信息交换。蓝牙技术设计一系列软硬件技术、方法和理论,包括:无线通信与网络技术,软件工程及软件可靠性理论,协议测试技术,规范描述语言,嵌入式实时操作系统,跨平台开发和用户界面图形化技术,软硬件接口技术,高集成芯片技术等[1]。由于蓝牙体积小,功耗低,其应用已经不再局限于计算机外设,几乎可以被集成在任何型号的数字设备中,特别是在那些对传输速率要求不高的小型移动设备和便携设备中应用广泛。随着现代化数字技术的发展,我们的生活中,各种设备与计算机之间的无线数据交换已经非常频繁,特别在工业现场控制和数据采集场合中,单片机与计算机的无线通信尤为突出。本文基于这一问题,提出了一种由单片机控制的蓝牙无线通信系统方案,主要是实现了由单片机控制蓝牙系统,与接入蓝牙网络的其他设备,如:移动电话、PDA、以及其他具有蓝牙功能的无线通信设备进行通信。 2 蓝牙协议栈概述 2.1 蓝牙技术的协议标准和协议规范 蓝牙无线通信的协议标准是由SIG制定的,它规定了蓝牙应用产品应遵循的标准和需要达到的要求。目前颁布的蓝牙规范有1.0、1.1、2.0、2.1等几个版本[2]。 蓝牙技术规范抱愧和信息一和应用框架两个部分。协议规范部分定义了蓝牙的各层同学那些以,应用框架指出了如何采用这些协议实现具体的应用产品。 协议栈由上至下可分为3个部分:传输协议、中介协议和应用协议。传输协议负责蓝牙设备间的相互位置确认,以及建立和管理蓝牙设备间的物理和逻辑链路,包括LMP、L2CAP、HCI;中介协议为高层应用协议或程序在蓝牙逻辑链路上工作提供了支持,为应用层提供了各种标准接口,包括:RFCOMM、SDP、IrDA、PPP、TCP/IP、UDP、TSC和AT指令集等;应用协议是指那些位于蓝牙协议栈之上的应用软甲和其中涉及的协议,包括开发驱动和其他蓝牙应用程序等。 2.2 蓝牙技术的核心协议 蓝牙技术的核心协议分为四个部分,如下: (1)基带协议(Baseband) 基带和链路控制层确保网络内部蓝牙设备单元之间由射频构成的物理连接。 (2)连接管理协议(LMP) 负责蓝牙网络内各设备之间连接的建立。 (3)逻辑链路控制和适配协议(L2CAP) 是一个为高层传输层和应用层协议屏蔽基带协议的适配协议,为高层应用传输提供了更加有效和更有利于实现的数据分组格式。 (4)服务发现协议(SDP) 发现服务在蓝牙技术框架中起到了至关重要的作用,它是所有用户模式的基础,是为实现网络中蓝牙设备之间相互查询及访问提供的服务。在蓝牙系统中,客户只有通过服务发现协议,才能获得设备信息、服务信息以及服务特征,从而在设备单元之间建立不同的SDP 层连接[3]。 2.3 HCI协议 HCI(Host Controller Interface)协议,即主机控制接口协议,属于蓝牙协议栈的

单片机和蓝牙模块无线传输的数据采集系统

单片机和蓝牙模块无线传输的数据采集系统

1.引言 蓝牙技术是近年来发展迅速的短距离无线通信技术,可以用来替代数字设备间短距离的有线电缆连接。利用蓝牙技术构建数据采集无线传输模块,与传统的电线或红外方式传输测控数据相比,在测控领域应用篮牙技术的优点主要有[1][2][3]: 1.采集测控现场数据遇到大量的电磁干扰,而蓝牙系统因采用了跳频扩频技术,故可以有效地提高数据传输的安全性和抗干扰能力。 2.无须铺设线缆,降低了环境改造成本,方便了数据采集人员的工作。 3.可以从各个角度进行测控数据的传输,可以实现多个测控仪器设备间的连网,便于进行集中监测与控制。 2.系统结构原理 本课题以单片机和蓝牙模块ROK 101 008为主,设计了基于蓝牙无线传输的数据采集系统,整个装置由前端数据采集、传送部分以及末端的数据接受部分组成(如PC机)。前端数据采集部分由位于现场的传感器、信号放 大电路、A/D转换器、单片机、存储器、串口通信等构成,传送部分主要利用自带微带天线的蓝牙模块进行数据的无线传输;末端通过蓝牙模块、串口通信传输将数据送到上位PC机进一步处理。整个系统结构框架图如图1所示。 AT89C51单片机作为下位机主机,传感器获得的信号经过放大后送入12位A/D转换器AD574A进行A/D 转换,然后将转换后的数据存储到RAM芯片6264中。下位机可以主动地或者在接收上位机通过蓝牙模块发送的传送数据指令后,将6264中存储的数据按照HCI-RS232传输协议进行数据定义, 通过MAX3232进行电平转换后送至蓝牙模块,由篮牙模块将数据传送到空间,同时上位机的蓝牙模块对此数据进行接收,再通过MAX3232电平转换后传送至PC 机,从而完成蓝牙无线数据的交换。

实验单片机与PC机串口通信

实验单片机与PC机串口通信(C51编程)实验 要求: 1、掌握串行口的控制与状态寄存器SCON 2、掌握特殊功能寄存器PCON 3、掌握串行口的工作方式及其设置 4、掌握串行口的波特率(bondrate)选择 任务: 1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和PROTEUS分别仿真。 需要用到以下软件:KEIL,VSPDXP5(虚拟串口软件),串口调试助手,Proteus。 (1)虚拟串口软件、串口调试助手和KEIL C的联调 首先在KEIL里编译写好的程序。

打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。 左边栏最上面的是电脑自带的物理串口。点右边的addpair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 modecom39600,0,8,1 %分别设置com3的波特率、奇偶校验 位、数据位、停止位 assigncom3sout %把单片机的串口和COM3绑定到一 起。因为所用的单片机是

(以上参数设置注意要和所编程序中设置一致!) 打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。 实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。 2、以下在Proteus和串口调试助手实现的结果: 将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。 点击串口,可以对串口进行设置: 用串口调试助手发送数据,即可看到仿真结果。 实验参考程序源文件在exp2-comm文件夹中。

基于单片机的红外无线控制

中国矿业大学徐海学院 技能考核培训 姓名:陈思彤学号: 22110838 专业:信息11-2班 题目:基于单片机的红外无线控制 专题:音乐播放器 指导教师:有鹏老师翟晓东老师 设计地点:电工电子实验室 时间: 2014 年 4 月

通信系统综合设计训练任务书 学生姓名陈思彤专业年级信息11-2班学号22110838 设计日期:2014年4 月5日至2014 年4 月10 日 设计题目: 基于单片机的红外无线控制 设计专题题目: 音乐播放器 设计主要内容和要求: 1. 主要内容: 单片机内部结构 红外遥控解码 C语言程序设 2. 功能扩展要求 实现音乐播放器的功能 指导教师签字:

摘要:近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。红外线技术也被广泛应用于各个电子领域,先设计一种基于单片机的红外遥控的简易音乐播放器。通信蜂鸣器来发声,来完成音乐播放器的功能。该系统可实现对音乐播放的远距离遥控,且结构简单,速度快,抗干扰能力强。通过本次课程设计,我对单片机中断系统等知识有了进一步的了解,对单片机的相关知识做到理论联系实际。 关键词:单片机,中断系统,红外遥控,音乐播放

目录 1 绪论 (4) 1.1概述 (4) 1.2功能 (4) 2 硬件电路 (5) 2.1总体设计方 (5) 2.2单片机最小系统 (5) 2.3红外遥控收发电路 (5) 2.3.1 红外遥控发射电路 (6) 2.3.2 红外遥控接收电路 (7) 2.4蜂鸣器电路 (7) 2.5 LED指示灯电路 (8) 3软件编程 (9) 3.1 C语言实现系统设计 (9) 3.2乐谱的改编 (10) 参考文献 (11) 附录 (12)

基于单片机Wifi无线通信方案-Demo(参考模板)

基于单片机Wifi无线通信方案第一部分:功能介绍 通过手机发送指令控制LED亮与灭 单片机原理图 第二部分:硬件接法 1.连接实验相关模块连线 如图:

JP10(P0)接J12 J21跳线帽接左边 A→ P22 B→P23 C→P24 J10与J12相连接(即是P0口控制LED) 单片机与ESP8266连接:由于单片机的串口通常配置成9600,而ESP8266初始的波特率为115200,所以先用PC通过PL2303去配置ESP8266模块的波特率为9600

ESP8266图示PL2303图示 PC与ESP8266通过PL2303连接 PL2303绿线-----------ESP8266的URXD脚 PL2303白线-----------ESP8266的UTXD 脚 注意:用PC机上的串口助手测试时,由于ESP8266的电源是3.3V,所以先要把开发板的电源配置成3.3V ,如下图J-PWR,跳线冒连接3.3V。PL2303 的电源(红线)不接!ESP8266引脚的VCC和CH_PD连接开发板JPWR的vcc两个脚,ESP8266的地与PL2306的地连接开发板JPWR的GND两个脚(共地)!!!!!!

在PC上打开软件sscom42.exe,界面如下: 注意:发送新行选择上,波特率默认为115200,8,1,None 串口号选择PL2303的COM口(查看设备管理器) 打开串口即可测试(软件的发送新行要打勾) 第一步:配置波特率 然后在字符串输入框中输入:AT+UART=9600,8,1,0,0 发送给ESP8266 ,若返回OK,表示成功(注意最后一位不要选择流控) 第二步:ESP8266配置AP的SSID和密码 然后在字符串输入框中输入:AT+CWSAP="ESP8266-gigi","1234567890",5,3 注意:操作第二步时,要把串口软件的波特率设置成9600。

单片机程序源代码

第二章 任务一:闪烁广告灯的设计 利用89C51单片机的端口控制两个LED ( DO和D1 ),编写程序,实现两个LED互闪。 #include #define uint unsigned int #define uChar unsigned Char sbit LED仁POP; sbit LED2=P0A1; void delayms(uint ms) { uint i; while(ms--) { for(i=O;i<12O;i++); } } void main() { while(1) { LED1=O; LED2=1; delayms(5OO); LED1=1; LED2=O; delayms(5OO); } } 任务二:流水广告灯的设计 利用89c51单片机的端口控制8个LED( D0~D7 )循环点亮,刚开始时DO点亮,延时片刻后,接着D1 点亮,然后依次点亮D2->D3->D4->D5 ->D6->D7 ,然后再点亮D7->D6->D5->D4 ->D3->D2->D1->DO ,重复循环。 #include #include #define uint unsigned int #define uchar unsigned char uint i; uchar temp; uint a[8]={Oxfe,Oxfd,Oxfb,Oxf7,Oxef,Oxdf,Oxbf,Ox7f}; void delayms(uint ms) { while(ms--) { uint j; for(j=0;j<120;j++); } }

基于单片机Wifi无线通信方案-Demo

基于单片机W i f i无线通信方案第一部分:功能介绍 通过手机发送指令控制LED亮与灭 单片机原理图 第二部分:硬件接法 1.连接实验相关模块连线 如图: JP10(P0)接J12 J21跳线帽接左边 A? P22 B?P23 C?P24 J10与J12相连接(即是P0口控制LED) 单片机与ESP8266连接:由于单片机的串口通常配置成9600,而ESP8266初始的波特率为115200,所以先用PC通过PL2303去配置ESP8266

模块的波特率为9600 ESP8266图示 PL2303图示PC与ESP8266通过PL2303连接 PL2303绿线-----------ESP8266的URXD脚

PL2303白线-----------ESP8266的UTXD 脚 注意:用PC机上的串口助手测试时,由于ESP8266的电源是,所以先要把开发板的电源配置成 ,如下图J-PWR,跳线冒连接。PL2303 的电源(红线)不接!ESP8266引脚的VCC和CH_PD连接开发板JPWR的vcc两个脚,ESP8266的地与PL2306的地连接开发板JPWR的GND两个脚(共地)!!!!!! 在PC上打开软件,界面如下: 注意:发送新行选择上,波特率默认为115200,8,1,None 串口号选择PL2303的COM口(查看设备管理器) 打开串口即可测试(软件的发送新行要打勾) 第一步:配置波特率 然后在字符串输入框中输入:AT+UART=9600,8,1,0,0 发送给ESP8266 ,若返回OK,表示成功(注意最后一位不要选择流控) 第二步:ESP8266配置AP的SSID和密码 然后在字符串输入框中输入:AT+CWSAP="ESP8266-gigi 注意:操作第二步时,要把串口软件的波特率设置成9600。

《单片机应用设计-基于单片机的433M无线通信系统》廖永斌

课程设计 题目基于单片机的433M无线通信系统学院 专业 班级 姓名 指导教师 2018年 1月 13日

《单片机应用设计》任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于单片机的433M无线通信系统 课程设计目的: 1、熟悉单片机应用系统的硬件设计及软件设计的基本方法; 2、将《单片机原理与应用》理论课的理论知识应用于实际的应用系统中; 3、训练单片机应用技术,锻炼实际动手能力 4、提高正确地撰写论文的基本能力。 课程设计内容和要求 1、完成硬件电路的设计,其中包括单片机和CC1101模块的设计; 2、完成无线通信模块的程序设计与实现,上机运行调试程序,记录实验结果(如图表等), 并对实验结果进行分析和总结; 3、课程设计报告书按学校统一规范来撰写,报告主要包括以下内容:目录、摘要、关键 词、基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论献等; 4、查阅不少于6篇参考文献。 初始条件: 1、STC89C52和CC1100H模块; 2、先修课程:单片机原理与应用。 时间安排: 第19周,安排设计任务,完成硬件设计; 第20周,完成软件设计、撰写报告,答辩。 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (Ⅰ) Abstract (Ⅱ) 1基本原理 (1) 1.1无线通信系统 (1) 1.2芯片简介 (1) 1.2.1单片机STC89C52 (1) 1.2.2 无线通信CC1101芯片 (3) 2方案论证与设计 (5) 2.1无线通信模块选择 (5) 2.2 单片机最小系统选择 (5) 2.3整体方案设计 (6) 3 硬件电路设计 (6) 4软件程序设计 (8) 4.1发送端编程 (8) 4.2接收端编程 (9) 4.3程序调试与下载 (10) 5硬件仿真 (12) 6实物制作与调试 (12) 6.1 STC89C52单片机最小系统 (12) 6.2无线通信模块CC1101 (13) 6.3稳压电路模块 (13) 7心得体会 (15) 8参考文献 (16) 附录 (17)

单片机与PC机串口通信实现正文

毕业设计(论文)课题:单片机与PC机串口通信实现 学生: 孙波系部: 通信工程 班级: 通信1301 学号: 2013120325 指导教师: 童华 装订交卷日期: 2016年x月x日 装订顺序: (1)封面(2)毕业设计(论文)成绩评定记录(3)标题、中文摘要及关键词(4)正文(5)附录(6)参考文献

毕业设计(论文)成绩评定记录表 注:1.此表适用于不参加毕业答辩学生的毕业设计(论文)成绩评定; 2.平时成绩占40%、卷面评阅成绩占60%,在上面的评分表中,可分别按40分、60分来量化评分,二项相加所得总分即为总评成绩,总评成绩请转换为优秀、良好、中等、及格、不及格五等级计分。 教务处制

重庆电子工程职业学院 毕业设计(论文)开题报告 系别通信工程专业通信技术班级通信1301 学生姓名孙波学号2013120325 指导教师童华 一、毕业设计的内容和意义: 目前,随着计算机和微电子技术的高速发展,单片机在国民经济的各个领域的智能化控制中得到了非常广泛的应用。单片机已成为信息处理、物联网络、通信设备、工业控制、家用电器等各个领域不可缺少的智能部件。在一些工业控制中,经常需要以单片机作为下位机执行对被控对象的直接控制,以PC机为上位机完成复杂的数据处理,组成主从式控制系统。 为了提高系统管理的先进性,计算机工业自动控制和监测系统越来越多的采用主从式系统。较为常见的形式是由一台做管理用的上位机计算机(主机)和一台直接参与控制检测的下位机单片机(从机)构成的主从式系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是向从机发送各种命令及参数;二是要及时收集、整理和分析从机发回的数据,供进一步的决策。从机被动的接收、执行主机发

基于WIFI模块和单片机的无线数据传输附代码

工业大学 计算机科学与技术学院 Project3课程设计 2014-2015学年第二学期 班级:浦电子1203 组员: 组员学号: 指导老师:武晓光,胡方强,包亚萍 袁建华,毛钱萍 2015年7月8日

目录 第一章阶段任务 第二章基于WIFI模块的无线数据传输的原理 1.1 时钟模块 1.2 最小单片机系统的原理 1.3 温度传感器DS18B20 1.4 串口 1.5 WIFI模块 第三章基于WIFI模块的无线数据传输的实现 2.1 WIFI模块设置 2.2 串口部分设置 2.3 调试与运行过程 第四章程序与框图 第五章小结

第一章阶段任务:

第四阶段:2天(2天)写报告 第二章基于WIFI模块的无线数据传输的原理 1.1时钟DS1302模块: 电路原理图:DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O 串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。 读写时序说明:DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位( 0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图

1.2单片机最小系统的原理: 说明 复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位. 晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作) 单片机:一片AT89S51/52或其他51系列兼容单片机 特别注意:对于31脚(EA/Vpp),当接高电平时,单片机在复位后从部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行. 1.3温度传感器DS18B20的原理(连接到单片机最小系统,并将温度发送给WIFI模块):

单片机与pc串口通信

课程设计报告书课程名称:MCS-51单片机课程设计题目:单片机与PC机之间的通信 姓名:高永强 学号:010700830 学院:电气工程与自动化学院专业:电气工程与自动化 年级:2007级 指导教师:张丽萍

目录 1.引言与系统结构 (2) 2.硬件实现 2.1.AT89C52 (2) 2.2.MAX232芯片 (3) 2.3. 9针串口 (5) 3.虚拟串口调试 (7) 4.Proteus仿真原理图及元件清单 (14) 5.软件设计 (15) 6.主程序代码 (16) 7.心得体会 (18) 8.参考文献 (18)

1.引言与系统结构:利用PC 机配置的异步通信适配器,可以方便的完成 PC 机遇89C52单片机的数据通信。由于89C52单片机输入、输出电平为TTL 电平,而PC 机配置的是RS-232标准串行接口,二者的电器规范不一致,因此采用MXA232单芯片 实现89C52单片机于PC 机的RS-232标准接口通信电路。 如今,在很多场合中,要求单片机不仅能独立完成单机的控制任务,还要能与其他数据控制设备(单片机、PC 机等)进行数据交换。串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到电脑端,而且也能实现电脑对单片机的控制,比如可以很直观地把红外遥控器键值的数据码显示在电脑上,可以使编写红外遥控程序时方便不少,起到仿真器的某些功效。 89C52有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL 电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND.第2脚的RXD.第3脚的TXD 。 图 1 系统结构 2.硬件实现: 2.1 .AT89C52: AT89C52是51系列单片机的一个型号,它是ATMEL 公

如何读懂单片机程序

如何读懂单片机程序 这是一篇关于单片机入门的基础文章!刚刚接触单片机的朋友,简直是无从下手,打开一个程序,更会被复杂的结构和密密麻麻的代码吓倒!多么想找个人耐心的指导一下,是你们内心的强烈意识!好吧,我来满足你! 我对单片机的总结:“单片机其实就是一个芯片,内部有若干寄存器,外部有若干引脚,我们可以通过程序控制内部的寄存器使得引脚与外部世界保持联系!”就这几句话,道出了单片机的真谛!有没有感觉到单片机是多么的简单! 1.单片机程序执行流程 这是我们首先必须要知道的。单片机程序一般就有两种,一种是汇编程序,一种是c语言程序。这里我们讲c语言程序。 单片机程序都有一个包含主函数的文件,包含主函数的文件都有一个统一的结构,如下所示: #include "xxx.h" int main() // 这是主函数的函数名 { ......; // 若干条语句 ......; while(1) // while括号中是1,说明程序进入后将在while里面无线循环,不会出来了,不懂的去看c语言基础之while篇 { ......; // 若干条语句 ......; } } 重点:单片机一上电,从主函数main的第一条语句开始执行,是一条语句接着一条语句从上而下执行,直到进入while后,再从while的第一条语句执行到最后一条语句,由于是死循环,会再从while的第一条语句执行到最后一条语句,如此反复执行,永不停止!直到断电! 这些语句当中,有些是函数的调用,遇到函数的调用,进入到函数,再从函数的第一条语句执行到最后一条语句,然后跳出函数,再从刚才主函数中那条函数的下一条语句开始执行。如果实在搞不明白函数是怎么一回事,你可以用函数里面的所有语句代替函数在主函数中的位置。例如:

基于51单片机的无线通信

湖北民族学院 信息工程学院 课程设计报告书 题目: 基于51单片机的无线通信 课程:数字通信系统课程设计 专业:电子 班级: 0314411 学号: 0 学生姓名:田紫龙 指导教师:黄双林 2017年 06月 18日

摘要 本文设计了一种以AT89S52单片机为控制核心的无线通信控制模块,详细说明了该系统的基本原理、主要电路、硬件框架以及软件框架。整个系统采用模块化设计,主要包括单片机与下位机之间的无线通信控制电路,以及无线通信模块与51单片机之间通信接口电路。该通信控制系统通过51单片机和nrf2401的spi通信,从而通过无线通信控制模块形成与下位机的联系,控制下位机运动控制器,并且将通信接收的数据保存到扩展的存储器内。 本模块的通信方法简便,除了可以进行远程实时控制外,还可广泛的应用于工业监控和数据采集系统。本系统具有性能可靠、抗干扰能力强、功耗低、性价比高等优点,在无线通信领域具有重要的应用价值和良好的发展前景。 关键字:无线通信控制;AT89S52;nRF2401;串行通信 目录 1 绪论.......................................................错误!未定义书签。

2 总体设计...................................................错误!未定义书签。 3 各个模块简介................................................错误!未定义书签。 1.单片机STC89C52和nRF2401的接口电路.....................错误!未定义书签。 无线模块简介.............................................错误!未定义书签。 1602简介................................................错误!未定义书签。 4 各个模块设计................................................错误!未定义书签。硬件电路板的设计..............................................错误!未定义书签。 软件程序设计..............................................错误!未定义书签。 主程序模块............................................错误!未定义书签。 结果与分析..............................................错误!未定义书签。总结 .........................................................错误!未定义书签。参考文献......................................................错误!未定义书签。

基于WIFI模块和单片机的无线数据传输(附代码)..

南京工业大学 计算机科学与技术学院 Project3课程设计 2014-2015学年第二学期 班级:浦电子1203 组员姓名: 组员学号: 指导老师:武晓光,胡方强,包亚萍 袁建华,毛钱萍 2015年7月8日

目录 第一章阶段任务 第二章基于WIFI模块的无线数据传输的原理 1.1 时钟模块 1.2 最小单片机系统的原理 1.3 温度传感器DS18B20 1.4 串口 1.5 WIFI模块 第三章基于WIFI模块的无线数据传输的实现 2.1 WIFI模块设置 2.2 串口部分设置 2.3 调试与运行过程 第四章程序与框图 第五章小结

第一章阶段任务: 第一阶段(1天)1、了解课程所给的WIFI模块,并详细研读其说明书 2、复习单片机知识 (2天)1、了解温湿度传感器模块,并设计其硬件模块 2、了解lcd1602显示模块,并设计其硬件模块 (2天)1、设计整合电路:5v转3.3v电路 2、串口通讯电路 第二阶段(4天)1、链接并完成整体电路图的设计,并检查 2、焊接电路并调试。 第三阶段(3天)1、根据设计的硬件模块设计程序 (1):温湿度传感器模块 (2):串口通讯模块 (3):WIFI传输与接收模块 (4):显示电路模块 (3天)2、将设计好的模块程序烧录到单片机内,调试 第四阶段:2天(2天)写报告

第二章基于WIFI模块的无线数据传输的原理 1.1时钟DS1302模块: 电路原理图:DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O 串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。 读写时序说明:DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位( 0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。数据读写时序如图

单片机与pc串口通信程序及电路图

单片机与pc串口通信程序及电路图 单片机与pc串口通信程序及电路图 #include #define BUFFERLEGTH 10 //----------------------------------------------------------------- void UART_init(); //串口初始化函数 void COM_send(void); //串口发送函数 char str[20]; char j; //------------------------------------------------------------------- void main(void) { unsigned char i; UART_init(); j=0; //初始化串口 for(i = 0;i }; while(1); } //------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- // 函数名称:UART_init()串口初始化函数 // 函数功能:在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s // 串口接收中断允许,发送中断禁止 //-------------------------------------------------------------------------------------------------- void UART_init() { //初始化串行口和波特率发生器

51单片机基本程序

1第一位隔一秒闪烁一次 #include #define uint unsigned int sbit led1=P1^0; uint i; uint j; void main() { while(1) { led1=0; for(i=1000;i>0;i--) for(j=110;j>0;j--); led1=1; for(i=1000;i>0;i--) for(j=110;j>0;j--); } } 2复杂广告灯 #include #define uint unsigned int #define uchar unsigned char uchar discode[]={ 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,//正向流水灯 0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,//反向流水灯 0xAA,0x55,0xAA,0x55,0xAA,0x55,0xFF,//隔灯闪烁3次 0xF0,0x0F,0xF0,0x0F,0xFF,//高四盏。低四盏闪烁2次 0x33,0xCC,0x33,0xCC,0x33,0xCC,0xFF//隔两盏闪烁3次 }; void delayms(uint ms) { uint i; while(ms--) { for(i=0;i<120;i++); } } void main(void) { uchar i; P0=0xFF;

while(1) { for(i=0;i<35;i++) { P0=discode[i]; delayms(250); } } } 3拉幕式与闭幕式广告灯 #include #define uint unsigned int #define uchar unsigned char uchar discode1[4]={0x18,0x24,0x42,0x81}; uchar discode2[4]={0x7E,0x3C,0x18,0x00}; void delayms(uint ms) { uint i; while(ms--) { for(i=0;i<120;i++); } } void main(void) { uchar i,j; P0=0xFF; while(1) { for(i=0;i<4;i++) { j=discode1[i]; P0=~j; delayms(500); } j=0xFF; P0=~j; delayms(500); for(i=0;i<4;i++) { j=discode2[i]; P0=~j;

相关主题
文本预览
相关文档 最新文档