设计与开发

单片机 电位器 电位器基础知识详解

小编 2024-10-10 设计与开发 23 0

电位器基础知识详解

电位器的特性参数都有哪些呢?我们熟悉的一般有符合度、分辨力、滑动噪声等等,了解电位器的特性参数对我们选购很有帮助。

符合度

符合度又叫符合性,它是指电位器的实际输出函数特性和所要求的理论函数特性之间的符合程度。它用实际特性和理论特性之间的最大偏差对外加总电压的百分数表示,可以代表电位器的精度。

分辨力

分辨力决定于电位器的理论精度。对于线绕电位器和线性电位器来说,分辨力是用动触点在绕组上每移动一匝所引起的电阻变化量与总电阻的百分比表示。对于具有函数特性的电位器来说,由于绕组上每一匝的电阻不同,故分辨力是个变量。此时,电位器的分辨力一般是指函数特性曲线上斜率最大一段的平均分辨力。

滑动噪声

滑动噪声是电位器特有的噪声。在改变电阻值时,由于电位器电阻分配不当、转动系统配合不当以及电位器存在接触电阻等原因,会使动触点在电阻体表面移动时,输出端处有有用信号外,还伴有随着信号起伏不定的噪声。

对于线绕电位器来说,除了上述的动触点与绕组之目的接触噪声外,还有分辨力噪声和短接噪声。分辨力噪声是由电阻变化的阶梯性所引起的,而短接噪声则是当动触点在绕组上移动而短接相邻线匝时产生的,它与流过绕组的电流、线匝的电阻以及动触点与绕组间的接触电阻成正比。

电位器的机械寿命

电位器的机械寿命也称磨损寿命,常用机械耐久性表示。机械耐久性是指电位器在规定的试验条件下,动触点可靠运动的总次数,常用 “周”表示。机械寿命与电位器的种类、结构、材料及制作工艺有关,差异相当大。

除了上述的特性参数外,电位器还有额定功率、阻值允许偏差、最大工作电压、额定工作电压、绝缘电压、温度参数、噪声电动势及高频特性等参数,这些参数的意义与电阻器响应特性参数的意义相同。

电位器的工作原理分析

从外观看,脉冲电位器与普通电位器一样都是三个引脚,但在其内部与引脚1、2相连的是两个长短不一的金属静片,与引脚3相连的是一周有12或24个齿的金属动片。当脉冲电位器旋转时可出现四种状态:即引脚3与引脚1相连,引脚3与引脚2及引脚1全相连;引脚3与引脚2相连,引脚3与引脚2及引脚1全断开。

在实际使用中,一般将引脚3接地作为数据输入端。而引脚1、2作为数据输出端与单片机I/O 口相连。如图2中所示,将引脚1与单片机的P1.0相连,引脚2与单片机的P1.1相连。当脉冲电位器左旋或右旋时,P1.0和P1.1就会周期性地产生所示的波形,如果是12点的脉冲电位器旋转一圈就会产生12组这样的波形,24点的脉冲电位器就会产生24组这样的波形;一组波形(或一个周期)包含了4个工作状态。因此只要检测出P1.0和P1.1的波形,就能识别脉冲电位器是否旋转是左旋还是右旋。

电位器的正确维修方法:

一是摩擦清洗法。刚开始这些电位器的磨损还不严重,表现出来的问题也只是在调节时声音出现杂音或音量忽大忽小,画面有一些杂波等,这主要是由于电位器在使用的过程中侵入了灰尘或触簧在与碳膜的不断摩擦下产生了尘埃从而污染了触点,致使触簧与碳膜片接触不良而产生的。对于这种问题,我经常使用的方法:首先是不断的来回滑动或旋转电位器,这样做可以去除触点与碳膜片上的污物,让触点变得光洁,即使不清洗也能让设备暂时恢复正常,这对于解决临时问题不失为一个可取的办法。为了让问题进一步的得到解决,我们就可以在摩擦之后对电位器用清洗液进行清洗,彻底洗掉电位器碳膜片上的污物,让簧片与碳膜片接触良好。

