毕业设计(论文)-单片机无线数据传输应用设计.doc

上传人:小小飞 文档编号:3282268 上传时间:2019-08-07 格式:DOC 页数:42 大小:18.33MB
返回 下载 相关 举报
毕业设计(论文)-单片机无线数据传输应用设计.doc_第1页
第1页 / 共42页
毕业设计(论文)-单片机无线数据传输应用设计.doc_第2页
第2页 / 共42页
毕业设计(论文)-单片机无线数据传输应用设计.doc_第3页
第3页 / 共42页
毕业设计(论文)-单片机无线数据传输应用设计.doc_第4页
第4页 / 共42页
毕业设计(论文)-单片机无线数据传输应用设计.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《毕业设计(论文)-单片机无线数据传输应用设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-单片机无线数据传输应用设计.doc(42页珍藏版)》请在三一文库上搜索。

1、盐城工学院本科生毕业设计说明书(2011)目 录1 概 述11.1 课题研究背景及意义11.2 课题设计内容22 系统设计22.1 无线数据传输系统原理22.2 芯片简介32.2.2 CC110062.3 Keil C51简介93 硬件电路设计93.1 主机模块93.1.1 CPU控制无线模块收发数据103.1.2 音符演奏及数码显示113.2 遥控器模块143.3 电源模块144 软件设计144.1 初始化配置144.2 收发数据164.3 数码管扫描174.4 PWM功能174.5 无线遥控器185 编译调试186 结束语22致 谢23参考文献24附 录25附录1 CC1100的寄存器及其

2、配置25附录2 程序清单28附录3 系统硬件电路原理图39附录4 系统硬件电路PCB图3939单片机无线数据传输应用设计1 概 述1.1 课题研究背景及意义进入二十一世纪以来,微电子技术的不断进步极大地推动了计算机和通信设备的普及和迅猛发展,PC机、掌上电脑、移动电话、无绳电话等进入人们日常的生活和工作中,成为人们生活中不可缺少的一部分。在这些设备之间传送文件时往往是通过线缆来进行,有线网络速度快,数据流量大可靠性强,对于基本固定的设备来说无疑是比较理想的选择,的确在实际应用中也达到了比较满意的效果,但同时有线网络布线麻烦,线路故障难以检查,设备重新布局就要重新布线,且不能随意移动等缺点越发突

3、出。在向往自由和希望随时随地进行通信的今天,人们逐渐把目光转向了无线通信方式,无线通信技术在特殊的工作环境中有许多优点:对于分散、移动的控制对象可以方便的实现相互间的数据通信;对于物理布线困难的地方,采用无线通信技术可以节省大量财力;对于需要组网的以太网、令牌网等有线通信系统,选择无线通信技术可以避免大量的布线工作,同时也避免了有线网由于线路故障而导致系统瘫痪的弊病。以上这些优点使得无线通信除了弥补有线手段的不足外,还为数据通信用户提供了更加方便更高层次的服务,即移动中不间断的数据通信。虽然目前无线通信在整个数据通信中所占的比例还比较小,但它的发展势头很强。是人们普遍看好的下一个通信技术热点。

4、随着计算机、通信和无线技术的逐步融合,在传统的有线通信的基础上,无线通信技术应运而生,它具有快捷、方便、可移动和安全等优势,所以广泛应用到遥控玩具、汽车电子、环境监测和电气自动化等。在一些特殊应用场合中,单片机与上位机之间通信不再采用有线的数据传输,例如采用有线的串、并行总线、I2C和CAN总线等,而是需要无线数据传输。它与有线数传相比主要有布线成本低、安装简便、便于移动的优点,而且随着互联网技术的迅猛发展和快速普及,越来越多的基于单片机为微控制器的的测控设备或智能仪器仪表都需要通过互联网上进行数据交换或传输数据。无线通信的范围非常广泛,可分为许多种类。按照媒介可分为光通信、微波通信、声波通信

5、等;按照传输距离可分为长距离无线通信和短距离无线通信;按照频段可分为15M频带无线通信、军用频带无线通信、航空频带无线通信等;按照传输的信息可分为无线控制、语音无线通信、海量数据无线通信等;按照协议标准来分可分为无线局域网、蓝牙、HomeRF、ZigBee、无线USB、WiFi、WiMAx、UWB等。 无线通信的主要应用范围有:公共设施自动化、无线宽带网络、仓库和物流管理、医院监护、安全管理、国防军事、交通运输、石油勘探、森林防火、抗洪抢险、国土勘查、直播、海关缉私、港口作业、水文监控等。随着无线技术的不断发展和应用市场的不断扩大,各种无线技术层出不穷,今天整个无线领域已经呈现出了一派繁荣的景

