0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用1804兼容微控制器控制DS8051

星星科技指导员 来源:ADI 作者:ADI 2023-02-21 10:46 次阅读

DS1804为数字电位器,具有EEPROM存储器,其接口主要设计为与按钮(人机接口)接口。通过仔细考虑这些按钮控制的功能,DS1804也可以通过按钮引脚直接连接到微控制器。本应用笔记以8051型处理器为例,描述了如何做到这一点。此外,本文还提供了汇编语言的源代码,以简化工程师在此类应用中使用DS1804的设计任务。涵盖的主题包括:

如何在不更新EEPROM的情况下更改电位计设置。

如何通过更改EEPROM来更改电位器设置。

如何将电流电位计设置写入EEPROM存储器。

介绍

DS1804非易失(NV)微调电位器非常适合用于任何需要偏置电压、电流或电阻的系统,无论是否手动调整。其递增/递减接口允许使用最少的外部硬件进行手动调整,或使用微型控制器进行自主操作。游标可以调整到100个位置之一,任何值都可以存储在器件的NV寄存器中,以在上电时选择游标值。该器件还提供多种小型封装选项,包括 8 引脚 DIP、SOIC、μSOP 和倒装芯片封装

本应用笔记提供了使用达拉斯半导体DS1804C87 (520)微控制器控制DS8051的简单硬件和软件设置。

与DS1804通信的微控制器硬件设置

使用DS1804的主要优点之一是硬件和软件控制界面简单。电位计和微控制器之间只需要三个连接:片选、上/下选择和增量,分别位于图1中微控制器的引脚P6.1、P5.1和P4.1上。原理图上显示了用于支持 8051 程序的两个附加组件。第一个是经济振荡器芯片,可为 22 提供 22.8051 MHz 时钟;连接到 P1.0 的 LED 是第二个。作为程序中的状态指示器,LED 间歇性切换以显示程序仍在执行。

pYYBAGP0MG6AOKRAAAAg4xauheQ948.gif?imgver=1

图1.DS87C520和DS1804连接原理图

DS1077可以用22.118 MHz晶体代替。DS87C520采用晶体时钟源操作的说明见达拉斯半导体的高速微控制器用户手册。需要注意的是,DS87C520能够以高达33 MHz的时钟工作;但是,软件中使用的延迟取决于时钟频率。以较高的时钟速率工作DS87C520可能会导致DS1804的时序故障,而以较低频率工作应该不会产生不良影响。

使用CS、INC和UD信号控制DS1804

DS1804的操作很简单,但需要了解一些细微差别才能可靠工作。首先,设备在 50ms 的过程中上电。尝试在该时间段之前向部件发出信息信号将不会成功。该器件还需要500μs才能将游标的值调整为上电期间存储在非易失寄存器中的值。

上电后,有两种方法可以递增或递减器件。第一种方法仅更改电位计游标位置的值。第二个改变游标的值,并将当前值写入非易失性寄存器。

在不写入非易失寄存器的情况下更改游标位置可通过以下方法完成:

将向上/向下选择输入调整为高以递增,或低以递减。

通过置位CS信号(低电平有效)使能芯片。

脉冲INC低n-1倍以输入/减少零件n倍。

再次断言 INC 低点(INC 的下降沿上部分再次减少/减少)。

通过取消断言 CS 来禁用芯片。

取消断言 INC 以完成写入。

要更改游标的值并将最终游标位置写入非易失寄存器,请完成 以下顺序:

将向上/向下选择输入调整为高以递增,或低以递减。

通过置位CS信号(低电平有效)使能芯片。

将增量信号脉冲低 n 次,以输入/递减零件 n 个位置。

通过取消断言 CS 来禁用芯片。

等待10ms,将当前游标位置写入NV寄存器。

另一个简单而有用的例程将游标位置的当前值存储到NV寄存器中。脉冲CS为低电平,而增量保持高电平,将游标的电流值存储到NV寄存器中。取消 CS 后,控制器应等待 10ms 时间,以便使用当前游标位置写入 NV 寄存器。

8051 DS1804 控制软件