二是替换法。有些电位器磨损严重,用摩擦清洗法根本就不能解决问题,比如接触簧片与碳膜片发生断裂,这样的问题我都是采用替换法来解决。首先把损坏的电位器从设备上拆下来,然后对它进行分拆,将坏了的簧片与碳膜片用以前废旧电位器中好的进行替换再组合就行了,不过在进行组合之前别忘了先清洗,如果簧片触点上的污物清洗不掉,我们还可以对触点进行打磨,由此确保新组成的电位器能在设备中正常发挥作用。

三是簧片改道或自制法。有些电位器的损坏是由于触点把碳膜片上的碳膜磨掉了,导致触点与碳膜接触不良而造成故障,这时我就采用调整簧片的角度,让簧片触点与碳膜片上未磨损的部分进行接触,以此达到消除故障的目的:打开电位器,可见簧片与原来滑动轨道间磨擦,使碳膜片表面轨道有较明显的划痕,引起簧片与碳膜片接触不良。清理后用尖嘴镊子将簧片进行调整,使其离开原来的滑动轨道,簧片与没有磨损的碳膜片接触好即可。还有些电位器的损坏是由于簧片的触点被磨掉而引起的,这种情况如果没有替换的,我们还可以用铜片进行自制来解决。

四是润滑保护法。为了延长修理后的电位器的使用寿命,我还经常在电位器的碳膜片上涂一点硅脂(缝纫机油也可以),这样做的好处是可以防止产生电弧,由于硅脂的润滑作用减轻了簧片与碳膜片的摩擦,从而使电位器在调谐时电阻的变化均衡平滑,效果良好。

进一步分析右的波形并按时间轴展开可以看出,虽然脉冲电位器左旋和右旋的波形都相同。但左旋时,在第1状态,脚1先比脚2变为低电平;在第2状态,脚2也变为低电平;在第3状态,脚1先比脚2变为高电平;在第4状态,脚2也变为高电平;脉冲电位器右旋时,脚1和脚2输出波形的变化规律正好与左旋相反。

故可根据时间识别法(比较P1.0与P1.1低电平出现和结束的时差)来识别脉冲电位器是左旋还是右旋。在动态扫描中,因采样频率操作速度等因素的影响,实际上很难测出P1.0和P1.1的波形;也很难测准P1.0与P1.1低电平出现和结束的时差,只能快速地对P1.0和P1.1电平采样。对应图1所示波形按时间轴展开,每当P1.0和P1.1的组合电平依次为01 00 10 11四种状态码组成一个字节即4BH 时,就表示左旋一位音量减1。而每当P1.0和P1.1的组合电平依次为10 00 01 11四种状态码组成一个字节即87H时;就表示右旋一位音量加1。这里将“4BH”称为左旋一位的特征码,“87H”称为右旋一位的特征码。

编程的任务就是要在脉冲电位器旋转过程中识别出这两种特征码,并以此为依据,对音量进行增减控制。实际编程时可以用不同的方法识别出这两种特征码。但我们在实践中经过比较,用状态(位置)采样法实现编程是较为理想的一种方法。这种方法对采样频率和操作速度没有特别要求,也可不用定时器和中断资源,只需在主程序里面就能完成,而且具有编程简单抗干扰能力强工作可靠的优点。

由于脉冲电位器在工作过程中有三种情形:一是没有被旋转而停留在某一状态(位置);二是虽然被旋转但没有完成一个周期(4个状态)而停留在某一状态;三是不停地被旋转而超过一个周期。状态(位置)采样法就是要准确地跟踪识别和记录脉冲电位器变化的每一个状态值(包括位置值和它对应的特征码)。程序一开始就要识别出脉冲电位器所处的现态位置和其对应的特征码;随后不断跟踪扫描记录脉冲电位器的每一变化过程。显然,脉冲电位器只有旋转到第4个状态才有一个我们所需要的特征码出现,程序根据这个特征码的性质再对音量进行加减控制。

电位器焊锡的故障排除

电位器的焊锡是一个很容易引起故障的原因之一,大部分的客户还是采用手工焊锡的方法,另外有部分大企业采用高周波焊锡的方法。这些都有些要注意的地方哦。

采用手工焊锡方法时,电位器在焊接操作的时候应尽可能在短的时间内完成,最好在3秒以内完成,焊烙铁触点的最高温度低于270度。如果时间太长或者温度过高,会引起电位器接触不良等各种原因。焊接的时候谨慎使用助焊剂,应避免使用水溶性助焊剂,否则,将助长金属氧化和材料发霉。