6、象。一般的数据采集系统是通过传感器将捕捉的现场信号经数模转换器ADC采样,量化,编码后、成为数字信号,存入数据存储器或送给微处理器,或通过无线方式将数据发送给接收端进行处理,无线数据传输系统就是这样一套利用无线手段将采集的数据由测量触发送到主控的设备。无线数据收发模块的性能优异,其显著的特点是所需外围元件少,因而设计非常方便。模块在内部集成了高频发射、高频接受、PLL合成、FSK调制/解调、参数放大、功率放大、频道切换等功能。1.2 课题设计内容本课题是单片机无线数据传输的应用设计。无线通信系统主要由两部分组成:主板硬件部分和遥控器硬件部分。主板硬件由CPU、数码管、无线模块和蜂鸣器组成。主板

7、工作的时候,可以接受遥控器的控制信号,也可以显示当前的状态。遥控器硬件由CPU、无线模块和按键组成,可以用来控制主板的LED。由C8051F310芯片为CPU,74HC595芯片驱动数码管显示,CC1100为中心的无线节点模块接收发送数据。用相同的芯片组成遥控器电路,控制LED。2 系统设计2.1 无线数据传输系统原理所谓无线,顾名思义就是利用无线电波作为信息的传导手段,就应用来讲,只要是使用空气作为传输媒介的信号传输都可称为无线通信。无线通信与有线通信的用途完全相似,两者的最大不同是在于传输数据的媒介不同。除此之外,正因为它是无线的,所以无论是在硬件架设,还是使用的机动性上均比有线通信要有许

8、多优势。我们平时的交谈其实就是一种最简单的无线通信,从他人口中发出的抑扬顿挫的声音,通过空气,传输到我们的耳朵中,经过我们大脑的处理,转换成为可被理解的各种概念。复杂的无线通信系统,同我们平时最基本的交谈的原理都是一样的。无线通信系统主要包括两部分发送端和接收端。如图2-1所示。图2-1 无线通信基本结构典型的无线通信结构包括一个无线发射器(包括数据源、调制器、RF源、RF功率放大器、天线、电源)和一个无线接收器(包括数据接收电路、RF解调器、译码器、RF低噪声放大器、天线、电源)。发射器的数据通过无线发射出去,接收器天线接收后进行处理,得到经过校验的正确数据。在长距离的无线通信中,还需要中继

9、站。发送端向外界发送数据信息,由于传输距离远,信号会出现衰减,因而需要安装中继站来提高信号传送的质量,接收端把信息接收后处理使用。2.2 芯片简介2.2.1 C8051F310本设计的CPU采用最新单片机C8051F310。C8051F310单片机是完全集成的混合信号系统级芯片,具有与8051指令集完全兼容的CIP-51内核,它在单片内集成了构成一个单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其他功能部件。其主要组成:l 高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS) l 全速、非侵入式的在系统调试接口(片内) l 带模拟多路器、真正10位200 ksps的2

10、5通道单端/差分ADC l 高精度可编程的25MHz内部振荡器 l 16KB可在系统编程的FLASH存储器 l 1280字节片内RAM l 硬件实现的SMBus/ I2C、增强型UART和增强型SPI串行接口 l 4个通用的16位定时器 l 具有5个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA) l 片内上电复位、VDD监视器和温度传感器 l 片内电压比较器 l 29个端口I/O(容许5V输入)C8051F310的MCU系统控制器的内核是 CIP-51微控制器。CIP-51与MCS-51指令集完全兼容,可以使用标准803x/805x的汇编器和编译器进行软件开发。CIP-5

11、1内核具有标准8051的所有外设部件,包括4个16位计数器/定时器、一个增强型全双工UART、一个增强型SPI、256字节内部RAM、128字节特殊功能寄存器(SFR)地址空间及29个I/O端口。 CIP-51微控制器内核除了具有标准8051的组织结构和外设以外,另有增加的定制外设和功能,从而大大增强了它的处理能力。CIP-51系统控制器的存储器组织与标准8051的存储器组织类似。有两个独立的存储器空间:程序存储器和数据存储器。程序和数据存储器共享同一个地址空间,但用不同的指令类型访问。 CIP-51有两种可软件编程的电源管理方式:等待和停机。C8051F310有29个I/O引脚,每个引脚都可

