0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

星星科技指導(dǎo)員 ? 來源:ADI ? 作者:ADI ? 2023-02-21 10:46 ? 次閱讀

DS1804為數(shù)字電位器,具有EEPROM存儲器,其接口主要設(shè)計為與按鈕(人機(jī)接口)接口。通過仔細(xì)考慮這些按鈕控制的功能,DS1804也可以通過按鈕引腳直接連接到微控制器。本應(yīng)用筆記以8051型處理器為例,描述了如何做到這一點(diǎn)。此外,本文還提供了匯編語言的源代碼,以簡化工程師在此類應(yīng)用中使用DS1804的設(shè)計任務(wù)。涵蓋的主題包括:

如何在不更新EEPROM的情況下更改電位計設(shè)置。

如何通過更改EEPROM來更改電位器設(shè)置。

如何將電流電位計設(shè)置寫入EEPROM存儲器。

介紹

DS1804非易失(NV)微調(diào)電位器非常適合用于任何需要偏置電壓、電流或電阻的系統(tǒng),無論是否手動調(diào)整。其遞增/遞減接口允許使用最少的外部硬件進(jìn)行手動調(diào)整,或使用微型控制器進(jìn)行自主操作。游標(biāo)可以調(diào)整到100個位置之一,任何值都可以存儲在器件的NV寄存器中,以在上電時選擇游標(biāo)值。該器件還提供多種小型封裝選項,包括 8 引腳 DIP、SOIC、μSOP 和倒裝芯片封裝。

本應(yīng)用筆記提供了使用達(dá)拉斯半導(dǎo)體DS1804C87 (520)微控制器控制DS8051的簡單硬件和軟件設(shè)置。

與DS1804通信的微控制器硬件設(shè)置

使用DS1804的主要優(yōu)點(diǎn)之一是硬件和軟件控制界面簡單。電位計和微控制器之間只需要三個連接:片選、上/下選擇和增量,分別位于圖1中微控制器的引腳P6.1、P5.1和P4.1上。原理圖上顯示了用于支持 8051 程序的兩個附加組件。第一個是經(jīng)濟(jì)振蕩器芯片,可為 22 提供 22.8051 MHz 時鐘;連接到 P1.0 的 LED 是第二個。作為程序中的狀態(tài)指示器,LED 間歇性切換以顯示程序仍在執(zhí)行。

pYYBAGP0MG6AOKRAAAAg4xauheQ948.gif?imgver=1

圖1.DS87C520和DS1804連接原理圖

DS1077可以用22.118 MHz晶體代替。DS87C520采用晶體時鐘源操作的說明見達(dá)拉斯半導(dǎo)體的高速微控制器用戶手冊。需要注意的是,DS87C520能夠以高達(dá)33 MHz的時鐘工作;但是,軟件中使用的延遲取決于時鐘頻率。以較高的時鐘速率工作DS87C520可能會導(dǎo)致DS1804的時序故障,而以較低頻率工作應(yīng)該不會產(chǎn)生不良影響。

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

DS1804的操作很簡單,但需要了解一些細(xì)微差別才能可靠工作。首先,設(shè)備在 50ms 的過程中上電。嘗試在該時間段之前向部件發(fā)出信息信號將不會成功。該器件還需要500μs才能將游標(biāo)的值調(diào)整為上電期間存儲在非易失寄存器中的值。

上電后,有兩種方法可以遞增或遞減器件。第一種方法僅更改電位計游標(biāo)位置的值。第二個改變游標(biāo)的值,并將當(dāng)前值寫入非易失性寄存器。

在不寫入非易失寄存器的情況下更改游標(biāo)位置可通過以下方法完成:

將向上/向下選擇輸入調(diào)整為高以遞增,或低以遞減。

通過置位CS信號(低電平有效)使能芯片。

脈沖INC低n-1倍以輸入/減少零件n倍。

再次斷言 INC 低點(diǎn)(INC 的下降沿上部分再次減少/減少)。

通過取消斷言 CS 來禁用芯片。

取消斷言 INC 以完成寫入。

要更改游標(biāo)的值并將最終游標(biāo)位置寫入非易失寄存器,請完成 以下順序:

將向上/向下選擇輸入調(diào)整為高以遞增,或低以遞減。

通過置位CS信號(低電平有效)使能芯片。

將增量信號脈沖低 n 次,以輸入/遞減零件 n 個位置。

通過取消斷言 CS 來禁用芯片。

等待10ms,將當(dāng)前游標(biāo)位置寫入NV寄存器。

