收藏 分享(赏)

单片机系统课程设计报告书.doc

上传人:精品资料 文档编号:10865020 上传时间:2020-01-16 格式:DOC 页数:20 大小:439.33KB
下载 相关 举报
单片机系统课程设计报告书.doc_第1页
第1页 / 共20页
单片机系统课程设计报告书.doc_第2页
第2页 / 共20页
单片机系统课程设计报告书.doc_第3页
第3页 / 共20页
单片机系统课程设计报告书.doc_第4页
第4页 / 共20页
单片机系统课程设计报告书.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、 单片机系统课程设计报告书题目:简易数字电压表的设计院系名称: 信息工程学院 专业名称: 电子信息工程 班 级: 信息 1101B 学 号: 1134130151 姓 名: 王 浩 指导教师 禹定臣 摘 要随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成 CPU、存储器、定时器计数电路,这很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。数字电压表(DigitalVoltmeter)简称 DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。由 DVM扩展而成的各种通用及专用数字仪器仪表

2、,也把电量及非电量测量技术提高到崭新水平。本文介绍了一种基于单片机的简易数字电压表的设计。该设计主要由三个模块组成:A/D 转换模块(ADC0808),数据处理模块(芯片 AT89C51 和芯片74ls373)及显示模块(LCD1602)。该系统的数字电压表可以测量 0-5V 的 1 路模拟直流输入电压值,电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。本文首先简要介绍了设计电压表的主要方式以及单片机系统的优势;然后详细介绍了直流数字电压表的设计流程,以及硬件系统和软件系统的设计,并给出了硬件电路的设计细节,包括各部分电路的走向、芯片的选择以及方案的可行性分析等。通过此次课程设计使我

3、对我们所学的知识有了更深的认识和体会,对自我动手的能力也提高了很多。关键词单片机 AT89C51;数字电压表 DVM;A/D 转换 ADC0808目 录摘 要 1关键词 11、概述 .11.1 课程设计的目的和意义 11.2 课程设计的任务 12、设计原理及要求 .12.1 数字电压表的实现原理 22.2 数字电压表的设计要求 23、软件仿真电路设计 .23.1 设计思路 23.2 仿真电路图 23.3 AT89C51 的功能介绍 33.3.1 简要概述 33.3.2 主要功能特性 33.3.3 AT89C51 的引脚介绍 .43.3.4 复位电路设计 .63.3.5 时钟电路设计 .63.4

4、 ADC0809 的功能介绍 73.4.1 芯片概述 73.4.2 引脚简介 73.4.3 ADC0808 的转换原理 .83.5 74LS373 芯片的引脚及功能 83.5.1 芯片概述 83.5.2 引脚介绍 83.6 LED 数码管的控制显示液晶模块 93.6.1 芯片概述 .93.6.2 引脚介绍 .94、系统软件程序的设计 114.1 初始化程序 114.2 A/D 转换子程序 .114.3 显示子程序 125、显示结果及误差分析 125.1 显示结果 .125.2 误差分析 .136、课程设计体会 14参考文献 15附录 16电路图 16源程序 1711、概述1.1 课程设计的目的

5、和意义本次课程设计,让我学习和巩固了单片机的使用,以及常用的寄存器的使用方法,还有就是学习常用的外围硬件使用、电路原理图设计、PCB 设计等等。使我对已学过的基础知识有了更深入的理解,独立思考、独立工作以及应用所学基本理化分析和解决实际问题的能力有了很大的提高。1.2 课程设计的任务数字电压表(Digital Voltmeter)简称 DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与 PC 进行实时

6、通信。目前,由各种单片 A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。2、设计原理及要求本设计是利用单片机 AT89C51 与 ADC0808 设计一个数字电压表,测量05V 之间的直流电压值,四位 LED 数码管上显示,但要求使用的元器件数目最少。硬件电路设计由 6 个部分组成; A/D 转换电路,AT89C51 单片机系统,四位LED 数码管、时钟电路、复位电路以及测量电压输入电路。时钟电路 复位电路A/D 转换电路 测量电压输入显示系统AT89C51 P1 P2 P2 P0 2图 1 数字电压表系统硬件设计框图

7、2.1 数字电压表的实现原理ADC0809 是 8 位的 A/D 转换器。当输入电压为 5.00V 时,输出的数据值为255(0FFH) ,因此最大分辨率为 0.0196(5/255) 。ADC0808 具有 8 路模拟量输入端口,通过 3 位地址输入端能从 8 路中选择一路进行转换。如每隔一段时间依次轮流改变 3 位地址输入端的地址,就能依次对 8 路输入电压进行测量。2.2 数字电压表的设计要求可以测量 05V 范围内的直流电压值。在四位 LED 数码管上显示电路电压值,显示范围为 0.00V5.00V。要求测量的最小分辨率 0.019V。3、软件仿真电路设计3.1 设计思路数字电压表应用