12、以被定义为通用I/O(GPIO)或模拟输入。 端口I/O初始化包括以下步骤:用端口输入方式寄存器(PnMDIN)选择所有端口引脚的输入方式(模拟或数字);用端口输出方式寄存器(PnMDOUT)选择所有端口引脚的输出方式(漏极开路或推挽);用端口跳过寄存器(PnSKIP)选择应被交叉开关跳过的那些引脚;将引脚分配给要使用的外设;启用交叉开关。CIP-51包含一个扩展的中断系统,支持14个中断源,每个中断源有两个优先级。中断优先级的控制方法:硬件判优链式判优、并行判优(中断向量法);软件判优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)。每个中断源都可以被独立地编程为两个优先级中的一个:

13、低优先级或高优先级。中断响应时间取决于中断发生时CPU的状态。C8051F310内部有4个16位计数器/定时器。其中T0和T1与标准8051中的计数器/定时器兼容;T2和T3是16位自动重装裁定时器,可用于ADC、SMBus或作为通用定时器使用;定时器0和定时器1拥有几乎完全相同的4种工作方式,可以工作在计数器方式;定时器2和定时器3均可以作为一个16位或两个8位自动重装裁定时器。C8051F310还有一个可编程计数器阵列PCA0,提供增强的定时器功能。与标准8051的计数器/定时器相比,它需要较少的CPU干预。PCA由一个专用的16位计数器/定时器和5个16位捕捉/比较模块组成。C8051F

14、310MCU有一个可编程内部振荡器和一个外部振荡器驱动电路,内部振荡器可以被允许/禁止,其输出频率可以通过OSCICN和OSCICL寄存器编程。系统时钟可以有外部振荡器电路、内部振荡器或内部振荡器分频后提供。在C8051F310中的串行接口是UART0。UART0是一个异步、全双工串口,它提供标准8051串行口的方式1和方式3。UART0具有增强的波特率发生器电路,有多个时钟源可用于产生标准波特率。C8051F310内部有一个10位SAR ADC和一个25通道差分输入多路选择器。该ADC工作在200ksps的最大采样速率时可提供真正的10位精度,INL为1LSB。ADC系统包含一个可编程的模拟

15、多路选择器,用于选择ADC的正输入和负输入。A/D转换可以有6种启动方式:软件命令、定时器0溢出、定时器1溢出、定时器2溢出、定时器3溢出或外部转换启动信号。这种灵活性允许用软件事件、外部硬件信号或周期性的定时器溢出信号触发转换。C8051F310单片机具有一个增强型外设接口SPIO,它具有访问一个全双工同步串行总线的能力。SPIO可以作为主、从器件工作,并可在同一总线上支持多个主、从器件。SPIO主要使用3个信号:主输出、从输入(MOSI):主出从入(MOSI)信号是主器件的输出和从器件的输入,用于从主器件到从器件的串行 数据传输。当 SPI0 作为主器件时,该信号是输出;当 SPI0 作为

16、从器件时,该信号是输入。数 据传输时最高位在先。当被配置为主器件时,MOSI 由移位寄存器的 MSB 驱动。主输入、从输出(MISO):主入从出(MISO)信号是从器件的输出和主器件的输入,用于从从器件到主器件的串行数据传输。当SPI0作为主器件时,该信号是输入;当SPI0作为从器件时,该信号是输出。数据传输时最高位在先。当SPI被禁止或工作在4线从方式而未被选中时, MISO引脚被置于高阻态。当作为从器件工作在3线方式时,MISO由移位寄存器的MSB驱动。串行时钟(SCK):串行时钟(SCK)信号是主器件的输出和从器件的输入,用于同步主器件和从器件之间在MOSI和MISO线上的串行数据传输。

