基于AT89C51和ADC0809简易数字电压表的设计
基于AT89C51单片机的数字电压表设计.
P2口:这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但不像P0口那样传送存储器的读/写数据。
单片机AT89C51的时钟电路如图3-2所示,主要由电容C1- C3、电阻R1、晶振X1等组成。AT 89C51的18脚(XTAL2)和19脚(XTAL1)接时钟电路,其中19脚是AT89C51内部振荡器倒相放大器的输入端,用于接外部晶振和微调电容的一端;18脚是AT89C51内部振荡器倒相放大器输出端,用于接外部晶振和微调电容的另一端。
EOC: EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
REF+、REF-:参考电压输入量,给电阻阶梯网络供给标准电压。
Vcc、GND: Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起.
AT89C51功能性能:与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:1000次写/擦循环;数据保留时间:10年;全静态工作:0-24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式。
2.2
(1)根据设计题目,选择AT89C51单片机为核心控制器件。
基于51单片机的简易数字电压表的设计
课题交流毫伏表设计系别专业年级姓名学号指导教师目录第一章引言 (2)1.1摘要 (2)1.2 设计目的 (2)1.3设计任务及要求 (2)1.4 课程设计过程 (2)第二章系统方案选择和论证 (3)2.1基本方案论证 (3)2.2输出部分中各模块的方案选择 (3)2.3总体方案设计 (4)第三章AT89C51的结构 (5)3.1AT89C51的概述 (5)3.2 AT89C51部结构 (5)3.3存储器和特殊功能寄存器的介绍 (5)3.4时钟电路和复位电路 (7)第4章元器件的选择 (7)4..1显示 (7)4.2 模数(A/D)芯片 (11)4.3 数模AC/DC736芯片 (13)4.4 OP07 (13)第五章电路的设计 (14)5.1时钟电路 (15)5.2A/D转换程序 (17)第6章系统的调试 (18)6.1 硬件的调试 (18)6.2软件调试 (19)参考文献 (20)附录 (20)程序清单 (20)元件清单 (25)容摘要本次设计主要解决AC/DC转换、A/D转换、数据处理及显示控制等几个模块。
控制系统采用AT89C51单片机,A/D转换采用ADC0809。
要求交流毫伏表检测信号的电压围:1mv—2v ,输入信号的频率围:10Hz-2000KHz,并在LCD1602液晶上显示测量电压信号。
关键词AT89C51单片机;电压测量;A/D转换;LCD1602液晶显示;AC/DC 转换;放大;衰减。
1.2 设计目的本课程的任务是通过“交流毫伏表的设计”的设计过程,综合所学课程,掌握目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具的使用方法,通过这一设计实践过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班,一丝不苟的工作个对所学知识的综合应用能力。
1.3设计任务及要求1、设计一个交流毫伏表,检测信号的电压围:1mv—2v。
2、输入信号的频率围:10Hz-2000KHz3、查阅相关资料,了解交流毫伏表的各种现实发法极其特点,并着重掌握交流毫伏表的设计及显示等。
基于AT89S51和ADC0809的数字电压表设计
基于AT89S51和ADC0809的数字电压表设计本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,使用的元器件数目较少。
外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。
然后由单片机给数码管数字信号,控制其发光,从而显示数字。
注:因为ADC0809的通道选择端口是使用插针,做出电路板后再用导线连起来的,在程序里也少了通道选择的语句,请注意一下。
一.原理图二.仿真图三.存储空间定义(1)70H用于存放A/D转换结果,71H、72H、73H、74H分别存储显示用的三位数据如表所示。
(2)地址30H~39H存放显示在数码管上0~9的数。
如表所示。
四.程序程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。
①数据采集系统:因为ADC0809本身并没有内部时钟,需要外部时钟来提供工作的时钟频率。
如果利用单片机ALE端脚提供的频率为6MHZ,而ADC0809工作的频率在10KHZ-1MHZ。
因此,需要增加含触发器功能的器件,从面增加了系统的复杂程度。
后来,最终用软件编程来提供ADC0809工作的时钟频率,从而解决了这个问题。
②显示系统的调试:要显示的数据存放在71H、72H、73H、74H单元中,先在30H~39H分单元中存放0~9的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。
在测试的过程中发现小数点没有显示,通过下面几条指令,把小数点显示出来。
MOVC A,@A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移ORL A,#80H ;左边第一个数码管显示小数点NOT_ONE: MOV P0,A ;数码管段选(1) 汇编语言程序清单QIAN EQU 71HBAI EQU 72HSHI EQU 73HGEWEI EQU 74H ;71H-74H存放显示数据,依次为个位、十位、百位、千位SHUJU EQU 70H ;地址70H存放采集数据ST BIT P3.0 ;START和ALE共用一个端口OE BIT P3.6EOC BIT P3.7CLK BIT P3.3ORG 0000HLJMP STARTORG 0030HTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHSTART:MAIN: LCALL TEST ;数据采集函数LCALL TURNDATA ;数据处理函数LCALL DISPLAY ;显示函数LJMP MAINDELAY: MOV R7,#06H ;约延时1.5msLOOP1: MOV R6,#0FFHLOOP2: DJNZ R6,LOOP2DJNZ R7,LOOP1RETTEST: CLR STCLR OESETB STCLR ST ;ST端口下降沿,开始转换LOOPCLK: SETB CLK ;由软件来提供ADC0809工作的时钟频率CLR CLKJNB EOC,LOOPCLK ;EOC=1时,退出循环SETB OE ;转换后数据的传送MOV P1,#0FFH ;P1端口读数据,需先给高电平MOV A,P1CLR OEMOV SHUJU,A ;存储数据到地址70HRETTURNDA TA:MOV A,SHUJUMOV B,#51DIV AB ;余数在B,相除以后C=0MOV QIAN,A ;储存千位CLR F0MOV A,BSUBB A,#1AH ;A减去26,测试上面AB相除时,余数与26相比较MOV F0,C ;余数<26,则C=1,不用加5调整MOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP1ADD A,#5 ;若AB相除后B>=26,百位加五LP1: MOV BAI,A ;储存百位CLR F0MOV A,BSUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP2 ;F0=1时,转移ADD A,#5 ;若AB相除后B>=26,十位加五LP2: MOV SHI,A ;储存十位CLR F0MOV A,BSUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV ABJB F0,LP3 ;F0=1时,转移ADD A,#5 ;若AB相除后B>=26,个位加五LP3: MOV GEWEI,A ;储存个位RETDISPLAY:MOV R1,#4 ;循环四次MOV R2,#0FEHMOV R0,#71H ;存放显示初始地址XIANSHI:MOV DPTR,#TABMOV A,@R0MOVC A,@A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移ORL A,#80H ;左边第一个数码管显示小数点NOT_ONE: MOV P0,A ;数码管段选MOV P2,R2 ;数码管位选LCALL DELAY ;延时MOV A,R2RL A ;循环左移MOV R2,AINC R0 ;选取下一个地址DJNZ R1,XIANSHIRETEND(2) C语言程序清单#include<reg51.h>sbit CLK=P3^3;sbit OE=P3^6;sbit ST=P3^0;sbit EOC=P3^7;unsigned int dianya;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void delay(unsigned int z){while(z--);}void ADC_0809(){unsigned char temp=2;ST=0;OE=0;ST=1;ST=0;CLK=1;CLK=0;CLK=1;CLK=0;while(!EOC){CLK=1;CLK=0;}OE=1;P1=0xff; //读取P1端口数据temp=P1;dianya=(unsigned int)temp*19.53;OE=0;}void Vpp_Show(){unsigned char qian,bai,shi,ge;qian=dianya/1000;bai=dianya00/100;shi=dianya0/10;ge=dianya;P2=0xfe;P0=table[qian]|0x80; //显示小数点delay(50);P2=0xfd;P0=table[bai];delay(50);P2=0xfb;P0=table[shi];delay(50);P2=0xf7;P0=table[ge];}void main(){while(1){ADC_0809();Vpp_Show();}}。
课程设计---基于ADC0809的数字电压表设计
课程设计---基于ADC0809的数字电压表设计课程设计报告课题名称:基于ADC0809的数字电压表设计姓名: 黄光凤班级: 测量10301班学号: 10015339院系: 电子信息工程学院指导老师: 李军、李琼、胡广夏、阮燕、杨少春老师日期: 2012年5月31日基于ADC0809的数字电压表设计摘要本电路以ADC0809和AT89S51为核心,该系统有四个模块:数据采集模块、控制模块、显示模块、A/D转换模块,设计中采用ADC0809进行摸数转换,利用MCS-51单片机进行数据的处理,显示模块采用LCD1602液晶显示器显示,采用独立式按键选择单路显示或者8路轮流显示。
能够测量0,5V之间的直流电压值。
读数据准确,测量方便。
误差范围在-0.02~+0.02之间最小分辨率位0.019。
硬件设计应用电子设计自动化工具,软件设计采用模块化编程方法。
关键词:简易数字电压表; AT89S51;ADC0809;LCD1602;数据处理。
目录第1章系统方案的选择与论证 (1)1.1 设计任务及要求 ...................................................1 1.1.1 任务 (1)1.2 简易数字电压表基本方案 (1)1.2.1 模块方案选择与论证 (1)1.2.2 单片机方案选择和论证 (1)1.2.3 A/D模数转换方案的选取 (1)1.2.4 显示方案 ............................................................3 1.2.5 输入方案 (3)1.2.6 电源提供方案 .....................................................3 1.2.7 系统组成 ............................................................4 第2章系统硬件设计与实现 . (5)2.1 简易数字电压表基本组成部分 (5)2.2.1 电源电路 .............................................................5 2.2.2 复位电路 . (5)2.2.3 时钟电路 .............................................................6 2.2.4 按键控制 . (6)2.2.5LCD1602 (8)2.2 电路原理图 ............................................................10 第3章软件的设计 ......................................................11 3.1 程序流程图 (11)3.1.1主总流程图 ..........................................................11 3.1.2 主要子程序程序流程图 .. (12)第4章仿真及调试 ........................................................18 4(1KEILC51简介 (18)4.2PROTEUS ISIS简介 (18)4.3测试结果分析 ..........................................................21 第5章总结 (22)致谢 ..................................................................... ..........23 参考文献 ..................................................................... ...24 附录 ..................................................................... ........25 附录1 实物图 ............................................................25 附录2 元件清单 (26)附录3 主要程序 (27)第1章系统方案的选择与论证1.1 设计任务及要求, 查阅相关的资料~了解电压表的的原理与应用,研究一个比较合理的设计方案~并对其进行理论分析及方案论证。
基于AT89C51单片机数字电压表的设计
基于AT89C51单片机数字电压表的设计题目:基于AT89C51单片机数字电压表的设计目录一、整体设计思路框图及原理图 (4)二、模块分析 (5)1.AT89C51单片机 (5)2.A/D转换 (6)3. .................................................................................. 显示电路 (7)三、软件设计 (5)四、程序清单 (6)五、仿真实验调试 (12)六、总结与体会. (13)七、参考文献 (14)34一、 整体设计思路框图及原理图数字电压表的设计即将连续的模拟电压信号经过A/D 转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。
按系统实现要求,决定控制系统采用AT89C51单片机,A/D 转换由于仿真软件里的ADC0809元件有问题,这里用ADC0808代替,它和ADC0809区别很小。
采用ADC0808。
数字电压表系统整体框图如下图1所示。
图1 整体框图系统通过软件设置单片机的内部定时器T1产生中断信号。
通过片选选择8路通道中的一路,将该路电压送入ADC0808的EOC 端口产生高电平,同时将ADC0808的OE 端口置为高电平,单片机将转换后结果存到片内RAM 。
系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD 显示电路,将相应电压显示出来。
原理图见附录图7。
二、模块分析1.AT89C51单片机接口分配电路设计如右图2所示:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ图2 单片机接口电路的电阻拉高。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
基于at89c51单片机的数字电压表的设计
基于at89c51单片机的数字电压表的设计数字电压表是一种常见的电子测量仪器,它可以用来测量电路中的电压大小。
在本文中,我们将介绍一种基于at89c51单片机的数字电压表的设计。
一、设计原理数字电压表的设计原理是基于模数转换器(ADC)的工作原理。
ADC是一种将模拟信号转换为数字信号的电路。
在数字电压表中,ADC将输入的模拟电压信号转换为数字信号,然后通过单片机进行处理和显示。
二、硬件设计数字电压表的硬件设计包括电路图和PCB布局。
电路图包括电源电路、ADC电路、单片机电路和显示电路。
PCB布局是将电路图转换为实际的电路板。
1. 电源电路数字电压表的电源电路需要提供稳定的直流电源。
在本设计中,我们使用了7805稳压器来提供5V的直流电源。
2. ADC电路ADC电路是将输入的模拟电压信号转换为数字信号的关键。
在本设计中,我们使用了AD0804芯片作为ADC电路。
AD0804是一种8位的串行输出ADC,它可以将输入的模拟电压信号转换为8位的数字信号。
3. 单片机电路单片机电路是数字电压表的核心部分。
在本设计中,我们使用了at89c51单片机作为控制器。
单片机通过串行通信接收ADC输出的数字信号,并进行处理和显示。
4. 显示电路显示电路是将单片机处理后的数字信号转换为实际的电压值并显示出来的部分。
在本设计中,我们使用了4位7段LED数码管作为显示器。
三、软件设计数字电压表的软件设计包括单片机程序和PC端程序。
单片机程序是控制器的核心部分,它通过串行通信接收ADC输出的数字信号,并进行处理和显示。
PC端程序是用来控制数字电压表的参数和显示的。
1. 单片机程序单片机程序主要包括串行通信、ADC转换和数码管显示三个部分。
串行通信是单片机和ADC之间的通信方式,它通过SPI协议进行通信。
ADC转换是将输入的模拟电压信号转换为数字信号的部分。
数码管显示是将单片机处理后的数字信号转换为实际的电压值并显示出来的部分。
基于-AT89C51单片机的数字电压表设计
毕业设计基于AT89C51单片机的数字电压表设计目录0引言 (1)1系统整体设计思路及方案 (1)1.1设计思路 (1)1.2设计方案 (1)2数字电压表的硬件设计 (2)2.1主控制模块的设计 (2)2.1.1 AT89C51性能简介 (2)2.1.2 AT89C51各引脚功能 (2)2.1.3 AT89C51的复位电路和时钟电路 (4)2.2 A/D转换模块的设计 (5)2.2.1 ADC0808的主要特性 (6)2.2.2 ADC0808各引脚功能 (6)2.3显示电路的设计 (7)2.4总体电路设计图 (9)3 数字电压表的软件设计 (10)3.1 设计流程图 (10)3.2 各子程序简介 (11)4 仿真 (11)4.1 软件调试 (11)4.2 误差分析 (11)5 结论 (12)参考文献 (13)附录 (14)致谢 (16)基于AT89C51单片机的数字电压表设计摘要:数字电压表是常用的对电子电路进行检测的较精密仪器之一。
本文的设计思想是一种基于单片机的数字电压表设计方式。
该设计主要由三个模块组成:A/D转换模块、数据处理主控模块和显示模块。
A/D转换模块主要由芯片ADC0808来完成,它负责将采集到的模拟量转换为相应的数字量传送到数据处理模块(单片机)。
数据处理主控模块由单片机AT89C51来完成,它负责将ADC0808传送过来的数字量经过一定的数据处理,产生相对应的显示码传送到显示模块进行显示。
此外,它还控制芯片ADC0808的工作。
经过仿真软件结果表明本设计中的电压表电路简单,所用元件较少,成本低且测量精度高。
此电压表可以测量0—5V的模拟输入电压值,并通过一个四位一体的7段数码管显示出来。
关键词:数字电压表;单片机;A/D转换;AT89C51;ADC0808The design of digital voltage meter based onAT89C51 single chip microcomputerAbstract: digital voltage meter is one of the more commonly used detection precision instrument for electronic circuit. The design is a design method based on single chip digital voltage meter. The design consists of three modules: A/D module, data processing, the main control module and display module. The A/D conversion module is mainly completed by the ADC0808, which is responsible for converting the collected analog to digital quantity corresponding to a data processing module (MCU). Data processing by the MCU AT89C51 to complete the main control module, which is responsible for the digital ADC0808 transmission after data processing, generate the corresponding display code is sent to the display module for displaying. In addition, it also control chipADC0808 work. The design of the voltage meter circuit is simple, less elements used, low cost and high measurement accuracy. The analog input voltage can be measured in 0 5V of the value of the voltage meter, and through 7 digital tubes a four integrated display.Keywords: digital voltage meter;MCU;A/D;AT89C51;ADC08080 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
基于单片机AT89c51的数字万用表
基于单片机AT89c51的数字万用表设计摘要:本次设计用单片机芯片AT89c51 设计一个数字万用表,能够测量交、直流电压值、直流电流、直流电阻以及电容,四位数码显示。
此系统由分流电阻、分压电阻、基准电阻、电容测试芯片电路、51 单片机最小系统、显示部分、报警部分、AD 转换和控制部分组成。
为使系统更加稳定,使系统整体精度得以保障,本电路使用了AD0809 数据转换芯片,单片机系统设计采用AT89S51 单片机作为主控芯片,配以RC上电复位电路和11.0592MHZ 震荡电路,显示芯片用TEC6122,驱动8 位数码管显示。
程序每执行周期耗时缩到最短,这样保证了系统的实时性。
本文全面、深入、系统地介绍了4 3/4位智能数字万用表的系统设计与研究。
设计中采用了美国MAXIM公司生产的专配万用表芯片MAX134,以及Intel 公司生产的MCS8051单片机。
整个系统结构由MAX134外加一些外围元件构成,然后再与单片机8051相连,驱动LED数码显示。
文章主要介绍了MAX134的性能特点、内部结构、数字接口、输入输出数据及一些功能和原理。
整个设计包括硬件电路设计及软件设计。
硬件电路设计包括处理器、外部设备元件的选择及电路设计,而软件设计则主要是实现仪表的各功能的控制。
关键词数字万用表AT89S51 单片机AD转换与控制AbstractThis design is design a digital universal meter with chip AT89s51 of one-chip computer, can measure and hand in , direct current pressing value , direct current flow , the direct current is hindered, four numbers show. This system is shunted resistance, resistance of partial pressure, basic resistance, minimum system of 51 one-chip computers, shown that some , warning part , AD change and control making up partly. In order to make the system more steady, make the whole precision of the system be ensured, this circuit has used AD0809 data to change the chip, the one-chip computer system is designed to adopt AT89S51 one-chip computer as the top management chip, the electricity is restored to the throne the circuit and 11.0592MHZ and shaken the circuit to match on RC, show that the chip uses TEC6122, urge 8 numbers to be in charge of showing. The every execution cycle consuming time of procedure contracts to get shortest, in this way the real-time character of the security system.In order to make the system more steady, make the whole precision of the system be ensured, this circuit has used AD0809 data to change the chip, the one-chip computer system is designed to adopt AT89S51 one-chip computer as the top management chip, the electricity is restored to the throne the circuit and 11.0592MHZ and shaken the circuit to match on RC, show that the chip uses TEC6122, urge 8 numbers to be in charge of showing.Keyword: Digital universal meter AT89S51 one-chip computer AD changes and controls目录摘要 (i)Abstract (ii)1. 绪论 (4)1.1 数字万用表的主要特点 (4)1.2 数字万用表设计背景 (6)1.2.1 数字万用表的设计目的和意义 (6)1.2.2 数字万用表的设计依据 (6)1.2.3 数字万用表的设计目的和意义 (6)1.3万用表发展趋势 (7)2. 数字万用表总体设计方案 (8)2.1数字万用表的基本原理 (8)2.2数字万用表的硬件系统设计总体框架图 (15)3. 选用芯片介绍及硬件电路设计方案 (16)3.1 芯片选择及功能简介 (16)3.1.1 AT89c51 芯片功能特性描述 (16)3.1.2 ADC0809 介绍 (19)3.1.2 TEC6122 简述 (21)3.2设计方案及数字万用表的硬件设计 (24)3.2.1 设计方案 (24)3.2.2 数字万用表的硬件设计 (26)3.2.2.1 分模块详述系统各部分的实现方法 (26)3.2.2.2 数字万用表控制硬件整体结构图 (32)3.2.2.1电路的工作过程描述 (32)4. 系统软件与流程图 (33)4.1 电路功能模块 (33)4.2系统总流程图 (33)4.3物理量采集处理流程 (35)4.4电压测量过程流程图 (36)4.5电流的测量过程流程图 (37)4.6电阻的测量过程流程图 (38)4.7电容测量过程流程图 (39)结论 (40)致谢 (41)参考文献 (42)附录 (43)1 绪论随着微电子技术的高速发展,单片机的功能集成化,智能仪器也发展到了一个新的阶段。
利用单片机设计的数字电压表
摘要本文运用A T89C51和ADC0809进行A/D转换,根据数据采集的工作原理,设计实现数字电压表。
利用提供的ADC0809模数转换器,实现单片机模数转换。
用ADC0809集成电压转换芯片和AT89C51单片机设计制作的数字直流电压表,模拟信号为0~5V电位器分压输出,单片机控制ADC0809读取模拟信号,并在数码管上用十进制形式显示出来。
与此同时,我们还可以通过拨码开关设置电压上下限,并随时改变上下限大小,将采集的电压信号与其比较,在电压过大过小的时候进行报警,这种数字电压表,简单而且易于操作,比较符合软件开发的原则,并且易于用户操作。
关键字:电压表、ADC0809、74LS164、报警一、方案设计数字电压表(Digital V oltmeter )简称DVM ,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。
本文给出了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。
本设计需要分三个环节:电压显示环节、键盘设置电压上下限、报警系统的设置。
1、电压显示环节把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
在此环节中,我们选择利用A/D 转换,将模拟信号转化为数字信号,但是现在的显示是00-FF 的16进制数字,接着将16进制数转化成十进制,进而转化为0-5V 的电压显示。
2、键盘设置电压上下限这部分可以选用8279键盘或者拨码开关对电压上下限进行设置。
最终我们选择拨码开关,分别对上限下限进行加减。
3、报警系统的设置当所采集的电压信号超出所设置的电压范围,小灯会通过闪烁报警。
二、各环节电路原理和数据程序分析 1、电压显示环节1.A/D 转化电路使用ADC0809组成的并行数模转化电路。
基于单片机的数字电压表设计
实验室开放基金项目—基于单片机的数字电压表概述:本设计是基于AT89C51单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阳极数码管显示被测电压。
设计思路(1)根据设计要求,选择AT89C51单片机为核心控制器件。
(2)A/D 转换采用ADC0809实现,与单片机的接口为P0口和P3口的低四位引脚。
(3)电压显示采用4位的LED 数码管。
(4)LED 数码的段选输入,由并行端口P0产生;位选输入,用并行端口P2低四位系统总体设计框图本系统采样Atmel89C51单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,用共阳显示结果。
输入电51单片机极性检测显示电路电压检测AD转换图3.13.2 单片机系统单片机最小系统包括复位电路,晶振电路,电源电路,仿真时需搭建复位电路和晶振电路。
晶振电路:图3.2单片机最小系统如下所示,其中P1口用于驱动数码管,P0口用于接收ADC0809转换的数据。
P2口用于控制ADC0809。
单片机最小系统:图3.3AD转换电路利用ADC0809作为AD数据采样器件, ADC0809是CMOS单片型逐次逼近式A/D转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START 上升沿将逐次逼近寄存器复位。
下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
ADC0809各个管教功能:IN0~IN7:8路模拟量输入端。
单片机AT89S51与ADC0809设计一个数字电压表
1.实验任务利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V 之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
2.电路原理图图1.28.13.系统板上硬件连线a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
d) 把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
e) 把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
f) 把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
g) 把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h) 把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i) 把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
4.程序设计内容i. 由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在AT89S51单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就得用软件来产生了。
ii. 由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。
实际显示的电压值(D/256*VREF) 5.汇编源程序(略)6.C语言源程序#include <AT89X52.H>unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};unsigned char dispcount;unsigned char getdata;unsigned int temp;unsigned char i;sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;void main(void){ST=0;OE=0;ET0=1;ET1=1;EA=1;TMOD=0x12;TH0=216;TL0=216;TH1=(65536-4000)/256; TL1=(65536-4000)%256; TR1=1;TR0=1;ST=1;ST=0;while(1){if(EOC==1){OE=1;getdata=P0;OE=0;temp=getdata*235; temp=temp/128;i=5;dispbuf[0]=10;dispbuf[1]=10;dispbuf[2]=10;dispbuf[3]=10;dispbuf[4]=10;dispbuf[5]=0;dispbuf[6]=0;dispbuf[7]=0;while(temp/10){dispbuf[i]=temp%10; temp=temp/10;i++;}dispbuf[i]=temp;ST=1;ST=0;}}}void t0(void) interrupt 1 using 0{CLK=~CLK;}void t1(void) interrupt 3 using 0{TH1=(65536-4000)/256;TL1=(65536-4000)%256;P1=dispcode[dispbuf[dispcount]];P2=dispbitcode[dispcount];if(dispcount==7){P1=P1 | 0x80;}dispcount++;if(dispcount==8){dispcount=0;}}利用单片机AT89S51与ADC0809设计一个数字电压表2008-05-22 14:521.实验任务利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
基于单片机AT89c51的数字万用表设计
摘要:本次设计用单片机芯片AT89c51 设计一个数字万用表,能够测量交、直流电压值、直流电流、直流电阻以及电容,四位数码显示。
此系统由分流电阻、分压电阻、基准电阻、电容测试芯片电路、51 单片机最小系统、显示部分、报警部分、AD 转换和控制部分组成。
为使系统更加稳定,使系统整体精度得以保障,本电路使用了AD0809 数据转换芯片,单片机系统设计采用AT89S51 单片机作为主控芯片,配以RC上电复位电路和11.0592MHZ 震荡电路,显示芯片用TEC6122,驱动8 位数码管显示。
程序每执行周期耗时缩到最短,这样保证了系统的实时性。
本文全面、深入、系统地介绍了 4 3/4位智能数字万用表的系统设计与研究。
设计中采用了美国MAXIM公司生产的专配万用表芯片MAX134,以及Intel 公司生产的MCS8051单片机。
整个系统结构由MAX134外加一些外围元件构成,然后再与单片机8051相连,驱动LED数码显示。
文章主要介绍了MAX134的性能特点、内部结构、数字接口、输入输出数据及一些功能和原理。
整个设计包括硬件电路设计及软件设计。
硬件电路设计包括处理器、外部设备元件的选择及电路设计,而软件设计则主要是实现仪表的各功能的控制。
关键词数字万用表 AT89S51 单片机 AD转换与控制AbstractThis design is design a digital universal meter with chip AT89s51 of one-chip computer, can measure and hand in , direct current pressing value , direct current flow , the direct current is hindered, four numbers show. This system is shunted resistance, resistance of partial pressure, basic resistance, minimum system of 51 one-chip computers, shown that some , warning part , AD change and control making up partly. In order to make the system more steady, make the whole precision of the system be ensured, this circuit has used AD0809 data to change the chip, the one-chip computer system is designed to adopt AT89S51 one-chip computer as the top management chip, the electricity is restored to the throne the circuit and 11.0592MHZ and shaken the circuit to match on RC, show that the chip uses TEC6122, urge 8 numbers to be in charge of showing. The every execution cycle consuming time of procedure contracts to get shortest, in this way the real-time character of the security system.In order to make the system more steady, make the whole precision of the system be ensured, this circuit has used AD0809 data to change the chip, the one-chip computer system is designed to adopt AT89S51 one-chip computer as the top management chip, the electricity is restored to the throne the circuit and 11.0592MHZ and shaken the circuit to match on RC, show that the chip uses TEC6122, urge 8 numbers to be in charge of showing.Keyword: Digital universal meter AT89S51 one-chip computer AD changes and controls目录摘要 (i)Abstract (i)1. 绪论 (4)1.1 数字万用表的主要特点 (4)1.2 数字万用表设计背景 (6)1.2.1 数字万用表的设计目的和意义 (6)1.2.2 数字万用表的设计依据 (6)1.2.3 数字万用表的设计目的和意义 (6)1.3万用表发展趋势 (7)2. 数字万用表总体设计方案 (8)2.1数字万用表的基本原理 (8)2.2数字万用表的硬件系统设计总体框架图 (15)3. 选用芯片介绍及硬件电路设计方案 (16)3.1 芯片选择及功能简介 (16)3.1.1 AT89c51 芯片功能特性描述 (16)3.1.2 ADC0809 介绍 (19)3.1.2 TEC6122 简述 (21)3.2设计方案及数字万用表的硬件设计 (24)3.2.1 设计方案 (24)3.2.2 数字万用表的硬件设计 (26)3.2.2.1 分模块详述系统各部分的实现方法 (26)3.2.2.2 数字万用表控制硬件整体结构图 (32)3.2.2.1电路的工作过程描述 (32)4. 系统软件与流程图 (33)4.1 电路功能模块 (33)4.2系统总流程图 (33)4.3物理量采集处理流程 (2)4.4电压测量过程流程图 (3)4.5电流的测量过程流程图 (4)4.6电阻的测量过程流程图 (5)4.7电容测量过程流程图 (6)结论 (7)致谢 (8)参考文献 (9)附录 (9)1 绪论随着微电子技术的高速发展,单片机的功能集成化,智能仪器也发展到了一个新的阶段。
基于AT89C51单片机的数字电压表设计说明
(1)根据设计题目,选择AT89C51单片机为核心控制器件。
(2)A/D转换采用ADC0808实现,连接单片机的P1口和P3口的四位引脚。
(3)电压显示采用4位一体的LED数码管。
(4)LED数码管的段码输入由端口P0产生;位码输入用端口P2产生。
2.3 设计方案
本设计选择AT89C51单片机作为核心控制器件。A/D转换采用ADC0808来实现。输入采用0~5V的直流电压源,电压显示采用4位一体的LED数码管,LED数码管的段码输人由端口P0输出,位码输人由端口 P2输出。
3.1.3 AT89C51的复位电路和时钟电路5
3.2 A/D转换电路பைடு நூலகம்计6
3.2.1 ADC0808的主要特性7
3.2.2 ADC0808各引脚功能7
3.3 显示电路的设计8
3.4 总体电路设计10
第4章 数字电压表的软件设计11
4.1 设计流程图11
4.2 各子程序简介12
第5章 软件调试13
5.1 软件调试13
图3-1 AT89C51引脚图
AT89C51芯片的各引脚功能为:
P0口:这组引脚共有8条,P0.0为最低位。这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
基于AT89C51单片机的简易数字电压表设计
基于AT89C51单片机的简易数字电压表设计摘要本论文给出基于单片机的简易数字电压表设计,控制系统采用AT89C51单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。
数字电压表可以测量0~5V的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。
关键词:数字电压表;单片机;AT89C51; ADC0809;1 引言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。
数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。
目前数字电压表的内部核心部件是A/D转换器, 转换器的精度很大程度上影响着数字电压表的准确度,本文A/D转换器采用ADC0809对输人模拟信号进行转换, 控制核心AT89C51再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。
数字式电压表是由高阻抗电压表头与分压电路组成的。
数字式电压表头的等效输入电阻通常在200M欧以上,满量程时所流经的电流通常在1皮安左右。
以上述表头制成的数字式电压表,满量程时所流经的电流与量程有关,通常在1皮安至100微安之间。
数字电压表(数字面板表)是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量工具有关数字电压表的书籍和应用已经非常普及了。
利用51单片机与ADC0809和数码管设计数字电压表
利用51单片机与ADC0809和数码管设计数字电压表一、课题功能描述:利用单片机AT89C51 芯片与ADC0809 芯片设计一个数字电压表,能够测量0―5V 之间的直流电压,三位数码显示。
二、程序设计本实验采用AT89C51 单片机芯片配合 ADC0809 模/数转换芯片构成一个简易的数字电压表,原理电路如图1-1 所示。
该电路通过 ADC0809 芯片采样输入口AI0 输入的0~5V 的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0~D7 传送给 AT89C51 芯片的F0口。
AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过P1 口传送给数码管。
同时它还通过其三位 I/O 口 P3.0、P3.1、P3.2 产生位片选信号,控制数码管的亮灭。
另外,AT89C51 还控制着 ADC0809 的工作。
其ALE管脚为 ADC0809提供了 1MHZ 工作的时钟脉冲;P2.3 控制 ADC0809 的地址锁存端(ALE); P2.4 控制 ADC0809 的启动端(START); P2.5 控制 ADC0809 的输出允许端(OE); P3.7 控制 ADC0809 的转换结束信号(EOC)。
电路原理图如下:三、器件清单:1 . AT89S51 芯片 1块2 . ADC0809 芯片 1块3 . 74HC245 芯片 1块4 . 数码管 1个5 . 6MHZ 晶振 1个6 . 30pF 电容 2个7 . 10uF 电解电容 1个8 . 复位电容 1个9 . 510Ω电阻 8个10. 10KΩ电阻 1个11. 导线若干四、程序设计1、主程序设计由于ADC0809 在进行A/D转换时需要有CKL 信号,而此时的 ADC0809 的CLK 是连接在 AT89C51 单片机的30管脚,也就是要求从30管脚输出CLK 信号供图1-2主程序流程图ADC0809 使用。
基于单片机的数字电压表的是课程设计
摘要本课题实验主要采用AT89C51芯片和ADC0808芯片来完成一个简易的数字电压表,能够对输入的0~5 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.019V。
该电压表的测量电路主要由三个模块组成:A/D 转换模块、数据处理模块及显示控制模块。
A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。
数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0808芯片的工作。
显示模块主要由7段数码管及相应的驱动芯片(74HC245)组成,显示测量到的电压值。
关键词:简易数字电压表;ADC0809;AT89C51;LED。
目录摘要 (Ⅰ)1 绪论 (1)1.1 数字电压表特点 (1)1.2 数字电压表原理框图 (2)2 硬件电路设计 (2)2.1 A/D转换电路设计 (2)2.2 显示电路设计 (4)2.3 振荡电路设计 (4)2.4 复位电路设计 (5)2.5 硬件原理图 (5)3 系统软件设计 (6)3.1 主程序设计 (6)3.2 数据接收程序设计 (7)3.3 数据转换程序设计 (8)3.4 数据显示程序设计 (8)4 系统模块仿真 (8)4.1 proturs仿真介绍 (8)4.2 系统模块电路设计 (9)4.3 系统模块电路仿真 (9)4.4 仿真结果分析 (11)总结 (13)参考文献 (14)附录A源程序清单 (15)1 绪论数字电压表(Digital Voltmeter)简称DVM,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。
基于89c51单片机的数字电压表设计
基于89c51单片机的数字电压表设计0 引言数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。
目前数字万用表的内部核心部件是A/D 转换器,转换器的精度很大程度上影响着数字万用表的准确度,本文AID 转换器采用ADC0809 对输入模拟信号进行转换,控制核心AT89c51N 对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。
1 数字电压表硬件电路设计硬件电路设计主要包括:89C51 单片机系统,~D 转换电路,显示电路。
测量最大电压为5V,显示最大值为5.00V.图l 是数字电压表硬件电路原理图。
1.1 89C51 单片机系统和显示电路由于单片机体积小、重量轻、价格便宜,所以本系统采用89C51 单片机,其原理图如图1 所示。
89C51 内部有4KB 的EEPROM,128 字节的RAM,所以一般都要根据系统所需存储容量的大小来扩展,ROM 和RAM.本电路/EA 接高电平,没有扩展片外ROM 和RAM.89C51 的P1、P3.0~P3.3 端口作为四位LED 数码管显示控制。
P3.5 端口用作单路显示/循环显示转换按钮,P3.6 端口用作单路显示时选择通道。
P0 端口作0809 的A/D 转换数据读入用,P2 端口用作0809 的A/D 转换控制。
1.2 A/D 转换电路图1数字电压表电路原理图A/D转换由集成电路0809完成。
0809具有8路模拟信号输入端口,地址线(23~25脚)可决定对哪一路模拟信号进行A/D转换。
22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。
6脚为测试控制,当输入一个21xs宽高电平脉冲时,就开始A/D转换。
7脚为A/D转换结束标志,当A/D 转换结束时,7脚输出高电平。
9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于AT89S51的简易数字电压表的设计摘要:本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。
外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。
然后由单片机给数码管数字信号,控制其发光,从而显示数字。
此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。
关键词:单片机; AT89S51;数字电压表; ADC0809,四位数码管任务书1.设计题目基于AT89S51的简易数字电压表的设计。
2.设计内容与要求用AT89S51单片机和ADC0809组成一个数字电压表,要求能够测量0~5V的直流电压值,并用四位数码管显示,并要求所用元器件最少。
3,。
设计目的意义(1).通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
(2).通过数字电压表的设计系统掌握51单片机的应用。
掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。
目录一、系统原理框图二、AT89S51的结构三、器件的比较与选择四、系统硬件及仿真图五、相关软件简介六、程序流程图与源程序七、数字电压表发展及未来八、设计体会九、参考文献基于AT89S51的简易数字电压表的设计第一章系统原理框图选择AT89S51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。
将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。
P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。
图4.1 系统原理框图第二章: AT89S51的结构在本次课题设计中我们选择了AT89S51芯片。
AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
2.1 AT89S51内部结构概述• 三级程序存储器保密锁定• 128*8位内部RAM• 32条可编程I/O线• 两个16位定时器/计数器• 6个中断源• 可编程串行通道• 低功耗的闲置和掉电模式• 片内振荡器和时钟电路图2.1 单片机(AT89S51)引脚及外观2.2 CPU结构CPU 是单片机的核心部件。
它由运算器和控制器等部件组成。
1. 运算器运算器以完成二进制的算术/逻辑运算部件ALU为核心。
它可以对半字节(4)、单字节等数据进行操作。
例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。
运算器还包含有一个布尔处理器,用以处理位操作。
它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
2.程序计数器PCPC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。
3.指令寄存器指令寄存器用于存放指令代码。
CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。
2.3 存储器和特殊功能寄存器1. 存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。
计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。
它根据控制器指定的位置存入和取出信息。
2.特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80H~FFH。
在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
其中5个是双字节寄存器,它们共占用了26个字节。
各特殊功能寄存器的符号和地址见附表2。
其中带*号的可位寻址。
特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。
用于CPU PSW便是典型一例。
这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。
与芯片引脚有关的特殊功能寄存器是P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。
MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。
2.4 P0-P3口结构P0口功能:P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。
输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。
第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写P1口功能:P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。
P2口的功能:P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。
它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能:P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
表2.1 P3口第二功能P3.1 TXD 串行数据发送口P3.2 INT0 外中断0输入P3.3 INT1 外中断1输入P3.4 T0 计数器0计数输入P3.5 T1 计数器1计数输入P3.6 WR 外部RAM写选通信号P3.7 RD 外部RAM读选通信号2.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。
图4.3 复位电路的内部及外部方式2.复位电路复位是单片机的初始化操作。
其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。
复位是使单片机退出低功耗工作方式而进入正常状态一种操作。
复位是上电的第一个操作,然后程序从0000H开始执行。
在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。
要使其进入正常状态,唯一办法是将单片机复位,以重新启动。
复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。
表4.2 程序计数器及各特殊功能寄存器的复位值RST引脚是复位端,高电平有效。
在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。
RST引脚内部有一个斯密特ST触发器(图2.10)以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS 引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。
图4.4自动和手动复位电路图上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
第三章器件的比较与选择3.1显示器本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。
1. 数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。
小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。
但数码管只能是显示0——9的数据。
不能够显示字符。
这也是数码管的不足之处。
2. LED点阵显示器件是由好多个发光二极管组成的。
具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。
3. 1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。
1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。
使用时直接编写软件程序按一定的时序驱动即可。
它的特点是显示字迹清楚,价格相对便宜。
4. 12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。
使用时也直接编写软件程序按一定的时序驱动即可。
不过它的价格比1602液晶贵了很多。
综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。
单位数码管如图4.4所示,四位共阴极数码管如图4.5所示。
图4.4 单位数码管图4.5 四位共阴极数码管3.2模数(A/D)芯片A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
A/D转换的常用方法有:①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④ V/F变换型A/D转换。
在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。