有数百万种不同的例程可用于调整游标位置和写入DS1804的NV寄存器;但是,最简单的方法只需要四个例程。这些例程初始化DS1804,递增芯片一个游标位置,递减芯片一个游标位置,并将电流游标位置写入NV寄存器。这些例程在附录 A 中提供,称为 Init1804、Increment1804、Decrement1804 和 WriteNVreg。Increment1804和Decrement1804例程可以放在一个环路中,对DS1804进行n次输入/递减,一旦达到所需的游标位置,就可以通过调用WriteNVreg例程将其写入NV寄存器。如果需要在不编写主程序中的循环的情况下对DS1804进行n次输入/递减,则可以编写一个简短的例程,从堆栈或累加器接收n并实现循环的功能。

当每次调整期间选择 Up/Down 和 CS 的开销对于手头的应用程序来说太慢时,就会发生仅使用四个函数的垮台。因此,包括两个附加功能,用于演示芯片的输入/递减(每个方向五个间隔),只需选择方向和芯片选择输入。这些例程称为递增 1804x5 和递减 1804x5。

除了上述例程之外,软件中还驻留了另外三个例程以生成时序。它们被称为wait16us,wt和wait3sec。这些功能提供固定的1.6μs延迟、由R5、R6和R7中存储的值选择的可变延迟,以及主程序中使用的固定3秒延迟。

主节目序列

禁用所有中断。

切换 P1.0 上的 LED 以表示执行开始。

初始化DS1804时,将DS1804的三个输入全部设置为高电平并等待50ms。

等待 3 秒钟,切换 LED。3秒延迟允许用万用表读取DS1804的上电值,LED指示何时发生变化。

以1804个间隔突发递增DS5,共25个位置。在 3 个间隔的突发中的每一个之间添加了 5 秒的暂停,以允许万用表监控更改。当游标发生变化时,LED 将切换。

等待3秒,切换LED,递减DS1804 5个间隔。

将 NV 寄存器写入当前值。

等待3秒,切换LED,递增DS1804 1间隔。

等待3秒,切换LED,递减DS1804 1间隔。

通过无限循环完成执行。

主程序输出

假设您正在使用 V 执行程序抄送5V时,22 MHz晶体;万用表是 在 W 和 Gnd 之间连接;和循环 V抄送从 Gnd 到 5V 启动程序。的输出 DS1804如下。

电源接通时,该器件将启动至NV寄存器中上次存储的值。如果值 NV寄存器之前已写入,然后它将显示该值;否则将显示伪随机 值在发货前由工厂存储在NV登记册中。游标输出将显示 万用表上的电压,对应于NV寄存器中存储的值3秒。输出 然后以 0.25V 步长递增,并保持每个值 3 秒钟,然后再继续下一个值 位置。对于1.25V的总电压变化,这将发生五次。然后游标电压将为 降低0.25V,该值将保持3秒。该值将存储在NV寄存器中,并且 将是部件启动到下次重新通电时的值。最后,游标电压将为 递增0.05V,然后递减0.05V,两个值均保持3秒。发光二极管 附加到 P1.0 将在每次更改发生之前直接每 3 秒切换一次。

如果芯片上电时游标值等于或大于3.76V,程序将 尝试将芯片递增到5V以上。这不会损坏器件,但输出将保持在5V,直到 发出递减命令。因此,在这种情况下,端电压将为4.75V。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7714

    浏览量

    152648
  • 电源
    +关注

    关注

    185

    文章

    17969

    浏览量

    252901
  • 寄存器
    +关注

    关注

    31

    文章

    5390

    浏览量

    121904