17、当SPI0作为主器件时产生该信号。SPIO的操作方式有主方式和从方式两种:SPIO 主方式操作只有SPI主器件能启动数据传输。当处于主方式时,向SPI0数据寄存器写入一个字节时是写发送缓冲器。如果SPI移位寄存器为空,发送缓冲器中的数据字节被传送到移位寄存器,数据传输开始。SPI0主器件立即在MOSI线上串行移出数据,同时在SCK上提供串行时钟。SPIO 从方式操作当SPI0被使能而未被配置为主器件时,它将作为SPI从器件工作。作为从器件,由主器件控制串行时钟,从MOSI移入数据,从MISO引脚移出数据。SPI0逻辑中的位计数器对SCK边沿计数。接收到的字节被传送到接收缓冲器。从器件不能启动数

18、据传送。SPIO接口主要完成两部分工作:在SPIO编程下单片机通过SPIO接口配置CC1100的工作参数,这主要是对配置寄存器进行设置;在发射模式下单片机按照SPIO接口时序要求将发送数据写入CC1100的发送寄存器中,接收模式下单片机将CC1100接收到的数据通过SPIO接口读入单片机内的接收缓冲区。C8051F310芯片结构如图2-2 所示,引脚说明如表2-1所示。图2-2 C8051F310芯片结构图引脚名称引脚说明VDD电源GND接地RST/C2CK 器件复位。内部上电复位或VDD监视器的漏极开路输出。一个外部源可以通过将该引脚驱动为低电平(至少10s)来启动一次系统复位。 /C2开发

19、接口的时钟信号P0.0/VREF数字I/O端口/外部VREF输入P0.1数字I/O 端口P0.2/XTAL1数字I/O端口/外部时钟输入。对于晶体或陶瓷谐振器,该引脚是外部振荡器电路的反馈输入P0.3/XTAL2数字I/O端口/外部时钟输出。该引脚是晶体或陶瓷谐振器的激励驱动器。对于CMOS时钟、电容或RC振荡器配置,该引脚是外部时钟输入P0.4 数字I/O 端口P0.5数字I/O 端口P0.6/CNVSTR 数字I/O端口/ADC0外部转换启动输入P0.7数字I/O 端口P1.0-P1.7数字I/O 或模拟输入P2.0-P2.7数字I/O 或模拟输入P3.0/C2D数字I/O端口/ C2开发

20、接口的双向数据信号P3.1-P3.4数字I/O 或模拟输入表2-1 C8051F310引脚说明 2.2.2 CC1100本设计采用以CC1100射频芯片为节点的无线模块来实现数据传输。CC1100是一种低成本真正单片的UHF收发器,基于0.18微米CMOS晶体的Chipcon的SmartRF 04技术,为低功耗无线应用而设计。电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348 MHz、400-464 MHz和800-928 MHz的其他频率上。RF收发器集成了一个高度可配置的调制解调器。这个调制解调器

21、支持不同的调制格式,其数据传输率可达500kbps。通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供广泛的硬件支持。CC1100的主要操作参数和64位传输/接收FIFO(先进先出堆栈)可通过SPI接口控制。在一个典型系统里,CC1150和一个微控制器及若干被动元件一起使用。 CC1100的主要性能:l 体积小(QLP 44mm封装,20脚) l 真正的单片UHF RF收发器l 频率波段:300-348 MHz、400-464 MHz和800-928 MHz l 高灵敏度(1.2kbps下

22、-110dBm,1数据包误差率) l 可编程控制的数据传输率,可达500kbps l 较低的电流消耗(RX中15.6mA,2.4kbps,433MHz) l 可编程控制的输出功率,对所有的支持频率可达+10dBm l 优秀的接收器选择性和模块化性能 l 极少的外部元件:芯片内频率合成器,不需要外部滤波器或RF转换l 可编程控制的基带调制解调器 l 理想的多路操作特性 l 可控的数据包处理硬件 l 快速频率变动合成器带来的合适的频率跳跃系统l 可选的带交错的前向误差校正 l 单独的64字节RX和TX数据FIFO l 高效的SPI接口:所有的寄存器能用一个“突发”转换器控制l 数字RSSI输出l

23、与遵照EN 300 220(欧洲)和FCC CFR47 Part 15 (美国)标准的系统相配l 自动低功率RX拉电路的电磁波激活功能l 许多强大的数字特征,使得使用廉价的微控制器就能得到高性能的RF系统l 集成模拟温度传感器 l 自由引导的“绿色”数据包 l 对数据包导向系统的灵活支持:对同步词汇侦测的芯片支持,地址检查,灵活的 数据包长度及自动CRC处理l 可编程信道滤波带宽 l OOK和灵活的ASK整型支持l 2-FSK,GFSK和MSK支持l 自动频率补偿可用来调整频率合成器到接收中间频率l 对数据的可选自动白化处理 l 对现存通信协议的向后兼容的异步透明接收/传输模式的支持l 可编程

