当前位置:文档之家› 单片机设计报告

单片机设计报告

单片机原理及系统课程设计专业:自动控制班级:动1001姓名:武明强学号: 201008430指导教师:兰州交通大学自动化与电气工程学院基于单片机的数字电压表设计一、 引言数字电压表(Digital V oltmeter )简称DVM ,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出强大的生命力。

与此同时,由DVM 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

二、 设计方案及原理2.1 设计要求以单片机为核心,设计一个数字电压表。

采用中断方式,对2路0~5V 的模拟电压进行循环采集,采集的数据送LED 显示,并存入内存。

超过界限时指示灯闪烁。

2.2 设计思路本题目本质上是以单片机为控制器,ADC0809为ADC 器件的AD 转换电路,设计要求的电压显示,是对ADC 采集所得信号的进一步处理。

为得到可读的电压值,需根据ADC 的原理,对采集所得的信号进行计算,并显示在LED 上。

本项目中ADC0809的参考电压为+5V ,根据定义,采集所得的二进制信号data 所指代的电压值为:而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以100),其计算的数值为:将小数点显示在第二位数码管上,即为实际的电压2.3 数字电压表原理数字电压表的基本工作原理是利用A/D 转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。

较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。

电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,V5256data ⨯V1.96data V 5256100data ⨯≈⨯⨯完成这种转换的电路叫模数转换器(A/D)。

数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。

一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。

本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0808、液晶显示器LCD为主体,构造了一款简易的数字电压表,能够测量2路0~5V直流电压,最小分辨率0.02V。

三、硬件设计3.1模块设计电路单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。

3.1.1时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XY AL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器C1和C2对振荡频率有微调作用,通常取(30±10)pF石英晶体选择6MHz或12MHz都可以。

3.1.2系统复位电路单片机的RST管脚为主机提供了一个外部复位信号输入口。

复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。

单片机的复位方式可由手动复位方式完成。

3.2Protues仿真电路3.2.1电路工作原理图4-2所示。

A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。

22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。

6脚为测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。

9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出10脚为0808的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。

单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。

P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。

P0端口作A/D转换数据读入用,P2端口用作0808的A/D 转换控制。

3.2.2电路仿真图图3-1 Protues仿真电路原理图3.3.1ADC0808简介逐次逼近型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。

ADC0808引脚功能如下:IN0~IN 7:8路模拟量输入。

A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。

ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。

D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。

OE:允许输出信号。

当OE=1时,即为高电平,允许输出锁存器输出数据。

START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。

EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。

四、软件设计4.1初始化程序系统上电时,初始化程序将70H~77H内存单元清0,P2口置0。

4.2显示子程序显示子程序采用动态扫描法实现四位数码管的数值显示。

测量所得的A/D转换数据放在70H~77H内存单元中,测量数据在显示时需转换成为十进制BCD码放在78H~7BH内存单元中,其中7BH存放通道标志数。

寄存器R3用作8路循环控制,R0用作显示数据地址指针。

4.3 主程序在刚上电时,系统默认为循环显示8个通道的电压值状态。

当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1s左右。

主程序在调用显示子程序和测试子程序之间循环,主程序流程图见图4-1图4-1主程序流程图4.4模/数转换测量子程序模/数转换测量子程序用来控制对0808八路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。

五、总结万事开头难,在刚拿到题目时还真有些不知所措的感觉,在经过仔细琢磨,和参考资料的帮助下,才渐渐有了思路。

经过一周时间的制作之后,终于,完成了这次课程设计。

当然,在设计中必不可少的会出现一些问题,如在软件设计时,程序很难编写,无法入手。

先是自己构造程序思路,之后通过在网上查阅资料,请教同学等方式,解决了问题,完成了这重要的一步,使得编程能力有了一定的提高。

还有在仿真连接时,开始时,系统总是无法工作,或是工作不正常,但最后在仔细排查之下,终于发现了错误,完成了仿真实现。

从最开始的原理,到中间的软硬件设计,到最后的仿真实现,这次课程设计都使的我对于单片机的原理与功能有了更加深刻的理解,也对于单片机的应用范围有了更广阔的认识,提高了我们在计算机方面的知识水平与应用能力。

最后,感谢在设计过程中指导我们的老师,和帮助我的同学。

六、参考文献[1] 王为青,程国刚.单片机应用开发技术[M],北京,电子工业出版社[2] 阎石.数字电子技术基础,北京,高等教育出版社[3] 邓元庆.数字电路与逻辑设计,北京,电子工业出版社附录源程序:LED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32H ;存放段码TEMP EQU 43HADC EQU 35HCLOCK BIT P2.4 ;定义ADC0809钟位ST BIT P2.5EOC BIT P2.6OE BIT P2.7ORG 0000HSJMP STARTORG 0050HLJMP I NT_T0START: M OV LED_0,#00HMOV LED_1,#00HMOV LED_2,#00HMOV DPTR,#TABLE ;段码表首地址MOV TMOD,#02HMOV TH0,#245MOV TL0,#00HMOV IE,#82HSETB T R0W AIT: C LR S TSETB STCLR S TCLR P3.7CLR P3.6 ;启动AD转换JNB E OC,$ ;等待转换结束SETB OEMOV ADC,P1 ;读取AD转换结果CLR O EMOV A,ADCMOV TEMP,ASUBB A,#128 ;减小一半量程JC JUD1 ;小于一半量程则跳转SETB P3.6 ;大于一半量程则蜂鸣器响JUD1: M OV A,TEMP ;判断是否小于四分之一量程SUBB A, #64JC JUD2SETB P3.7 ;大于四分之一量程则使二极管闪烁JUD2: MOV A,TEMPMOV B,#51 ;AD转换结果转换成BCD码DIV A BMOV LED_2,A ; 整数位MOV A,BMOV B,#10MOV TEMP,ASUBB A,# 25JC JUD3MUL ABSUBB A,#5MOV B,#51DIV ABADD A,#05HSJMP V1JUD3: MOV A,TEMPMUL ABMOV B,#51DIV ABV1: M OV LED_1,A ;小数点后第一位MOV A,BMOV TEMP,ASUBB A,# 25JC V1_2MUL ABSUBB A,#5MOV B,#51DIV ABADD A,#05HSJMP V2V1_2: MOV A,TEMPMUL ABMOV B,#51DIV ABV2: M OV LED_0,A ;小数点后第二位WERT: LCALL D ISPLJMP W AITINT_T0: CPL CLOCK ;提供ADC0809信号RETIDISP: M OV A,LED_0 ;显示子程序MOVC A,@A+DPTRCLR P2.3MOV P0,ALCALL D ELAYSETB P2.3MOV A,LED_1MOVC A,@A+DPTRCLR P2.2MOV P0,ALCALL D ELAYSETB P2.2MOV A,LED_2MOVC A,@A+DPTRCLR P2.1ADD A,#0X80MOV P0,ALCALL D ELAYSETB P2.1RETDELAY: M OV R6,#1 ;延时5毫秒D1: MOV R7,#100DJNZ R7,$DJNZ R6,D1RETTABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH END。

相关主题