《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業界動態 > 新型微控制器ADμC812的P1口的應用

新型微控制器ADμC812的P1口的應用

2009-02-13
作者:李素芬 李 剛

  摘? 要: ADμC812是一種新型的高度集成的12位數據采集系統,它在單個芯片內包含了高性能的自校準多通道ADC、兩個12位的DAC以及可編程的8位MCU(與8051兼容)。與MCS51系列單片機相似,它有P0~P3四個端口,其中P1口可實現多種功能,例如多通道的ADC、通用輸入端口和用于特殊功能的輸入控制等。介紹了ADμC812的P1口的結構原理和應用。

  關鍵詞: 端口? A/D轉換? 定時器? SPI串口

?

1 ADμC812的通用數據端口

  ADμC812是一種新型的高度集成的高精度12位數據采集系統。在其片內,不僅包含了可重新編程的非易失性閃速/電擦除程序存儲器的高性能8位(與8051兼容)MCU,還包含了高性能的自校準多通道(8個輸入通道)ADC,兩個12位DAC。ADμC812微控制器內核與8051指令集兼容,具有9個中斷源(2個優先級)。片內還集成了8K字節的閃速/電擦除程序存儲器、640字節的閃速/電擦除數據存儲器以及256字節RAM。

  ADμC812共有52個管腳,使用4個通用數據端口P0~P3與外部器件進行數據交換。每一個I/O口都有自己不同的驅動執行電路。除端口1之外都是8位雙向端口。端口1的操作是ADμC812特有的,表1說明了P1口可復用的管腳功能。

?

?

  所有端口均包含位鎖存器和輸入緩沖器,I/O雙向端口還包含了輸出驅動器。由于P1口沒有輸出驅動器,所以P1口只能是輸入端口,只能被配置為數字輸入或模擬輸入,不能用于輸出,如圖1所示。ADμC812的P1口通常用于模擬輸入;當不用于模擬輸入時,可將0寫至端口值,這樣就被設置為數字輸入方式。

?

?

2 P1口的各種功能與應用

  P1口的主要功能是ADC的模擬輸入,另外還可用于一些控制輸入、定時器2和計數器2的數字輸入以及SPI從屬選擇輸入等。

2.1 模/數轉換輸入

  ADμC812中的ADC轉換塊包含了8通道、12位、單電源A/D轉換器。此模塊為用戶提供了多通道多路轉換器、跟蹤/保持、片內基準、校準特性。此模塊內的所有部件都能方便地通過3個寄存器SFR接口來設置。

  A/D轉換器由基于電容DAC的常規逐次逼近轉換器組成。轉換器接收的模擬輸入范圍為0至+VREF。片內提供高精度、低漂移并經工廠校準的2.5V基準電壓。內部基準可經外部VREF引腳過驅動。外部基準在2.3V至AVDD的范圍內。

  ADμC812裝有工廠編程的校準系數,它在上電時自動下載到ADC,以確保最佳的ADC性能。ADC核包括內部失調和增益校準寄存器,所提供的軟件校準子程序可允許用戶在需要時重寫工廠編程的校準系數,以便使用戶目標系統中端點誤差的影響為最小。

  來自片內溫度傳感器的電壓輸出正比于絕對溫度,它也可向前端ADC多路轉換器(實際上是第9個ADC通道輸入)傳送。

2.1.1 ADC轉移函數

  ADC的模擬輸入范圍是0V至VREF。在此范圍內,設計的代碼跳變發生在連續的整數LSB值的中間。當VREF=2.5V時,輸出碼是直接的二進制數,1LSB=FS/4096或2.5V/4096=0.61mV。在0至VREF范圍內理想的輸入/輸出轉移特性如圖2所示。

?

?

2.1.2 SFR至ADC塊的接口

  ADμC812中ADC的工作完全由3個SFR控制,它們分別是ADCCON1、ADCCON2和ADCCON3。

2.1.2.1 ADCCON1——ADC控制SFR#1

  ADCCON1寄存器控制轉換和采集時間、硬件轉換模式以及掉電模式。詳述如下:

  

  ADCCON1 SFR位的說明如表2所示。

