通信工程实习报告_第1页
通信工程实习报告_第2页
通信工程实习报告_第3页
通信工程实习报告_第4页
通信工程实习报告_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、序号(学号):学生实习报告书实习类别单片机应用实习实习地址武汉理工大学信息工程学院学 院信息工程学院专 业通信工程班 级姓 名指导教师年月日实 习 执 行 大 纲一、 实习目的1、巩固单片机原理与应用理论课的理论知识;2、熟悉单片机应用系统的硬件设计及软件设计的基本方法;3、将单片机原理与应用理论课的理论知识应用于实际的应用系统中;4、训练单片机应用技术,锻炼实际动手能力。二、实习纪律与要求1、实习纪律1)参加实习的学生必须按照实习大纲的要求,在指导教师的指导下,全面完成实习任务; 2)听从指导教师安排,严格遵守实习纪律;3)因故在实习期间缺勤累计超过规定时间的三分之一,不得参加本次实习考核,

2、但可在补足所缺天数后再给予考核并评定实习成绩。2、基本要求1)利用PROTEL等软件进行硬件设计;2)利用Keil uV4软件完成应用系统软件设计;3)利用PROTEUS软件进行仿真设计;4)完成单片机最小系统和应用系统电路板的焊接;5)对电路进行调试;6)利用stc-isp软件完成在系统编程、下载,并完成系统软件调试;7)题目由指导教师提供;8)要求每个学生单独完成硬件软件设计、仿真、焊接、调试任务;9)写出实习日志,实习日志主要包括以下内容:基本原理、方案论证、硬件设计、软件设计(带流程图、程序清单)、仿真结果、实物运行结果照片、结论、参考文献等;10)实习完成后通过答辩; 11)答辩时交

3、实习报告电子文档,通过答辩后根据修改意见修改并打印、装订成册。三、实习地点武汉理工大学信息工程学院通信实验室。四、实习时间2012年6月15日-2012年6月21日。五、实习内容1、实习所需主要材料(供参考)(1)单片机最小系统部分序号名称数量1风帆电子科技学习板1块(2)下载电路部分序号名称数量1风帆电子科技学习板1块2MAX232 1片30.1uF瓷片电容 4只4DB9插座 1只5RS-232C串口电缆(9针)1根(3)扩展电路部分 扩展电路部分材料根据设计方案确定。我的学习板只需要扩展键盘和前置整形放大电路模块。(4)软件部分序号名称数量1电路设计软件PROTEL1套2编程软件Keil

4、uV41套3仿真软件PROTEUS1套4下载软件stc-isp 1套(5)工具序号名称数量1PC(带RS-232C口)1台2万用表1块3电烙铁1只4焊锡、松香等若干2、任务(1)利用上述材料完成单片机最小系统的设计、焊接、调试;(2)完成ISP下载电路的设计、焊接;(3)完成应用系统扩展电路部分的设计、焊接、调试,应用系统扩展电路的具体要求如下:1)键盘、显示电路利用单片机最小系统、6个7段LED数码管、12个按键,设计制作一个键盘、显示电路。可以使用8279键盘显示接口电路,也可以使用单片机的并行接口作为键盘显示接口。2) 数字时钟在键盘、显示电路的基础上完成一个数字时钟的设计,完成以下功能

5、:a. 要求以24小时计时方式显示时、分、秒;b. 时、分、秒可以通过按键分别调整。3) 数字温度计在上题的硬基础上,制作一个数字温度计。完成以下功能:a. 利用DS18B20可编程1-Wire数字温度传感器芯片,或利用AD590温度传感器芯片和A/D转换器芯片采集温度温度信号;b. 当按下键盘上的温度显示按键时将实时温度信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;c. 通过串行通信的方式,将采集到的实时温度信息送至第二个单片机系统,并在二个单片机系统显示实时温度。4) 数字频率计在上题的硬基础上,制作一个数字频率计。完成以下功能:a. 利用MCU设计一个数字频

