毕业设计单片机教学实验板电路设计_第1页
毕业设计单片机教学实验板电路设计_第2页
毕业设计单片机教学实验板电路设计_第3页
毕业设计单片机教学实验板电路设计_第4页
毕业设计单片机教学实验板电路设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业论文本科生毕业论文题题 目目单片机教学实验板电路设计 系系 别别计算机与信息工程学院 班班 级级 电子信工程 姓姓 名名 学学 号号 答辩时间答辩时间 目 录摘要.11. 单片机实验平台的现状.41.1 单片机课程的实际应用 .41.2 单片机教学实验的重要性 .41.3 目前采用的单片机实验平台 .41.4 教学实验平台一般存在的问题 .52. 自作实验板的必要性和优点.63. 单片机常做教学实验.63.1 I/O 口直接使用和简单的 I/O 口扩展实验.63.2 显示器接口实验 .73.3 A/D 转换器实验.73.4 D/A 转换器实验.73.5 定时器计数器实验 .73.6

2、存储器实验 .83.7 灯模拟实验 .94. 硬件系统设计.94.1 STC98C52RC 的简单介绍.94.2 DA 模块.114.3 AD 模块.134.4 显示和输出模块 .144.5 复位模块 .164.6 电源模块 .164.7 晶振模块 .174.8 键盘模块 .184.9 温度传感器模块 .184.10 串行通信模块 .195. 软件设计.205.1 PROTEUS 软件.205.2 KEIL 软件.215.3 程序设计 .215.3.1 蜂鸣器程序 .215.3.2 矩阵键盘程序 .225.3.3 流水灯程序 .235.3.4 数模转换程序 .245.3.5 数码管动态扫描程序

3、 .255.3.6 温度测试程序 .266. 仿真和实物演示.277. 总结.28谢 辞.30参考文献.31附录 1 .32附录 2 .531单片机教学实验板电路设计摘要: :随着大规模集成电路的发展,组成微型计算机的各功能部件:中央处理器、存储器、串/并行输入输出接口、定时器/计数器、中断控制器,以及许多特殊功能单元,对于系统研发和调试人员来说,必须具有一套功能强大,操作方便的单片机实验板,才能方便有效的完成单片机应用系统的研制和系统调试。对于学生来说我们应该设计一个功能强大,方便携带的单片机教学实验板。本文首先对单片机实验平台做了简述,并介绍了自制实验板的必要性,然后对单片机常做的教学实验

4、进行了分析,其次根据硬件系统的设计介绍了 DA 模块、AD模块、显示输入输出模块、复位模块、电源模块、晶振模块、键盘模块、温度传感器模块、串行通信模块。接着对实验板所需软件和程序进行了分析。最后测试自制实验板并演示出效果,经过测试本系统基本满足要求。关键词:单片机;教学实验板;STC89C52RC;模块2Single-Chip Computer Teaching Experiment in Circuit DesignAbstract: As the development of LSI microcomputer, consisting of different functional par

5、ts: CPU, memory, serial / parallel input output interface, timer / counter, interrupt controller, as well as many special function unit, for system development and debugging personnel, must have a set of powerful function, convenient operation of the board, in order to facilitate the effective compl

6、etion of SCM application system design and system debugging. For the students, we should design a powerful function, convenient carrying the single-chip computer teaching experiment board. Based on SCM experimental platform to do a paper, and introduced the experimental board of necessity, and then

7、the SCM often do the experimental teaching were analyzed, based on the design of hardware system introduced DA module, AD module, display module, input and output reset module, power supply module, crystal oscillator module, keyboard module, temperature the sensor module, serial communication module

8、. Then the experimental board required software and procedures are analyzed. The final test experiment board and demonstrate the effect, after testing the system to meet the basic requirements.Key words:Single-Chip Computer; Teaching Experiment Board; STC89C52RC;Modular随着大规模集成电路的发展,组成微型计算机的各功能部件:中央处

9、理器、存储器、串/并行输入输出接口、定时器/计数器、中断控制器,以及许多特殊3功能单元,单片机是指一个集成在一块芯片上的完整计算机系统。单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜,为学习和应用以及开发提供了便利条件。单片机的基础知识和技能的学习内容,蕴含着数学、物理、计算机信息技术、数字信息技术、电子技术都学科知识的联系,有利于多方面的教育内容和学生综合视野的形成。这些内容具有广泛的生长点,有利于内容的横向和纵向联