?

2.1.2.2 ADCCON2——ADC控制SFR#2

  ADCCON2寄存器控制ADC通道選擇和轉換模式。詳述如下:

  

  ADCCON2 SFR位說明如表3所示。

?

?

2.1.2.3 ADCCON3——ADC控制SFR#3

  ADCCON3寄存器中只有一位有效,它給出ADC忙狀態的指示。詳述如下:

  

  ADCCON3 SFR位的說明如表4所示。

?

2.1.3 ADC工作模式

  通過設置ADCCON1和ADCCON2兩個寄存器,可使ADC處于三種不同的工作模式:一種是單步轉換模式,一種是連續轉換模式,還有一種是DMA工作模式。用軟件或通過把轉換信號加至外部引腳23(CONVST)可以啟動單步或連續轉換模式,同時還可設置定時器2的溢出位,用作ADC轉換起始觸發脈沖輸入。

  DMA工作模式與其他兩種工作模式有顯著不同,若配置ADC工作在DMA工作模式,則ADC塊將進行連續轉換并把采樣值捕獲到外部RAM空間,而不需要來自MCU核的任何干預,這種自動捕獲功能可以擴展到16M字節的外部數據存儲器空間。值得注意的是,若工作于DMA工作模式,將要求用戶在中斷服務子程序中用5μs的時間完成中斷服務、讀ADC結果并為進一步的后續處理存儲結果,否則下一次ADC采樣可能會丟失。這一限制條件是由于ADμC812已把片內ADC設計成能運行在每5μs采樣一次的最高速度(即200kHz采樣速率)。因此,在要求其他中斷速率的應用中,不能使用ADC DMA工作模式。

  現以我們研制的家用心電圖機為例,說明ADC的使用方法與功能實現。在該心電圖機中,ADC0用于心電信號的模擬輸入,將2.5V參考電壓接至VREF,由于人體心電信號在0.5mV~4mV,典型值在1mV左右,需經過500倍的放大,落在ADC輸入電壓0~2.5V范圍之內。因此,心電信號經過LM324放大、濾波后輸入ADC0,進行A/D轉換,得到數字量以進行顯示、存儲、發送、打印等功能。在這里,A/D轉換后的12位數字量,最小可分辨的信號是0.6mV。對于最小的心電信號0.5mV,經放大后為0.25V,對于最大的心電信號4mV,經放大后為2V,均在ADC的輸入范圍之內。

  心電圖機使用電池作為電源,當電池電壓不足時需要提醒用戶更新電池。電源電壓為+5V,所以不能直接接至ADC的輸入端。電源電壓要經過分壓電路進行分壓,使分壓的電壓在ADC的輸入范圍之內。ADC1用于電源電壓分壓后的模擬輸入,進而監測電源電壓的變化,當電源電壓低于一定值時蜂鳴器報警,同時液晶顯示提醒用戶更換電池。若電源電壓低于4.5V時報警,則分壓后為1.5V,當ADC1的輸入低于1.5V(0999H)時則啟動報警系統。

  下面是利用ADC0采集心電信號的部分程序,ADC首先要初始化,即送適當的控制字,根據前面介紹的ADC的SFR,選擇適當的SFR值。

  由于ADC0作為心電信號的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時鐘分頻比為2。由于LM324輸出阻抗遠遠小于8kΩ,所以選擇ADC采集時鐘1,得到ADCCON1=50H。選擇通道0,可利用ADCCON2的默認值00H。

  由于ADC1作為電源監測的模擬輸入,選擇ADCCON1可使ADC正常工作,ADC時鐘分頻比為2。由于電源阻抗遠遠小于8kΩ,所以選擇ADC采集時鐘1,得到ADCCON1=50H。選擇通道1,ADCCON2=01H。

  在下面程序中,堆棧設置在60H,利用定時器0中斷后執行采樣程序,選取采樣頻率為200Hz,因而定時器0的定時值為TL0=3CH,TH0=F6H。由于啟動單個轉換周期完成一次A/D轉換需要16×2+1=33個ADμC812主時鐘,程序中一次延時循環為2個主時鐘,因而在采樣程序中利用R0=16作為單個轉換周期,延時36個主時鐘,以完成一次采樣后的A/D轉換。ADCDATAL為A/D轉換低8位,ADCDATAH為A/D轉換高4位;R1、R2用于存放12位A/D轉換結果,設置00H位作為采樣結束標志位。