6、率计,用于检测0500kHz周期信号的频率,输入信号幅度范围:0.110V;b. 当按下键盘上的频率显示按键时将测量的频率信息显示在LED显示器上,当按下键盘上的时钟显示按键时,恢复时钟的正常显示;(4)利用仿真软件完成系统仿真工作;(5)完成系统软件的设计,包括程序结构设计、流程图绘制、程序设计。六、实习具体安排序号阶段内容所需时间1方案设计1天2硬件设计1天3软件设计1天4系统仿真1天5系统调试2天6答辩1天合 计7天七、实习考核学生必须按照实习大纲的要求完成实习的全部内容,并提交实习报告。指导教师应对学生进行实习考核并评定实习成绩。实习成绩评定按优、良、中、及格和不及格五级分制。1、对报

7、告的要求实习报告要求逻辑清晰、层次分明、书写整洁。报告包括标题(中英文)、提要、正文(包括项目要求与说明; 软件流程分析;调试分析;实验数据分析;答辩;成绩评定)、附录(图纸.程序清单或软盘) 。实习要求须每人一份,独立完成。2、对图纸的要求图纸要求准确全面并与任务要求完成的内容一致。3、评分标准1选题合理、目的明确(10分)2方案正确,具有可行性、创新性(20分)3结果(如:硬件成果、软件程序、仿真结果)(20分)4态度认真、学习刻苦、遵守纪律(15分) 5报告的规范化、参考文献充分(不少于5篇)(10分)6答辩(25分)总分(100分)备注:成绩等级:优(90分100分)、良(80分89分

8、)、中(70分79分)、及格(60分69分)、60分以下为不及格。概 况实习单位: 武汉理工大学信息工程学院 参观考察单位:(1) (2) (3) (4) (5) (6) 实习开始时间:20 年 月 日,实习时间共 7 天。 完成实习报告时间:20 年 月 日。实 习 日 记 第一天单片机的基本知识单片机即单片微型计算机是将计算机主机CPU、内存和I/O接口集成在一小块硅片上的微型机。单片机为工业测控而设计又称微控制器MCU。具有集成度高、可靠性高、性价比高三大优势。单片机主要应用于工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器等特别适合于嵌入式微型机应用系统。 一片MCS-51

9、单片机芯片内包含一个8位CPU、振荡器和时钟电路、至少128字节的内部数据存储器,可寻址外部程序存储器和数据存储器,21个特殊功能寄存器,4个并行I/O接口,2个16位定时/计数器,至少5个中断源提供两级中断优先级,可实现两级中断服务程序嵌套。具有有位寻址功能有较强的布尔处理能力。各功能单元包括I/O端口和定时器/计数器等都由特殊功能寄存器SFR集中管理。本次设计采用STC89C52单片机为控制MCU,具有数字时钟、频率计、温度计及温度串口通信的功能,三种功能可以根据矩阵键盘按键切换,执行其中的某一任务,任务执行效率高。本电路采用直流5V电源供电。利用单片机最小系统、6个7段LED数码管、12

10、个按键,设计制作一个键盘、显示电路。数字钟的设计有6位8段LED数码管作正常、调时显示,时间按时分秒排列,并且在按键的作用下可以进行调时,调分,调秒及复位功能。一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也进行一一介绍,该系统可以方便的是实现温度采集和显示,并可以根据需要任意设定上下限报警温度,它使用起来方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工农业生产中的温度测量,也可以当做温度处理模块嵌入其他系统中,作为其他主

11、系统的辅助扩展。基于单片机设计频率计,把待测信号经过放大整形,然后送入单片机,利用定时器0实现1S定时,定时器1进行计数,获的频率值,最后把测得的频率数值送入显示电路里进行显示。51系列单片机是国内目前应用最广泛的一种8位单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用。51系列及其衍生单片机还会在继后很长一段时间占据嵌入式系统产品的低端市场,因此,作为新世纪的大学生,在信息产业高速发展的今天,掌握单片机的基本结构、原理和使用是非常重要的。 了解了这么多知识,我决定好好开始准备单片机的实习,首先得做些准备工作,我复习了单片机的内容,然后查阅相关资料上各个部分的参考电路,对整体电