10、系。同时,学习使用单片机是了解计算机原理与结构的最佳选择。所以作为一名电子专业的学生学习单片机是非常有必要的。1. 单片机实验平台的现状1.1 单片机课程的实际应用单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两个分支。通用计算机系统主要用于海量高速数值运算,不必兼顾控制功能,其数据总线的宽度不断增加,从8位、16位迅速过渡到32位,并且不断提高运算速度和完善通用操作系统,以突出其高速海量数值运算的能力,在数据处理、模拟仿真、人工智能、图像处理、多媒体、网络通信中得到了广泛应用;单片机作为最典型的嵌入式系统,由于其微小的体积和极低的成本,广泛应用于家用电器、机器人、仪器仪表

11、、工业控制单元、办公自动化设备及通信产品中,成为现代电子系统中最重要的智能化工具。1.2 单片机教学实验的重要性“单片机原理与应用”是一门许多工科专业学生必修的专业基础课,是一门理论性和实践性都很强的课程。这门课程介绍单片机的硬件结构、工作原理、汇编语言程序设计及接口技术内容,比较抽象,逻辑性强。在教学中学生需要做大量的软硬件实验。目前采用的教材多属于CS-51系列,程序源代码用汇编语言书写,教学内容与实际产品严重脱离。因此单片机课程在教学内容和教学方法等方面越来越不能适应单片机技术领域的发展需求,不加以改进,势必影响我们培养应用型人才的培养目标。当前国家积极倡导的素质教育和创新工程,旨在提高

12、受教育者的素质,培养将所学知识转化为生产力、创造力和经济效益4的能力。为了更好地适应发展潮流和就业需要,培养学生的实践能力和创新能力,就必须要有一个很好的实验环境,而要有一个好的实验环境就必须创建一个较好的平台。单片机本身就是一个知识平台,在这个知识平台上如果总是简单地进行重复别人的劳动,即不能调动学生学习的积极性,也很难实现对学生能力的培养。1.3 目前采用的单片机实验平台目前,国内单片机教学实验平台种类繁多,总体上分为两类:(1)综合型单片机实验平台,典型特征是把全部实验项目集中在一块实验电路板上。这种单片机综合实验平台的优点是学生进行实验时连接线较少,在时间上可快速进入实验状态,减少因学

13、生接错连接线和连接线接触不良的情况;缺点是实验项目基本固定,不易扩展,实验的灵活性较差。如浙江省澉浦恒坚电器设备厂出品的HJPC-A型单片机综合实验箱;湖北省单片机实验室开发的MCS-51B型综合单片机实验平台;江苏省启东计算机总厂开发的DICE-598K超强型三合一单片机微机开发实验平台;北京金一倍科技发展有限公司开发的DP-51PRo单片机综合仿真实验平台等。(2)模块化单片机实验平台,典型特征是采用积木式结构,由一块主板连接一块或多块实验板组成。主板是在单片机基本系统的基础上扩展多样化的接口和总线,具有驱动多个外围接口芯片的能力,提供单片机的基本功能实验。一块实验板对应1-3个扩展实验项

14、目,实验板与主板之间用电缆连接,可以互相通信。如清华大学科教仪器厂生产的TMD-1型模块化单片机实验平台。这种模块化单片机实验平台的优点是主板可单独或与一块及以上实验板相连,电路简单,元器件少,容易消化理解,降低了初学的难度和实验项目灵活,根据学生专业和程度可方便地扩展实验,可较好地用在学生的课程实验、毕业设计和电子设计竞赛等各个不同的实验与实践阶段。缺点是连接电缆经常拔插,易出现接触不良和连接错误及连接电缆花费时间较多的情况。1.4 教学实验平台一般存在的问题(1)功能全面,系统复杂的单片机实验平台对作为学生的初学者来说并不适宜。虽然有着非常丰富的实验项目,但这些项目一般都是相互独立的,或者

15、说5联系不紧密,没有像一个实际应用项目那样成为一个完整的控制系统,学生学完过后只有一些片面的认识,不能形成系统的概念,不能有效培养学生开发简单实用的单片机应用系统的能力,同时是也使得学生的动手能力得不到很大的提高,市场化的单片机枯燥,难以激发学生学习的兴趣。(2)市场化的单片机实验平台为了最大限度的降低生产成本,往往采用廉价相对落后的器件和工艺,不符合电子技术的发展方向,导致学生在学习过程当中不能了解到先进的技术和工艺。如大量使用CT74LS系列和4000系列器件,很少用更加先进的CT74HC系列器件;普遍采用像8279、8255等落后甚至淘汰的元件,很少采用先进的HD7279A等元件;大量使