另一個簡單而有用的例程將游標(biāo)位置的當(dāng)前值存儲到NV寄存器中。脈沖CS為低電平,而增量保持高電平,將游標(biāo)的電流值存儲到NV寄存器中。取消 CS 后,控制器應(yīng)等待 10ms 時間,以便使用當(dāng)前游標(biāo)位置寫入 NV 寄存器。

8051 DS1804 控制軟件

有數(shù)百萬種不同的例程可用于調(diào)整游標(biāo)位置和寫入DS1804的NV寄存器;但是,最簡單的方法只需要四個例程。這些例程初始化DS1804,遞增芯片一個游標(biāo)位置,遞減芯片一個游標(biāo)位置,并將電流游標(biāo)位置寫入NV寄存器。這些例程在附錄 A 中提供,稱為 Init1804、Increment1804、Decrement1804 和 WriteNVreg。Increment1804和Decrement1804例程可以放在一個環(huán)路中,對DS1804進(jìn)行n次輸入/遞減,一旦達(dá)到所需的游標(biāo)位置,就可以通過調(diào)用WriteNVreg例程將其寫入NV寄存器。如果需要在不編寫主程序中的循環(huán)的情況下對DS1804進(jìn)行n次輸入/遞減,則可以編寫一個簡短的例程,從堆?;蚶奂悠鹘邮課并實現(xiàn)循環(huán)的功能。

當(dāng)每次調(diào)整期間選擇 Up/Down 和 CS 的開銷對于手頭的應(yīng)用程序來說太慢時,就會發(fā)生僅使用四個函數(shù)的垮臺。因此,包括兩個附加功能,用于演示芯片的輸入/遞減(每個方向五個間隔),只需選擇方向和芯片選擇輸入。這些例程稱為遞增 1804x5 和遞減 1804x5。

除了上述例程之外,軟件中還駐留了另外三個例程以生成時序。它們被稱為wait16us,wt和wait3sec。這些功能提供固定的1.6μs延遲、由R5、R6和R7中存儲的值選擇的可變延遲,以及主程序中使用的固定3秒延遲。

主節(jié)目序列

禁用所有中斷。

切換 P1.0 上的 LED 以表示執(zhí)行開始。

初始化DS1804時,將DS1804的三個輸入全部設(shè)置為高電平并等待50ms。

等待 3 秒鐘,切換 LED。3秒延遲允許用萬用表讀取DS1804的上電值,LED指示何時發(fā)生變化。

以1804個間隔突發(fā)遞增DS5,共25個位置。在 3 個間隔的突發(fā)中的每一個之間添加了 5 秒的暫停,以允許萬用表監(jiān)控更改。當(dāng)游標(biāo)發(fā)生變化時,LED 將切換。

等待3秒,切換LED,遞減DS1804 5個間隔。

將 NV 寄存器寫入當(dāng)前值。

等待3秒,切換LED,遞增DS1804 1間隔。

等待3秒,切換LED,遞減DS1804 1間隔。

通過無限循環(huán)完成執(zhí)行。

主程序輸出

假設(shè)您正在使用 V 執(zhí)行程序抄送5V時,22 MHz晶體;萬用表是 在 W 和 Gnd 之間連接;和循環(huán) V抄送從 Gnd 到 5V 啟動程序。的輸出 DS1804如下。

當(dāng)電源接通時,該器件將啟動至NV寄存器中上次存儲的值。如果值 NV寄存器之前已寫入,然后它將顯示該值;否則將顯示偽隨機(jī) 值在發(fā)貨前由工廠存儲在NV登記冊中。游標(biāo)輸出將顯示 萬用表上的電壓,對應(yīng)于NV寄存器中存儲的值3秒。輸出 然后以 0.25V 步長遞增,并保持每個值 3 秒鐘,然后再繼續(xù)下一個值 位置。對于1.25V的總電壓變化,這將發(fā)生五次。然后游標(biāo)電壓將為 降低0.25V,該值將保持3秒。該值將存儲在NV寄存器中,并且 將是部件啟動到下次重新通電時的值。最后,游標(biāo)電壓將為 遞增0.05V,然后遞減0.05V,兩個值均保持3秒。發(fā)光二極管 附加到 P1.0 將在每次更改發(fā)生之前直接每 3 秒切換一次。