8、系统硬件电路由单片机、A/D 转换器、液晶显示电路组成,由于 ADC0809 在进行 A/D 转换时需要有 CLK 信号,本试验中 ADC0809 的 CLK 直接由外部电源提供为 500kHz 的方波。由于 ADC0809 的参考电压 VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(D/256*VREF) ADC0808 采用逐次逼近法转换,把模拟电压转换成 16 进制的 D,由于是对直流电压 05V 进行采集,所以 D 对应的电压为 V0 ,我们的目的就是要把 V0 显示在四位 LED 数码管上,因为单片机不好进行小数点计算,所以有:V0=2*D

9、 扩大了 100 倍,扩大 100 倍后的结果高八位放寄存器 B,低八位放寄存器 A,分寄存器 B 为 0 或不为 0 的情况进行存取数据,得到的结果个位放入 R0,十位放入 R1,通过查表使之显示在 LED 显示器。3.2 仿真电路图用 Protues 软件仿真设计的电路如图 2 所示。33.3 AT89C51 的功能介绍3.3.1 简要概述AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含有 4KB 的可反复擦写的只读程序存储器和 128 字节的随机存储器。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输

10、出管脚相兼容,由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL的 AT89C51 是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 功能性能:与 MCS-51 成品指令系统完全兼容;4KB 可编程闪速存储器;寿命:1000 次写/擦循环;数据保留时间:10 年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B 内部 RAM;32 个可编程 I/O 口线;2 个 16 位定时/计数器;5 个中断源;可编程串行 UART 通道;片内震荡器和掉电模式。3.3.2 主要功能特性(1) 4K 字 节 可 编 程 闪 烁 存 储 器

11、 。(2) 32 个 双 向 I/O 口 ; 1288 位 内 部 RAM 。(3) 2 个 16 位 可 编 程 定 时 /计 数 器 中 断 , 时 钟 频 率 0-24MHz。(4) 可 编 程 串 行 通 道 。(5) 5 个 中 断 源 。(6) 2 个 读 写 中 断 口 线 。(7) 低 功 耗 的 闲 置 和 掉 电 模 式 。(8) 片 内 振 荡 器 和 时 钟 电 路 。P01P023P045P067STARTOEWRRDA01A23A45A67LE LEOEP076P054P032P01A01A2STRTSTARTP32WRDA15A15P10P123P145P167A

12、89A10P301P34P34P10P123P145P16 P301P327XTAL218XTAL119ALE301PSN29RST9P0./AD039.1/18P0.2/AD237.3/36P0.4/AD435.5/54P0.6/AD63.7/72P1.01.2P1.23.34P1.45.56P1.67.78P3.0/RXD10.1/TP3.2/IN012./IT13P3.4/014P3.7/RD17.6/W6.5/T15P2.7/A1528P2.0/A821.1/9P2./A023.3/14P2.4/A225.5/136.6/47U1AT89C51D03 Q0214 15D27 Q2638

13、 39D413 Q41254 55D617 Q61678 79OE1LU274LS37 OUT121AD B24 A5 C3VREF(+)12 (-)6IN31I42IN53I64IN75 START6OUT58EOC7OE9CLOCK1020OUT714658741OUT39I228IN17I026ALE2U3ADC0823 1U4:A740256 4U4:B74021 2U5:A740+8.8Volts38%RV11k43.3.3 AT89C51 的引脚介绍AT89C51 提供以下标准功能:4KB 的 Flash 闪速存储器,128B 内部 RAM,32个 I/O 口线,两个 16 位定时

14、/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51 可降至 0Hz 静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存 RAM 中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。AT89C51采用 PDIP 封装形式,引脚配置如图 3 所示。图 3 AT89C51 的引脚图AT89C51 芯片的各引脚功能为:P0 口:这组引脚共有 8 条,P0.0 为最低位。这 8 个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是 89C

15、51 不带外存储器,P0 口可以为通用I/O 口使用,P0.0-P0.7 用于传送 CPU 的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是 89C51 带片外存储器,P0.0-P0.7 在 CPU 访问片外存储器时先传送片外存储器的低 8 位地址,然后传送 CPU 对片外存储器的读/写数据。P0 口为开漏输出,在作为通用 I/O 使用时,需要在外部用电阻上拉。P1 口:这 8 个引脚和 P0 口的 8 个引脚类似,P1.7 为最高位,P1.0 为最低位,当 P1 口作为通用 I/O 口使用时,P1.0-P1.7 的功