$MOD812

CSEG

????????????? ORG 00H

????????????? LJMP MAIN

;— — — — — —?

????????????? ORG 000BH?

DT0:MOV TL0,#3CH ???????            ?;定時器送初值?

????????????? ?MOV TH0,#0F6H?

????????????? ?PUSH PSW ???     ??????????? ;現場保護?

????????????? ?PUSH ACC?

????????????? ?SETB SCONV ??? ?????        ;ADC開始單個轉換周期?

????????????? ?MOV R0,#10H???? ?? ?????????????? ;轉換延時?

????????????? ?DJNZ R0,$?

????????????? ?MOV R1,ADCDATAL???????????????? ? ;采樣值低8位送內部RAM:R1?

????????????? ?MOV R2,ADCDATAH?????????????????? ;采樣值高4位送內部RAM:R2?

????????????? ?POP ACC?????????????????????????? ;彈出保護現場信息?

????????????? ?POP PSW?

????????????? ?SETB 00H????????????????????????? ;置標志位00H,代表采樣結束?

????????????? ?RETI????????????????????????????? ;中斷返回?

;— — — — — —?

MAIN:MOV SP,#60H ??????????????????????????????? ;設置堆棧?

INIAL:MOV TL0,#3CH?????????????????????????????? ;第一次定時器0的定時值?

????????????? MOV TH0,#0F6H?

????????????? SETB EA????????????????????????????;開中斷使能?

????????????? SETB ET0?????????????????????????? ;開定時器0中斷允許?

????????????? SETB TR0?????????????????????????? ;開定時器0?

????????????? MOV ADCCON1,#50H?????????????????? ;送ADCCON1?

????????????? ·?

????????????? ·?

????????????? ·?

2.2 按鍵控制?

  當不需要使用ADμC812的ADC的全部8個通道時,剩余的ADC輸入可用作數字輸入端。例如,我們將P1口中的幾位用于按鍵控制的輸入端口,此時要先將0寫至端口值。需要注意的是,ADμC812的P1口用作按鍵時是高電平有效,在沒有按鍵輸入時,P1口應保持低電平,因此在用作按鍵的P1口應加下拉電阻(即P1.3~P1.7在沒有輸入時為低電平),阻值一般為幾千歐。在前面的例子中,按鍵分別連接到P1.3~P1.7,它們通過2kΩ的下拉電阻接至地;插座的第6腳接高電平VCC,用于觸發按鍵。當有鍵按下時,P1.3~P1.7中的相應位接至高電平VCC,這樣就給出了按鍵信息。通過上面的程序就可以進行判斷并執行相應的按鍵功能,并且采用防抖方法來提高可靠性,具體程序如下:

KEY:ANL P1,#07H ??????? ;將所有的端口置0

 ?? MOV A,P1???? ?????? ;讀P1口值到A

??  ANL A,#0F8H????????? ;判斷P1.3~P1.7哪一位為1

???? JZ KEY???????????????;如果沒有按鍵返回繼續判斷?

???? PUSH ACC       ;如果有按鍵保存按鍵信息放入累加器中

KEY 5:?LCALL T100M?????? ?;調100ms延時(防抖)

???????ANL P1,#07H??????? ;再次讀取按鍵信息

?? ??? MOV A,P1

?? ??? ANL A,#0F8H

?? ??? JNZ KEY5?????????? ;不為0說明按鍵結束

?????? POP ACC????????????;彈出按鍵信息

??????????????????????????;下面是判斷按鍵的程序:

TKEY:JB ACC.3,#FUN1????? ;若ACC.3為1,執行FUN1

