单片机课程设计数字电压表

  • 格式:doc
  • 大小:550.00 KB
  • 文档页数:25

.

-.

单片机技术课程设计说明书

数 字 电 压 表

院 、 部: 电气与信息工程学院

学生姓名:

指导教师: 职称

专 业:

班 级:

完成时间: 2 .

-. 摘 要

在现代检测技术中,常需用高精度数字电压表进行现场检测,将检测到的数据送入微计算机系统,完成计算、存储、控制和显示等功能。本文中的数字电压表的控制系统采用ATMEL89C51单片机,A/D转换器采用TLC549为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。电压表在生活中应用非常广泛,而一种简单方便的数字电压表则更能受到人们的欢迎。所以设计一个简易数字电压表很有必要。本电压表采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现电压测试,同时液晶显示电压值要求。该电压表设有配套的行列式键盘,进行相应的操作就可实现进入、确认功能。测压准确、显示直观、运行稳定等优点。具有极高的推广应用价值。

关键词 数字单片机;数字电压表;A/D转换;模拟信号

.

-.

目 录

1 设计课题任务、功能要求说明及方案介绍…………………………………………1

1.1 设计课题任务……………………………………………………………………1

1.2 功能要求说明……………………………………………………………………1

1.3 设计总体方案介绍及原理说明…………………………………………………1

2 设计课题硬件系统的设计……………………………………………………………2

2.1 设计课题硬件系统各模块功能简要介绍………………………………………2

2.2 设计课题电路原理图、PCB图…………………………………………………3

2.3 设计课题元器件清单……………………………………………………………3

3 设计课题软件系统的设计……………………………………………………………4

3.1 设计课题使用单片机资源的情况………………………………………………4

3.2 设计课题软件系统各模块功能简要介绍………………………………………4

3.3 设计课题软件系统程序流程框图………………………………………………4

3.4 设计课题软件系统程序清单···································7

4 设计结论、测试结果、误差分析、教学建议………………………………………14

4.1 设计课题的设计结论及使用说明……………………………………………14

4.2 设计课题的测试结果…………………………………………………………14

4.3 设计课题的误差分析…………………………………………………………16

4.4 设计体会………………………………………………………………………16

4.5 教学建议………………………………………………………………………16

参考文献 ………………………………………………………………………………17

附 录 ………………………………………………………………………………18

.

-. TCL549模数转换 1

设计课题任务、功能要求说明及方案介绍

1.1 设计课题任务

设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符作者信息, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在液晶显示器上。按退出键完成电压表的测量。

1.2 功能要求说明

设计一个能够测量直流电压的数字电压表。测量电压范围0~5V,测量精度小数点后两位。该电压表上电或按键复位后能自动显示系统提示符作者信息, 进入测量准备状态,按测量开始键则开始测量,并将测量值显示在液晶显示器上。调动滑动变阻器,显示电压数值随之改变。

1.3 设计课题总体方案介绍及工作原理说明

本电压表主要由单片机、4*4行列式键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:

AT89C51

图1.1 总体设计方案图

本电压表的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。行列式键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字电压表效果,再利用液晶显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

液晶显示 行列式键盘

电源及复位电路等 .

-. 2 设计课题硬件系统的设计

2.1 设计课题硬件系统各模块功能简要介绍

本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、显示模块、电源模块。

(1)复位电路:复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。

(2)键盘电路:当非编码键盘的按键较少时,采用独立式键盘比较方便,但液晶板则适合行列式键盘,占用口线少,使用也相对方便,所以本设计采用行列式键盘。

行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、自动消抖、自动识别按下的键,并给出编码,能对双键或n个键同时按下的情况实行保护。键盘电路原理图如图2.4所示

(3)显示电路:显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示器有:发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LCD显示器是现在最常用的显示器之一。本设计用的是HS12864液晶显示器,通过单片机输出的数据在液晶屏上显示。

(4)电源电路:现在市面上销售的编程器有很多都是由PC机的USB口直接供电,为了降低本设计的成本及节省设计时间,没有另外设计编程器。

(5)TLC549电路:TLC549带有片内系统时钟,该时钟与I/OCLOCK是独立工作的,无需特殊的速度或相位匹配。当CS为高时,数据输DATA OUT端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLc549时,共用I/OcLOCK,以减少多路(片)A/D使用时的I/O控制端口。一组通常的控制时序操作如下:

(1)将Cs置低,内部电路在测得CS下降沿后,在等待两个内部时钟上升沿和一个下降沿后,再确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATAOUT端; .

-. (2)在前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6,D5,D4,D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟辅人:

(3)接下来的3个I/O CLOCK周期的下降沿可移出第6、7、8(D2,D1,D0)各转换位

(4)最后,片上采样保持电路在第8个I/OCLOCK周期的下降沿将移出第6、7、8(D2,D1,D0)各转换位。然后使保持功能持续4个内部时钟周期,接着开始进行32个内部时钟周期的A/D转换。在第8个I/O cLCOK后,CS必须为高或I/O LOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果CS为低时,I/O CLOCK上出现一个有效干扰脉冲,则微处理器,控制器将与器件的I/O时序失去同步;而在cs为高时若出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。在36个内部系统时钟周期结束之前,实施步骤(1)~(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换将终止。但应注意,此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号,则应使第8个I/O CLOCK时钟的下降沿与该时刻对应。因为芯片虽在第4个I/O CLOCK时钟的下降沿开始采样,却在第8个I/O CLOCK的下降沿才开始保存。 TLC549的电路原理如图2.4所示。

2.2 设计课题电路原理图、PCB图、元器件布局图

图2.1 电路原理图

图2.2 PCB图

2.3 设计课题元器件清单

图2.3 元器件清单

.

-. 3 设计课题软件系统的设计

3.1 设计课题使用单片机资源的情况

设计课题使用单片机资源的情况如下:

在本次设计中用到了P0和P3、P1口。P0口接液晶显示器的D0-D7,进行数据的读写功能;P3口接的是“|E, RS ,R/W”对液晶进行读写控制命令,P1口接行列式键盘,通过行列式键盘按键的控制来完成电压表的制作

3.2 设计课题软件系统个模块功能简要介绍

本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、液晶显示程序模块。

主程序:主要是用于对模拟输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制,通过调用子程序来完成模数转换的功能。

中断服务程序:主要是用于电压表的准确运行、数据输入过程中的等待处理。

行列式键盘输入程序模块:主要是用于确定按键并得到特定的键码值。

液晶及其驱动模块:主要用于显示单片机处理后的数字电压值。

延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时;按键去抖和等待模拟信号的输入采样。

3.3 设计课题软件系统程序流程框图

系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程

序转变成十六进制程序语言。

主程序流程框图如3.1所示;

键盘扫描子程序框图如3.2所示;

电压转换流程图如3.3所示;液晶显示程序流程图如图3.4所示;