1、课 程 设 计 报 告课程名称:单片机原理及应用课程设计设计题目: 简易数字电压表 系 别: 通信与控制工程系 专 业: 电信工程 班 级: 二班 学生姓名: 学 号: 起止日期: 指导教师: 教研室主任: 指导教师评语:指导教师签名: 年 月 日成绩项 目 权重1、设计过程中出勤、学习态度等方面 0.22、课程设计质量与答辩 0.53、设计报告书写及图纸规范程度 0.3成绩评定总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见:主任签字: 年 月 日摘 要本设计数字电压表是利用 A/D 转换原理,将被测模拟量转换成数字量 ,并用数字方式显示测量结果的电子测量仪表。通常数字
2、电压表都采用大规模的 A/D 转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。其中,A/D 转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将 A/D 转换器中各组模拟开关接通或断开,保证 A/D 转换正常进行。A/D 转换结果通过计数译码电路变换成笔段码,最后驱动显示器显示相应的数值。本系统以单片机 AT89C52 为系统的控制核心,结合A/D 转换芯片 ADC0809 设计一个数字电压表,能够测量 02.5V 之间的直流电压值,通过四位数码显示。具有读数据准确,测量方便的特点。关键词:STC89C52;电压
3、表;A/D 转换;ADC0809前 言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统
4、运行起来的原理及方法。本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、A/D 转换电路、LED 显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用汇编语言编程,利用 Keil 软件对其编译,详细的设计算法将会在程序设计部分详细介绍。目 录设计要求 .11 方案论证与对比 .11.1 方案一.11.2 方案二.11.3 方案对比与选择.22 系统硬件电路的设计 .22.1 A/D 转换电路的设计及原理 .32.2 数据处理电路的设计及原理.42.3 显示控制电路的设计及原理.63 系统程序的设计 .93.1 初始化程序.93.2 主程
5、序.93.3 显示子程序.93.4 A/D 转换测量子程序 .104 调试及性能分析 .114.1 调试与测试.114.2 性能分析.115 详细仪器清单 .126 总结 .13参考文献 .14附录一:A/D 转换与控制 PCB 电路图.16附录二:程序 .17数字电压表设计要求主要利用单片机 STC89C52 芯片,A/D 转换采用 ADC0809 实现数字电压表, 数字万用表可以测量 02.5V 范围内的 2 路输入电压值,并在 6 位 LED 数码管上轮流显示,要求程序控制测量的切换。其测量最小分辨率为 0.05V.1 方案论证与对比1.1 方案一系统采用 STC89C52 单片机,A/
6、D 转换采用 ADC0809.系统除能确保实现要求的功能外,还可以很方便地进行 8 路其他 A/D 转换的测量和远程测量结果传送等扩展功能。原理框图如图 1 所示:STC89C52P0P2P1P3上电复位串口通信电源电路ADC08094 位 LED 显示图 1 方案一系统方框图1.2 方案二系统采用 STC89C52 单片机,A/D 转换采用 MC14433 双积分 A/D 转换器能够实现转换精度高、抗强干扰的数模转换,而且价格便宜,应用于速度要求不高的工程实际中。原理框图如图 2 所示:STC89C52P0P2P1P3上电复位串口通信电源电路MC144333 位 LED 显示图 2 方案二系
7、统方框图1.3 方案对比与选择以上方案中方案一中 ADC0809 属于逐次逼近式 A/D 转换器,N 次逐次逼近A/D 转换器最多只需 N 次 D/A 转换、比较判断,就可以完成 A/D 转换。因此,逐次逼近型 A/D 转换速度很快,而且带有锁存控制逻辑的 8 通道多路转换开关,便于选择 8 路中的任一路进行转换。而方案二中采用了速度大受限制的 MC14433 双积分A/D 转换器。通过以上综合分析可以看出,显然方案一要明显优于方案二,因此数字电压表采用方案一设计。2 系统硬件电路的设计采集 2 个通道的模拟量在数码管显示出来。模拟量值的测量范围是 0-255,第三至六个数码管用于显示采集的模
8、拟量的值,每秒钟显示切换一下通道。简易数字电压表测量电路由 A/D 转换、数据处理及显示控制等组成。2.1A/D 转换电路的设计及原理ADC0809 是采用逐次逼近式原理的 A/D 转换器。1.主要性能分辨率为 8 位二进制数。模拟输入电压范围 0V5V,对应 A/D 转换值为 00HFFH。每路 A/D 转换完成时间为 100s。允许输入 8 路模拟电压,通过具有锁存功能的 8 路模拟开关,可以分时进行 8路 A/D 转换。工作频率为 500kHz,输出与 TTL 电平兼容。2.ADC0809 芯片的组成原理根据设计要求如图 3 所示:图 3 A/D 转换电路原路图由图可见,它是由地址锁存器
9、、8 路模拟开关、8 位逐次 A/D 转换器和三态锁存输出缓冲器构成。由 3 位地址输入线 ADDRA、ADDRB、ADDRC 决定 8 路模拟输入中的 1 路进 8 位 A/D 转换器,A/D 转换值进入三态锁存输出缓冲器暂存,在CPU 发来输出允许控制信号 OE 后,三态门打开,经 DB7DB0 进入 CPU 总线,完成一次 A/D 转换全过程。3ADC0809 引脚功能ADC0809 采用 28 引脚的封装,双列直插式。A/D 转换由集成电路 0809 完成。0809 具有 8 路模拟输入端口,地址线(23- 25 脚即 C,B,A,)可决定对哪一路模拟输入作 A/D 转换。22 脚为地
10、址锁存控制(ALE) ,当输入为高电平时,对地址信号进行锁存。6 脚为测试控制(START) ,当输入一个 2uS 宽高电平脉冲时,就开始 A/D 转换。7 脚为 A/D 转换结束标志(EOC) ,当 A/D 转换结束时,7 脚输出高电平。9 脚为 A/D 转换数据输出允许控制(OE) ,当 OE 脚为高电平时,A/D 转换数据从该端口输出。10 脚为 0809 的时钟输入端(CLOCK ) ,利用单片机 30 脚的六分频晶振频率再通过 14024 二分频得到 1MHz 时钟。单片机的 P1、P3.0P3.3 端口作为六位 LED 数码管显示控制。2.2 数据处理电路的设计及原理STC89C5
11、2 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元,功能强大的 STC89C52 单片机可为您提供许多较复杂系统控制应用场合。STC89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,STC89C52 可以按
12、照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本。STC89C52 有 PDIP、PQFP/TQFP 及 PLCC 等三种封装形式,以适应不同产品的需求。主要功能特性: 兼容 MCS51 指令系统 8k 可反复擦写(1000 次) Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时/计数器中断 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉
13、电模式 软件设置睡眠和唤醒功能P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址/数据总线复用口。P1 口: P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。RST:复位输入。ALE/PROG: 当访问外部程序存储器或数据存
14、储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。EA/VPP:外部访问允许。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.3 显示控制电路的设计及原理显示子程序采用动态扫描法实现 4 位数码管的数值显示。测量所得的 A/D 转换数据放 70H77H 内存单元中,测量数据在显示时须经过转换成为十进制 BCD 码放在 78H7BH 单元中,其中 7B 存放通道标志数。寄存器 R3 用作 8 路循环控制,R0 用作显示数据地址指针。本系统显示部分采用 6 位数码管动态扫描显示。动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路