数字电压表的设计制作.ppt

上传人:小飞机 文档编号:6165405 上传时间:2023-10-01 格式:PPT 页数:21 大小:2.01MB
返回 下载 相关 举报
数字电压表的设计制作.ppt_第1页
第1页 / 共21页
数字电压表的设计制作.ppt_第2页
第2页 / 共21页
数字电压表的设计制作.ppt_第3页
第3页 / 共21页
数字电压表的设计制作.ppt_第4页
第4页 / 共21页
数字电压表的设计制作.ppt_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《数字电压表的设计制作.ppt》由会员分享,可在线阅读,更多相关《数字电压表的设计制作.ppt(21页珍藏版)》请在三一办公上搜索。

1、设计制作数字电压表,MSC51系列单片机定时器/计数器中断、动态扫描、A/D转换相关知识等。ADC0809各管脚功能、TLC2543各管脚功能C51程序语言中for语句、do while语句运行规则,使用方法,项目所需掌握的理论知识,完成项目所锻炼的能力,掌握定时器/计数器的定时程序的编写。掌握定时器中断方式的编写掌握ADC0809以及TLC2543数据采集的编程能力。,一 时钟设计学习要求,案例引入,预备知识讲解,电子实物制作与检测,参考与消化示例程序并完成项目程序,总结与提高,学习指南,二 案例引入,设计数字电压表,设计要求如下:1要求分别采用两种不同模数转换的芯片ADC0809、TLC2

2、543实现设计数字电压表。2设计的数字电压表可以测量05V范围内的输入电压值,并且通过4位LED数码管显示采集的电压值。,实物照片,三 任务二知识讲解,1.ADC0809芯片知识与使用方法,ADC0809是一种有8路模拟输入、8位并行数字输出的逐次逼近式A/D器件。,性能,ADC0809主要技术指标和特性(1)分辨率:8位;(2)转换时间:取决于芯片的时钟频率,转换1次所需时间;(3)单一电源:+5V;(4)模拟输入电压范围:单级性为0+5V。,2.引脚介绍,8路输入端,数据输出端,输入选择控制端,时钟输入端,决定转换速率,时频率50800kHz,启动转换信号,转换结束信号,输出允许信号,地址

3、锁存允许信号,注意:理解这些管脚的作用对理解程序语句非常有帮助!,3.ADC0809工作过程,START,工作分为4大步每步工作内容如图所示,启动信号,START(6脚)为转换启动信号。当START为上升沿时,所有内部寄存器清零;下降沿时,开始进行A/D转换,START,保持低电平,EOC,当EOC变为高电平时,转换结束,OE,当OE变为高电平时,输出数据,1,2,3,4,上升沿,高电平信号,高电平信号,下降沿,在转换期间,START应保持低电平。,4.电路连接图,显示电路,单片机P2口的低4位接4个1K电阻,4个PNP三极管,作为数码管的位码输出,P0口与74LS245的A1A8相连,B1B

4、8串个300欧姆的电阻,作为数码管段码输出。,ADC0809的D0D7与P3口相接,采集的数据通过P3口传送给单片机。P1.4P1.7作为ADC0809的控制信号端,控制ADC0809的采集工作。,5.程序分析,在程序设计时,由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在单片机的P1.4端口上,也就是要求从P1.4端口能够输出CLK信号供ADC0809使用。,1,采用T0定时器中断方式产生ADC0809所需要的CLK信号,CLK为时钟输入信号线,它的取值范围为10KHz1280KHz,我们这里取值50KHz。根据定时器的计算公式可得TH0=TL0=0

5、XF6。,主程序流程图揭示程序工作过程,2,项目源程序:#include#define uint unsigned int#define uchar unsigned charuchar code led10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/数码管显示0-9uint volt;/电压值测定值sbit LW1=P23;sbit LW2=P22;sbit LW3=P21;sbit LW4=P20;/定义数码管位选脚sbit CLK=P14;sbit START=P15;sbit EOC=P16;sbit OE

