1、 目录 摘要 2 第一章:方案论证 3 1.1 设计思路 3 1.2 设计方案 3 第二章 硬件电路设计 4 2.1 单片机处理电路 4 2.1.1单片机AT89C51介绍 4 2.1.2主要特性 5 2.1.3引脚说明 5 2.1.4复位电路 7 2.1.5时钟电路 8 2.2 ADC0808模数转换 8 2.2.1 ADC0808介绍 8 2.2.2 各个引脚功能 9 2.2.3 ADC0808内部结构及工作流程 10 2.3 LED数码管设计系统
2、11 2.3.1 LED基本结构 11 2.3.2 LED数码管选择 11 2.4报警电路 12 第三章:软件环境 12 3.1 Proteus软件 12 3.1.1 Proteus软件介绍. 12 3.1.2软件调试 13 3.1.3仿真电路图 14 3.2 C语言源程序 14 实验总结 16 摘要 随着微电子技术不断发展,微处理器芯片集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术及测量控制技术结合,组成智能化测量控制
3、系统。 在电量测量中,电压、电流和频率是最基本三个被测量,其中电压量测量最为经常。而且随着电子技术发展,更是经常需要测量高精度电压,所以数字电压表就成为一种必不可少测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续模拟量转换成不连续、离散数字形式并加以显示仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。 传统指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代需要。采用单片机数字电压表,将连续模拟量如直流电压转换成不连续离散数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可及PC实时
4、通信。数字电压表是诸多数字化仪表核心及基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量数字化仪表。目前,由各种单片机和A/D转换器构成数字电压表作全面深入了解是很有必要。 目前,数字电压表内部核心部件是A/D转换器,转换精度很大程度上影响着数字电压表准确度,因而,以后数字电压表发展就着眼在高精度和低成本这两个方面[3]。 本文是以简易数字直流电压表设计为研究内容,本系统主要包括五大模块:模拟量输入电路、A/D 转换电路、单片机处理电路和报警电路及显示模块。其中,A/D转换采用ADC0808对输入模拟信号进行转换,控制核心AT89C51再对转换结果进行运算
5、处理,最后驱动输出装置LED显示数字电压信号以及判断出过电压时报警。 第一章 :方案论证 1. 1设计思路 (1)选择AT89C51单片机为核心控制器件。 (2) 采用1路模拟量输入,能够测量0-5V之间电压值。用滑动变阻器改变电压输入。 (3)用单片机I/O口输出信号来控制ADC0808启动A/D转换及结束 (4)显示采用4位一体LED数码管。 (5)LED数码段码输入,由并行端口P0产生电压;位码输入,用并行端口P2低四位产生。 (6)判断出电压高于3V时,蜂鸣器发出声音LED灯亮。 (7)尽量使用较少元器件 1.2设计方案 (1) 提供5V电压,并用
6、滑动变阻器来调节输入0~5V电压。 (2) ADC0808采集到模拟量转换为一个8位二进制数,然后再通过I/O口送回单片机内部进行处理。 (3) 单片机进行一系列运算和校准后,通过数码管将电压值显示出来。 直 流 电 压 模 数 转 换 模 块 微 控 制 器 模 块 模拟电压 数字电压 程序控制 电压显示 程序控制 警报系统 (4) 把系统处理电压数值及3V进行比较,大于3V时,使蜂鸣器发出声音,LED灯亮,作为报警显示。 第二章 硬件电路设计 2. 单片机处理电路 2.1.1单片机AT89C51介绍 该电路
7、主要功能是根据 TLC1543提供A/D转换结果 ,判断该结果对应交流电压正常及否 ,而分别做出不同报警信号。在程序设计中我们根据实际调试 ,选取了两个边界值 ,代表着正常工作电压范围两端 ,当A/D 转换得到数据送进AT89C51 中 ,CPU将该结果及边界值比较 ,CPU将从而作出不同报警动作 ,它及A/D系统构成了工作核心。 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技
8、术制造,及工业标准MCS-51 ? 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMELAT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉方案。 2.1.2主要特性: ·及MCS-51 兼容 ·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功
9、耗闲置和掉电模式 ·片内振荡器和时钟电路 2.1.3引脚说明 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外
10、部下拉为低电平时,将输出电流,这是由于内部上拉缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口管脚被外部拉低,将输出电流。这是由于内部上拉缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
11、 P3口:P3口管脚是8个带内部上拉电阻双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉缘故。 P3口也可作为AT89C51一些特殊功能口,如下表所示: 引脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3
12、7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许输出电平用于锁存地址地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变频率周期输出正脉冲信号,此频率为振荡器频率1/6。因此它可用作对外部输出脉冲或用于定时目。然而要注意是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作
13、用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器输入及内部时钟工作电路输入。
14、 XTAL2:来自反向振荡器输出 2.1.4复位电路 计算机在启动运行时都需要复位,使中央处理器CPU和系统中其它部件都处于一个确定初始状态,并从这个状态开始工作。 MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都 输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。 单片机采用复位方式是自动复位方式。对于MOS(S
15、TC89C51)单片机只要接一个电容至VCC即可(见图3.3)。在加电瞬间,电容通过电阻充电,就在RST端出现一定时间高电平,只要高电平时间足够长,就可以使MCS-51有效复位。RST端在加电时应保持高电平时间包括VCC上升时间和振荡器起振时间,Vss上升时间若为10ms,振荡器起振时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠复位,RST在上电应保持20ms以上高电平。RC时间常数越大,上电RST端保持高电平时间越长。 复位电路如图: 2.1.
16、5时钟电路 单片机中CPU每执行一条指令,都必须在统一时钟脉冲控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中时序电路发出。CPU执行一条指令各个微操作所对应时间顺序称为单片机时序。MCS-51单片机芯片内部 有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路[1]。 本设计系统采用内部时钟方式,利用单片机内部高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如图7所示。 图7 时钟电路 2.2 ADC0808模数转换 2.2.1 ADC0808介绍
17、ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,及微机直接接口,片内带有锁存功能8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术长处,所以该芯片非常适应于过程控制,微控制器输入通道接口电路,智能仪器和机床控制等领域。 ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制8路模拟开关;易及各种微控制器接口;可锁存三态输出,输出及TTL兼容;转换时间:128μs;转换精度:0.2%;单个+5V电源供电;模拟输入电压范围0- +5V,无需外部零点和满度调整;低功耗,约15mW[6]。
18、 2.2.2各个引脚功能: IN0-IN7(8条):8路模拟量输入线,用于输入和控制被转换模拟电压。 地址输入控制(4条): ALE:地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。 ADDA,ADDB,ADDC:3位地址输入线,用于选择8路模拟输入中一路,其对应关系如表1所示: 表1 ADC0808通道选择表 地址码 对应输入通道 C
19、 B A 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1
20、 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 START:START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于
21、100ns,上升沿清零SAR,下降沿启动ADC工作。 EOC: EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。 D1-D8:数字量输出端,D1为高位。 OE:OE为输出允许端,高电平能使D1-D8引脚上输出转换后数字量。 REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。 Vcc、GND: Vcc为主电源输入端,GND为接地端,一般REF+及Vcc连接在一起,REF-及GND连接在一起. CLK:时钟输入端。 2.2.3ADC0808内部结构及工作流程 ADC0808由8路模拟通道选择开关,地址锁存及译码器,比较器,8位
22、开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路和三态输出锁存器等组成, 其中: (1)8路模拟通道选择开关实现从8路输入模拟量中选择一路送给后面比较器进行比较。 (2)地址锁存及译码器用于当ALE信号有效时,锁存从ADDA、ADDB、ADDC 3根地址线上送来3位地址,译码后产生通道选择信号,从8路模拟通道中选择当前模拟通道。 (3)比较器,8位开关树型A/D转换器,逐次逼近型寄存器,定时和控制电路组成8位A/D转换器,当START信号有效时,就开始对当前通道模拟信号进行转换,转换完成后,把转换得到数字量送到8位三态锁存器,同时通过引脚送出转换结束信号。 (4)三态输出锁存器
23、保存当前模拟通道转换得到数字量,当OE信号有效时,把转换结果送出。 ADC0808工作流程为: (1)输入3位地址,并使ALE=1,将地址存入地址锁存器中,经地址译码器从8路模拟通道中选通1路模拟量送给比较器。 (2)送START一高脉冲,START上升沿使逐次寄存器复位,下降沿启动A/D转换,并使EOC信号为低电平。 (3)当转换结束时,转换结果送入到输出三态锁存器中,并使EOC信号回到高电平,通知CPU已转换结束。 (4)当CPU执行一读数据指令时,使OE为高电平,则从输出端D0-D7读出数据。 2.3 LED数码管设计系统 2.3.1 LED基本结构 LED
24、是发光二极管显示器缩写。LED由于结构简单、价格便宜、及单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段显示器件。在单片机中使用最多是七段数码显示器。LED七段数码显示由 一个发光二极管组成显示字段,其中7个长条形发光二极管排列成“日”字 另一个圆点形发光二极管在显示器右下角作为显示小数点用,其通过不同组合可用来显示各种数字。 2.3.2 LED数码管选择 在应用系统中,设计要求不同,使用LED显示器位数也不同,因此就生产了位数,尺寸,型号不同LED显示器供选择,在本设计中,选择4位一体数码型LED显示器,简称“4-LED”。本系统中前一位显示电压整
25、数位,即个位,后两位显示电压小数位。 4-LED显示器引脚如图7所示,是一个共阳极接法4位LED数码显示管,其中A,B,C,D,E,F,G为4位LED各段公共输出端,1、2、3、4分别是每一位位数选端,DP是小数点引出端,4位一体LED数码显示管内部结构是由4个单独LED组成,每个LED段输出引脚在内部都并联后,引出到器件外部。 2.4报警电路 本电路采用声音和灯光报警。CPU 根据 A/D 转换结果和选取边界域值 ,从而判断出此时对应电压是正常 ,或偏高 ,当过高时蜂鸣器发出声音,LED灯亮。 第三章 :软件环境
26、 3. 1Proteus软件 3.1.1Proteus软件介绍 Proteus软件是英国Labcenter electronics公司出版EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件仿真功能,还能仿真单片机及外围器件。它是目前最好仿真单片机及外围器件工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学教师、致力于单片机开发应用科技工作者青睐。Proteus是世界上著名EDA工具(仿真软件),从原理图布图、代码调试到单片机及外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品完整设计。是目前世界上唯一将电路
27、仿真软件、PCB设计软件和虚拟模型仿真软件三合一设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 其功能特点 Proteus软件具有其它EDA工具软件(例:multisim)功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性特点 : (1)互动电路仿真 用
28、户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图虚拟原型上编程,再配合显示及输出,能看到运行后输入输出效果。配合系统配置虚拟逻辑分析仪、示波器等。 3.1.2软件调试 软件调试主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性,而有些是隐形,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器设计连同所有周围电子器件一起仿真,用户甚至可以实时采用诸如L
29、ED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点特点是可以及u Visions3 IDE工具软件结合进行编程仿真调试。
本系统调试主要以软件为主,其中,系统电路图绘制和仿真我采用是Proteus软件,而程序方面,采用是汇编语言,用Keil软件将程序写入单片机。
3.1.3仿真电路图
3.2 C语音源程序
源程序:
#include 30、ins.h>
#define uchar unsigned char
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_0=P2^0;
sbit OE=P3^0;
sbit EOC=P3^1;
sbit ST=P3^2;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
uchar code leddata_dot[]={0x40,0x79,0x24,0x30,0x19,0x12};
uchar co 31、de leddata[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(uchar n)
{ uchar i,j;
for(i=0;i 32、P2_1=0;
P0=leddata[(volt_data%51)*10/51];
P2_2=1;
delay(3);
P2_2=0;
temp=(((volt_data%51)*10)/51)*10%51;
if(temp<0x12)
{
P0=leddata[temp*10/51];
P2_3=1;
delay(3);
P2_3=0;
}
else
{
P0=leddata[temp*10/51+5];
P2_3=1; 33、
delay(3);
P2_3=0;
}
}
void main()
{
uchar volt_data;
P3_4=1;
P3_5=1;
P3_6=0;
while(1)
{
ST=0;
_nop_();
ST=1;
_nop_();
ST=0;
if(EOC==0)
delay(100);
while(EOC==0);
OE=1;
volt_data=P1;
34、 OE=0;
convert(volt_data);
if(volt_data>153)
{
P2_0=1;
}
else
{
P2_0=0;
}
}
}
实验总结
本次课程设计内容是基于51单片机直流电压采集及显示系统设计,核心部分是模数转换及电压显示,这一知识点在本学期教学过程中已经广泛应用,对模数转换芯片A 35、DC0809有进一步了解,故我将此次设计重点放在了功能扩展部分模块实现方法及显示改变上。大三学期教学实验中,通过网上资料及课本信息,我会会了简单编程和设计最重要是排版效果,在这些过程中我获益匪浅:加深了对模数转换了解,能对其功能进行多元化应用;数码管显示技术上,我在以前所存静态显示基础上,又掌握了动态扫描方法;另一个收获是在课程设计过程中,我边学边用汇编语言,对简单汇编语言编程能够独立轻松完成,汇编语言在单片机编程中灵活,功能强大,效率高,简单明了,具有很多优势,学会它是此次课程设计最大收获。
对于此次课程设计电路图,在现实中并不是如此应用,而是P0口接一个74L373地址寄存器,P1接口接 36、数码管显示器,这样P3接口就可以释放做其他用处。对于AD转换此次单片机用算法是除以51算法,而还有其他算法,比如先乘以196,再除以1000,也可以得到同样结果。此次实验电路图只做实验研究而用,所以以后要多从实际出发,才能做出更成功作品。
参考文献
[1] 周荷琴 吴秀清 微型计算机原理及接口技术第五版 合肥 中国科学技术大学出版社,2013
[2] 康华光 电子技术基础(数字部分) 北京:高等教育出版社,2012
[3] 康华光 电子技术基础(模拟部分) 北京:高等教育出版社,2012
[4] 兰吉昌 51单片机应用设计百例 北京: 37、化学工业出版社,2012
[5] 求是科技 单片机典型模块设计实例导航 北京:人民邮电出版社,2005
[6]姜志海,黄玉清等著.单片机原理及应用[M] .北京:电子工业出版社.2005年7月
[7]魏立峰.单片机原理及应用技术.北京大学出版社,2005年
[8]周润景.Protues在MCS-51&ARM7系统中应用百例.第一版.北京:电子工业出版 社,2006年
[9]边春远等著.MCS-51单片机应用开发实用子程序[M] .北京:人民邮电出版社.2005 [10]苗红霞.单片机实现数字电压表软硬件设计[J] .河海大学常州分校学报,2002
24 / 24