16、用直插式元件,较少采用贴片元件和工艺。(3)普遍没有考虑系统在干扰情况下的稳定性。(4)现在的市场单片机都是独立的,缺少扩展,在没有扩展的情况下,在实验中我们就不能很好的完成我们想要实现的内容,这样的局限性不是我们教学中所需要的。2. 自作实验板的必要性和优点单片机课程的实验包括编程和硬件接口两大类,对于编程软件部分我们可以采用 Keil 软件进行编译。但是实验和实习都必须需要可靠的接口电路或开发产品电路。这些电路如果是在实验和实习中使用面包版插接,插接的元件和连线都很多。这样一方面由于学生很难掌握插接的走线,不可避免地存在走线的松散、紊乱、短路、开路都现象;另一方面面包板长期的反复使用也难以

17、确保每一个插孔都能可靠的插接。因此,实验或实习过程中学生插接的接口电路或开发产品电路必然存在连接故障,这些故障又会由于走线的松散、紊乱而难以查找和排除,常常出现一个故障后又出现另一个新的故障的情况,因此造成实验和实习效果的不理想,不利于教学工作的顺利和教学质量的提高,很显然,如果将实验线路制作成印刷线路板,使用的电路器件一般都采用焊接或用插槽插接就会很好的解决线路连接不可靠的问题,从而改变上述不利的教学局面。但是,实验和学习项目很多,线路各不相同,每个实验线路都制作一个独立的实验板又不现实,从而把各种实验线路有机的按模块组合在一起,制作成一个多功能的实验板就十分必要了。自己制作单片机实验板能够

18、让同学们熟练掌握6单片机的原理和用途,以及熟悉开发单片机应用系统的流程和方法。自己由浅入深开始做起,让学生对单片机产生浓厚的兴趣。将抽象变为具体。学习单片机不仅仅是编程,还必须要有制作电路的硬功夫,只对现成的实验板插插拔拔对硬件电路一无所知,最终学习的单片机知识只能是纸上谈兵不能实用的。3. 单片机常做教学实验 3.1 I/O 口直接使用和简单的 I/O 口扩展实验本实验主要是了解 P1 口作为输入、输出方式时,CPU 对 P1 口的操作方式,并学习 P1 口做输入输出时的使用方法且在单片机系统扩展简单 I/O 接口的方法。具体实验方法和现象是:(1)将 P1 口做输出口,接八只发光二极管,编

19、写程序,使得发光二极管循环点亮。(2)将 P1 口做输入口,接八只拨动开关,扩展 74LS273 做输出口,编写程序,读取开关状态,并将此状态通过二极管显示出来。3.2 显示器接口实验本实验主要掌握 8031 单片机输入输出接口扩展方法及熟悉 8255A 芯片性能,并熟悉七段 LED 显示器工作原理。具体实现方法:(1)设计调试出能显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 的段数据表。(2)编写一个 6 位 LED 显示器的通用显示子程序。该子程序的功能是将8031 片内 RAM 中显示缓冲区的内容在 LED 显示器显示。(3)编写一个主程序,使该主程序先对显示缓冲区

20、设置初值,然后循环用所设计的显示子程序,使显示器显示数字。3.3 A/D 转换器实验本实验主要了解 A/D 转换芯片 ADC0809 的转换性能及编程方法,通过实验知道单片机如何进行数据采集。具体实现方法:利用实验箱上的ADC0809、8255A、74LS373、电位器、LED 显示器等,设计数据采集系统。实验箱上的三个电位器可以提供三路模拟电压信号输入,编制程序,将模拟量转换7成数字量,进行数据采集。3.4 D/A 转换器实验本实验主要了解 D/A 转换的基本原理,知道单片机和 DAC0832 芯片设计D/A 转换器的接口电路设计及 D/A 转换程序的方法。具体实现方法:利用实验箱的 DAC

21、0832 芯片设计 D/A 转换器,编制程序,产生锯齿波、三角波。用示波器观察输出波形,或利用万用表测试实验电路的输出端 OUT,应能测出不断加大或减小的电压值。3.5 定时器计数器实验本实验主要了解 8051 内部定时/计数器的使用和编程方法,掌握中断处理程序的编写方法,了解脉宽调制的原理,学习计数器各种工作方式的用法,掌握 8253 定时器的时序关系并知道 8253 的工作方式和编程方法。具体实现方法:(1)内部计数器在单片机中主要有定时器和计数器两个功能。实验使用的定时器,定时为一秒钟。CPU 运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。(2)PWM 是

22、单片机上常用的模拟量输出方法,通过外接的转换电路,可以将脉冲的占空比变成电压。程序中通过调整占空比来调节输出模拟电压。占空比是制脉冲中高电平与低电平的宽度比。(3)8051 内部有两个 16 位的定时/计数器 T0 和 T1,16 位是指定时/计数器内的计数器是 16 位的,由 2 个 8 位计数器组成。本实验用的是 T0,它的 2 个8 位计数器是 TH0 和 TL0,TH0 是高 8 位,TL0 是低八位。所谓加法计数器,指其计数的方法是对计数脉冲每次加 1。在其它单片机和可编程计数器芯片中,有的计数器是减法计数器,如 8155 的 14 位计数器,8253 的 16 计数器,即先设置计数