如果芯片上電時游標(biāo)值等于或大于3.76V,程序?qū)?嘗試將芯片遞增到5V以上。這不會損壞器件,但輸出將保持在5V,直到 發(fā)出遞減命令。因此,在這種情況下,端電壓將為4.75V。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7459

    瀏覽量

    150860
  • 電源
    +關(guān)注

    關(guān)注

    184

    文章

    17488

    瀏覽量

    249170
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119824
收藏 人收藏

    評論

    相關(guān)推薦

    8051微控制器的基礎(chǔ)知識

    8051微控制器是嵌入式系統(tǒng)、消費(fèi)電子、汽車等各個領(lǐng)域中最流行和最常用的微控制器之一,技術(shù)上稱為Intel MCS-51架構(gòu)。8051微控制器
    發(fā)表于 09-12 17:32 ?3222次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的基礎(chǔ)知識

    DS1318與8051微控制器的接口

    本應(yīng)用筆記中的硬件電路將DS1318的數(shù)據(jù)放入μC的數(shù)據(jù)存儲空間。μC通過讀、寫正確地址的數(shù)據(jù)存儲訪問DS1318寄存。本實例中采用DS
    發(fā)表于 12-18 10:14

    高速安全微控制器DS5250電子資料

    概述:DS5250是Maxim公司生產(chǎn)的一款安全微控制器,它是該系列中的一款高度安全、4時鐘每機(jī)器周期、100%兼容8051指令集的微控制器
    發(fā)表于 04-21 06:26

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

    DS5250是Maxim安全微控制器系列中的一款高度安全、4時鐘每機(jī)器周期、100%兼容8051指令集的微控制器。
    發(fā)表于 05-11 09:37 ?162次下載

    MAX6901 RTC與8051微控制器的接口

    要:該應(yīng)用筆記演示了MAX6901與8051微控制器的連接方式,并提供了基本的接口程序例程。本文采用的微控制器DS2250,軟件用C語言編寫。 MAX6901引腳配置
    發(fā)表于 04-21 11:12 ?739次閱讀
    MAX6901 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1302 RTC與8051微控制器的接口

    摘要:本應(yīng)用筆記說明了DS1302 RTC通過3線接口與8051微控制器的連接方式,設(shè)計實例包括電路原理圖和C語言接口程序。 DS1302引腳配置
    發(fā)表于 04-21 11:14 ?2293次閱讀
    <b class='flag-5'>DS</b>1302 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1388實時時鐘與8051微控制器的接口

    摘要:本應(yīng)用筆記介紹了DS1388與8051微控制器的連接,所提供的軟件用C語言編寫。本文提供了基本接口程序的代碼,所采用的微控制器DS2
    發(fā)表于 04-21 11:15 ?1258次閱讀
    <b class='flag-5'>DS</b>1388實時時鐘與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS3231與8051微控制器的接口

    摘要:本應(yīng)用筆記提供了一個DS3231與8051微控制器接口的硬件電路和軟件例程。 圖1. DS3231引
    發(fā)表于 04-21 11:16 ?2031次閱讀
    <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引腳配置 概述
    發(fā)表于 04-21 11:16 ?1618次閱讀
    <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
    發(fā)表于 04-23 15:43 ?1325次閱讀
    <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微控制器引腳說明與基本電路

    此前已經(jīng)介紹過8051微控制器的基礎(chǔ)知識,包括它的歷史、特性、封裝和一些實際應(yīng)用。在本文中,小編將將繼續(xù)介紹關(guān)于8051微控制器引腳圖、引腳說明以及其他一些細(xì)節(jié)內(nèi)容,包括
    發(fā)表于 08-23 15:53 ?7926次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>引腳說明與基本電路

    如何使用觸摸傳感8051微控制器控制LED燈

    在這個項目中,我們將觸摸傳感8051 微控制器 AT89S52 連接。如果您是 8051 微控制器的新手,那么您可以從LED 閃爍開始
    的頭像 發(fā)表于 09-07 15:13 ?3029次閱讀
    如何使用觸摸傳感<b class='flag-5'>器</b>和<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b><b class='flag-5'>控制</b>LED燈

    DS1302與8051微控制器接口

    本應(yīng)用介紹如何使用3線接口將DS1302 RTC連接至8051微控制器。該示例包括用 C 語言編寫的原理圖和示例軟件。
    的頭像 發(fā)表于 01-09 17:01 ?799次閱讀
    <b class='flag-5'>DS</b>1302與<b class='flag-5'>8051</b>型<b class='flag-5'>微控制器</b>接口

    DS1307與兼容8051微控制器接口

    DS1307串行實時時鐘集成了2線串行接口,可使用兼容8051微控制器進(jìn)行控制。本例中的DS1
    的頭像 發(fā)表于 03-01 13:52 ?1323次閱讀
    <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微控制器接口

    本應(yīng)用筆記向用戶介紹DS5000(兼容8051微控制器DS1620數(shù)字溫度傳感的接口軟件。
    的頭像 發(fā)表于 03-01 15:29 ?638次閱讀
    <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>接口