采用高周波焊锡的时候注意电位器里的塑料件:例如拨盘旋钮,塑料推柄,塑料柄等的熔点时候能达到高周波要求的温度,如果不能请更换耐高温部件。

到这里,关于《电位器基础知识详解》已经全部结束了,该内容是云汉芯城小编通过网络搜集资料整理而成,如果你还想了解更多关于电子元器件的相关知识及电子元器件行业实时市场信息,敬请关注公众号 【云汉芯城】。

(素材来自网络,由云汉芯城小编搜集网络资料编辑整理,如有问题请联系处理!)

单片机实例分享,自制数字示波器

示波器是最常用的电子测量仪器之一,它能把肉眼看不见的电信号变换成看得见的图像。为了携带方便,我曾经做过一台简易数字示波器(见图22.2),材料成本只有150元左右,这台数字示波器的设计思想是:简单实用,价格低廉,容易制作。

主要性能指标:

最高采样率:20MSa/s

模拟带宽:4MHz

输入阻抗:1MΩ

垂直灵敏度:0.01V/div~5V/div(按1-2-5方式递进,共9挡)

水平扫描速度:1.5µs/div~6ms/div(按1-2-5方式递进,共12挡)

垂直分辨率:8位

显示屏:2.4 英寸 TFT320×240(驱动控制芯片:ILI9325)

测量时能同时显示信号的频率、电压峰峰值,具有信号保持(HOLD)功能。

图22.2 自制的简易数字示波器

电路工作原理

图22.3 数字示波器结构框图

我们知道,模拟示波器是用阴极射线示波管(CRT)显示被测信号波形的,而数字示波器是采用LCM(LCD显示模块,含LCD及显示驱动控制芯片)显示被测信号波形。因为LCM的每一个显示像素都对应一个地址,地址要用数据表示,每一个像素的颜色也是用数据表示的。因此电路向LCM发送的是数据编码信号,这就决定了它和模拟示波器的电路结构不一样。

本文介绍的数字示波器的结构框图如图22.3所示。它由垂直输入电路、A/D转换电路、数字信号处理与控制电路、液晶屏显示电路、电源电路等部分组成。

图22.4 数字示波器电路原理图

输入的电压信号经垂直输入电路放大,以提高示波器的灵敏度和动态范围。对输出的信号取样后由 A/D 转换器实现数字化,模拟信号变成了数字形式存入存储器,微处理器对存储器中的数据根据需要进行处理,最终在显示屏上显示测量波形和相关的参数,这就是数字存储示波器的工作过程。

数字示波器的电路原理图如图22.4所示,下面分别对各单元电路进行介绍。

表22.1 垂直灵敏度和K1~K5的对应关系

1. 垂直输入电路

垂直输入电路由双运算放大器LM6172和衰减电路等部分组成。对其有两个基本的要求:一是对放大倍数的控制,二是要有满足设计要求的足够的带宽。

示波器输入信号电压的动态范围很大,为了将输入信号电压调节到A/D转换电路的最佳采样范围,以便得到最合理的显示波形,在信号电压较小时要进行放大,在信号过大时要进行衰减。

示波器输入信号的频率范围也很宽,为了使垂直输入电路有较平坦的频率特性曲线,即对不同频率的信号放大电路的增益基本保持一致。为此选用了高速双运放LM6172,其带宽为100MHz,并在衰减电路中加了频率补偿电容。

电阻R1、R2、R3和继电器K1、K2、K3等组成衰减电路,衰减系数分3挡:1:1、1:10、1:100,由K1、K2、K3控制。第一级运算放大器接成电压跟随器的模式,主要起到缓冲的作用,提高输入阻抗,降低输出阻抗。第二级运算放大器接成电压串联负反馈电路的模式,其中电阻R6、R7、R8和继电器K4、K5等组成3挡增益调节电路,放大器的增益由K4、K5控制。当触点K4闭合时增益为(R6+R9)/R6;当触点K4开启、K5闭合时增益为(R6+R7+R9)/(R6+R7);当触点K4、K5均开启时增益为(R6+R7+R8+R9)/(R6+R7+R8)。按电路图中各电阻的取值,对应本级3挡的增益分别为25、12.5、5。