23、器的初值,然后对计数器脉冲每次减 1,减到 0,计数器溢出。而8051 内部的计数器是加法计数器,需先设置计数器的初值,本实验设置计数器初值为 0,然后对计数脉冲每次加 1,加到计数器满后溢出。83.6 存储器实验本实验主要掌握 89C51 单片机扩展外 ROM,了解 EEPROM、FLASH ROM、静态 RAM 的使用方法,学会 93C46 的操作指令和掌握 93C46 读/写程序的编写。具体实现方法:MCS-51 型单片机 ROM 寻址范围为 64KB,其中 4KB 在片内,60KB在片外(8031 芯片无内 ROM,全部在片外) 。当单片机内外 ROM 选择 EA 脚保持高电平时,先访

24、问内 ROM,但当程序计数器值超过 4KB 时,将自动转向执行外ROM 中的程序。EA 当保持低电平时,则只访问外 ROM。不管芯片内有无内 ROM,对 8031 芯片,片内无 ROM,因此 EA 必须接地。本实验使用 EEPROM 27C512 芯片进行片外 ROM 的扩展。27C512 具有 64K 空间,因此它需要使用全部 16 根地址线(A0-A15) ,片选端 E 接地。PSEN 是 51 单片机的专用外部程序存储器访问控制线,PSEN 作用为外 ROM 的输出允许的选通信号。3.7 灯模拟实验本实验掌握 51 系列单片机的常用指令,并熟悉他的分支程序和子程序。具体实现方法:模拟汽车

25、在驾驶中的左转弯、右转弯、刹车、合紧急开关、停靠等操作。在左转弯或右转弯时,通过转弯操作杆使左转弯或右转弯开关合上,从而使左头信号灯、仪表板的左转弯灯、左尾信号灯或右头信号灯、仪表板的右转弯信号灯、右尾信号灯闪烁;闭合紧急开关时以上六个信号灯全部闪烁;汽车刹车时,左右两个尾信号灯点亮;若正当转弯时刹车,则转弯时原闪烁的信号灯应继续闪烁,同时另一个尾信号灯点亮,以上闪烁的信号灯以 1HZ 频率慢速闪烁;在汽车停靠开关合上时左头信号灯、右头信号灯、左尾信号灯、右尾信号灯以 10HZ 频率快速闪烁。任何在下表中未出现的组合,都将出现故障指示灯闪烁,闪烁频率为 10HZ。4. 硬件系统设计4.1 ST

26、C98C52RC 的简单介绍STC98C52RC 单片机是一种增强型的 51 系列单片机,其最大的特点就是“在系统编程” (ISP)功能,还具有双数据指针,看门狗等特性。用户编写完程序,经过模拟调试无误后,可以直接使用 ISP 软件将程序下9载到实验板上观察程序运行结果。免去了插、拔芯片的麻烦,更主要是免去了单片机中必须的昂贵的硬件仿真器和专用编程器的开销。系统框图如图 4-1 所示:图 4-1 系统框图STC89C52RC 是 STC 公司生产的单片机,具有加密性强、超强抗干扰、超低价、超低功耗等特点。STC89C52RC 引脚说明如下:1-8:I/OP1 口(P1.0-P1.7)输入输出口

27、。9:RST/VPD 复位信号输入引脚/备用电源输入引脚。10-17:I/OP3 口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1, P3.6=-WR,P3.7=-RD)输入输出口且同时具有第二功能(-低电平有效) 。18-19:XTAL2/XTAL1 晶体振荡器引脚。20: VSS 接地。21-28:I/OP2 口(P2.0-P2.7)输入输出口。29:-PSEN 片外 ROM 读选通信号(-低电平有效) 。30:ALE/-PROG 地址锁存允许信号输出引脚。STC89C52RCSTC89C52RCADAD模块模块DADA 模

28、块模块温度传感模块温度传感模块显示输出模块显示输出模块矩阵键盘模块矩阵键盘模块串行通信模块串行通信模块电源模块电源模块复位模块复位模块晶振模块晶振模块1031:-EA/VPP 外部程序存储器地址允许输入信号引脚。32-39:I/OP0 口(P0.7-P0.0)输入输出口。40:VCC 接 5V 电源。STC89C52RC 芯片管脚如图 4-2 所示:图 4-2 STC89C52R 管脚图4.2 DA 模块系统 DA 转换部分电路原理图如图 4-3 所示,DAC0832 是采用 CMOS 工艺制成的单片直流输出型 8 位数/模转换器它由倒 T 型 R-2R 电阻网络、模拟开关、运算放大器和参考电