12、路的设计有了一定的了解。这是对我所学知识一个十分重要综合的考核,掌握了单片机对我今后的发展也是十分重要的。因此,我想努力完成这次的设计,达到实习的目的。实 习 日 记 第二天各模块方案的实现整个系统的硬件设计包含以下几个方面的内容:单片机最小系统的设计,显示模块的设计,按键模块设计,时钟模块设计,温度模块设计,数字频率模块设计,串口通信模块设计。1.单片机最小系统设计单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称MCU。 要使得单片机能够正常工作,那么就需要时钟电路和复位电路。单片机的时钟信号用来提供单片机内各种

13、微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的状态运行。图1 单片机最小系统2.显示模块方案一:采用数码管显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用LCD显示。LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。鉴于本次实习要求,用6个7段数码管作为显示电路,我们采用方案一。3.键盘模块方案一:设计12个独立键盘,按键一端接单片机I/O口,另一端接

14、地。缺点是:占用单片机I/O口较多,优点是程序简单,按键识别简单。方案二:设计3*4矩阵键盘。键盘的行和列分别接单片机的I/O口。优点:占用单片机I/O口少,缺点:按键识别较复杂。 使用3*4矩阵键盘。键盘的行和列分别接单片机的I/O口。优点:占用单片机I/O口少,缺点:按键识别较复杂。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用

15、矩阵法来做键盘是合理的。本设计选择方案二。4.数字时钟模块方案一:方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。而且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。方案二:方案采用Dallas公司的专用时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不

16、大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,可使系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。基于单片机定时器的应用,本设计采用方案一完成数字时钟的功能。5. 数字温度模块方案一:采用热敏电阻传感器。利用热敏电阻随温度变化而显著变化,能直接将温度的变化转换为能量的变化,进而制成温度计。但是其测温传感器比较复杂,而且不易通过编程来控制测温精度,增大系统设计的难

17、度。方案二:采用温度传感器DS18B20。DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。基于DS18B20的以上优点,我们决定选取DS18B20来测量温度。6.数字频率模块方案一:本方案主要以单片机为核心,利用单片机的计数定时功能来实现频率的计数并且利用单片机的动态扫描把测出的数据送到数字显示电路显示。其实原理框图如2所示信号放大电路信号整形单片机AT89S51电路数字显示电路图2 方案一原理图方案二:本方案主

18、要以数字器件为核心,主要分为时基电路,逻辑控制电路,放大整形电路,闸门电路,计数电路,锁存电路,译码显示电路七大部分。其原理框图如图3所示逻辑控制电路译码显示器锁存器闸门电路计数器时基电路放大整形电路图3 方案二原理框图7.串口通信模块通信有并行和串行两种方式。在单片机系统以及现代单片机测控系统中,信息的交换多采用串行通信方式。串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,此时只需要一条数据线,外加一条公共信号线和若干控制信号线。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕。 图4 单片机的串行接口结构 串行通信的过程是:发送时,要把并行数据变成串行

19、数据发送到线路上去,接收时,要把串行信号再变成并行数据,这样才能被计算机及其他设备处理。串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成设备,但数据的传送控制比并行通信复杂。串行通信又有两种方式:异步串行通信和同步串行通信。MCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器刚只能写入不能读出。这个通信口既可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可以方便地构成标准的RS-2

20、32接口。80C51单片机的串行口的结构如图4所示。串行口有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。 实习的第二天,我首先查找了关于我们单片机设计要求的一些资料,确定了他的各个模块的实现方式,在网上找到了不少能够实现我们系统的方案,然后对这些方案进行了比较,发现他们各有优缺点,但是总体思路都是一致的。经过仔细的深思熟虑后,我确定了我所要做的整个系统的实现方案,列出了各个模块的实现原理,以及初略的画出了电路的原理图。 在各个模块的介绍中,虽然所用的单片机已经集成了各个模块不需要再进行选择,但是

