基于STC89C52和ADC0809简易数字电压表的设计.pdf
- 文档编号:14658960
- 上传时间:2023-06-25
- 格式:PDF
- 页数:27
- 大小:811.76KB
基于STC89C52和ADC0809简易数字电压表的设计.pdf
《基于STC89C52和ADC0809简易数字电压表的设计.pdf》由会员分享,可在线阅读,更多相关《基于STC89C52和ADC0809简易数字电压表的设计.pdf(27页珍藏版)》请在冰点文库上搜索。
-1-题题目目:
基于基于STC89C52STC89C52的简易数字电压表的设计的简易数字电压表的设计院系名称:
院系名称:
专业班级:
专业班级:
学生姓名:
学生姓名:
学学号:
号:
指导教师:
指导教师:
教师职称:
教师职称:
2015年年5月月20日日-2-目录1设计内容与要求.-4-2设计目的意义.-4-3系统硬件电路图.-4-3.1系统原理框图.-4-4程序流程图与源程序.-16-5系统功能分析与说明.-22-5.1数字电压表的概述.-22-5.2数字电压表的介绍.-22-5.3数字电压表工作原理.-23-5.4数字电压表发展及未来.-23-5.5软硬件调试.-24-5.6系统功能分析.-25-总结.-26-参考文献.-27-3-摘要:
摘要:
本课题是利用单片机设计一个数字电压表,能够测量05V之间的直流电压值,四位数码管显示,使用的元器件数目较少。
外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。
然后由单片机给数码管数字信号,控制其发光,从而显示数字。
此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。
关键词:
单片机;STC89C52;数字电压表;ADC0809,四位数码管Abstract:
Thistopicistheuseofmicrocontrollerdesignadigitalvoltmeter,capableofmeasuringbetween0-5VDCvoltage,fourdigitaldisplay,theuseoffewercomponents.ExternalanalogvoltageinputtotheA/DconversionpartoftheinputoftheconversionintoadigitalsignalthroughtheADC0809,transmissiontothemicrocontroller.Andthenbythemicrocontrollertothedigitalcontroldigitalsignal,controlthelight,sothedisplayednumber.Inaddition,thearticlealsodiscussesthedesignprocessofsoftwareusedinthehardwareenvironment,debuggingtheproblemsandsoon.Keywords:
SCM;STC89C52;digitalvoltmeter;ADC0809,fourdigital-4-1设计内容与要求设计内容与要求用STC89C52单片机和ADC0809组成一个数字电压表,要求能够测量05V的直流电压值,并用四位数码管显示,并要求所用元器件最少。
2设计目的意义设计目的意义1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
2.通过数字电压表的设计系统掌握51单片机的应用。
掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。
3系统硬件电路图系统硬件电路图33.1.1系统原理框图系统原理框图选择STC89C52作为单片机芯片,选用四位8段共阳极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。
将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P1口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。
P2口接数码管位选,P0接数码管段选,实现数据的动态显示,如图4.1所示。
-5-33.2.2STCSTC8989CC5522的结构的结构在本次课题设计中我们选择了STC89C52芯片。
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
33.2.1.2.1STCSTC8989CC5522内部结构概述内部结构概述STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟每机器周期可以任意选择。
主要特性如下:
增强型8051单片机,6时钟每机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.工作电压:
5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)工作频率范围:
040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是STC89C52P1P0AD0809D0D7IN0IN7VREF+四位数码位选段选控制线数据待测电压图3.1系统原理-6-漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。
即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:
-40+85(工业级)/075(商业级)PDIP封装图3.2STC89C52引脚图-7-33.22.22CPUCPU结构结构CPU是单片机的核心部件。
它由运算器和控制器等部件组成。
1.运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心。
它可以对半字节(4)、单字节等数据进行操作。
例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。
运算器还包含有一个布尔处理器,用以处理位操作。
它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
2.程序计数器PCPC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。
3.指令寄存器指令寄存器用于存放指令代码。
CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。
33.22.3.3存储器和特殊功能寄存器存储器和特殊功能寄存器1.存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。
计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。
它根据控制器指定的位置存入和取出信息。
2.特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。
在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
其中5个是双字节寄存器,它们共占用了26个字节。
各特殊功能寄存器的符号和地址见附表2。
其中带号的可位寻址。
特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。
用于CPUPSW便是典型一例。
这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。
与芯片引脚有关的特殊功能寄存器是P0P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。
MCS51共有P0P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。
33.22.4P0.4P0-P3P3口结构口结构P0口功能:
P0口具有两种功能:
第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。
输出数据时可以得到锁存,不需外-8-接专用锁存器,输入数据可以得到缓冲。
第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写P1口功能:
P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。
P2口的功能:
P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。
它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能:
P3口有两个功能:
第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
表3.1P3口第二功能引脚名称功能P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2INT0外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写选通信号P3.7RD外部RAM读选通信号33.22.5.5时钟电路和复位电路时钟电路和复位电路1.时钟电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。
MCS-51内部有一个用于构成振荡器的可控高增益反向放大器。
两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
在片外跨接一晶振和两个匹配电容C1、C2如图2.5所示。
就构成一个自激振荡器。
振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。
匹配电容C1、C2要根据石英晶体振荡器的要求选取。
当晶振频率为12MHz时,C1C2一般选30pF左右。
图2.5中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。
当PD=1时单片机进入掉电工作方式,是一种节能工作方式。
上述电路是靠MCS-51单片机内部电路产生振荡的。
也可以由外部振荡器或时钟直接驱动MCS-51。
-9-图3.3复位电路的内部及外部方式2.复位电路复位是单片机的初始化操作。
其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。
复位是使单片机退出低功耗工作方式而进入正常状态一种操作。
复位是上电的第一个操作,然后程序从0000H开始执行。
在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。
要使其进入正常状态,唯一办法是将单片机复位,以重新启动。
复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。
表3.2程序计数器及各特殊功能寄存器的复位值寄存器复位状态寄存器复位状态PC0000HTH100HACC00HP0P3FFHPSW00HIPxx000000BSP07HIE0xx00000BDPTR0000HTMOD00HTCON00HSCON00HTL000HSBUF不定TH000HPCON0xxx0000BTL100HRST引脚是复位端,高电平有效。
在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。
RST引脚内部有一个斯密特ST触发器(图2.10)以对输-10-入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS引脚之间接一个8.2k的下拉电阻,与VCC引脚之间接一个约10F的电解电容,即可保证上电自动复位。
图3.4自动和手动复位电路图上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
33.33器件的比较与选择器件的比较与选择33.3.1.3.1显示器显示器本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。
1.数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。
小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。
但数码管只能是显示09的数据。
不能够显示字符。
这也是数码管的不足之处。
2.LED点阵显示器件是由好多个发光二极管组成的。
具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。
3.1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。
1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。
使用时直接编写软件程序按一定的时序驱动即可。
它的特点是显示字迹清楚,价格相对便宜。
-11-4.12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。
使用时也直接编写软件程序按一定的时序驱动即可。
不过它的价格比1602液晶贵了很多。
综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。
单位数码管如图4.4所示,四位共阳极数码管如图4.5所示。
33.3.2.3.2模数(模数(AA/D/D)芯片)芯片A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
A/D转换的常用方法有:
计数式A/D转换,逐次逼近型A/D转换,双积分式A/D转换,V/F变换型A/D转换。
在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。
图3.5四位共阴极数码管图4.4单位数码管abcdegGNDfdpGNDabcefgddpabcdefgdpdpgfedcba5V(a)(b)共阴极共阳极-12-双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。
如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。
目前最常用的是双积分和逐次逼近式。
(1)A/D芯片的比较双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。
1.AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。
2.AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。
它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。
3.TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。
它可以从主机高速传输转换数据。
它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。
综合上述,逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。
-13-
(2)ADC0809的工作原理1.IN0IN7:
8条模拟量输入通道ADC0809对输入模拟量要求:
信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
图3.7ADC0809引脚图图3.6ADC0809内部结-14-地址输入和控制线:
4条。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。
通道选择表如表4.3所示。
2.数字量输出及控制线:
11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。
D7D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。
3.ADC0809应用说明ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
初始化时,使ST和OE信号全为低电平。
送要转换的哪一通道的地址到A,B,C端口上。
在ST端给出一个至少有100ns宽的正脉冲信号。
是否转换完毕,我们根据EOC信号来判断。
当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC信号在表3.3ADC0809通道选择表-15-START的下降沿10us后才变为无效的低电平。
这要求查询程序待EOC无效后再开始查询,转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。
我们在设计程序时可以利用EOC信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809后经适当的延时再读入已转换的数据。
AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1与SUN7474连接经与7474的ST脚提供AD0809的工作时钟。
AD0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us。
33.4.4.2.2系统系统原理图原理图33.44.3.3系统系统PCBPCB图图-16-4程序流程图与源程序程序流程图与源程序44.1.1程序流程图程序流程图-17-初始化开ST、OE端口拉低ST上升沿清除AD缓存ST下降沿,AD开始转转换结P1口读取数据,数据除以51,商为电压整数余数乘以10后,再除以51,电压小数相应位加5余数25?
四位处理NY定时每隔500ms转换一-18-P2口为位选P0口为段选查询数码管显示表四位显示返回程序开图4.1程序流程图NY开始定时器初始显示函数延时图4.2主函数流程图-19-44.4.4CC语言语言程序清单程序清单#includetypedefunsignedcharuchar;typedefunsignedintuint;codeunsignedcharSEGMENT10=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;codeunsignedcharSELECT4=0xFD,0xF7,0xDF,0x7F;uintX1;sbitP2_1=P21;sbitP2_3=P23;sbitP2_5=P25;sbitP2_7=P27;sbitSTART=P22;sbitOE=P26;sbitEOC=P24;sbitspk=P20;voiddelay(uinti)uintj;for(j=0;j=i;j+);voidDelayms(uinti)ucharj,k;for(j=0;j=i;j+)for(k=0;k=114;k+);voidtimer(void)TMOD=0x01;TH0=0xdc;TL0=0x00;EA=1;ET0=1;TR0=1;-20-ucharScankey(void)ucharkey;if(P3&0x0f)=0x0f)return(0xff);Delayms(10);if(P3&0x0f)=0x0f)return(0xff);key=P3&0x0f;while(P3&0x0f)!
=0x0f);return(key);voiddisplay(unsignedintwen)staticunsignedcharnum=0;P2_1=1;P2_3=1;P2_5=1;P2_7=1;P0=0xff;switch(num)case0:
P0=SEGMENTwen%10;break;case1:
P0=SEGMENTwen/10%10;break;case2:
P0=SEGMENTwen/100%10;break;case3:
P0=SEGMENTwen/1000&0x7f;break;P2=SELECTnum;num+;num%=4;voidADC0809()uchartemp=2;START=0;delay(5);-21-START=1;delay(5);START=0;delay(5);while(!
EOC);OE=1;P1=0xff;temp=P1;X1=(unsignedint)temp*19.53;OE=0;if(X1=0)spk=0;elsespk=1;voidtimer_0(void)interrupt1stati
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C52 ADC0809 简易 数字 电压表 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)