29、压 VREF 四大部分组成。图 4-3 DA 模块电路11一个 8 位 D/A 转换器有 8 个输入端(其中每个输入端是 8 位二进制数的一位),有一个模拟输出端。输入可有 256 个不同的二进制组态,输出为 256 个电压之一,即输出电压不是整个电压范围内任意值,而只能是 256 个可能值。图 4-4 是 DAC0832 的逻辑框图和引脚排列:图 4-4 DAC0832 的逻辑框图和引脚排列D0-D7:数字信号输入端。ILE:输入寄存器允许,高电平有效。-CS:片选信号,低电平有效。-WR1:写信号 1,低电平有效。-XFER:传送控制信号,低电平有效。-WR2:写信号 2,低电平有效。IO

30、UT1、IOUT2:DAC 电流输出端。RFB:是集成在片内的外接运放的反馈电阻。 VREF:基准电压(-10V-10V)。VCC:是源电压(+5V-15V)。AGND:模拟地 NGND:数字地,可与 AGND 接在一起使用。DAC0832 输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图 4-5 所示:12图 4-5 外接的运算放大器转换成电压IN0-IN7:8 路模拟信号输入端。A1、A2、A0 :地址输入端。ALE 地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D 转换。START:

31、启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始 A/D 转换过程。EOC:转换结束输出信号(转换接受标志),高电平有效。OE:输入允许信号,高电平有效。CLOCK(CP):时钟信号输入端,外接时钟频率一般为 640kHz。VCC:+5V 单电源供电。VREF(+),VREF(-):基准电压的正极、负极。一般 VREF(+)接+5V 电源,VREF(-)接地。D7-D0:数字信号输出端。 由 A0、A1、A2 三地址输入端选通 8 路模拟信号中的任何一路进行 A/D 转换。4.3 AD 模块系统 AD 转换部分电路原理图如图 4-6 所示,ADC

32、0832 是美国半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解 A/D 转换器的原理,有助于我们单片机技术水平的提高。13图 4-6 AD 模块电路ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 0-5V 之间。芯片转换时间仅为 32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂

33、接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。 图 4-7 是 ADC0832 的引脚图。图 4-7 ADC0832 引脚图-CS:片选使能,低电平芯片使能。 CH0:模拟输入通道 0,或作为 IN+/-使用。 CH1:模拟输入通道 1,或作为 IN+/-使用。 GND:芯片参考 0 电位(地)。 DI:数据信号输入,选择通道控制。 DO:数据信号输出,转换数据输出。 14CLK:芯片时钟输入。 VCC/VREF:电源输入及参考电压输入(复用)。4.4 显示和输出模块系统显示和输出模块包括发光二极管、蜂鸣器电路,数码管显示电路和流水灯电路,电路图如图 4-8

34、所示。一个数码管由 8 个发光二极管组成,由于是共阴极,所以高电平选通。图 4-8 流水灯电路15图 4-9 蜂鸣器和数码管显示电路如图 4-9 所示,SN74LS245N 接成直通方式通过 P0 口驱动数码管。由SN74LS138N 对 P2 口译码控制 SN74LS245N 驱动 6 个数码管的位选,剩余两路,一路接到发光二极管,另一路控制蜂鸣器,由程序进行选通控制。4.5 复位模块一个芯片,尤其是可编程芯片,通常在上电的瞬间需要一个短暂的时间进行内部参数的初始化,这个时候芯片无法立即进入工作状态。通常称上电初始化这些工作为复位。在要求不高的场合,复位电路都是利用 RC 来制作的。复位电路

35、的基本功能是:系统上电时提供复位信号,直至电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时(共大于两个机器周期)才撤销复位信号,以防电源开关或电源插头一分一合的过程中引起抖动而影响复位。系统采用手动按键复位方式实现系统的复位操作。在单片机运行期间,用按钮开关操作使单片机复位。手动按键复位是通过按键将电阻 R1 与 VCC 接通来实现。电路如图 4-10 所示:16图 4-10 复位电路4.6 电源模块系统电源部分电路原理图如图 4-11 所示,电源接通时 LED 灯亮。图 4-11 电源模块电路4.7 晶振模块晶振是为电路提供频率基准的元器件,通常分为有源晶振和无源晶振两个大类

36、,无源晶振需要芯片内部有震荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确的匹配外围电路,如需更换晶振时要同时更换外围电路有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。实际应用中多采用无源晶振设计的电路居多。17本单片机系统晶振电路如图 4-12。晶振 Y1 和微调电容 C10、C11 就构成了内部震荡方式,由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成自激振荡器并产生震荡时钟脉冲。图 4-12 晶振模块电路4.8 键盘模块本系统矩阵键盘模块部分的电路原理图如图 4-13 所示,设计使用 P1