21、自己还是找了很多相关资料,比较了一下优缺点。例如:如果设计12个独立键盘,按键一端接单片机I/O口,另一端接地,就会占用单片机较多I/O口,不符合设计要求;温度计部分若采用热敏电阻传感器,利用热敏电阻随温度变化而显著变化,能直接将温度的变化转换为能量的变化,进而制成温度计。但是其测温传感器比较复杂,而且不易通过编程来控制测温精度,增大系统设计的难度。还有本次实习的主要母的是单片机编程,综合以上所有因素,各个模块的设计是满足要求的。实 习 日 记 第三天总体方案论证1.总体设计框图本系统主机部分由单片机最小系统、显示电路、按键、温度传感器、蜂鸣器、放大整形电路、分频电路等组成。单片机选择AT89

22、C52。从机部分由单片机最小系统、显示电路组成。单片机选择AT89C52。 单片机芯片AT89C52复位电路晶振控制 数码管显示温度检测电路DS18B20放大整形电路蜂鸣器键盘从机AT89C52最小系统及显示 图5总体设计方框图 由图5可知将各个模块进行一定的整合,我们就可以得到这个单片机系统的整体设计方框图了,在这里我们可以清楚的看到各模块与主机的连接,对于之后的电路连接和软件编程都是有很大帮助的。2.各部分的工作原理2.1.数字钟工作原理本设计中的电子钟的核心是AT89S52单片机,其内部带有8KB在线可编程Flash存储器的单片机,无须外扩程序存储器,硬件电路主要由四部分构成:时钟电路,

23、复位电路,键盘以及显示电路。时钟电路是电子表硬件电路的核心,没有时钟电路,电子表将无法正常工作计时。本系统时钟电路采用的晶振的频率为12MHz,定时器采用的是定时器0工作在方式1定时,用于实现时、分、秒的计时,定时时间为50ms。每20次中断即1s延时。复位电路可使电子表恢复到初始状态。键盘可对电子表进行开启、停止,还能实现时、分、秒的显示及设定等操作。显示电路由1个共阴级6位一体LED数码管构成,它的段控端和位控端通过锁存器74HC573与AT89S52单片机的P0口相连,P0口分时复用,分别送段选信号和位选信号。显示器可使电子表显示出时、分、秒。 多功能电子表的计时原理为:上电后,按下Ti

24、me键后,电子表从00:00:00开始计时。当定时器0的定时时间满50ms后,定时器0溢出一次,溢出满20次后,电子表的秒加1,满60秒后,分加1,满60分后,时加1,满24时后,电子表重新从00:00:00开始计时。在此过程中,按下时钟功能键Time Founction,时钟将停止计时,再按下Time Up和Time Down,可以调整时钟时间。通过时钟功能键可以选择分别调整时、分、秒。再次按下功能键,恢复时钟显示。2.2数字温度计的工作原理 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根

25、据实际要求通过简单的编程实现9-12位的数字值读数方式。DS18B20的性能特点如下:(1)独特的单线接口仅需要一个端口引脚进行通信,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)DS18B20支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点组网测温;(3)无须外部器件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(4)可通过数据线供电,电压范围为3.0-5.5;(5)零待机功耗;(6)温度以9或12位数字,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温;(7)用户可定义报警设