24、的载波感应指示器 l 可编程前导质量指示器及在随机噪声下改进的针对同步词汇侦测的保护l 支持传输前自动清理信道访问(CCA),即载波侦听系统l 支持每个数据包连接质量指示CC1100芯片结构如图2-3所示,引脚说明如表2-2。图2-3 CC1100芯片结构图引脚编号引脚名引脚描述1SCLK连续配置接口,时钟输入2SO(GD01)连续配置接口,数据输出,当CSn为高时为可选的一般输出脚3GDO2一般用途的数字输出脚: 测试信号;FIFO状态信号; 时钟输出,从XOSC向下分割; 连续输入TX数据4DVDD数字I/O和数字中心电压调节器的1.8V-3.6V数字功率供给输出5DCOUPL对退耦的1.

25、6V-2.0V数字功率供给输出6GDO0一般用途的数字输出脚:测试信号;FIFO状态信号;时钟输出,从XOSC向下分割;连续输入TX数据7CSn连续配置接口,芯片选择8XOSC_Q1晶体振荡器脚1,或外部时钟输入9AVDD1.8V-3.6V模拟功率供给连接10XOSC_Q2晶体振荡器脚11AVDD1.8V-3.6V模拟功率供给连接12RF_P接收模式下对LNA的正RF输入信号发送模式下对LNA的正RF输出信号13RF_N接收模式下对LNA的负RF输入信号发送模式下对LNA的负RF输出信号14AVDD1.8V-3.6V模拟功率供给连接15AVDD1.8V-3.6V模拟功率供给连接16GND模拟接

26、地17RBIAS参考电流的外部偏阻器18DGUARD对数字噪声隔离的功率供给连接19GND数字噪声隔离的接地20SI连续配置接口,数据输入表2-2 CC1100引脚说明2.3 Keil C51简介本次设计使用C语言编程。C51的编程语言常用的有两种:一种是汇编语言,一种是C语言。汇编语言的机器代码生成效率很高,但可读性却并不强,复杂一点的程序就更是难以读懂。而C语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来解决高时效性代码的编写问题。从开发周期来说,中大型的软件编写采用C语言的开发周期通常要短于汇编语言很多。综合C语言以上的

27、优点,使用C语言是一种非常好的选择。使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行编写好的程序。KeiluVision2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,集编辑、编译、仿真等丁一体。同时,它还支持PLM、汇编和C语言的程序设计,界面同常用的微软VC十十的界面相似,界面友好,易学易用,在调试程序、软件仿真方面也有很强大的功能。Keil C51是美国Keil Software公司出品的8051系列兼容单片机C语言软件开发系统。与汇编语言相比,C语言在功能、结构性、可读性、可维护性上有明显的优势,因而易学易用。Ke

28、il C51软件提供丰富的库函数和功能强大的集成开发调试工具,为全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率是非常之高的,多数语句生成的汇编代码很紧凑,容易理解。C51是一种专门为8051单片机设计的高级C语言编译器,支持符合ANSI标准的C语言程序设计,同时针对8051单片机的自身特点做了一些特殊扩展。下面来简单介绍一下c51与标准C语言的区别:C51编译器除了支持ANSI C(标准C)的关键字外,还根据805I单片机自身的特占扩展了如附录A所示的关键字。C51编译器不支持16位宽的字符,而ANSI标准提供对多字节国际字符

29、集的支持;C51默认值不支持函数递归调用,需要进行递归调用的函数必须声明为再入函数。再入函数的局部数据和参数被放人再人栈中,从而允许进行递归调用;C51编译器支持ANSI C中的大部分函数,但是一些不适用于嵌入式系统应用的库函数则没有包含到C51编译器中。同时,它也对函数库做了一些扩 展,定义了一部分非ANSI标准函数。3 硬件电路设计3.1 主机模块主板硬件由CPU、数码管、无线模块和蜂鸣器组成。主板工作的时候,可以接受遥控器的控制信号,也可以显示当前的状态。CPU也可以利用PWM输出,演奏出不同的音乐。电路图如附录3所示。3.1.1 CPU控制无线模块收发数据CC1100是一种单片的无线收