37、 口的高四位作为矩阵键盘的列扫描信号,低四位作为行扫描信号。图 4-13 矩阵键盘模块电路4.9 温度传感器模块系统的温度传感器部分电路原理图如图 4-14 所示,此电路的温度传感器采18用美国 DALLAS 公司生产的 DS18B20。DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 具有以下特点:独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯;测温范围55125,固有测温分辨率 0.5;支持多点组网功能,多个 DS18B20 可以

38、并联在唯一的三线上,实现多点测温;工作电源: 3-5V/DC;在使用中不需要任何外围元件。图 4-14 温度传感器模块电路4.10 串行通信模块系统串行接口部分的电路原理图如图 4-15 所示,其中 MAX232 是 RS-232 接口芯片,目前 RS-232 是 PC 机与通信工业中应用最广泛的一种串行接口。RS-232 被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232 采取不平衡传输方式,即所谓单端通讯。单片机的 RXD 和 TXD 引脚作为 UAET 的接收端和发送端,通过 MAX232 接口芯片分别连接到 J1 接口端子的 2 脚和 3 脚。19图 4-15 串行通信

39、模块电路MAX232 主要负责信号不同标准电平间的转换,很多情况下串行通信的故障都是有 MAX232 芯片的故障造成。根据芯片手册,MAX232 在正常工作时,第 2引脚 CAP+应该输出+8.5V 的电压,第 6 引脚 CAP-应该输出-8.5V 的电压。因此,实际工作中可以通过测量这两个引脚的工作电压是否正常来判断 MAX232 芯片是否正常工作。5. 软件设计5.1 Proteus 软件 本设计用 Proteus 软件进行仿真。Proteus 软件是英国 Labcenter Electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及

40、外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著名的 EDA 工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、 PCB 设计软件和虚拟模型仿真软件三合一的设计平台,处理器模型 支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086 和20MSP430 等,2010 年即将增加 Cortex 和 DSP 系列处

41、理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil 和 MPLAB 等多种编译 。本设计仿真原理图如图 5-1 所示:图 5-1 仿真原理图5.2 Keil 软件Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 uVision 将这些部分组合在一起。运行 Keil 软件需要WIN98、NT、WIN2000、

42、WINXP 等操作系统。如果你使用 C 语言编程,那么 Keil几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。5.3 程序设计 蜂鸣器程序开关闭合开始LED 亮且蜂鸣器有声音LED 灭且蜂鸣器无声音21图 5-2 蜂鸣器程序#includesbit wele1=P25;sbit wele2=P26;sbit wele3=P27; void delay(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);5.3.2 矩阵键盘程

43、序开始是否有按键按下显示按键值键值处理清除按键标识系统初始化22 5-3 矩阵键盘程序流程图void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); 5.3.3 流水灯程序开始输出状态位中断允许设置秒计数值设置初始状态位设置定时常数置中断工作方式等待中断235-4 流水灯程序流程图void main() P2=0 xff; aa=0 xfe; while(1) P2=aa; delay(80); aa=_crol_(aa,1); 5.3.4 数模转换程序正常开始给 0832 赋值蜂鸣器响245-5 数模转换程序流程图void didi

