无线数据传输系统设计_第1页
无线数据传输系统设计_第2页
无线数据传输系统设计_第3页
无线数据传输系统设计_第4页
无线数据传输系统设计_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学珠海学院2020届本科生毕业设计引言随着信息技术的革命,通信对于每个人的生活也越来越必不可少,采用无线方式给人们提供了更便利、更惠民的可实用价值。无线数据传输技术其实是一种信息传输的应用拓展。这同时也是信息智能化时代的产物,与传统有线传输相比,它可以满足各种场景下的要求,不需要复杂布线规划,运用现代化手段传输信息,让传统方式不再受局限,无线设计的拓展性也更加丰富。系统要求传输时间短、接口简单实用。NRF401是一款新推出的单片无线收发器集成芯片。它采用无线收发器电路、微控制器控制和液晶显示器组成一个完整的数据收发器系统。在高度集成的微芯片中,它包括许多功能,例如发送、接收、FSK调制等,并且具有很少的外围组件,这有利于设计和生产,并且目前被应用于许多无线数据传输产品[2]。2无线数据收发系统2.1设计背景随着时代进步,人类社会早已经进入了数字信息的时代,所以对数据传输质量,速度,提出了更高的要求。对于信息技术的现状,原来的有线电视传输系统,维护成本高,和成本在很大程度上限制了市场推广,极大地阻碍了深度信息技术和数据的传输,并对无线数据传输的需求越来越迫切。无线通信技术可以使用无线互联网,它广泛应用于日常生活中,给人们带来了极大的方便。它将提供扩展的直接连接配置,其中客户端设备从一个接入点请求访问另一个客户端设备的许可,但是客户端仍然连接到接入点,而没有数据通过接入点。在没有无线设备的平板电脑上很难使用Wi-Fi,但是您可以通过Win系统将有线网络信号替换为无线信号。简化了这些设备与互联网之间的通信,让数据传输更加高效,快捷,从而达到扩展无线信道的目的[3]。2.2系统组成这种设计需要一个基于控制器的设计,通过WIFI模块集成,让无线数据收发器功能的串行指令被完全控制。本设计采用的新兴无线通信技术,无线数据传输方向力争实现室内环境,数据采集,工业时间全局把控,智能家居的发展,也说明布线不便等各方面的指标也尤为重要。我旨在提出一种高效的数据采集和分析程序,设计和实现基于无线传输的数据采集系统。通过软件硬件组合,对于功能模块的应用。对问题分析,工作原理的解释,以及系统的测试分析。尤其是液晶显示器中,软件硬件设备的外部接口RS232,51单片机等调试,分析低能耗,集成模块化设计的原理,它所具备的可靠,稳定的特点进行说明。无线数据收发系统如图2.2所示,所以整体规划了四个步骤如下,(1)确定整体系统设计,合适的温度传感器,WIFI模块选择。(2)以完成该过程的设计,各个模块之间数据传输。(3)电路板整合组装。(4)根据要求调试。图2.2无线数据收发系统2.3实现过程实现过程由我们人为操控,就这样由RXD输入数字信号完成信息发送处理接收。STC89C51控制器引脚如P3.2-P3.5所显示,由端口P1.0控制发送和接收,TXD连接到收发器的输入端,并通过FSK调制信号传输。再将数据发送到显示器,从而完整地实现数据传输,接收和显示处理。无线数据收发系统具体结构图,如下图2.3所示。因此,为了实现上述的过程描述了从一方传送到另一方,用串口通信实现完成[4]。STC89C5STC89C51主控制器发射DS18B20接收STC89C51主控制器显示电路报警电路图2.3无线数据收发系统具体结构图3收发部分原理与设计使用无线通信模块通常基于微控制器的一般配置包含的基本功能的芯片内的短距离无线通信。主要从以下几个方面来考虑选择无线技术,(1)可实现的系统要求的功能;(2)通信协议也对整个系统的复杂性的发展有很大的影响。因此,它需要开发简单,这是相关的复杂性和系统成本;(3)传感器系统需要有良好的稳定性,高可靠性和强的抗干扰能力,以及用于无线系统,低功率消耗的一个重要指标。无线收发系统电路图见附录所示[5]。3.1无线模块nRF401芯片NRF401是基于短距离无线通信技术。它与核心2.4GHz无线收发器集成,体积小,能耗低,使用了GFSK调制技术,具有自动响应,重传,1到2Mbps的数据传输速率。在大中型设备中,NRF24L01芯片已经占据了很大的市场规模,相关技术已应用低成本无线网络,在国内和国外的nRF24L01已形成了网络技术的新需求在不断增加,并已获得相关领域一定的成绩,这样的设计选择RF芯片一种用于无线通信,采用集成技术,所以频率稳定性极好。其他RF芯片比较复杂。在用户体验方面的设计,大大降低成本,并增加使用灵活性,nRF401引脚图如下图3.1。图3.1nRF401引脚9管脚,表示的是DIN输入信号,10管脚,表示的是DOUT输出信号。9管脚,表示的是TXEN,高电平,表示的是发送数据,低电平,表示的是接收数据。12管脚,表示的是选择通道,可选FREQ-0/1。18管脚,表示的是电源开关,PWR-UP管脚,表示的是1时工作状态,0表示的是待机状态。1ANT1,ANT2管脚,表示的是天线接入端口。配置字SPI被称为同步串口通信接口,传输低位字节后传高位字节,有着高速的传输能力。8个指令是关于SPI的,由NRF24L01输入,它里面的所以配置字都由配置寄存器管理定义,SPI口则被用来访问配置寄存器[6]。表3.1常用配置寄存器地址(H)寄存器名称功能设置00CONFIG24L01工作模式01EN_AA