30、发器,在一个无线通信系统里,CC1100需要与一个作为控制器件的单片机及若干被动组件一起使用,才能成为一个最简单的无线通信系统,C8051F310单片机可通过SPI接口控制CC1100的主要操作参数,并同CC1100进行通信,SPI标准接口包括MOSI、MISO、CLK。主机用CLK与从机时钟同步。CC1100可以通过SPI总线设置芯片的工作模式,并实现读写缓存数据、读写状态寄存器等功能。通过控制FIFO和FIFOP引脚接口的状态可设置发射或者接收缓存器,这样通过SPI接口,就将单片机和射频芯片连接了一起,成为了一个可以自由控制收发的无线通信系统。CC1100内部有大量寄存器需要用CPU进行操

31、作和配置,这样CC1100模块才能进行正常的收发。而CC1100模块与CPU是采用SPI口进行通信的,所以只需要把CC1100的SPI口和另外一条状态引脚与CPU相连即可对CC1100进行控制。只需将CC1100的SPI口接到CPU的任意4个引脚上即可,但最好能接在CPU的硬件SPI口上。另外,再将CC1100的GDO0或GD02也接在CPU的任意引脚上。如果想要用中断处理收发数据或是想做无线唤醒的话,这个引脚也必须接在CPU的外部中断引脚上。如图3-1所示。图3-1 硬件连接在画电路图时,将C8051F310的P3.2、P3.3、P3.4分别设为SCK、MISO、MOSI与CC1100的相应

32、引脚相连。定义P0.6为INT0,与CC1100的GDO口连接。因当CSn为高时为可选的一般输出脚,则可在软件程序中设CSn为高电平,将这个引脚连到C8051F310的任意引脚上。在主机模块中,CPU控制无线模块接受数据。而使用CC1100需要少量的外部元件。如图3-2 所示。R1是偏阻器,用来设置一个精确的偏电流。C5, C4, L3 和 L4形成一个平衡转换器,用以将CC1100上的微分RF端口转换成单端RF信号(C6也用在直流模块上)。同一个合适LC网络一起,平衡转换器元件也将阻抗转换以匹配50欧的天线(或电缆)。晶体振荡器使用一个带2个负载电容(C8和C7)的外部晶体。附加外部元件能用

33、来改进特殊应用中的性能能量供给必须在靠近供给引脚处恰当地退耦。退耦电容器的放置及大小对于达到最优性能是非常重要的。图3-2 CC1100应用电路图3.1.2 音符演奏及数码显示蜂鸣器一般用于一些要求不高的声音报警及按键操作提示音等场合。蜂鸣器与普通扬声器相比,最重要的一个特点是,只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。由此可知,蜂鸣器的控制与LED的控制对单片机而言是没有区别的。硬件电路虽然蜂鸣器的控制和LED的控制对于单片机是一样的,但在外围硬件电路上却有所不同。因为蜂鸣器是一个感性负载,一般不建议用单片机IO口直接对它进行操作,所以最好加一个

34、驱动三极管,在要求较高的场合还会加上反相保护二极管。电路如图3-3所示。图3-3 蜂鸣器电路演奏音符的同时,同时数码管也要显示相应数字。本设计采用LED数码管。LED数码管是利用多个LED组合而成的显示设备,可以显示09等10个数字和某些字母,在许多的数字系统中作为显示输出设备,使用非常广泛。它的结构是由发光二极管构成的a、b、c、d、e、f和g七段组成,并由此得名,实际上每个LED还有一个发光段dp,一般用于表示小数点,所以也有少数的资料将LED称为八段数码管。LED内部的所有发光二极管有共阴极接法和共阳极接法两种:一种是将LED内部所有二极管阳极接在一起并通过com引脚引出,将每一个发光二

35、极管的另一端分别引出到对应的引脚,称之为共阳极LED显示器。如图3-4所示。图3-4共阳极数码管内部结构 LED共阳极接法,corn端接+5V电压,其他引脚端各通过一个限流电阻接到单片机驱动电路端,当各段输入端为逻辑“1”,对应的LED不亮;各段输入端为逻辑“0”时,对应LED才发亮。使用时要根据LED正常发光需要的电流参数估算限流电阻取值。电阻取值越小,电流大,LED会更亮,但要注意长时间过热使用会烧坏LED。 LED用于显示数字、字母或符号时,必须将要显示的内容转换为LED对应七段码的信息,共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当发光二极管导通时,相应的笔划段发亮,即通