收藏 人收藏

    评论

    相关推荐

    8051微控制器的基础知识

    8051微控制器是嵌入式系统、消费电子、汽车等各个领域中最流行和最常用的微控制器之一,技术上称为Intel MCS-51架构。8051微控制器
    发表于 09-12 17:32 3651次阅读
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的基础知识

    DS1318与8051微控制器的接口

    本应用笔记中的硬件电路将DS1318的数据放入μC的数据存储空间。μC通过读、写正确地址的数据存储访问DS1318寄存。本实例中采用DS
    发表于 12-18 10:14

    高速安全微控制器DS5250电子资料

    概述:DS5250是Maxim公司生产的一款安全微控制器,它是该系列中的一款高度安全、4时钟每机器周期、100%兼容8051指令集的微控制器
    发表于 04-21 06:26

    DS5250中文资料 (高速安全微控制器)

    DS5250是Maxim安全微控制器系列中的一款高度安全、4时钟每机器周期、100%兼容8051指令集的微控制器
    发表于 05-11 09:37 162次下载

    MAX6901 RTC与8051微控制器的接口

    要:该应用笔记演示了MAX6901与8051微控制器的连接方式,并提供了基本的接口程序例程。本文采用的微控制器DS2250,软件用C语言编写。 MAX6901引脚配置
    发表于 04-21 11:12 810次阅读
    MAX6901 RTC与<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1302 RTC与8051微控制器的接口

    摘要:本应用笔记说明了DS1302 RTC通过3线接口与8051微控制器的连接方式,设计实例包括电路原理图和C语言接口程序。 DS1302引脚配置
    发表于 04-21 11:14 2359次阅读
    <b class='flag-5'>DS</b>1302 RTC与<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1388实时时钟与8051微控制器的接口

    摘要:本应用笔记介绍了DS1388与8051微控制器的连接,所提供的软件用C语言编写。本文提供了基本接口程序的代码,所采用的微控制器DS2
    发表于 04-21 11:15 1305次阅读
    <b class='flag-5'>DS</b>1388实时时钟与<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS3231与8051微控制器的接口

    摘要:本应用笔记提供了一个DS3231与8051微控制器接口的硬件电路和软件例程。 图1. DS3231引
    发表于 04-21 11:16 2104次阅读
    <b class='flag-5'>DS</b>3231与<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1305 RTC与8051微控制器的接口

    摘要:本文介绍DS1305实时时钟与8051微控制器DS2250的连接,所提供的基本接口程序用C语言编写。 DS1305引脚配置 概述
    发表于 04-21 11:16 1660次阅读
    <b class='flag-5'>DS</b>1305 RTC与<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    控制DS1804采用8051兼容微控制器-Controlli

    Abstract: The DS1804 is a digital potentiometer with EEPROM memory with an interface designed
    发表于 04-23 15:43 1363次阅读
    <b class='flag-5'>控制</b><b class='flag-5'>DS1804</b>采用<b class='flag-5'>8051</b><b class='flag-5'>兼容</b><b class='flag-5'>微控制器</b>-Controlli

    8051微控制器引脚说明与基本电路

    此前已经介绍过8051微控制器的基础知识,包括它的历史、特性、封装和一些实际应用。在本文中,小编将将继续介绍关于8051微控制器引脚图、引脚说明以及其他一些细节内容,包括
    发表于 08-23 15:53 8907次阅读
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>引脚说明与基本电路

    如何使用触摸传感8051微控制器控制LED灯

    在这个项目中,我们将触摸传感8051 微控制器 AT89S52 连接。如果您是 8051 微控制器的新手,那么您可以从LED 闪烁开始
    的头像 发表于 09-07 15:13 3305次阅读
    如何使用触摸传感<b class='flag-5'>器</b>和<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b><b class='flag-5'>控制</b>LED灯

    DS1302与8051微控制器接口

    本应用介绍如何使用3线接口将DS1302 RTC连接至8051微控制器。该示例包括用 C 语言编写的原理图和示例软件。
    的头像 发表于 01-09 17:01 932次阅读
    <b class='flag-5'>DS</b>1302与<b class='flag-5'>8051</b>型<b class='flag-5'>微控制器</b>接口

    DS1307与兼容8051微控制器接口

    DS1307串行实时时钟集成了2线串行接口,可使用兼容8051微控制器进行控制。本例中的DS1
    的头像 发表于 03-01 13:52 1621次阅读
    <b class='flag-5'>DS</b>1307与<b class='flag-5'>兼容</b><b class='flag-5'>8051</b>的<b class='flag-5'>微控制器</b>接口

    DS1620与DS5000/8051微控制器接口

    本应用笔记向用户介绍DS5000(兼容8051微控制器DS1620数字温度传感的接口软件。
    的头像 发表于 03-01 15:29 788次阅读
    <b class='flag-5'>DS</b>1620与<b class='flag-5'>DS</b>5000/<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>接口