?   JB ACC.4,#FUN2??????;若ACC.4為1,執行FUN2

?   JB ACC,5,#FUN3?   ;若ACC.5為1,執行FUN3

?   JB ACC,6,#FUN4?   ;若ACC.6為1,執行FUN4

?   LJMP #FUN5??????????;若ACC.7為1,執行FUN5

   RET

2.3 定時器和計數器的數字輸入

  ADμC812具有3個16位的定時器/計數器,即定時器0、定時器1和定時器2。定時器/計數器硬件已包含在片內,用以減輕用軟件實現定時器/計數器功能時,處理期內核固有的負擔。每一個定時器/計數器包含兩個8位寄存器THx和TLx(x=0、1、2)。所有3個定時器/計數器均可配置成定時器或事件計數器。

  在定時器功能中,每個機器周期TLx寄存器增量。因此可以把它看作對機器周期計數。在計數器功能中,TLx寄存器根據其對應的外部輸入引腳T0、T1或T0上的1至0的跳變增量。

  在P1口中,T2是定時器2數字輸入,輸入至定時器/計數器2。當被使能時,對應于T2輸入的1至0的跳變,計數器2增量。T2EX是數字輸入,計數器2 Capture/Reload(捕獲/重載)觸發并用作計數器2 Up/Down(上/下)控制輸入。在ADCCON1.1中,T2C設置定時器2轉換位,可把定時器2的溢出位用作ADC轉換起始觸發脈沖輸入。

  由于ADμC812與8051有兼容的內核,因而ADμC812定時器2的原理與功能可簡單地概括如下:

  ADμC812中的定時器/計數器2是一個具有16位自動重裝載或捕獲能力的定時器/計數器,T2CON是它的專用控制寄存器,如圖3所示。在定時器和計數器工作方式下,都可以通過T2CON中的控制位CP/來選擇捕獲能力或重載能力。TH2和TL2內容的捕獲或自動重載是通過一對捕獲/重載寄存器RCAP2H和RCAP2L實現的。當CP/=0時,選擇自動重裝載功能,即把RCAP2H和RCAP2L的數據自動轉入TH2和TL2;當C/=1時,選擇捕獲功能,數據傳送方向恰與上述方向相反。

  捕獲或重載發生于下面兩種情況:

  (1)定時器2的寄存器TH2和TL2溢出時,若

  CP/RL2=0,則打開重裝載的三態緩沖器,把RCAP2H和RCAP2L的數據自動轉入TH2和TL2中,同時溢出標志位置1,申請中斷。

  (2)當EXEN2=1且T2EX端的信號有負跳變時,CP/是0還是1,將發生捕獲操作或重載操作,同時標志位EXF2置1,申請中斷。例如,利用定時器2測量周期如圖4所示。

???? 通過下面程序的運行,定時器2的TL2、TH2定時值就是周期T的值。

???? MOV TL2,#0

???? MOV TH2,#0

???? JNB P1.0,$

???? SETB TR2

???? JB P1.0,$

???? JNB P1.0,$

???? CLR TR2