继电器K1~K5工作状态受单片机控制,所以垂直输入电路是一个程控放大器。垂直灵敏度和K1~K5工作状态的对应关系见表22.1(1表示闭合,0表示断开)。

2. A/D 转换电路

我们知道,A/D转换电路的作用就是将模拟信号数字化。一般把实现连续信号到离散信号的过程叫采样。连续信号经过采样和量化后才能被单片机处理。通过测量等时间间隔波形的电压幅值,并把该电压值转化为用二进制代码表示的数字信息,这就是数字示波器的采样,采样的工作过程见图22.5。采样的时间间隔越小,重建出来的波形就越接近原始信号。采样率就是每秒采样的次数,例如,示波器的采样率是10MSa/s,即每秒采样10M次,则表示每 0.1μs进行一次采样。采样率是数字示波器最重要的一项指标。

根据Nyquist采样定理,当对一个最高频率为f的模拟信号进行采样时,采样率必须大于f的两倍以上才能确保从采样值完全重构原来的信号。对于正弦波,每个周期至少需要两次以上的采样才能保证根据采样数据恢复原始波形。在数字示波器中,为了减小显示波形的失真,采样率至少要取被测信号频率的5~8倍。本文介绍的数字示波器采样率取被测信号频率的5倍,因为最高采样率为20MSa/s,所以当被测信号的带宽在4MHz以内时有比较好的测量结果。

采样率的提高受制于A/D转换芯片的工作速度,本文电路中使用的单片机ATmega16内部虽然也有A/D转换器,但其工作频率太低,不能满足数字示波器的采样要求。因此我们用了一片高速A/D转换芯片ADS830E,其最高采样率可达60MSa/s。ADS830E的转换精度为8位二进制数,即垂直分辨率为256,因为选用的LCM的分辨率为320×240,对应垂直分辨率为240,所以ADS830E完全能满足分辨率的使用要求。

ADS830E的IN(17脚)是供采样的模拟信号的输入端,CLK(10脚)是采样时钟信号输入端。每输入一个时钟脉冲就进行一次A/D转换,转换后的8位二进制数据由D0~D7输出。ADS830E的输入电压幅度可以通过11脚进行控制,当11脚接高电平时,ADS830E的输入电压范围是1.5~3.5V;当11脚接低电平时,输入电压范围是2~3V。这里选用1.5~3.5V的输入电压范围,中点电压为2.5V,中点电压由电位器RP进行调节。当IN输入电压为1.5V时,D0~D7输出的转换数据是0x00,当IN输入电压为3.5V时,D0~D7输出的转换数据是0xff,即255。

图22.5 采样的工作过程

3. 数字信号处理与控制电路

数字信号处理与控制电路由单片机ATmega16、FIFO(先进先出)存储器IDT7205、4个2输入与非门74HC00等组成。

单片机ATmega16在电路中的主要作用是:(1)对A/D转换后的数字信号进行处理,转换成LCM能接受的数据格式,输出给它显示;(2)产生ADS830E、IDT7205工作所需要的时钟脉冲信号;(3)通过按键对示波器参数进行控制调节,输出继电器的控制信号。

图22.6 倍频电路及各点的脉冲

FIFO存储器IDT7205是一个双端口的存储缓冲芯片,具有控制端、标志端、扩展端和8192×9的内部RAM阵列,12ns的高速存取时间。内部读、写指针在先进先出的基础上可进行数据的自动写入和读出。当有数据输入到数据输入端口D0~D8时,可由控制端Wclk来控制数据的写入。为了防止数据的写溢出,可用标志端满FF、半满HF来标明数据的写入情况,写入时由内部写指针安排其写入的位置。由于内部RAM阵列的特殊设计,先存入的数据将被先读出。如果需要数据外读,则可由控制端Rclk来控制数据的读出。RST为复位端。Wclk、Rclk、RST均由单片机ATmega16提供控制脉冲。数据输出端口Q0~Q8是三态的,在无读信号时呈高阻态。输入数据位D0~D8和输出数据位Q0~Q8均为9位,这里输入和输出均只使用了8位,即只使用了D0~D7和Q0~Q7。