36、过点亮不同的LED字段,可显示数字0,1,9和A,b,C,d,E,F等不同的字符及自定义的一些简单符号。8个笔划段dp g f e d c b a对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 DO,于是用8位二进制码就可以表示要显示字符的字形代码。在本次设计中运用74HC595驱动数码管。74HC595是硅结构的CMOS器件, 兼容低电压TTL电路,遵守JEDEC标准。74HC595 内含8 位串入、串/ 并出移位寄存器和8位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK) , 都是上升沿有效。当SCLK从低到高电平跳变时, 串行输入数据(SDA)

37、移入寄存器; 当SLCK从低到高电平跳变时, 寄存器的数据置入锁存器。清除端(CLR) 的低电平只对寄存器复位(QS 为低电平) , 而对锁存器无影响。当输出允许控制(EN) 为高电平时, 并行输出(Q0Q7) 为高阻态, 而串行输出(QS) 不受影响。用74HC595 芯片驱动LED 有以下特点: 速度较快, 功耗较小, LED 的数目多少随意, 既可以控制共阴极的LED 显示器, 也可以控制共阳极的LED 显示器, 可以软件控制LED 的亮度, 还可以在必要的时候关断显示(数据保留) , 以减小功耗, 并可随时唤醒显示。用它设计的电路, 不仅软硬件设计简单, 而且功耗低, 驱动能力强, 占

38、用的I/ O 口线较少, 是一种造价低廉, 应用灵活的设计方案。电路图如图3-5所示。图3-5 数码管显示电路3.2 遥控器模块遥控器硬件由CPU、无线模块和按键组成,用来控制主板的LED。遥控器采用电池供电。本设计共有四个按键,每个按键分别接到单片机的I/O口,利用单片机I/O口读取的电平高低来判断是否有键按下。对按键的处理的时候涉及到一个重要的过程,就是按键的去抖动,这里说的抖动时机械的抖动,是当按键在未按到的临界区产生的电平不稳定正常现象。目前的技术有硬件去抖动和软件去抖动。硬件区抖动就是用部分电路对抖动部分加之处理,软件去抖动不是去掉抖动,是避开抖动部分的时间,等按键稳定了再对其处理。

39、电路图如附录3所示。在遥控器模块中,CPU控制无线模块发送数据,原理与上述接受数据类似,在此不重述。3.3 电源模块电路所需的电源主要是+5V电源,原理图如图3-6所示。图3-6电源原理图其中我们采用78L05稳压块来产生稳定的5V电压,电容的主要作用是滤除直流电压中的交流信号,使得电路能够输出稳定的直流电压。78L05具有:三端集成稳压电源内部由基准电压回路、恒流源、过流保护、过压保护和短路保护回路等8部分组成,具有低功耗,高效率,纹波系数小,输出电压稳定等优点。4 软件设计4.1 初始化配置在使用CC1100做无线通信时,首先需要对它做一系列的配置,这样才能让CC1100正常工作。要开始这

40、项配置,就必须调用一个头文件CC1100.h,而这个头文件是在开发文具中无法找到的,因而得自己定义它,这个头文件的作用是将一些特殊的操作码、指令或者是特殊的表达式等用比较容易记的助记符来表示,这样既提高了程序的直观性也提高了可读性。在整个初始化定义中,可以看到几乎包含了CC1100所有的寄存器,这样做的目的是方便对CC1100寄存器进行配置,并实现需要的功能。在头文件的定义结束处有一些外部函数定义,这部分的功能是告诉现在正在使用的文件这部分函数是已经存在的函数,在其他文件中可以直接调用这部分函数完成相应的功能,而不需要再次定义。完成了将实际地址转换成助记符的形式,就可以对这一部分寄存器进行数据