2.4 SPI串口選擇輸入

  ADμC812提供了三種串行I/O端口:UART接口、I2C兼容的串行接口和串行外設接口(SPI)。其中,SPI接口是工業標準的同步串行接口,是一種全雙工、三線通訊的接口,它允許MCU與各種外圍設備以串行方式(8位數據同時同步地被發送和接收)進行通信。主時鐘可以編程為不同的狀態,既可編程為四種不同主波特率中的任一種,又可對時鐘的極性和相位進行編程。SPI也可用于那些需要比微控制器上的并行I/O端口更多輸入端或輸出端的場合,因而提供了一種只需使用最少的微控制器引腳的擴展I/O功能的最簡單辦法。

  SPI系統通過使用4條線與多種標準外圍器件直接接口:串行時鐘線SCLOCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS(其中SS在P1口中)。

  由于ADμC812中的SPI串口有主模式和從模式兩種工作模式,因此系統可配置為主(Master)操作或從(Slave)操作。在用戶系統中,ADμC812既可作為主MCU,也可作為從MCU。在主模式下,伴隨每一位數據的發送/接收發送一次時鐘,此時ADμC812作為主機控制數據向從外圍器件傳送。而在從模式下,每一位數據都是在接收到時鐘信號之后才發送/接收,SPI總線可在軟件的控制下構成各種簡單或復雜的系統。例如:1個主MCU和幾個從MCU;幾個從MCU相互連接構成多主機系統(分布式系統);1個主MCU和1個或幾個從I/O設備。在大多數應用場合中,使用1個MCU作為主機,控制數據向1個或多個從外圍器件傳送。從器件只能在主機發命令下才能接收或向主機傳送數據。其數據的傳輸格式是高位(MSB)在前,低位(LSB)在后。

  SS作為從單片機的SPI輸入端,是ADμC812特有的功能,通過SS將主單片機中的數據傳送到從單片機,從而實現主單片機對從單片機的信息傳送。

  ADμC812的P1口兼容了MCS51系列單片機的功能,而且又有著自己獨特的多種其它可實現的功能。這樣,在一片單片機上利用P1口可以實現盡可能多的功能。

?

參考文獻

1 Analog Devices Inc.MicroConverterTM,Multichannel 12-Bit ADC with Embedded FLASH MCU ADμC812.Ver 2.0

September,1999

2 ADμC812 User's Manual.Analog Devices Inc. 2000