读到这里,有的读者可能会问:把ADS830E输出端口D0~D7输出的数据直接输入ATmega16的PA端口不就行了吗,为什么还要在中间加上一个IDT7205?这是因为ADS830E工作速度比ATmega16快得多,即ATmega16读取数据的速度比ADS830E输出数据的速度慢,如果直接相连ATmega16就拖了ADS830E的后腿。加上IDT7205后就起到了缓冲的作用,ADS830E转换的结果先存在IDT7205内,等到ATmega16需要时,再从IDT7205中读出来。

ADS830E的采样时钟与IDT7205的写信号时钟是同一个时钟源,以确保两者同步。时钟脉冲信号由ATmega16使用内部定时器产生,由于ATmega16外接晶体的频率为20MHz,所以产生的时钟信号最高频率只能达到10MHz,为了使采样率达到20MSa/s,使用了74HC00等构成的倍频电路。若ATmega16 PD7端输出的脉冲信号频率为f,则74HC00的F4输出的脉冲信号频率为2f,倍频电路的工作过程和各点脉冲信号时序关系如图22.6所示。

K1~K5是干簧继电器,干簧继电器特点是吸合和释放时噪声很小,功耗低。因其吸合电流较小,所以可直接用ATmega16的输出端口驱动。

SB1~SB5是示波器调节按钮。SB1、SB2是水平扫描速度调节按钮,按SB1时μs/div的值增加(水平扫描速度减小),按SB2时μs/div的值减小(水平扫描速度增加);SB3、SB4是垂直灵敏度调节按钮,按SB3时V/div的值增加(垂直灵敏度减小),按SB4时V/div的值减小(垂直灵敏度增加);SB5是波形保持(HOLD)按钮,按一下测量波形被冻结保持,同时在显示屏上显示字符“HOLD”,再按一下又恢复到正常测试状态。所有调节参数均显示在液晶屏上,调节好的参数将自动保存到ATmega16的EEPROM中,下次开机时有关参数将预设在上次关机前的设定值上。

4. 显示电路

LCM采用2.4英寸TFT彩色液晶屏,分辨率为320像素×240像素,驱动控制芯片为ILI9325,该芯片传递数据8/16接口位兼容,使用8位接口时能够节省单片机的输出端口,在8位接口工作状态时16位数据分两次传递,速度稍慢。数据端口D0~D15中的高8位D8~D15为8位接口使用的端口。8/16接口位的选择由端口IM0控制,IM0接高电平时为8位接口工作状态,IM0接低电平时为16位接口工作状态。

电路中ILI9325的工作电压是3V,ATmega16的工作电压是5V,两者高电平不一致,通信端口相连时要进行电平转换,因为这里只需要ATmega16向ILI9325单向传递数据,所以只需要将5V向3V电平转换,不需要将3V电平向5V电平转换,就不必使用专用的电平转换芯片,只要用电阻分压电路将5V高电平转换成3V高电平就行了。电路中R14~R35组成电阻分压电路,连接端口有8个数据端口和3个控制端口。

5. 电源电路

这个数字示波器使用了交流电源,提供+5V、−5V、+3V三种直流电压。

程序设计

设计好电路只是为数字示波器奠定基础,更重要的是单片机程序的设计。实际上在设计硬件时既要考虑到功能,也要考虑到程序设计的需要。比如对单片机的选型,主要考虑功能、工作速度、端口的数量、程序存储器Flash的容量、RAM的容量、有没有EEPROM等。综合考虑后选用AVR单片机ATmega16,它的程序存储器Flash为16KB,RAM为1KB,使用时将16MHz的时钟频率超频到20MHz,经过对其资源合理分配,完全可以满足设计要求。

程序的开发环境为ICC-AVR V6.31A,使用 C语言编写。程序采用了分时控制、顺序调度的工作方式,没有使用任何中断程序,程序流程图如图22.7所示。

图22.7 程序流程图

下面对主要部分进行分别介绍。

1. 垂直灵敏度控制

按钮SB3、SB4用来调节垂直灵敏度,按动后通过键盘扫描程序可以增加或减小程序中变量Key_ver的值,Key_ver取值范围为1~9,分别对应9挡垂直灵敏度,通过Key_ver的取值控制继电器K1~K5的工作状态,从而得到相应的灵敏度。

以K1为例,K1接ATmega16的PB0端口,有关宏定义为:

#define K1_ON PORTB &=~(1<

#define K1_OFF PORTB |= (1<