26、置;(8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;(9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;(10)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20的引脚封装图如图6,其中,GND为电源负极,DQ为信号输入输出,VDD为电源

27、正极。 图6 DS18B20引脚封装图 图7高速暂存RAM的结构DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如下图7所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。主机控制DS18B20完成温度

28、转换过程是:每一次读写之前都要将数据线置高位,延时;再对DS18B20进行复位,即将数据总线下拉500us,然后释放;再将数据线拉到高电平,延时等待,DS18B20收到信号后等待16-60us左右,之后发出60-240us的存在低脉冲,主CPU收到此此信号表示复位成功;复位成功后发送一条ROM指令,然后发送RAM指令,这样才能对DS18B20进行预订的读写操作。表1 ROM指令集指令约定代码功能读ROM33H读DS18B20中的编码符合ROM55H发出此命令后,接着发出64位ROM编码,访问单线总线上与该编辑相对应的DS18B20使之做出响应,为下一步对该DS18B20的读写作准备搜索ROM0

29、F0H用于确定挂接在同一总线上的DS18B20个数和识别64位ROM地址,为操作各器件作准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发送温度变换指令告警搜索命令0ECH执行后,只有温度跳过设定值上限或下限的片子才能做出反应表2 RAM指令集指令约定代码功能温度转换44H启动DS18B20进行温度转换读暂存器0BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重调E2RAM0B8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读供电方式0B4H启动DS18B20发送电源供电方式的信号给主CP

30、U 当只有一片DS18B20时,先写跳过读ROM指令CCH,直接向18B20发温度转换命令44H。读取温度值,转换后,将温度值送单片机,再通过P0口,用数码管显示。并且将此温度值通过串口通信,发送到第二个单片机,显示温度。2.3数字频率计的工作原理测频的原理归结成一句话,就是“在单位时间内对被测信号进行计数”。被测信号,通过输入通道的放大器放大后,进入整形器加以整形变为矩形波,并送入主门的输入端3。由晶体振荡器产生的基频,按十进制分频得出的分频脉冲,经过基选通门去触发主控电路,再通过主控电路以适当的编码逻辑便得到相应的控制指令,用以控制主门电路选通被测信号所产生的矩形波,至十进制计数电路进行直

31、接计数和显示。若在一定的时间间隔T内累计周期性的重复变化次数N,则频率的表达式为式: f=N/T (1)本频率计的设计以AT89C52单片机为核心,利用它内部的定时/计数器完成待测信号频率的测量。输入正弦信号先进行放大整形变为矩形脉冲信号,再经分频送入单片机T0引脚,作为计数器T1的外部信号。单片机的数字频率计使用的的是T0与T1 ,T1用作计数器,工作在计数方式1,计数初值TH1=0,TH0=0最大计数为216-1。理论上计数的最大频率为fosc/24, 单片机晶振频率为12MHz。所以测量的最大频率为500KHz。T0作为定时器,工作方式1与时钟的定时复用 。当频率计函数被调用时打开TR1

32、并产生一秒的中断,中断被响应时 关闭计数器TR1。读取TH1,TL1寄存器中的数据计算出脉冲个数。频率frequncy=65536*count+TH1*256+TL1*256,并将此计数值送数码管显示。这是我们单片机课程里学过的东西,算出结果很简单,所以对于一些实践课程来说,理论学习也是很重要的。实 习 日 记 第四天软件设计流程因为C语言具有良好的阅读性和可修改性,因而软件程序全部由C语言编写。1.主程序设计主程序设计思想:程序的开始是对时钟模块的初始化操作,主要是将各个寄存器复位,这样可以避免读取DS1302数据时发生错误。接下来就会进入到一个大循环中,该循环就是整个程序设计的核心思想。首

33、先判断是否有键按下,若有键按下,则跳转至相应的按键程序部分执行,若没有键按下,则显示时钟。在主程序里,使用key_value代表当前获取的按下的按键的值,根据其连接的电路图,将返回值为10的按键设为时间调整按键,返回值为11的按键设为闹钟设定键,其他的以此类推。主程序流程图如图8。图8 主程序流程图 2.调整时间子程序设计调整时间子程序的作用是对时间的值进行调整和修改,使用一个临时变量temp来记录修改到的位数,当修改至某一位时,我们让数码管显示加上小数点来表示。调整时间子程序流程图如图9。图9 调整时间子程序流程图3.温度测试程序设计 考虑到实时测到的温度的数值需要在第二个单片机上进行显示,

34、因而在本子程序的初始化部分就需要对串口寄存器等进行初始化。温度测试程序流程图如图10。图10 温度测试子程序设计流程图4.频率测试子程序设计频率是周期信号每秒钟内所含的周期数值。可根据这一定义采用如图11所示的算法。图12是根据算法构建的方框图。图11 频率测量算法示意图图12 频率测量算法对应框图在测试电路中设置一个闸门产生电路,用于产生脉冲宽度为1s的闸门信号。改闸门信号控制闸门电路的导通与开断。让被测信号送入闸门电路,当1s闸门脉冲到来时闸门导通,被测信号通过闸门并到达后面的计数电路(计数电路用以计算被测输入信号的周期数),当1s闸门结束时,闸门再次关闭,此时计数器记录的周期个数为1s内

35、被测信号的周期个数,即为被测信号的频率。测量频率的误差与闸门信号的精度直接相关,因此,为保证在1s内被测信号的周期量误差在量级,则要求闸门信号的精度为量级。例如,当被测信号为1kHz时,在1s的闸门脉冲期间计数器将计数1000次,由于闸门脉冲精度为,闸门信号的误差不大于0.1s,固由此造成的计数误差不会超过1,符合的误差要求。进一步分析可知,当被测信号频率增高时,在闸门脉冲精度不变的情况下,计数器误差的绝对值会增大,但是相对误差仍在范围内。但是这一算法在被测信号频率很低时便呈现出严重的缺点,例如,当被测信号为0.5Hz时其周期是2s,这时闸门脉冲仍未1s显然是不行的,故应加宽闸门脉冲宽度。假设

36、闸门脉冲宽度加至10s,则闸门导通期间可以计数5次,由于数值5是10s的计数结果,故在显示之间必须将计数值除以10。在这里,我们使用单片机定时产生1s的闸门信号。进入频率测量函数后,若有信号输入,则单片机自动判定所接入信号频率的范围,若该频率大于0且小于999Hz则通过单片机的T0定时器P3.4引脚来采集脉冲电平,由于设定的采集时间即闸门时间为1s,故在1s内计数器T0的计数值即为所测的频率值。当判断的频率大于999Hz且小于15MHz时,单片机通过测量P3.5引脚的跳变沿来进行脉冲计数,所测得的计数值乘以1000即为实际的频率值。当频率测定后,通过单片机计算并显示在数码管上。然后再开始新一轮

37、的频率测定,一直循环。图13 频率测试流程图今天的任务主要是完成对仿真程序的编写。这是一个相当艰巨的任务,预计需要2天来完成。最开始调试时是调试的数码管的模块,首先实现数码管的静态显示,然后循序渐进的实现数码管的动态扫描显示,这一部分因为已经在单片机实验课上做过了,因而现在实现C语言程序也不困难。接下来就是编写按键的程序的,按键的原理还是比较简单易懂的,主要就是利用了一个行扫描和列扫描的概念,把这个了解清楚了,按键的程序就非常容易写了。然后就是时钟程序的编写了,在本次设计中,我使用了DS1302时钟芯片,因为这一次使用到的定时器的资源比较多,因而我希望能够使用一个直接读取时钟的芯片来给我的系统

38、提供时钟。并且提供的这个时钟还不受单片机运行的影响。参看了时钟芯片的datasheet,详细了解了时钟的读取和写入的方法,了解了芯片里面的各个寄存器,那么写程序就不是很困难啦。实 习 日 记 第五天系统仿真1数字时钟功能仿真功能说明:Time键:数码管显示时钟。Time Founction键:功能键。按下1次停止计时,对秒调整;按下2次,对分调整;按下3次,对时调整;按下4次,退出功能调整,继续计时。Time Up键:加1。Time Down键:减1。每按下一次键,产生一次蜂鸣。系统上电后,按下Time键,仿真结果如图14所示:图14 数字时钟仿真结果图测试结果:系统上电后,按下Time键,数

39、码管显示00.00.00,开始计时,每秒加1。按下Time Founction键后,数码管显示暂停。此时按下Time Up/Down键,秒加/减1:再次按下Time Founction键,此时再按下Time Up/Down键,分加/减1;再次按下Time Founction键,此时再按下Time Up/Down键,时加/减1;再次按下Time Founction键,此时退出功能设定,数码管显示继续自动加1。结论:仿真结果能够较好的完成设计要求的任务。2.数字温度计功能和串口通信功能仿真按下温度仿真键,仿真结果如图15所示:图14 数字温度计仿真结果图 测试结果:主、从机显示温度一致,调节DS1

40、8B20上的+/-按键,改变温度,主、从机数码管显示值相应的改变。随着外界温度的变化,温度显示也会发生改变,满足实验要求。结论:仿真结果能够较好的完成数字温度计的要求。3.数字频率计功能仿真按下频率仿真键,数码管后四位用于显示频率,输入信号频率为900HZ,仿真结果如图16所示:图16 数字频率计仿真结果图测试结果:改变输入信号频率,多次测量,结果如下:待测值(Hz)1002003004506008001000测量值(Hz)103204305456605806998结论:由仿真结果知,本设计测量的频率有误差,精度不高。实 习 日 记 第六天 实物测试及分析结果 时间调整及设置的结果如图17所示

41、。结果表明,本系统能够实现智能走时并能够调整设置时间。图17 实物时间调整结果 在调试过程中,时间显示部分需要自己不断尝试,按键较多,熟悉了也就方便调试了。这个部分也还比较容易,出的问题不多也易于解决。温度测试结果如图18所示。按下温度键可以看到,当给温度传感器加热时,温度数据不断增加,结果表明,本系统的温度测量是可以实现的。图18 实物温度测量结果 多次实践表明,温度显示时需要一定时间等待,并不是实物或者程序有问题,而是元件本身的特性,如果温度改变不明显,可以尝试按复位键然后再显示温度,效果比较好。按下Frequancy键,数码管后四位用于显示频率,由于实物拍照时没有函数发生器,输入信号频率

42、为0HZ,仿真结果如图19所示:图19 实物频率测量结果 之前进行频率测试时,其对应的输入输出结果如下表所示。由表中结果可以看出,本系统能够测量1999KHz,0.110V的信号,并且精度可达千分之一。表2 频率实测数据表输入信号测量信号幅值(V)频率(HZ)频率(HZ)0.150050018008005160000159900817000016990010999999999998实 习 日 记 第七天总结本系统是通过矩阵键盘来完成时、分、秒的准确设定时间,通过数码管显示出来。除此外还可以通过定时间计算出输入信号的频率。单片机课程设计已经接近尾声,留给我印象最深的不是我最后做成了上面或者我的设

43、计实现了上面功能,我认为最重要的是设计的过程。因为设计的过程在整个过程中所占时间最多,也是锻炼我们的能力,体现我们的价值也是最大的部分。刚开始设计的时候我真的毫无头绪,甚至有过放弃的想法,但终于坚持了下来。我明白了要设计一个成功的电路,除了有创新能力之外,必须要有扎实的知识基础,要熟练地掌握课本上的知识,只有这样才能对试验中出现的问题进行分析解决。在整个电路的设计过程中,花费时间最多的方案设定,很多就属于那种想法很好但是要实现非常困难的设计以及超出能力范围的。开始的时候非常着急,但是当选好了方案后,就很有干劲做起来。同时整个设计的设计与制作,让我了解了设计电路的程序,也让我了解了关于单片机设计

44、的原理和设计理念。在此次的设计中,更进一步地熟悉了单片机芯片的结构,提高了自己的自学能力,这对今后的学习生活有很大的帮助。硬件电路连接到软件部分的调试都也使我受益匪浅。时下大学生普遍缺陷的,就是动手能力差,这次连接电路充分锻炼了我的动手能力。虽然最终的效果不是非常满意,但是这也锻炼了我的承受能力,毕竟在今后走出校园后的生活不会是一帆风顺的。这样使我们有了类似的经验,在遇到这种情况也不至于无所头绪。总体来说,通过这次设计学习,让我单片机的许多课外知识都有了大概的了解,也学会了单片机的编译,这对以后的找工作也是一个优势。这次设计学习不仅是对平时理论学习的一个检验,更重要的是培养了我对学习的兴趣,开

45、拓了自己的眼界,为以后的学习打下了好的开端,使我受益匪浅。参考文献1 谢自美.电子线路设计·实验·测试(第三版).武汉:华中科技大学出版社2 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,20083 刘教瑜. 单片机原理及应用.武汉理工大学出版社,20114 张东亮. 单片机原理与应用.人民邮电出版社,20095 孙育才. MCS-51系列单片微型计算机及其应用,第4版,东南大学出版社,20066 刘军. 单片机原理与接口技术,华东理工大学出版社,20067 康华光. 电子技术基础模拟部分,第4版,高等教育出版社,2006 8 李朝青. 单片机原理及接口技术

46、,北京:航空航天大学出版社,19999 盛蒙蒙 葛亦斌等.基于单片机实现多功能数字钟的系统设计,硅谷,200910 黄明 黄艳. 多功能数字钟电路的设计与制作.机械与电子,2009(27):71-72.附录I 仿真图附录II 源程序第一个单片机程序#include <reg52.h>#include "config.h"#include "tube.h"#include "timer.h"#include "keyboard.h"#include "ds18b20.h"ModeFla

47、g CurrentMode = MF_CLOCK;void main()Tb_SetNumber(0);StartConvert();InitTimer();InitCounter();while(TRUE)KeyEvent();TUBE_DISPLAY();%主程序初始化#include "keyboard.h"#include "config.h"#include "tube.h"#include "clock.h"#include "frequency.h"#include "d

48、s18B20.h"#include "uart.h"#include "timer.h"uint8_t Key_x=0,Key_y=0;uint8_t Key_Pressed;/按键是否被按下:1-是,0-否uint8_t Key_Flag;/按键是否已放开:1-是,0-否extern float Temperature;extern uint8_t U_Temperature7;#include "clock.h"#include "config.h"#include "tube.h"

49、;uint8_t Hour = 0,Min = 0,Sec = 0;/*时钟时分秒处理函数*/void OnClockTick()Sec+;if(Sec >= 60)Sec = 0;Min+;if(Min >= 60)Min = 0;Hour+;if(Hour >= 24) Hour = 0;if(CurrentMode = MF_CLOCK) Tb_SetHour(Hour);if(CurrentMode = MF_CLOCK) Tb_SetMin(Min);if(CurrentMode = MF_CLOCK) Tb_SetSec(Sec);void SetHour(uin

50、t8_t hour)Hour = hour;uint8_t GetHour()return Hour;void SetMin(uint8_t min)Min = min;uint8_t GetMin()return Min;void SetSec(uint8_t sec)Sec = sec;uint8_t GetSec()return Sec;/*按键处理部分*/void OnButton11() /REFQ测频模式if(CurrentMode = MF_SETTIME) Tb_StopBlink();CurrentMode = MF_FREQ;InitCounter();Tb_SetNumber(0);void OnButton12()/ Tb_SetNumber(12);void OnButton13() /+ uint8_t pos = 0,tmpH = 0,tmpL = 0; if(CurrentMode != MF_SETTIME) return; pos = Tb_GetCursorPos(); switch(pos) case 0: tmpH = GetHour()/10;tmpL = GetHour()%10;tmpH+

温馨提示

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

评论

0/150

提交评论