6、=P17;/定义ADC0809各脚,红色语句是依据电路连接定义的,定义这些语句是便于程序书写。,/函数名:ADC()/功能:数模转换程序/调用函数:/输入参数:/输出参数:/说明:将转换好的测定值保存在变量volt中/*/void ADC()START=0;START=1;START=0;/ad开始转换while(EOC=0);/等待转换结束OE=1;volt=P3;/取走转换值OE=0;/输出转换结束volt=volt*196;/转换值处理,3,红色语句严格依据芯片工作过程书写。,将P3口得到的A/D转换值通过计算公式转换为正确的电压值,这是因为项目的满量程为5V,转换分辩率为8位即最大值是

7、255,5/255=196mV,即1代表196mV。,4,/*/函数名:timer()interrupt 1/功能:定时中断0响应程序/说明:为ADC提供时钟信号/*/void timer()interrupt 1CLK=CLK;/取反 产生时钟信号,/主程序void main()EA=1;/开总中断 TMOD=0 x02;/设定定时计数工作方式 TH0=0XF6;TL0=0XF6;/为定时器初赋值 ET0=1;/开定时器0中断 TR0=1;while(1)ADC();/调用模数转换程序 display();/调用显示程序,采用T0定时器中断方式产生ADC0809所需要的CLK信号,CLK为时

8、钟输入信号线,我们这里取值50KHz。根据定时器的计算公式可得TH0=TL0=0XF6。,使用并行ADC会限制系统I/O口的功能扩展,采用串行ADC比较适合那些低速采样而控制管脚又比较多的系统。TLC2543是TI公司的12位串行模数转换器,由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。,1.TLC2543芯片知识与使用方法,TLC2543是12位串行A/D转换器,使用开关电容逐次逼近技术完成A/D转换过程。,四 任务三知识讲解,AIN0AIN10为模拟输入通道,DATA INPUT为串行数据输入端,DATA OUT为A/D转换

9、结果的三态串行输出端EOC为转换结束端,I/O CLK为I/O时钟端,REF+为正基准电压端,REF-为负基准电压端,VCC为电源端,GND为地。,为片选端,TLC2543控制字,控制字为从DATA INPUT端串行输入端8位数据,规定了TLC2543要转换的模拟量通道、转换后的输出数据长度以及输出数据端格式。,高4位(D7D4)决定通道号,对于模拟输入通道0至模拟输入通道10,低4位(D3D0)决定输出数据长度及格式,其值为00001010,对应通道为通道0通道10,其中D3、D2决定输出数据长度,01表示输出数据长度为8位,11表示输出数据长度为16位,其他为12位.,D1决定输出数据是高

10、位先送出,还是低位先送出,为0表示高位先送出,D0决定输出数据是纯正数还是有负数,若为纯正数,该位为0,否则为1。,TLC2543工作过程,工作开始,片选端CS必须先高到低,当片选端CS变低时,12个时钟信号从 CLOCK端依次加入,控制字从DATA INPUT一位一位在时钟的上升沿被送入TLC2543(高位先送入),同时上一周期转换的结果数据从DATA OUT一位一位地移出。,TLC2543收到第4个时钟信号后,通道号已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿。,在第12个时钟下降沿,EOC变低,进行A/D转换,约需10us,转换完成后EOC变高,

11、转换的数据在输出数据寄存器中,待下一个工作周期输出。,2.电路连接图,TLC2543连接电路,单片机的P1.0、P1.3、P1.4作为TLC2543的控制信号端,起到控制TLC2543的采集电压工作,单片机的P1.1、P1.2分别接TLC2543的DATA OUT和DATA INPUT,作为TLC2543串行数据线。,显示电路与前边一样!,3.程序分析,AT89C51单片机通过编程产生串行时钟,并按时序发送与接收数据位,完成通道方式/通道数据的写入和转换结果的读出。其中模数转换程序是重点。,#include#define uint unsigned int#define uchar unsig

12、ned char#define ulong unsigned longulong volt;/测量的电压值uchar code led10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/数码管显示0-9sbit LW1=P23;sbit LW2=P22;sbit LW3=P21;sbit LW4=P20;/定义数码管位选脚sbit CLK=P13;/定义时钟信号口sbit DIN=P12;/定义2543数据写入口sbit DOUT=P11;/定义2543数据读取口sbit CS=P10;/定义2543片选信号口,红色语

13、句是依据电路连接定义的,定义这些语句是便于程序书写。,1,2,/函数名:read2543(uchar addr)/说明:进行ad转换将结果存于volt变量中 addr为测量位地址void read2543(uchar addr)uint ad=0;uchar i;CLK=0;CS=0;/启动2543 addr=1;volt=ad;/取走转换结果(是上一个时钟的结果)volt=volt*1221;/对测量值进行处理以符合实际,此段程序按TLC2543时序图写,是程序的重点,也是难点,要重点理解。,因为项目的满量程为5V,转换分辩率为12位,为什么要乘以1221?,重点理解,3,/主程序/*/void main()while(1)read2543(0);/调用2543驱动程序测量地址为0display();/调用显示程序,这里为什么是0 呢?要重点理解。,这是要传送的就是TLC2543控制字,结合控制字每1位所代表的意思及电路图的理解。,二进制00000000,每位的意思?好好理解吧!,谢谢再见!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号