因此,K1_ON表示PB0输出低电平,K1闭合,触点接通;K1_OFF表示PB0输出高电平,K1释放,触点断开。

2. 水平扫描速度控制

水平扫描速度控制是通过改变A/D转换电路的采样率来实现的,按动SB1、SB2可以改变程序中变量Key_hor的值,Key_hor取值范围为1~12,分别对应12挡水平扫描速度。

A/D转换电路所需的采样时钟脉冲用ATmega16的8位定时器/计数器2-T/C2产生,选择CTC工作模式。其工作参数主要由控制寄存器TCCR2、计数寄存器TCNT2、输出比较寄存器OCR2决定。TCCR2中的位CS22、CS21、CS20的取值确定T/C2的时钟源的分频系数,OCR2中的数据用于同TCNT2中的计数值进行连续的匹配比较,一旦TCNT2计数值与OCR2的数据相等,单片机端口OC2的输出电平即取反,这样即可输出脉冲信号。脉冲信号的频率f由时钟源的分频系数和OCR2的预置值决定,计算公式为f=时钟源频率/(2×(1+OCR2)),OC2输出的脉冲信号经倍频后作为采样时钟信号,相关参数之间的关系见表22.2。

只要对寄存器TCCR2、OCR2的值进行设置,就可以获得我们所需频率的采样时钟信号。

3. 数据的存储和读取

ADS830E的采样数据存入IDT7205后达到一定数量就停止采样,再将IDT7205存储的数据读入ATmega16,程序中用一个数组RAM[650]来存储读取的数据,存储容量为650,即一次读取650个采样数据。

仔细看了电路图的读者可能会发现,IDT7205的满FF端口并没有使用,为什么不用呢?这是因为ATmega16的RAM容量只有1KB,只能分配约650个存储单元用来存储从IDT7205读取的数据,IDT7205存多了数据也没有用,ATmega16不能全部存储,多余的数据就丢弃了,还不如少读点数据节省时间,提高显示波形的刷新频率。这在采样时钟频率较低时效果尤为明显,因为采样时钟频率越低,采集一个数据所花的时间越长。以采样时钟频率5kHz为例,如果要将IDT7205存满8192个数据,所需要的时间为8192/5000≈1.6s, 显示波形1.6s以上才能刷新一次,这显然是不行的。如果存满700个就结束,则所需要的时间为700/5000=0.14s,刷新速度提高了很多。

从上面的分析可以看出,FIFO存储器其实使用IDT7202就够了,IDT7202有1024个存储单元。不过笔者只买到了DIP封装的IDT7205,虽然有点大材小用,但为以后数字示波器升级提供了空间。FIFO存储器存储数据的容量称为数字示波器的存储深度,也称记录长度,存储深度也是数字示波器的一个重要技术指标,适当存储深度便于对显示波形进行分析和处理。

不使用FF端口是如何控制IDT7205存储数量的呢?我在IDT7205存储数据时根据不同的采样时钟频率设置了不同的延时时间,在此时间内能存入多于700个数据即可。延时结束后即将IDT7205的存储数据读入ATmega16。

表22.2 相关参数之间的关系

由于ADS830E每次重新进入工作状态要有一个稳定的过程,开始采样的几个数据精度不高,因此在读取IDT7205数据时先空读50个数据,将这些数据丢弃,然后再将后面的数据读入ATmega16。

图22.8 显示区域

4. 数据计算处理

数据计算处理工作主要包括同步触发信号检测、信号电压峰峰值测量、信号频率测量。这部分程序设计的思路是:

先在650个数据的前350个数据中以显示屏的垂直中点对应数据120为基准,找到同步触发信号。之所以在前350个数据中找同步触发信号,是为保留后面至少有300个数据供显示波形用。找到同步触发信号后,则把对应该点数据为起点的连续300个数据作为显示数据。

然后找到650个数据中的最大值和最小值,求最大值和最小值的算术平均数,即可得到中点电压值,检测信号相邻两次向上穿过中点的时间差即可计算出信号的周期。

5. LCM的控制与显示

TFT-LCD显示屏的分辨率为320像素×240像素。显示屏的每一个像素都对应着驱动控制芯片ILI9325内部存储器唯一的一个地址(x,y),x为横坐标,寻址范围为0~319;y为纵坐标,寻址范围为0~239。在像素对应地址写入16位颜色数据就可以显示相应的颜色,如果某一点要清除,只要对该像素对应的地址写入背景色就可以了。由于这里ILI9325采用8位接口工作模式,因此传递16位数要分两次进行。