44、(); void delay(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-); 5.3.5 数码管动态扫描程序 开始定义初值循环加返回是否为 9是否是最后一数码管管25 5-6 数码管动态扫描程序流程图void delay(uint z) uint t1,y;for(t1=z;t10;t1-)for(y=110;y0;y-);5.3.6 温度测试程序开始存放寄存器上次采集数据显示结果送入显示缓存进制转换采集数据265-7 温度测试程序流程图/*void display(uchar shi,uchar ge) w

45、ela=1; P0=0 xfe; wela=0;dula=1;P0=tableshi; dula=0;dely(5); wela=1;P0=0 xfd; wela=0;dula=1;P0=tablege;dula=0;dely(5); 276. 仿真和实物演示做设计实物之前先在 Proteus 中将硬件的电路图架构起来,将硬件电路架构好以后用 Keil 软件调试所需要的程序,调试程序成功后生成 HEX 文件,然后将文件烧录到芯片中运行,就可显示出效果。如图 6-1 所示流水灯仿真图:6-1 流水灯仿真图仿真成功后就要着手硬件的制作了,首先在 Protel DXP 软件中将电路板的原理图画出来,

46、然后制作出来实验板并且将各个元器件焊接上,制作完成后用STC-ISP 软件将 HEX 文件烧录到 STC89C52RC 芯片中,接通电源观察实验板上出来的现象。如图 6-2 所示流水灯实物图:286-2 实物流水灯演示图7. 总结本次毕业设计我选的题目是 8051 单片机教学实验板电路设计,这个题目对我来说是一个很大的挑战,独立开发出来一个电路板一直都是同学们在学习中存在的困难问题,我也不例外。我选这个题目就是想在大学这最后也是最重要的一段时间里,将自己平时所遗留下来不懂的知识全部解决掉,不能让自己带着问题遗憾的离开学校。随着毕业设计的完成,对自己的毕业设计进行总结时,发现所设计的内容还有些可

47、以改进的地方,如在电路的外围可以加一些扩展芯片,提高设计内容的利用率。同时由于自己疏于亲自动手的能力,使得电路板的焊接有少许的不美观。 通过本次的单片机的毕业设计,我在诸多方面都得到了锻炼和提升,我不仅把知识融会贯通,而且丰富了大脑,在查找资料的过程中了解到了许多课外知识,开拓了视野,使自己在专业知识和动手能力方面有了质的提高。毕业设计作为我踏入社会完成的最后一次作业,它是对我在学校学习知识的全面总结和综合应用,为以后踏入社会的实际操作铸就了一个良好的开端,毕业设计是我对所学知识理论的检验和总结。能够培养设计者的独立分析和解决问题的能力。随着毕业设计接近尾声,在我不断努力下我的毕业设计终于完成

48、了,在毕29业设计时发现自己有些想法都是错误的,本来觉得毕业设计就是对几年学习的概括和总结,但是后来发现自己错了,自己原来学习的知识太理论化,毕业设计不光是对所学知识的检验,同时也是对自己能力的一种提高。以前总是觉得自己什么东西都懂,什么都会,有些眼高手低,通过这次毕业设计才发现学习是一个长期积累的过程,在以后的学习和生活中都应该不断的学习,努力提高自己的知识和综合素质。总之,这次毕业设计对我而言是受益匪浅的。30谢 辞首先,我要感谢我的导师 XXX 老师,他严谨细致、一丝不苟的作风一直是我工作、学习中的榜样,给了起到了指明灯的作用;他们循循善诱的教导和不拘一格的思路给予我无尽的启迪,让我很快

49、就感受到了设计的快乐并融入其中。其次我要感谢同学对我的帮助和指点,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次毕业设计就不会如此的顺利进行。此次毕业设计历时两个月,是我大学学习中遇到过的时段最长、涉及内容最广、工作量最大的一次设计。用老师的一句话就是这次毕业设计相当于是把以前的小作业综合在一起的过程,只要把握住每个小作业的精华、环环紧扣、增强逻辑,那么这次的任务也就不难了。我此次的任务是开发一个 8051 单片机教学实验板。虽说老师说的话让此次的毕业设计看起来不是那么难,但是当我真的开始着手时,还的确是困难重重。俗话说的好, “磨刀不误砍柴工” ,当每次遇到不懂得问题时,我都会第一时间

50、记录下来,然后等答疑的时候询问老师,老师对于我提出来的问题都一一解答,从来都不会因为我的问题稍过简单加以责备,而是一再的告诫我做设计该注意的地方,从课题的选择到设计的最终完成,老师都始终给予我细心的指导和不懈的支持,他让人油然而生的敬佩。两个月时间,两位老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,除了敬佩老师们的专业水平外,他们的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。在此谨向 XXX 老师致以诚挚的谢意和崇高的敬意。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的

51、帮助,在这里请接受我诚挚的谢意! 最后我还要感谢计算机与信息工程学院和我的母校大学四年来对我的悉心栽培。31参考文献:1 杨居义.单片机原理与工程应用.清华大学出版社,2009,(1).2 雷思孝,冯育长.单片机系统设计与工程应用.西安电子科技大学出版社,2005,(1).3 张伟,三恒星科技.MCS-51 单片机易学通.人民邮电出版社,2006, (1).4 赵德安.单片机原理与应用.机械工业出版社,2005, (1).5 孔德任.仪表总线技术应用.国防工业出版社,2005,(1).6 赵茂泰.智能仪器原理应用二版.电子工业出版社,2004,(1).7 于英民.计算机接口技术 L 二版.电子

52、工业出版社,1999,(1) .8 戚新波.检测技术与智能仪器.电子工业出版社,2005,(1).9 张弥左.微型计算机接口技术.机械工业出版社,2004,(1).10 高春甫.微机测控技术.科学出版社,2005,(1).11 潘梅森,易明.一种基于人类视觉的自适应均值滤波算法J.计算机工程与应用,2006,39(10):62-64.PAN Mei-sen, YI Ming. An adaptive mean filter algorithm based on HVS J.Computer Engineering an Applications,2006,39(10):62-64.32附录 1

53、:程序1 蜂鸣器程序* 控制蜂鸣器响与不响,同时 LED 指示灯亮灭亮灭 */#includesbit wele1=P25;sbit wele2=P26;sbit wele3=P27;void delay(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void main() while(1) wele1=1; wele2=1; wele3=0; delay(200); wele1=1; wele2=1;33 wele3=1; delay(200); 2 矩阵键盘程序* 在 44 的矩阵键盘上(键号从 1-16