接收通道/自动应答02EN_RXADDR通道地址03SETUP_AW地址宽度04SETUP_RETR自动重发数据时间/次数07STATUS状态寄存器0A~0FRX_ADDR_P0~P5接收通道地址10TX_ADDR接点地址11~16RX_PW_P0~P5接收通道宽度3.2FSK调制在数字时代,计算机执行通信数据链路传输,即与移频键控调制信号,频移键控信号转换成二进制数据的传输,高或低转化率表示二进制语言,它可以直接由计算机语言识别。频移键控(也被称为偏压调制频率),频移键控用于将载波频率的发射信息。技术实现简单,噪声、抗干扰、耐腐蚀性能非常突出。它是利用基带数字信号离散值的载波频移键控调制传输数字信息技术的特点,广泛用于低速数据传输,数据传输通常是采用调制方案。二进制数字调频信号输入1,门1主题,门关闭2,F1的输出频率,同理反之亦然。但当产生两个相互独立的振荡频率时,输出2移频键控信号相位不连续面。频移键控方法是使用矩形脉冲信号控制开关电路,数字基带信号控制开关,可以实现移频键控调制必须依靠高频率。频率键控法原理框图如下图3.2,2FSK信号波形图如下图3.2.1所示。已调信号时域表达式见式3.2所示[7]。图3.2频率键控法原理框图已调信号的时域表达式,(式3.(式3.2)图3.32FSK信号波形图3.3应用电路设计当在使用NRF401,工作频率为正常的工作中,收发器转换到可以由单片微机控制,几个状态转换,需注意的是天线接入,要与单片机共用一个晶振,通讯协议制定,软件设计缺一不可。3.3.1电路组成nRF401无线收发应用电路,如图3.4所示:图3.4nRF401应用电路负载电容CL,(式3.3)式中和,和是电路板的寄生电容。NRF401电路PCB设计的过程中,制作PCB,设置布局范围。使用计算机辅助设计DXP软件设计NRF401无线收发器电路部分。在计算机辅助软件根据设计电路连接电路。4控制部分原理4.1STC89C51STC89C51是一个新一代高速,低功耗单片机,全新精简指令集结构,专用集成电路内部复位电路。2个16位计数器,工作频率0-35MHZ,工作电压3.4-5.5V。STC89C51还控制液晶屏的显示和按键等一些工作。开发系统,总控制电路的主要部分STC89C51,与nRF401STC89C51串行通信,并使用它来控制nRF401TXEN方面,调整发送和接收状态[8]。4.1.1内部结构STC89C51单片机组成一个中央处理单元、程序内存、数据存储器、定时器、计数器、I/O口、中断系统等[9]。图4.1内部结构框图4.1.2引脚功能VCC表示供电电压的含义,GND是接地端脚。反向振荡XTAL1代表输入放大器,内部时钟电路的输入。XTAL2表示反向振荡器输出。STC89C51引脚图如下图4.2所示。图4.2STC89C51引脚图4.1.3复位/时钟电路本系统设计采用时钟电路,自动复位电路,如下图4.3,图4.4所示。单片机端口P0内部上拉电阻,高阻抗,高/低输出不正常,它必须是一个外部电阻,I/O管脚。51单片机内部监督集成电路,导致一个强大的抗干扰能力。图4.3时钟电路 图4.4复位电路4.2串行通信有两个主要的通信方式:串行和并行通信。同时并行通信是通信系统中传输时每个字节的传输数据,串行通信意味着每个字节分别通信传输。每个单独意味着每个字节传输模式通信。全双工串行接口51通过内部控制器,按照突出的优点是,只要作为传输线,大大降低了硬件成本的原则依次传递,但缺点也很明显,传输速度是慢。造成这样低速率的原因是一次只能发送一个,所以到8位字节的数据要传送过来。如图4.5所示串行通信方式[10]。图4.5串行通信方式串行通信传输步骤,先把并行数据变成串行数据发送,再到接收时,还原才能被计算机或其他设备识别处理。选择的串行通信,它是通过传输线传输,当长距离传输成本劣势也是存在的,则难以传递控制。串行通信又分为异步和同步串行通信,本设计在这里同步串行通信。STC89C51串行端口可设置四种工作模式,在这个系统中,STC89C51串行端口在模式1,即运行时,每个异步通信帧格式如图10所示,一个起始位,8位数据位,1位停止位。当SM0=0,SM1=1,选择串行模式。其帧格式为图4.6所示。停止起始停止起始D6D7D0D1D2D3D4D5图4.6帧格式图4.2.1结构描述单片机串行口时一个通信接口,可以编程,且拥有诸多功能。这是一个全双工可以发送和接收数据,也可以作为同步移位寄存器。主要有两个独立的串行数据缓存SBUF发送控制器,接收控制器等其他电路。串行口的基本结构如下图4.7所示。图4.7串行口基本结构同时,微控制器51可以发送或通过串行寄存器访问特殊功能寄存器接收SBUF,它们共享一个地址99H,但在两个物理上独立的寄存器,指令谁决定访问。执行写命令时,串行寄存器被访问,读命令时,接收寄存器被访问。CPU控制和传输数据,既要考虑缓冲问题,谁拥有的问题。发送数据缓冲器,传输控制器,输出控制,接收数据缓冲器,接收控制器,输入移位寄存器等。串行口有两个特殊功能寄存器sconpcon,被用来控制的运作一个串行端口和波特率。波特率发生器由定时器/计数器1构成。波特率设定,(式4.2(式4.2)SMOD-PCON寄存器最高位值。设计数初值为X,fosc-晶振频率。(式4.3(式4.3)波特率计算,(式4.(式4.4)波特率算初值,定时器初始化,,初值X。(式4.(式4.5)SBUF串口数据的串行移位寄存器和两个输入串行输出缓冲寄存器。SBUF寄存器,它是两个独立的接收器,发送缓冲器,就可以同时发送和接收数据,通过指令缓存读写操作,两个独立的收发器的控制信号RXDTXD,实现全双工。串行数据转换为串行输入注册完成后,自动接收数据并行加载SBUF。当数据写入SBUF开始串行数据传输,与前面插入TB8一起,通过设置波特率的连续输出[11]。4.2.2数据发送与接收图4.8传送数据格式图4.9数据输出时序图图4.10数据输入时序图4.3温度传感器4.3.1简介温度传感器是一种最常用的各种传感器,随着科学技术的进步,像老热电偶温度传感器,电阻温度传感器以缓慢的速度退出市场。美国DALLAS半导体推出DS18B20,它仅占用一个微控制器I/O接口,而不是任何外围装置,直接转换成数字信号,串行传输模式码。现代已经数字温度传感器体积小,简单的接口,广泛应用领域的生产实践,对我们的社会生活提供便利。现代仪器的发展,小型化、数字化、高集成正成为一个重要的传感器的发展方向。DS18B20温度传感器是最常见的一种,它被广泛使用,因为优秀的表现,这是一个小型、廉价、抗干扰能力强、低电压、低功耗,通常用于电缆温度、锅炉温度和其他场景。存储器和控制器存储器和控制器64位ROM和单线接口高速缓存存储器温度灵敏元件8位CRC生成器电源检测低温触发器高温触发器配置寄存器图4.11内部结构图DS18B20的地址序列码是64位ROM,这样实现一条总线能连接传感器,使其工作。由转换符号提供温度测量通过转换获得12位数据,存储在RAM的8位。如果5位是0,温度为大于0。4.3.2技术性能单线接口实现与微处理器的通信。温度范围适用于大多数的场景,但有错误。PVC电缆可以直接连接到电源插座或出口箱,方便连接到其他电器设备。支持多网络功能,它可以多个并行,多点温度测量在相同的时间,但也有缺点增加信号不稳定。当没有任何外部元件,串行传输测量中使用[12]。4.3.3结构与引脚广泛应用的DS18B20,64芯片的内部结构、温度传感器、报警触发,配置的存储。DQ说是数字信号输入、输出接地接地,VDD代表电源侧。温度转换DS18B20由通信协议和单片机控制。温度传感器DS18B20管脚图4.8,原理图4.9如下所示。图4.8管脚图图4.9原理图5显示部分5.1LCD1602LCD1602称为工业字符型液晶,可以显示32个字符同时,2行16列,可以显示字符和数字。表5.11602液晶主要参数信息显示容量16×2个字符芯片工作电压4.5~5.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95×4.35(W×H)mm5.1.1管脚功能它有一个标准的16针接口。其中,所述第一口,所述VSS代表电源的接地端。第五口,RW代表写入信号端子,高电平表示读操作,0低电平表示2端脚的写入操作,VCC表示正电源为5V。第6,EN表示使能端子,高电平由读出的信息表示。第7-14,D0-D7表示管8位双向数据终端。第三脚,V0表示液晶显示对比度调整的结束;4个引脚。RS指示寄存器选择,高电平表示数据寄存器1,逻辑0表示指令寄存器中。15,16表示空脚,15由背光源的正极表示的,该负电极是由背光源的脚16来表示。1602型液晶接口信号说明如表5.2所示[13]。表5.21602液晶接口信号说明编号符号引脚说明编号符号引脚说明1VDD电源正极1D2数据口2VSS接地2D3数据口3RS数据/命令选择段3D4数据口4VO液晶显示对比度调节端4D5数据口5E使能信号5D6数据口6DO数据口6D7数据口7D1数据口7BLA背光电源正极8R/W读写选择端8BLK背光电源负极5.1.2主要特征该芯片体积小,功耗低,显示内容丰富,仪器和低功耗系统的应用中使用。十六进制的ASCII码的液晶字符发生器的模块1602内读出和写入地址,存储器存储的地址码。图5.11602液晶写操作时序图写顺序方法具有以下几个步骤,首先,由RS的数据或命令输入来确定。写数据就是指你接下来想显示什么内容。在读写端的低电平就表示写模式。在数据线传递数据或者命令。接着给E一个高脉冲将数据传送入1602液晶,这样完成了写操作步骤。基本的操作程序,分为读状态、读数据,写命令,写数据四个步骤执行。控制器内部带有80BIT的RAM缓存区,对应关系如下图5.2所示。图5.21602液晶内部RAM地址映射图当我们在任意区域(包括11-0F,40-4F)写入数据时,液晶都可及时显示。但是若写入区域在10-27,50-67之间时,必须需要输入指令才能正常显示。5.2显示电路STC89C51P3.6P3.7访问74ls00输入与非门芯片来控制显示的读/写允许信号,显示STC89C51P0口的八根数据总线实现数据传输,在展示V0口后电位计、LCD对比度与温度和相应的变化将会改变,所以添加电位器可以调整LCD的对比度。在STC89C51P3.6P3.7访问和4-74ls00的输入与非门芯片来控制显示的读/写允许信号。以STC89C51的P0口八根数据总线监视,实现数据传输,液晶的显示将随温度改变,调整显示正常[14]。图5.3收发系统显示电路6软件设计本系统主要由一个无线数据收发器,STC89C51微控制器,显示器和按键,并且它的收发器和串行通讯端口之间。它是服务于这一目的的无线数据传输系统的各个部分。在控制系统微控制器STC89C51,nRF401的芯片发射/由控制程序中,当按钮被按下的控制传输,来传输nRF401的状态下,当nRF401的在接收状态总是保持接收模式。RXD和TXD端子DOUT,DIN连接到微控制器,作为发送和接收数据的传输。TXEN该端子连到发送/接收端,由微控制器中的控制程序的结束。6.1主程序当执行电气设备,液晶微控制器寄存器初始化,设置串行端口和波特率控制,然后进入键盘扫描器和一个接收器。如果按下一个按钮时,相应的键的子程序被执行;如果微控制器以确定接收到的数据是否通过液晶发送,则处理前进到CRC,如果数据是信息正确显示。主程序流程图见图6.1。每次接收数据时,通过液晶显示启动校准,正确的信息[15]。开始开始初始化设置串口工作方式NYNN判断按键按下执行相应的程序判断是否接收校验正确数据处理显示扫描键盘,同时判断是否有数据接收Y图6.1主程序流程图6.2液晶显示子程序液晶显示模块工作原理是,采用逐个位数扫描的方式进行数码管温度显示。管脚接口输入显示代码,对应着LED各个电平高低。因此LED在高位时被点亮,剩余全熄灭。依照此原理,第一组引脚的状态,然后初始化数码管,从高至低依次显示,在这个过程中的短暂延迟。液晶显示子程序流程图见图6.2。入口入口初始化写入显示设置命令选择延时1ms显示RAM地址YN延时1ms检测信号写入相应的数据数据显示完毕回主程序图6.2液晶显示子程序流6.3数据收发子程序以STC89C5单片机nRF401收发机状态,完成解码,NRF401芯PWR表示高电平,FREQ表示低电平,控制单片机STC89C51与nRF401,使其一直保持在接收状态。数据收发子程序流程图见图6.3[16]。入口入口nRF401为接收按键nRF401发射数据发射YN键盘扫描图6.3数据收发子程序流程图6.4键盘子程序当一个键被按下,程序确定按钮被按下时启动,我们可以通过按钮K0、K1、K2、K3,K4自定义报警限制在任何时候,一旦温度超过极限值,接收单片机报警系统开始。此程序应用精度高,测温范围广,报警及时,适用场合多变。键盘子程序流程图如下图6.4。按键按下按键按下判断哪个按键按键1按键4按键3按键2下调数值上调数值报警选择校验图6.4键盘子程序流程图7测试结果及分析7.1硬件电路测试控制模块,通过接口控制无线模块,具体测试步骤如下所示,(1)按下开关按钮和操作步骤,观察LCD显示是否正确地对应的数值;每个模块焊接安装,导线的物理连接,然后进行审核。然后观察相应于接收端是否同步显示的值。单片机电源线路是否连接到电源板,注意接地的方法是正确与否,然后检查是否相应的管脚对应正确。(2)默认的开发板已经收到开发板测试程序,需要烧写程序到单片机,每个模块焊接安装,导线的物理连接,然后进行审核。(3)启动测试,给单片机通电测试,主要是看单片机控制模块能否正常收发从串口传递的信息。将单片机串口连接电脑,将串口程序写入STC89C51,然后进行软件测试,如果以上测试完成即可开始对NRF401测试。连接后,按照程序看接收发送状态是否正常[17]。7.2系统测试7.2.1软件测试(1)调试软件主要是进行KEILuVision5,新建完成后;(2)把相关.hex文件,烧到单片机中;(3)检查软件是否达到所需的功能;(4)把功能用程序检测,然后修改编译,给出最终所需的程序代码。7.2.2功能测试及分析通过测试系统的数据传输能力,判断传输和接收数据是否准确可靠,确保每个模块都工作。在硬件连接正确的基础上,使用nRF401接收和传输串行数据收到良好效果。STC89C51单片机为核心,使用温度传感器DS18B20温度测量系统,使用NRF24L01无线温度传输。系统测量范围是0到99.9摄氏度,测量精度是1/2的程度。在主机第一要设定温度报警值测试,按设定按钮,以增加或上下限报警值降低温度设定,具有掉电保存功能。当从机测试环境温度不在主机设置的温度范围内时,蜂鸣器报警,二极管红光同时提醒[18]。8结论本毕业设计用STC89C51为控制核心,无线传输模块,温度传感器等边缘元件一同组合完成了数据传输系统的整体设计,根据NRF401的优点,设计出一种利用51单片机控制软硬件,实现数据传输,采集,处理,结果显示等功能。相比有限传输方式无线数据传递的时效性更高,稳定可靠的优势完全发挥出来。相比当前流行的SIM,ZIGBEE等手段,本系统设计的无线数据传输系统,不仅适用LED显示屏的更新,这种思路设计可以投入实际应用,大多数的短距离无线数据收发领域,这点看来是具有较好的市场价值。在这个设计中,经过多次软件编程和调试也验证了系统的整体稳定性,过程中一些代码不能达到设计预期功能,经过反复测试,最终解决了问题,让自己也感觉动手能力得到提高。致谢随着大学的毕业设计即将结束,这也意味着我在北京理工大学珠海学院的大学生涯也即将结束。在这段时间里,我的自身能力也得到了很大的提高,包括对无线传输系统知识的运用,以及对技术前景的了解等,都得益于老师朋友的大力帮助。在毕业设计过程中,各种编程方法都有了更进一步的学习,开阔了眼界,拓展了知识面,也提高了对知识的综合应用能力,提升了学习知识的浓厚兴趣。在我本科四年学习过程中,与许多的老师朋友,建立了浓厚的师生情谊,每当遇到挫折困难时,他们总会站出来帮我。最后感谢大学的所有老师,他们用心的帮助我大学生活有着难忘的回忆,尤其是信息学院的孟颖老师,是他让我自由发挥自己的毕业设计课题。最后,再一次感谢所有帮助过我的人,我衷心的祝福你们。参考文献[1]黄智伟无线数字收发电路设计,第2版,电子工业出版社,2004年,253-269.[2]WUXunweiLowpowerDCcircuitsemployingACpowersupply,SCIENCEINCHINA(INFORMATIONSCIENCES),2002,Vol.45No.3,232.[3]苗长云,沈保锁,窦晋江等.现代通信原理,第1版,电子工业出版社,2005年,174-177.[4]BehrouzForouzan.IntroductiontoDataCommunicationsandNetworking,FirstEdition,mechanicindustrybookconcern,1999,121-125.[5]KavehPahlavan.NordicnRF401ProductSpecification,Nordiccorporation,2000,36.[6]NigelBrooke.串行数据标准的选择与使用,电子产品世界,2000年,10月,31-32.[7]RichardG.lyons.UnderstandingDigitalSignalProcessing,BradfordUniversity,2001,36-37.[8]Tugal.D.A,Tugal.0.DataTransmission-analysisDesignApplications,Florence,Italy,2004,32.[9]赵景波,刘金辉,荣盘祥等.ProtelDXP基础与实例培训教程,第1版,中国电力出版社,2005年,119-144.[10]臧铁钢,唐才峰,陈学锋等.ProtelDXP电路设计与应用,第1版,中国铁道出版社,2004年,172-179.[11]刘立枫,赵民建.信号接收机,中国无线电电子学文摘,2005年,31期,45-47.[12]周仕凤.用MCS-51做LCD接口实验,电子世界,2002年,第8期,37.[13]李广第,朱月秀,王秀山等.单片机基础,第2版,北京航空航天大学出版社,2001年,40-70.[14]杨振江,杜铁军,李群等.流行单片机实用子程序及应用实例,第1版,西安电子科技大学出版社,2002年,102-115.[15]张俊谟.MCS-51和80C51系列单片机,电子世界,2001年,第8期,30.[16]蔡莹.液晶技术与电子纸,电子产品世界,2003年,11上半月,38-40.[17]康华光,邹寿彬.电子技术基础,第1版,高等教育出版社,2002年,191-197.

[18]黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程,第1版,电子工业出版社,2004年,73-80.附录无线收发系统电路图部分系统程序源代码#include<reg52.h>#include"eepom52.h"#defineucharunsignedchar#defineuintunsignedint#include"nrf24l01.H"//数码管段选定义012345 6 7 8 9 ucharcodesmg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //数码管位定义ucharcodesmg_we[]={0x7f,0xbf,0xdf,0xef};uchardis_smg[8]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; ucharsmg_i=3;//显示个位数数码管sbitbeep=P2^6;//蜂鸣器I/O口uchara_a;uinttemperature;//温度sbitled=P2^7;bitflag_300ms;ucharkey_can; //按键值ucharmenu_1;//菜单设计uintt_high=300,t_low=100;bitflag_lj_en; //按键连加bitflag_lj_3_en; ucharkey_time,flag_value;//中间变量bitkey_500ms;ucharflag_clock;ucharzd_break_en,zd_break_value;//退出界面1ms延时函数voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}voiddelay_uint(uintq){ while(q--);}数码显示函数voiddisplay(){ uchari; for(i=0;i<smg_i;i++) { P1=0xff; //消隐 P3=smg_we[i]; //位选 P1=dis_smg[i]; //段选 delay_1ms(1); // P3=0xff; //位选 } }保存数据到单片机voidwrite_eepom(){ SectorErase(0x2000); byte_write(0x2000,t_high%256); byte_write(0x2001,t_high/256); byte_write(0x2002,t_low%256); byte_write(0x2003,t_low/256); byte_write(0x2055,a_a); }从单片机读取数据voidread_eepom(){ t_high=byte_read(0x2001); t_high<<=8; t_high|=byte_read(0x2000); t_low=byte_read(0x2003); t_low<<=8; t_low|=byte_read(0x2002); a_a=byte_read(0x2055);}初始化程序(定时器)voidtime_init() { EA=1; //开总中断 TMOD=0X01; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时}按键函数voidkey(){ staticucharkey_new=0,key_old=0,key_value=0; if(key_new==0) { if((P3&0x0f)==0x0f) key_value++; else key_value=0; if(key_value>=10) { write_eepom(); key_value=0; key_time=0; key_new=1; flag_lj_en=0; flag_lj_3_en=0; flag_value=0; //清零 } } else { if((P3&0x0f)!=0x0f) key_value++;//按下按键 else key_value=0; if(key_value>=7) { key_value=0; key_new=0; flag_lj_en=1; //连加 zd_break_en=1; zd_break_value=0; } } key_can=20; if(key_500ms==1) { key_500ms=0; zd_break_en=1; zd_break_value=0; key_new=0; key_old=1; } if((key_new==0)&&(key_old==1)) { switch(P3&0x0f) { case0x0e:key_can=4;break; //k1键值 case0x0d:key_can=3;break; //k2键值 case0x0b:key_can=2;break; //k3键值 case0x07:key_can=1;break; //k4键值 } dis_smg[0]=smg_du[key_can]; } key_old=key_new; }按键处理数码管显示函数voidkey_with(){ if(key_can==4) { menu_1++; if(menu_1>=3) { menu_1=0; } if(menu_1==0) { dis_smg[0]=smg_du[temperature%10]; //温度小数显示 dis_smg[1]=smg_du[temperature/10%10]&0x7f;//温度个位显示 dis_smg[2]=smg_du[temperature/100%10]; //温度十位显示 smg_i=3; } if(menu_1==1) { dis_smg[0]=smg_du[t_high%10]; //小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//个位显示 dis_smg[2]=smg_du[t_high/100%10]; //十位显示 dis_smg[3]=0x89; smg_i=4; } if(menu_1==2) { dis_smg[0]=smg_du[t_low%10]; //小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//个位显示 dis_smg[2]=smg_du[t_low/100%10]; //十位显示 dis_smg[3]=0xc7; smg_i=4; } } if(menu_1==1) //设置高温报警 { if(key_can==3) { if(flag_lj_3_en==0) t_high++; //按键按下未松开自动加三次 else t_high+=10; //按键按下未松开自动加三次之后每次自动加10 if(t_high>990) t_high=990; dis_smg[0]=smg_du[t_high%10]; //小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//个位显示 dis_smg[2]=smg_du[t_high/100%10]; //十位显示 dis_smg[3]=0x89; //H } if(key_can==2) { if(flag_lj_3_en==0) t_high--; //按键按下未松开自动加三次 else t_high-=10; //按键按下未松开自动减三次之后每次自动减10 if(t_high<=t_low) t_high=t_low+1; dis_smg[0]=smg_du[t_high%10]; //小数显示 dis_smg[1]=smg_du[t_high/10%10]&0x7f;//个位显示 dis_smg[2]=smg_du[t_high/100%10]; //十位显示 dis_smg[3]=0x89; //H }// write_eepom(); } if(menu_1==2) //低温报警 { if(key_can==3) { if(flag_lj_3_en==0) t_low++; else t_low+=10; if(t_low>=t_high) t_low=t_high-1; dis_smg[0]=smg_du[t_low%10]; //取小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_low/100%10]; //取十位显示 dis_smg[3]=0xc7; //L } if(key_can==2) { if(flag_lj_3_en==0) t_low--; else t_low-=10; if(t_low<=10) t_low=10; dis_smg[0]=smg_du[t_low%10]; //取小数显示 dis_smg[1]=smg_du[t_low/10%10]&0x7f;//取个位显示 dis_smg[2]=smg_du[t_low/100%10]; //取十位显示 dis_smg[3]=0xc7; //L }// write_eepom(); } }报警函数voidclock_h_l(){ if((temperature<=t_low)||(temperature>=t_high)) { flag_clock=1; } else { flag_clock=0; beep=1; } }voidmain(){ time_init();//初始化定时器 read_eepom(); if(a_a==0xff) { t_high=300; t_low=100; a_a=1; write_eepom(); } delay_1ms(650); dis_smg[0]=smg_du[temperature%10]; //温度小数显示 dis_smg[1]=smg_du[temperature/10%10]&0x7f;//温度个位显示 dis_smg[2]=smg_du[temperature/100%10]; //温度十位显示 CE=0; SCK=0; CSN=1; RX_Mode();led=0; while(1) { key(); //按键程序 if(key_can<10) { key_with(); //报警温度 } display(); //显示函数 if(flag_300ms==1) //300ms处理一次温度程序 { led=1; if(nRF24L01_RxPacket(Rx_Buf)) { led=0; temperature=256*Rx_Buf[1]+Rx_Buf[0]; //温度值 clock_h_l();//报警函数 } if(flag_clock==1) beep=~beep; flag_300ms=0; if(menu_1==0) { smg_i=3; dis_smg[0]=smg_du[temperature%10]; //温度小数显示 dis_smg[1]=smg_du[temperature/10%10]&0x7f;//温度个位显示 dis_smg[2]=smg_du[temperature/100%10]; //温度十位显示 } } }}中断服务程序(定时器)voidtime0_int()interrupt1{ staticucharvalue; TH0=0x3c; TL0=0xb0;//50ms value++; if(value%6==0) { flag_300ms=1; //300ms value=0; } if(flag_lj_en==1) //按下按键使能 { key_time++; if(key_time>=10)//500ms { key_time=0; key_500ms=1;//500ms flag_value++; if(flag_value>3) { flag_value=10; flag_lj_3_en=1;//3次后1.5秒连加大些 } } }}

电脑不启动故障诊治了解电脑启动的过程在诸多电脑故障中,无法正常启动是最令用户头痛的事了。笔者长期从事维护电脑的工作,在这个方面积累了一些经验,现在就将这些经验整理归纳出来与朋友们分享。本文将以家用电脑和windows98操作系统为基础,介绍电脑无法正常启动故障的诊治。要想准确地诊断电脑不启动故障,首先要了解的起动过程,当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还没有完全稳定,主板控制芯片组会根据CMOS中的CPU主频设置向CPU发出一个Reset(重置)信号,让CPU初始化,电压完全稳定后,芯片组会撤去Reset信号,CPU马上从地址FFFF0H处执行一条跳转指令,跳到系统BIOS中真正的启动代码处。系统BIOS首先要做的事情就是进行POST(PowerOnSelfTest,加电自检)。POST的主要任务是检测系统中的一些关键设备(电源、CPU芯片、BIOS芯片、定时器芯片、数据收发逻辑电路、DMA控制器、中断控制器以及基本的64K内存和内存刷新电路等)是否存在和能否正常工作,如内存和显卡等。自检通过后,系统BIOS将查找显示卡的BIOS,由显卡BIOS来完成显示卡的初始化,显示器开始有显示,自此,系统就具备了最基本的运行条件,可以对主板上的其它部分进行诊断和测试,再发现故障时,屏幕上会有提示,但一般不死机,接着系统BIOS将检测CPU的类型和工作频率,然后开始测试主机所有的内存容量,内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,这些设备包括:硬盘、CD-ROM、软驱、串行接口和并行接口等连接的设备,大多数新版本的系统BIOS在这一过程中还要自动检测和设置内存的相关参数、硬盘参数和访问模式等。标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中已安装的即插即用设备。每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。最后系统BIOS将更新ESCD(ExtendedSystemConfigurationData,扩展系统配置数据)。ESCD数据更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是Windows最基本的系统文件。IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作,一切顺利结束,电脑正常启动。根据故障现象诊治了解电脑启动的过程,故障就好判断了,下面我们就根据故障现象开始诊治了:现象一:系统完全不能启动,见不到电源指示灯亮,也听不到冷却风扇的声音。这时,基本可以认定是电源部分故障,检查:电源线和插座是否有电、主板电源插头是否连好,UPS是否正常供电,再确认电源是否有故障,最简单的就是替换法,但一般用户家中不可能备有电源等备件,这时可以尝试使用下面的方法(注意:要慎重):先把硬盘,CPU风扇,或者CDROM连好,然后把ATX主板电源插头用一根导线连接两个插脚(把插头的一侧突起对着自己,上层插脚从左数第4个和下层插脚从右数第3个,方向一定要正确),然后把ATX电源的开关打开,如果电源风扇转动,说明电源正常,否则电源损坏。如果电源没问题直接短接主板上电源开关的跳线,如果正常,说明机箱面板的电源开关损坏。现象二:电源批示灯亮,风扇转,但没有明显的系统动作。这种情况如果出现在新组装电脑上应该首先检查CPU是否插牢或更换CPU,而正在使用的电脑的CPU损坏的情况比较少见(人为损坏除外),损坏时一般多带有焦糊味,如果刚刚升级了BIOS或者遭遇了CIH病毒攻击,这要考虑BIOS损坏问题(BIOS莫名其妙的损坏也是有的),修复BIOS的方法很多杂志都介绍过就不重复了;确认CPU和BIOS没问题后,就要考虑CMOS设置问题,如果CPU主频设置不正确也会出现这种故障,解决方法就是将CMOS信息清除,既要将CMOS放电,一般主板上都有一个CMOS放电的跳线,如果找不到这个跳线可以将CMOS电池取下来,放电时间不要低于5分钟,然后将跳线恢复原状或重新安装好电池即可;如果CPU、BIOS和CMOS都没问题还要考虑电源问题:PC机电源有一个特殊的输出信号,称为POWERGOOD(PG)信号,如果PG信号的低电平持续时间不够或没有低电平时间,PC机将无法启动。如果PG信号一直为低电平,则PC机系统始终处于复位状态。这时PC机也出现黑屏、无声响等死机现象。但这需要专业的维修工具外加一些维修经验,因此,建议采用替换法;电源没有问题就要检查是否有短路,确保主板表面不和金属(特别是机箱的安装固定点)接触。把主板和电源拿出机箱,放在绝缘体表面,如果能启动,说明主板有短路现象;如果还是不能启动则要考虑主板问题,主板故障较为复杂,可以使用替换法确认,然后更换主板。现象三:电源指示灯亮,系统能启动,但系统在初始化时停住了,而且可以听到嗽叭的鸣叫声(没有视频):根据峰鸣代码可以判断出故障的部位。ccid_page/AwardBIOS1短声:说明系统正常启动。表明机器没有问题。2短声:说明CMOS设置错误,重新设置不正确选项。1长1短:说明内存或主板出错,换一个内存条试试。1长2短:说明显示器或显示卡存在错误。检查显卡和显示器插头等部位是否接触良好或用替换法确定显卡和显示器是否损坏。1长3短:说明键盘控制器错误,应检查主板。1长9短:说明主板FlashRAM、EPROM错误或BIOS损坏,更换FlashRAM。重复短响:说明主板电源有问题。不间断的长声:说明系统检测到内存条有问题,重新安装内存条或更换新内存条重试。AMIBIOS1短:说明内存刷新失败。更换内存条。2短:说明内存ECC较验错误。在CMOS中将内存ECC校验的选项设为Disabled或更换内存。3短:说明系统基本内存检查失败。换内存。4短:说明系统时钟出错。更换芯片或CMOS电池。5短:说明CPU出现错误。检查CPU是否插好。6短:说明键盘控制器错误。应检查主板。7短:说明系统实模式错误,不能切换到保护模式。8短:说明显示内存错误。显示内存有问题,更换显卡试试。9短:说明BIOS芯片检验和错误。1长3短:说明内存错误。内存损坏,更换。1长8短:说明显示测试错误。显示器数据线没插好或显示卡没插牢。现象四:系统能启动,有视频,出现故障提示,这时可以根据提示来判断故障部位。下面就是一些常见的故障提示的判断:一、提示“CMOSBatteryStateLow”原因:CMOS参数丢失,有时可以启动,使用一段时间后死机,这种现象大多是CMOS供电不足引起的。对于不同的CMOS供电方式,采取不同的措施:1.焊接式电池:用电烙铁重新焊上一颗新电池即可;2.钮扣式电池:直接更换;3.芯片式:更换此芯片,最好采用相同型号芯片替换。如果更换电池后时间不长又出现同样现象的话,很可能是主板漏电,可检查主板上的二极管或电容是否损坏,也可以跳线使用外接电池,不过这些都需要有一定的硬件维修基础才能完成。二、提示“CMOSChecksumFailure”CMOS中的BIOS检验和读出错;提示“CMOSSystemOptionNotSet”,CMOS系统未设置;提示“CMOSDisplayTypeMismatch”,CMOS中显示类型的设置与实测不一致;提示“CMOSMemorySizeMismatch”,主板上的主存储器与CMOS中设置的不一样;提示“CMOSTime&DateNotSet”,CMOS中的时间和日期没有设置。这些都需要对CMOS重新设置。三、提示“KeyboardInterfaceError”后死机原因:主板上键盘接口不能使用,拔下键盘,重新插入后又能正常启动系统,使用一段时间后键盘无反应,这种现象主要是多次拔插键盘引起主板键盘接口松动,拆下主板用电烙铁重新焊接好即可;也可能是带电拔插键盘,引起主板上一个保险电阻断了(在主板上标记为Fn的东西),换上一个1欧姆/0.5瓦的电阻即可。四、自检过程中断在xxxKCache处这表示主板上Cache损坏,可以在CMOS设置中将“ExternalCache”项设为“Disable”故障即可排除。同理,在自检主板部件时出现中断,则可以认为该部件损坏,解决方法一般可以在CMOS中将其屏蔽,如果不能屏蔽该部件最好更换主板。五、提示“FDDControllerFailure”BIOS不能与软盘驱动器交换信息;提示“HDDControllerFailure”,BIOS不能与硬盘驱动器交换信息。应检查FDD(HDD)控制卡及电缆。六、提示“8042GateA20Error”8042芯片坏;提示“DMAError”,DMA控制器坏。这种故障需要更换。七、提示“DisplaySwitchNotProper”主板上的显示模式跳线设置错误,重新跳线。八、提示“KeyboardisLock...Unlockit”键盘被锁住,打开锁后重新引导系统。九、IDE接口设备检测信息为:“DetectingPrimary(或Secondary)Master(或Slave)...None”表示该IDE接口都没有找到硬盘,如果该IDE口确实接有硬盘的话,则说明硬盘没接上或硬盘有故障,可以从以下几方面检查:1、硬盘电源线和数据线是否接触不良,或换一根线试试;2、CMOS设置有无错误,进入CMOS将“PrimaryMaster”、“PrimarySlave”、“SecondaryMaster”三项的的“TYPE”都设置成“Auto”;3、替换法确认硬盘本身有故障。十、IDE接口设备检测信息下面显示“Floppydisk(s)fail(40)”出错信息表示CMOS所指定的软盘驱动器有问题。判断和解决的方法与硬盘相似。现象五:系统不能引导。这种故障一般都不是严重问题,只是系统在找到的用于引导的驱动器中找不到引导文件,比如:BIOS的引导驱动器设置中将软驱排在了硬盘驱动的前面,而软驱中又放有没有引导系统的软盘或者BIOS的引导驱动器设置中将光驱排在了硬盘驱动的前面,而光驱中又放有没有引导系统的光盘,这个都很简单,将光盘或软盘取出就可以了,实际应用中遇到“DiskBootFailure,InsertSystemDiskAndPressEnter”的提示,多数都是这个原因。如果是硬盘不能引导的话一般有两种情况:一种是硬盘数据线没有插好,另一种就是硬盘数据损坏。前者一般多会出现硬盘容量检测不正确和引导时出现死机的现象;后者则是干脆找不到引导文件或提示文件损坏。前者只需重新连接好数据线即可;后者则需要用win98的启动软盘或启动光盘启动,根据实际情况来定:一、提示“Invalidpartitiontable”或“NotFoundany[activepartition]inHDDDiskBootFailure,InsertSystemDiskAndPressEnter”,这说明找不到硬盘活动分区,需要对硬盘重新分区。二、提示“Missoperationsyste”,说明硬盘活动分区需要重新格式化(formatc:/s)。三、提示“InvalidsystemdiskReplacethedisk,andthenpressanykey”或显示“StartingWindows98…”时出现死机,说明硬盘上的系统文件丢失了或损坏,使用“sysc:”,命令传递系统文件给c盘,再将C拷贝给c盘。现象六:硬盘可以引导,但Windows不能正常启动,也不能进入安全模式。这种情况表明Windows98出现了严重的错误,首先,用杀毒软件查杀病毒,看是不是病毒造成的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论