因为数字示波器既要显示被测信号的波形,也要显示有关的测量数据,如电压峰峰值、频率、水平扫描速度、垂直灵敏度等,所以必须对显示区域进行合理的划分,并对颜色进行规划设置,分配好的显示区域如图22.8所示。图中用来显示波形的区域为中间的300×200。在这个区域画了刻度线,将水平方向分成10格,垂直方向分成8格。其余区域用来显示各种数据。

对ILI9325最基本的操作有两种:发送命令和发送数据。无论是显示屏的初始化,还是设置显示地址和显示颜色,都要用到这两种基本操作。

显示被测信号波形的过程是:先清除上一帧显示波形,然后画刻度线(刻度线每次都要重画,因为有些和显示波形交叉的点也被清除了),最后画新的一帧信号波形,同时备份数据作下一次清除用。显示信号波形时,存储器地址(x,y)中的x代表水平扫描信号所处的位置,y代表信号电压的大小。每次刷新信号波形时,信号电压峰峰值和信号频率显示数据也同时刷新一次。水平扫描速度和垂直灵敏度的数据只有在重新调整后才刷新。

表22.3 主要元器件清单

元器件选择

主要元器件的清单见表22.3。

经过试验,我发现在工作电压为5V时,单片机ATmega16和ATmega16L在时钟频率为20MHz下均能正常工作。因此,如果你手头只有ATmega16L也可以使用。

IDT7205如果使用PLCC封装的芯片,请注意引脚编号不同。

干簧继电器也可以选用其他型号的,只要工作电压是5V,闭合电流小于20mA即可。

机箱我选用的是成品塑料机箱,你也可以用其他样式的,或者自己用有机玻璃DIY。

显示屏和ADS830E的两块转接板是必须要用的,不然无法在万能板上安装,可以设法和元器件一起采购。

图22.9 缓冲区对比图

图22.10 开关单独安装在小的万能板上

显示屏的品牌很多,你很难买到和我一样的品牌。但有一点要注意,驱动控制芯片一定要是ILI9325的,如果不是,你就要修改程序了,不同的芯片即使是同一系列,驱动程序也往往不兼容。即使驱动芯片一样,不同品牌的显示屏引脚编号也可能不一致,接线时要仔细对照。另外有一点提醒一下:我买的显示屏的4个背光二极管是并联的,我是把它们公共的阳极串接一个电阻(不知道模块内部有没有限流电阻,还是外接一个电阻保险)接到+5V电源,如果你买的显示屏的背光二极管是串联的,要求的工作电压就高了,接到+5V是不能发光的,可串连一个100Ω(电阻的取值使发光二极管工作电流不超过20mA为宜)接到LM7805的输入端,此处的电压约有10V,可以满足驱动要求。

安装

安装前先将目标文件dso.hex写入单片机ATmega16,特别提醒一下:用编程器将目标文件调入时要选择“缓冲区预先填充00”选项,否则在显示屏显示字符时会出现色块。如果你用下载线写入文件,则往往不提供该选项给你选,会直接把缓冲区都填入了FF,见图22.9上半部分,这时你可以手工编辑一下,把方框中的FF全部改为00,结果见图22.9下半部分。

5个按钮开关单独安装在小的万能板上,见图22.10。其余的元件除显示屏直接固定在机箱面板上外,都安装在大的万能板上。接线时注意同一单元要一点接地,数字地和模拟地要分开。三端稳压器LM7805要加一个小的散热片。

机箱的面板根据显示屏的大小、按钮开关和BNC插座的安装位置开孔,面板上的标记可打印在一张纸上,再用1~2mm的透明有机玻璃做一块尺寸一样的面板(对应显示屏的位置不开窗口,正好做防护屏),再把打印好的纸夹在两层中间,用螺丝固定好后,面板就做好了。

按钮开关电路板是直接用4个螺丝固定在面板上的,显示屏可用热熔玻璃胶固定,把显示屏在窗口摆正位置后,在4个角用热熔玻璃胶固定一下就可以了。

安装好的示波器内部结构见图22.11。