16、能和 P0 口的第一功能相同,也用于传送用户的输入和输出数据。P2 口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用 I/O 口使用,它的第一功能和 P0 口引脚的第二功能相配合,用于输出片外存储器的高 8 位地址,共同选中片外存储器单元,但并不是像 P0 口那样传送存储器的读/写数据。P3 口:这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P

17、1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C515控制功能,每个引脚并不完全相同,如下表 2 所示:表 1 P3 口各位的第二功能P3 口各位 第二功能P3.0 RXT(串行口输入)P3.1 TXD(串行口输出)P3.2 /INT0(外部中断

18、0 输入)P3.3 /INT1(外部中断 1 输入)P3.4 T0(定时器/计数器 0 的外部输入)P3.5 T1(定时器/计数器 1 的外部输入)P3.6 /WR(片外数据存储器写允许)P3.7 /RD(片外数据存储器读允许)Vcc 为+5V 电源线,Vss 接地。ALE:地址锁存允许线,配合 P0 口的第二功能使用,在访问外部存储器时,89C51 的 CPU 在 P0.0-P0.7 引脚线去传送随后而来的片外存储器读/写数据。在不访问片外存储器时,89C51 自动在 ALE 线上输出频率为 1/6 震荡器频率的脉冲序列。该脉冲序列可以作为外部时钟源或定时脉冲使用。/EA:片外存储器访问选择

19、线,可以控制 89C51 使用片内 ROM 或使用片外ROM,若/EA=1,则允许使用片内 ROM, 若/EA=0,则只使用片外 ROM。/PSEN:片外 ROM 的选通线,在访问片外 ROM 时,89C51 自动在/PSEN 线上产生一个负脉冲,作为片外 ROM 芯片的读选通信号。RST:复位线,可以使 89C51 处于复位(即初始化)工作状态。通常 89C51 复位有自动上电复位和人工按键复位两种。XTAL1 和 XTAL2:片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接 89C51 片内 OSC(震荡器)的定时反馈回路。3.5 ADC0808 的引脚及功能介绍3.3

20、.4 复位电路设计单片机在启动运行时都需要复位,使 CPU 和系统中的其他部件都处于一个6确定的初始状态,并从这个状态开始工作。MCS-51 单片机有一个复位引脚 RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现 2 个机器周期以上的高电平即可确保时器件复位 1。复位完成后,如果 RST 端继续保持高电平,MCS-51 就一直处于复位状态,只要 RST 恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图 4 是 51 系列单片机统常用的上电复位和手动复位组合电路,只要 Vcc 上升时间不超过 1ms,它们都能很好的工作。图 4 复位电路3.3

21、.5 时钟电路设计单片机中 CPU 每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU 执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51 单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1 为该放大器的输入端,XTAL2 为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2 个电容即可,如图 5 所示。图 5 时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器

22、C1 和 C2 对震荡频率有微调作用,通常的取值范围是 3010pF,在这个系统中选择了 33pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为 12MHz。73.4 ADC0809 的功能介绍3.4.1 芯片概述ADC0809 是一种典型的 A/D 转换器。它是由 8 位 A/D 转换器,一个 8 路模拟量开关,8 位模拟量地址锁存译码器和一个三态数据输出锁存器组成; +5V单电源供电,转化 时间在 100us 左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型如图 6 所示。图 3 ADC0809

23、芯片模型3.4.2 引脚简介(1) IN0IN7:8 路模拟量输入端。(2) D0D7:8 位数字量输出端口。(3) START:A/D 转换启动信号输入端。(4) ALE:地址锁存允许信号,高电平有效。(5) EOC:输出允许控制信号,高电平有效。(6) OE: 输出允许控制信号,高电平有效。(7) CLK:时钟信号输入端。(8)A、B、C:转换通道地址,控制 8 路模拟通道的切换。A、B、C 分别与地址线或数据线相连,三位编码对应 8 个通道地址端口,A、B、C=000111 分别对应 IN0IN7 通道的地址端口。ADC0809 通道选择表8地址码C B A对应的输入通道00001111

24、0011001101010101IN0IN1IN2IN3IN4IN5IN6IN73.4.3 ADC0808 的转换原理ADC 0808 采用逐次比较的方法完成 A/D 转换,由单一的+5V 电源供电。片内带有锁存功能的 8 路选 1 的模拟开关,由 A、B、C 的编码来决定所选的通道。ADC0809 完成一次转换需 100s 左右,它具有输出 TTL 三态锁存缓冲器,可直接连接到 AT89C51 的数据总线上。通过适当的外接电路,ADC0808 可对 05V 的模拟信号进行转换。3.5 74LS373 芯片的引脚及功能3.5.1 芯片概述4LS373 是一种带有三态门的 8D 锁存器,其在本设