3 孫涵芳,徐愛卿.單片機原理及應用.北京:北京航空航天大學出版社,1988.2

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品日本一区二区 | 麻豆精品在线播放| 欧美一区二区三区四区在线观看 | 国产精品99久久久久久人| 亚洲国产精品成人精品| 午夜精品久久久| 亚洲男人影院| 亚洲欧美另类中文字幕| 亚洲一区www| 亚洲综合国产激情另类一区| 一区二区三区黄色| 国产精品99久久99久久久二8| 日韩视频在线永久播放| 亚洲精品日韩久久| 亚洲毛片网站| 日韩天堂av| 99精品国产高清一区二区| 夜夜嗨网站十八久久| 一本色道久久综合精品竹菊| 夜夜躁日日躁狠狠久久88av| 99国产麻豆精品| 亚洲天堂成人在线视频| 亚洲一区二区三区高清不卡| 亚洲在线播放| 欧美一级在线亚洲天堂| 久久精品国亚洲| 亚洲人成在线观看一区二区| 日韩午夜激情av| 亚洲在线网站| 久久久国产亚洲精品| 另类天堂视频在线观看| 欧美成人精品三级在线观看| 欧美欧美天天天天操| 国产精品久久久久久超碰| 国产欧美精品| 伊人久久婷婷色综合98网| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美巨乳在线观看| 欧美日韩专区| 国产精品入口日韩视频大尺度| 国产区亚洲区欧美区| 国语自产精品视频在线看抢先版结局 | 欧美亚洲日本网站| 91久久在线| 亚洲视频中文| 欧美在线一二三| 米奇777超碰欧美日韩亚洲| 欧美精品一区二区在线播放| 欧美午夜在线| 国模叶桐国产精品一区| 亚洲激情一区| 亚洲欧美国产毛片在线| 亚洲高清中文字幕| 亚洲视频一区| 久久久人人人| 欧美日韩精品免费观看视频| 国产精品永久免费在线| 亚洲国产一区在线观看| 亚洲一级片在线看| 亚洲欧洲精品天堂一级| 亚洲欧美日韩在线高清直播| 久久一区二区三区四区| 欧美日韩另类在线| 国产一区二区三区四区在线观看| 最新国产成人在线观看| 欧美一级视频| 亚洲图片欧美午夜| 久久亚洲一区二区三区四区| 欧美日韩一二三区| 狠狠色丁香婷婷综合久久片| 日韩亚洲精品视频| 亚洲第一搞黄网站| 午夜精品久久久久久久白皮肤 | 欧美手机在线| 激情另类综合| 亚洲欧美激情一区| 一区二区三区av| 麻豆国产va免费精品高清在线| 国产精品久久久久久av福利软件 | 一区二区高清视频在线观看| 久久国产主播| 亚洲在线成人精品| 欧美成人亚洲| 国产自产女人91一区在线观看| 一区二区三区欧美在线| 亚洲区免费影片| 久久久亚洲高清| 国产精品美女久久久浪潮软件| 91久久精品国产91久久| 久久精品亚洲一区二区三区浴池| 亚洲欧美日韩一区二区三区在线| 欧美了一区在线观看| 怡红院精品视频| 欧美一区二区精美| 亚洲免费在线看| 欧美日韩视频一区二区三区| 亚洲丰满在线| 久久精品毛片| 久久久久国产一区二区三区| 国产精品激情av在线播放| 91久久综合| 亚洲精品一区二| 免费91麻豆精品国产自产在线观看| 国产丝袜一区二区| 午夜精品成人在线视频| 亚洲小视频在线| 欧美日韩成人一区二区| 亚洲国产精品热久久| 欧美诱惑福利视频| 久久成人免费视频| 国产精品一区免费观看| 亚洲视频电影图片偷拍一区| 一本久久综合| 欧美日韩成人在线观看| 亚洲免费大片| 一本色道久久精品| 欧美交受高潮1| 亚洲黄色尤物视频| 夜夜精品视频一区二区| 欧美精品v日韩精品v韩国精品v | 欧美久久影院| 亚洲精品在线观| 在线亚洲精品| 欧美日韩精品在线播放| 亚洲精品久久久一区二区三区| 亚洲精品自在久久| 欧美日韩一区二区三| 在线亚洲自拍| 欧美一级视频精品观看| 国产欧美另类| 久久精品日产第一区二区| 久久夜色精品国产| 亚洲国产日韩欧美在线图片| 99国产精品视频免费观看| 欧美了一区在线观看| 夜夜嗨av一区二区三区网站四季av| 亚洲一区二区在线观看视频| 国产精品日韩一区| 欧美一级淫片aaaaaaa视频| 久久影视精品| 最近看过的日韩成人| 国产精品99久久久久久白浆小说| 国产精品播放| 欧美一区二区在线免费观看| 久久久欧美一区二区| 亚洲国产成人av| 中文亚洲欧美| 国产农村妇女精品一二区| 久久成人精品无人区| 欧美高清视频一区二区三区在线观看 | 久久精品国产免费看久久精品| 麻豆九一精品爱看视频在线观看免费 | 一区二区久久| 欧美一区二区三区视频在线| 国产一区深夜福利| 亚洲美洲欧洲综合国产一区| 欧美性猛交一区二区三区精品| 亚洲欧美www| 另类天堂视频在线观看| 亚洲人午夜精品| 性久久久久久久久久久久| 韩国v欧美v日本v亚洲v| 亚洲精品久久久久久下一站| 欧美日韩伦理在线免费| 亚洲欧美日韩国产中文| 欧美+日本+国产+在线a∨观看| 99在线热播精品免费99热| 欧美专区福利在线| 亚洲福利在线观看| 亚洲淫性视频| 激情久久久久久久| 亚洲亚洲精品三区日韩精品在线视频| 国产日产欧美a一级在线| 亚洲精品久久久久久下一站 | 亚洲精品视频一区| 欧美在线观看视频在线| 亚洲福利视频专区| 先锋亚洲精品| 在线看片一区| 欧美亚洲免费在线| 亚洲国产小视频在线观看| 午夜一区二区三区在线观看 | 亚洲人精品午夜在线观看| 国产精品ⅴa在线观看h| 亚洲承认在线| 国产精品欧美久久| 亚洲精品乱码| 国产一区二区三区黄| 一区二区三区四区在线| 国语自产在线不卡| 亚洲欧美视频在线观看| 亚洲夫妻自拍| 欧美一站二站| 夜夜嗨av一区二区三区免费区| 久久人人爽人人| 亚洲一区二区动漫| 欧美激情中文不卡| 亚洲国产精品一区二区www| 国产精品网站在线播放| 日韩视频在线观看|