54、),每按下一个键,数码管上显示相应的键号. */#include#define uint unsigned int#define uchar unsigned charsbit wela1=P25;sbit wela2=P26;sbit wela3=P27;uchar code table= /共阴数码管 0-F 显示字形码表 0 x3f,0 x06,0 x5b,0 x4f, 0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c, 0 x39,0 x5e,0 x79,0 x71,0;uchar temp,num,num1;/* 延时函数 */void

55、 delay(uint z) /延时函数声明uint x,y;for(x=z;x0;x-)34for(y=110;y0;y-);/* 函数声明 */uchar keyscan(); /键盘扫描函数声明void display(uchar aa);/显示函数声明/* 主函数 */void main() /主函数num=17; /16 个键/ dula=1; /段选通P0=0 x00; /数码管全部不亮/ dula=0; /段锁存/ wela=1; /位选通/ P0=0 xc0; /6 个数码管全部选通/ wela=0; /位锁存 wela1=0;wela2=0;wela3=0;while(1)d

56、isplay(keyscan(); /显示扫描键盘35/* 显示程序 */void display(uchar aa) /显示程序/ dula=1; /段选通P0=tableaa-1; /送出显示数据/ dula=0; /段锁存/* 键盘扫描程序 */uchar keyscan() /键盘扫描程序P1=0 xfe; /先使第一行输出低电平 1111 1110temp=P1; /读进列值,根据此时的列值来检测键temp=temp&0 xf0; /屏蔽低四位(保留列值(即高 4 位)while(temp!=0 xf0)/检测有无键按下(不等于 0 xf0 就有键按下, /因为有键按下时高

57、4 位 temp1111)(结合键盘电路来分析)delay(5); /有键按下延时 5ms 以防干扰temp=P1; /再次读进列值temp=temp&0 xf0; /屏蔽低四位(保留列值(即高 4 位)36while(temp!=0 xf0) /检测有无键按下temp=P1; /确实有键按下,读进列值switch(temp) /检测是哪一个键按下case 0 xee:num=1; /如果是 0 xee,则是第 1 个键,将 1 赋给 num 1110 1110 /因为:1110 1110(即 0行 0 列,说明是 1 号键。结合键盘电路来分析)break; /退出检测case 0 x

58、de:num=2;/如果是 0 xde,则是第 2 个键(1101 1110 0 行 1 列)break; /退出检测case 0 xbe:num=3;/如果是 0 xbe,则是第 3 个键(1011 1110 0 行 2 列)break; /退出检测case 0 x7e:num=4;/如果是 0 x7e,则是第 4 个键(0111 1110 0 行 3 列)break; /退出检测while(temp!=0 xf0) / 松手检测(temp0 xf0说明有键按下)temp=P1; /有键按下,读进列值temp=temp&0 xf0; /保留高 4 位(即保留列值),这时 temp 有

59、了新值, /返回 while(temp!=0 xf0),再次判定时条件为假,此时脱离循环。37P1=0 xfd; /使第二行输出低电平 1111 1101temp=P1; /读进列值temp=temp&0 xf0; /屏蔽低四位(保留列值(即高 4 位)while(temp!=0 xf0) /判有无键按下delay(5); /有键按下延时 5ms 以防干扰temp=P1; /读进列值temp=temp&0 xf0; /保留列值while(temp!=0 xf0)/再判有无键按下temp=P1; /确实有键按下,读进列值,根据此时的列值来检测键switch(temp) /检测是哪

60、一个键按下case 0 xed:num=5;/如果是 0 xed,则是第 5 个键(1110 1101 第 2 行第 0 列)break; /case 0 xdd:num=6;/如果是 0 xdd,则是第 6 个键(1101 1101 第 2 行第 1 列)break; /case 0 xbd:num=7;/如果是 0 xbd,则是第 7 个键(1011 1101 第 2 行第 2 列)break; /case 0 x7d:num=8;/如果是 0 x7d,则是第 8 个键(0111 1101 第 2 行第 3 列)38break;while(temp!=0 xf0) /松手检测(temp0 xf0 说明有键按下)temp=P1; /有键按下,读进列值temp=temp&

温馨提示

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

评论

0/150

提交评论