41、输入操作。为此,在CC1100程序源文件中加入了一个初始化数据定义。完成对整个程序的初始化定义,接下来就是对CC1100进行初始化配置。CPU利用SPI接口读、写CC1100的寄存器。配置函数主要是调用halSpiWriteReg()函数对CC1100的每个状态寄存器进行配置。而halSpiWriteReg()函数的作用是通过SPI端口对CC1100的寄存器进行单一写,单片机通过SPI写寄存器的时候,必须先写寄存器的地址,然后再往该地址中写入数据,最后CC1100根据寄存器中所存储的数据执行相应的操作。程序执行过程:首先程序使Csn位为低,使CC1100进入SPI模式,然后调用SPI输入函数往

42、CC1100中写入地址信息,之后再次调用SPI写操作往该地址的寄存器中写入数据,最后使Csn位为高,关闭CC1100的SPI模式。程序清单4-1:void halSpiWriteBurstReg(unsigned char addr,unsigned char *buffer,unsigned char count) unsigned char i,temp;temp = addr / WRITE_BURST;CS_CC1100 = 0;while (GDO0);SpiReadWrite(temp); for (i=0;icount;i+)SpiReadWrite(bufferi); CS_C

43、C1100 = 1;有程序知,通过设置CC1100中的一个连续写寄存器后,就可以通过SPI端口对CC1100进行连续写入。接下来的函数是对CC1100进行命令输入,在配置CC1100的命令寄存器时,只需要输入一个字节的命令即可完成对CC1100的一个寄存器的配置。程序清单4-2:void halSpiStrobe(unsigned char strobe) CS_CC1100 = 0; while (GDO0); SpiReadWrite(strobe); /写入命令 CS_CC1100 = 1;CC1100内部的寄存器上电后需进行初始化或是重新配置,如设定其频率、通道、通信速率等。这些寄存器

44、配置只需要从SPI口输入即可。程序见附录。4.2 收发数据CC1100芯片接收时,天线接收的射频信号经过低噪声放大器和I/Q下变频处理,混合I/Q信号再经过滤波、放大、A/D变换和自动增益控制、数字调解和扩频,最终恢复出传输的正确数据,发射时,要发送的数据先被送入发送缓存器,根据相应的协议标准,经过扩频和A/D变换后,经过低通滤波和上变频的混频后的射频信号最终被调制到需要的频段,并经放大后送到天线发射出去。CC1100具有3种状态:IDEL(待机)、RX(接收)、TX(发送)。状态之间的转换如图4-1 所示。图4-1CC1100状态转换图作为微控制器的C8051F310单片机除了完成基本的芯片

45、初始化工作、数据的发送和接收之外,还需要根据需要在CC1100的引脚产生中断,并由所编写的中断管理程序进行状态检测以及切换,并执行相应的中断操作,使得无线通信可以在发射和接收以及待机之间转换。CC1100发送数据,首先从SPI口写入要发送数据的字节数,然后写入想要发送的数据,最后再写入发送使能命令,CCll00便开始发送数据。当检测到GD02产生上个高低电平的脉冲后,即发送成功。如果在一定时问内,GD02上没有任何动作,表示发送失败。发送完成之后,我们就把CC1100发送缓冲区的数据清除掉。程序见附录。CC1100接收数据,首先让CC1100进入接收状态,如果在设定的时间内我们收到了一组数据,

46、GDO2上面就可以检测到一个高低电平的脉冲。此时,读出CC1100接收数据缓冲的第1个字节的数据,这个数据就是现在CC1100接收到的数据长度。如果这个长度是想要接收数据的长度,就可以开始读出CC1100接收数据缓冲区里所有的数据了。最后再把CC1100的两个状态寄存器谈出(RSSI和LQI),一个状态寄存器为接收信号强度指示寄存器,另一个为链接质量寄存器。此时可以判断CRC校检有没有通过,即LQI寄存器的最高位是否为l,如果为1则CRC校检通过,否则表示接收数据出错。程序见附录。4.3 数码管扫描主板是在定时器0中断中扫描数码管的。扫描程序用开关语句,将tt值与case后面的值进行比较,匹配就执行其后的语句,即写入要显示的数据。当定时器每次定时中断产生时,CPU都会扫描一位数码管,并显示相应数值,直到扫到最后一位后返回第一位扫描。程序清单4-3:void Timer0_IR(void) interrupt 3 static unsigned char WM = 0; p1 = 0; SelWM(WM); P1 = SegmentCodeDisplayBufWM; /数码管显示 if(+WM = 6) WM = 0; 4.4 PWM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1