图22.11 安装完成的内部结构

调试

如果安装时没有接线错误,元器件没有质量问题,调试还是比较容易的。

调试分4步进行。

(1)各单元先不接电源,测量电源部分输出电压是否正常,正常后再接通各部分的电源。

图22.12 水平扫描线与中线未重合

图22.13 补偿电容与方波波形的关系

图22.14 调试好的示波器的使用效果

(2)检查显示屏工作是否正常,接通电源,显示屏初始化后先是全屏显示白色闪亮一下,然后显示刻度线和相关数据。如果开机后显示屏没有反应,先检查单片机有没有正常工作,如按动K3、K4继电器的工作状态应该有所改变。如正常再查显示屏的连线和供电是否正常,直至显示正常才能进入下一步。

(3)将示波器输入端信号线短接,调节电位器RP,使其中点电压为2.44V(注意不是1.5~3.5V的中点电压2.5V,因为显示屏垂直方向中点的值是120,120是2.44V电压经A/D转换后对应的值,对应2.5V电压的A/D转换值是255/2),这时候可以看到一条水平扫描线出现在水平中线附近,见图22.12,仔细调节RP,使得其和水平中线重合。

(4)对衰减器的频率补偿电容进行调整,将垂直灵敏度调到0.5V/div,输入 200kHz、幅度1V的方波,改变电容C2的容量,使示波器显示的方波波形最好;再将垂直灵敏度调到1V/div,输入200kHz、幅度2V的方波,改变电容C3的容量,使示波器显示的方波波形最好。频率补偿电容与方波波形的关系见图22.13。

装配调试好的数字示波器的使用效果见图22.14。

相关问答

51 单片机 如何控制x9c104p数字 电位器 ?

..这个芯片比较冷,我没有现成的C程序,大概告诉你下怎么弄就是了,控制脚主要就是3个U/D,INC,CS。CS不多说,就是操作芯片的时候把它拉到低电平选通芯片就可以...

adc 电位器 是什么意思啊?

单片机中的ADC是Analog-to-DigitalConverter的缩写,指模/数转换器或者模数转换器。ADC是指将连续变化的模拟信号转换为离散的数字信号的器件。真实世界的模...

arduino 单片机 上模拟口a0到a5的区别?

将电位器连接到Arduino的模拟接口上,也就是A0-A5中的任意一个,ArduinoA0-A5口为ADC引脚,其分辨率为10位,也就是1024级,输出数值为0-1023,默认以输入电压作...

变频器模拟量输入端子是不是外接 电位器 用的?

外接模拟量可以接很多东西控制变频器速度,比如你说的电位器,还有仪表,Plc模拟输出,单片机等,凡是符合变频器模拟量输入控制标准的都可以外接模拟量可以接很多...

怎么用51 单片机 控制舵机的?怎样编写程序啊?大哥帮帮忙-ZOL问答

它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片...

数字 电位器 的特点是什么

[回答]数字电位器的特点是:寿命长(因无机械触点)、工作可靠、性能稳定、耐振动、体积小,能和数字电路或单片机灵活地结合在一起。靖江市骏程叉车配件有限...

...IO口读取到可调电阻( 电位器 )的阻值?最好连带接线说明,_作业帮

[最佳回答]这个你要变通一下.单片机本身不能直接读取电阻值,但可以通过内置的ADC读取电压值啊,那么你想办法把电阻值转化为电压值就可以了.比如,你用一个恒流...

一台功放机中的mpc8052 单片机 芯片烧了,可以买一块直接更换吗?

单片机是可编程器件,可以通过程序来实现控制逻辑,这大大方便了产品的设计。现在的产品,基本是以单片机为核心,再根据不同的功能需求来设计不同的外设电路。...若...

51 单片机 液晶显示屏对比度怎么调?

调节51单片机液晶显示屏的对比度可以通过调节液晶显示模块背面的对比度调节器完成。对比度调节器一般是一个电位器,可以通过旋转电位器来改变液晶显示屏的对比...

在座的老师有没有谁了解 常州质量好的电子元件磁铁,有了解...

电子元器件包括:电容、电阻、电感、继电器、传感器、整流器、二极管、三极管、场效应管、可控硅、晶闸管、IC、单片机、电位器等。硬之城是比较好的...

猜你喜欢