25、计中是锁存 P0 口的低 8位地址,芯片模型如图 7 所示。3.5.2 引脚介绍(1) D0D7:8 位数据输入线;(2) Q0Q7:8 位数据输出线(3) G:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。(4) :数据输出允许信号,低电平有效。当该信号为低电平时,三态门OE图 3-5 74LS373 芯片模型9打开,锁存器中的数据输出到数据输出线上,当该信号为高电平时,输出线为高阻态。3.6 LED 数码管的控制显示3.6.1 数码管的模型3.6.2LED 数码管的接口简介LED 的段码端口 AG 分别接至 AT89C51 的

26、P1.0P1.7 口,位选端 14 分别接至 P3.5、P3.4、P3.1、P3.0,4、系统软件程序的设计4.1 初始化程序所谓初始化,是对将要用到的 MCS_51 系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。图 3-7LED 与 AT89C51 的硬件连线104.2 A/D 转换子程序A/D 转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图 8 所示。图 8 A/D 转换流程图4.3 显示子程序显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描

27、显示方式时,要使得 LED 显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在 70HZ 左右时,能够产生比较好的显示效果,一般可以采用间隔 10ms 对 LED 进行动态扫描一次,每一位 LED 的显示时间为 1ms。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0 溢出中断功能实现 11s 定时,通过软件延时程序来实现 5ms 的延时。5、显示结果及误差分析5.1 显示结果1.输入电压值为 0V 时,显示结果如图 9 所示,测量误差为 0V。启动转换A/D 转换结束?输出转换结果数值转换显示结束开始11输入电压为 0V 时,LED 的显示结果2.当输入电

28、压值为 0.20V 时,显示结果如图所示。测量误差为 0.01V。输入电压为 0.20V 时,LED 的显示结果3. 当 IN0 口输入电压值为 2.95V 时,显示结果如图 11。测量误差为0.01V。输入电压为 2.95V 时,LED 的显示结果5.2 误差分析通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,如下表所示:表简易数字电压表与“标准”数字电压表对比测试表12标准电压值/V简易电压表测量值/V绝对误差/V0.00 0.00 0.000.10 0.09 0.010.20 0.19 0.010.30 0.29 0.010.50 0.50 0.001.10 1.

29、09 0.003.00 3.00 0.003.50 3.49 0.014.00 4.00 0.005.00 5.00 0.00由于单片机 AT89C51 为 8 位处理器,当输入电压为 5.00V 时,ADC0808 输出数据值为 255(FFH) ,因此单片机最高的数值分辨率为 0.0196V(5/255)。这就决定了电压表的最高分辨率只能到 0.0196V,从上表可看到,测试电压一般以 0.01V 的幅度变化。从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏小 0-0.01V,这可以通过校正 ADC0808 的基准电压来解决。因为该电压表设计时直接用 5V 的供电电源作为电压,所

30、以电压可能有偏差。当要测量大于 5V 的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。6、课程设计体会通过本次设计,我对单片机这门课有了更深入的了解,而且我还学会了Proteus 和 Keil 软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功

31、能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。无论是在硬件连接方面还是在软件编程方面。本次设计采用了 AT89C51 单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应13用领域也更为广泛。设计中还用到了模/数转换芯片 ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。总的来说这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,让自己在电路设计方面能有所提升。参考文

32、献1何 宏.单片机原理及应用基于 Proteus 单片机系统设计及应用.清华大学出版社2郭天祥.51 单片机 C 语言教程入门、提高、开发、拓展全攻略.电子工业出版社,2005 年 12 月3于殿泓、王新年.单片机原理与程序设计实验教程.西安电子科技大学出版社,2007 年 5 月4谢维成、杨加国.单片机原理与应用及 C51 程序设计实例.电子工业出版社,2006 年 3 月5李广弟.单片机基础.北京航空航天大学出版社,2007 年 5 月6姜志海,黄玉清等著.单片机原理及应用M .北京:电子工业出版社.2005 年 7 月7魏立峰.单片机原理及应用技术.北京大学出版社,2005 年8周润景.

33、Protues 在 MCS-51char led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;char ledk=0xfe,0xfd,0xfb,0xf7;void delay(unsigned char j)while(j-);void main()unsigned char a,zh,xiao;ADC0808=0;while(1)if(!EOC)a=ADC0808;zh=a/51;xiao=(a%51)*100/51;P1=ledzh|0x80;P3=ledk1;delay(300);P3=0xff;P1=ledxiao/10;P3=ledk2;17delay(300);P3=0xff;P1=ledxiao%10;P3=ledk3;delay(300);P3=0xff;ADC0808=0;

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报