ADμC812評估板的總體設計論文_第1頁
ADμC812評估板的總體設計論文_第2頁
ADμC812評估板的總體設計論文_第3頁
ADμC812評估板的總體設計論文_第4頁
ADμC812評估板的總體設計論文_第5頁
已閱讀5頁,還剩30頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、aduc812評估板的開發 第一章adc812評估板的總體設計一、前言aduc812 是美國analog devices 公司投入市場的第一種微轉換器產品, 他集成了一個完全可編程的、自校準、高精度的模擬數據采集系統。他小得可以放置在一個傳感器、轉發器或電纜連接器之內。他的成本極低, 因此可以取代建立在單片機基礎上的高成本、大體積的產品。由于其高精度和高速度, 他適用于智能傳感、瞬時獲取、數據采集和各種通信系統。此外,與分立式的ad 轉換和微控制器相比, 他的效率更高。因為后者要求cpu 用更多的精力控制數據轉換, 而他獲取數據只需簡單地從寄存器中讀取。這樣就減輕了程序設計的負擔, 極大地提高

2、了開發效率。這種嶄新的微轉換器和它先進的混合信號處理的ic 工藝, 顯著地提高了數據采集系統的性能并大幅度地減少了開發時間和成本。其高性能和高精度轉換技術, 能更靈活地對芯片編程, 能更方便地處理大量的數據采集問題, 其低廉的價格更富有競爭力。在我們開發的評估板中, 以aduc812 為cpu 完成數據采集、a/d轉換、串口程序下載、按鍵與液晶顯示等功能。與以往的80c51單片機及其他類型單片機不同,aduc812具有在線調試和下載功能。通過設計一個接口電路來實現pc機與aduc812的串行接口電路進行通信,利用從網絡上免費下載的支持aduc812的開發工具包quickstart開發系統就可實

3、現這一功能。 二、本設計題目思路采用ad 公司的aduc812 作為控制單元, 該芯片帶有8 路模擬量輸入, 2 路模擬量輸出, 12 位高速ad 轉換, 內置有看門狗和16 位定時器電路; 另外,我們外部擴展了32k 程序空間和64k 數據空間, 采用點陣式液晶顯示各種漢字提示信息, 并配有操作鍵盤和狀態與告警指示燈, 系統的通信接口采用標準的rs232 接口。如果需要現場總線或其它接口可選配。具體設計框圖如圖1-1 所示。圖1-1 設計框圖aduc812 最多能外接16mb 的外部數據存儲器和64kb 的外部程序存儲器。外部程序存儲器用一片e2prom27256 實現。對于外部數據存儲器,

4、 除選用了一片32k常規ram 62256 之外, 還選用了一片帶時鐘的掉電自保護ram ds1644 , 它除了能提供年、月、日、星期、時、分、秒等實時時鐘信息外, 還可在系統掉電時保存各種數據參數。標準232 接口采用max232 實現控制器內部與通信線路之間的電平轉換與隔離。液晶lcd 顯示模塊包括點陣液晶顯示控制器t6963c 及液晶顯示屏mgls 240128t , 可顯示數字、字符、漢字及圖形。 第二章 adc812評估板的硬件設計一、adc812單片機介紹 (一)、概述aduc812 是一個完整的12 位數據采集系統, 其功能方框圖如圖2-1所示。它將高性能、自校準、多通道的模/

5、 數轉換器(adc) 、雙數/ 模轉換器(dac) 和8 位可編程微控制器(與8051 指令系統兼容) 集成在一個芯片上。該芯片還帶有加密功能的8k 字節快擦除程序存儲器、640 字節快擦除用戶存儲器及256 字節ram 。片內微控制器具有支持看門狗定時器、電源監控和adc 的dma功能。24 條可編程輸入/ 輸出線、8 條單輸入線、i2c 兼容口、spi 和標準的異步串行(uart) 輸入/ 輸出口可滿足多處理器通訊和擴展輸入/ 輸出的需要。控制轉換器的靜態cpu 標準、等待和掉電模式等特性, 可用于低功耗的應用場合, 該芯片采用52 腳扁平四方形塑封(dqfp) 。aduc812 區別于5

6、1 系列單片機的一個顯著特征就是能加載程序代碼給片內在線可編程閃速/電擦除程序存儲器。這種在線代碼加載利用uart 串行口實現。串行加載允許用戶對在線連接的目標系統重新編程, 因而不必使用其他的外部編程器。我們利用quickstart 開發系統工具, 就可以通過串口從上位機直接把程序代碼寫入aduc812 的程序存儲器中, 實現在系統編程, 加快開發進程。 圖2-1 aduc812的功能方框圖(二)、aduc812 的功能特點模擬輸入/ 輸出8 通道,真12 位模數轉換器(adc)自校驗200khz 高速采樣片內dma 控制器可用于自動采集雙12 位電壓輸出型數/ 模轉換器(dac)片內帶有溫

7、度傳感器存儲器8k 字節片內程序快擦除存儲器640 字節片內數據快擦除存儲器256 字節片內數據ram64k 字節外部程序可尋址空間16m 字節外部數據可尋址空間以8051 為基礎的內核與8051 兼容的指令系統12mhz 額定操作3 個16 位定時/ 計數器24 條可編程輸入/ 輸出線8 條可編程輸入線9 個中斷源,2 個優先級電源可用3v 和5v 電壓工作標準,等待和掉電三種工作模式外圍結構通用異步串行(uart) 輸入/ 輸出口雙線(與i2c 兼容) 和spi 串行接口看門狗定時器和電源監控功能。(三)、管腳說明aduc812采用s52封裝,如圖2-2所示。它的大部分管腳和8051相應管

8、腳功能相同,幾個主要管腳功能如下:p1口:和8051的p1口功能不同,它只能作為模擬或數字信號的輸入口,而不能作為輸出口,缺省狀態為8路模擬信號輸入端,要使它們中的某位變為數字信號輸入腳,應向p1口對應的特殊功能寄存器的相應位寫入“0“信號,如果該特殊功能寄存器的相應位為“1”,則該位對應的管腳為模擬信號輸入腳;dac0、dac1:為兩路da轉換器的模擬信號輸出腳;ss、sclk、mosi、miso:為串行設備接口(spi)。ss為spi接口的從屬設備選擇,在多機通信中使用,sclk為spi接口時鐘,mosi以及miso為輸入輸出數據線;d0、d1:和spi接口復用的數字輸出腳,通過dcon特

9、殊功能寄存器控制從d0或d1腳輸出數字信號; t2:定時器2數字信號輸入腳;t2ex:數字輸入腳,讀取定時器2的計數器或重裝該計數器的觸發腳,負跳變時有效。其它腳的功能和8051相應腳的功能相同圖2-2 aduc812引腳封裝圖二、a/d轉換的實現與控制ad轉換器的種類很多,不同的應用場合對其要求不同,有的要求高轉換速率,有的要求有高精度,還有的用于便攜式儀表中,需要低功耗等等。用于數據采集板的ad轉換器,一般是和計算機或微處理器結合在一起使用。隨著單片機在各種智能儀器儀表中的廣泛應用,出現了一些將ad轉換器和單片機內核集成在一塊芯片上的數據采集芯片,aduc812就是這樣一種芯片。(一)ad

10、c電路adc 模塊包含了一個快速、多路、12 位單電源的a/ d 轉換器。該模塊除具有模數轉換功能外,還具有多路傳輸、采樣/ 保持、片內基準電壓、自校驗特性。可通過讀寫相關的特殊功能寄存器進行管理。(二)adc轉移函數 adc的模擬輸入范圍是0v至vref。在此范圍內,設計的代碼跳變發生在連續的整數lsb值的中間(即lsb,lsb,lsb,fs-lsb)。當vref2.5v時,輸出碼是直接的二進制數,1lsbfs/4096或2.5v/40960.61mv。在0至vref范圍內理想的輸入/輸出轉移特性如圖2-3所示。 圖2-3 輸入/輸出轉移特性(三)內部基準電源aduc812 中集成的a/ d

11、 轉換器包含了8 通道12位單電源adc , 由基于電容dac 的常規逐次逼近轉換器組成。轉換器接收的模擬輸入為0vref引腳電壓。adc 的2.5v 基準電源既可由片內提供, 也可由外部基準經vref引腳提供。由于片內基準高精度、低漂移(40 ×10 - 6 )、并經過校準, 因此本系統采用內部2.5 v 電壓基準。若使用內部基準,則在v ref和cref引腳與agnd之間都應當連接0.1uf電容以便去耦。這些去耦電容應放在緊靠v ref和cref引腳處。圖2-4示出了把片內基準用到微轉換器之外時的應用電路。在實際應用中應當特別注意,內部vref 將保持掉電直到adc或dac外圍設

12、備模塊之一被它們各自的使能位上電為止。三、評估板的存儲器設計(一)程序存儲器程序存儲器分為片內程序存儲器和片外程序存儲器,片內含有8k字節的flash可編程程序存儲器,可滿足大部分數據采集系統的設計要求,該段程序存儲器可以用兩種方式寫入,一種是通過標準的uart串行接口進行串行下載寫入,當psen管腳通過外部電阻接地時,在上電后自動進入串行下載模式,通過串行口自動從外部開發系統中下載程序;第二種方式和e2prom的編程方式相同,通過編程器進行并行寫入。(二)數據存儲器aduc812的用戶數據存儲器包含三部分,片內640字節的flash數據存儲器、256字節的ram以及片外可擴展到16m字節的數

13、據存儲器,其中640字節的數據存儲器被分成160頁,每頁4字節,通過6個特殊功能寄存器來進行存取,即通過econ、eadrl以及edata14來存取,eadrl寄存器指定要進行數據存取的頁地址,econ控制寄存器可控制edata14寄存器和eadrl指定的頁內4個存儲器之間進行數據交換,而econ還可控制flash數據存儲器的擦除、校驗等操作,它的控制模式如表1所示。外部數據存儲器的尋址范圍為000000h0ffffffh,共有16m字節地址空間,低16位地址線的連接和8051單片機系統中的外部數據存儲器的地址連接方式相同,高8位的連接方式是復用p2口,利用ale地址鎖存信號在鎖存p0口的低8

14、位地址信號的同時鎖存高8位地址信號,來實現16m字節地址空間的尋址。它的數據指針和8051單片機不同,是由3個8位寄存器組成,即dpp(頁字節)、dph(高位字節)、dpl(低位字節)。(三)評估板的存儲器擴展如其他與8051兼容的單片機一樣,aduc812的程序存儲器與數據存儲器具有分開的地址空間。它具有64kb的程序存儲空間和16mb的數據存儲空間。本評估板擴展了32kb的外部程序空間和64kb的外部數據空間。在64kb的數據空間中,分出128b(ff80hffffh)給擴展端口使用。 評估板的32kb外部程序存儲空間由一片27256實現。通過把ea引腳接到高電平或低電平,可以選擇開始執行

15、程序的程序空間,即選擇內部程序存儲器或外部程序存儲器。當ea被拉至高電平時,程序從內部的8kb flash存儲器中地址為00h的地方開始執行;當ea被拉至低電平時,程序從外部27256中00h的地方開始執行。無論哪種情況,高于1fffh(8kb)的地址都映射在27256中。利用aduc812片內的這8kb flash,可以把程序分成小于8kb的模塊下載到片內分別運行調試,這時ea接至高電平;所有模塊調試成功后,再將整個程序寫入到27256中,并將ea接至低電平,使aduc812從27256中運行程序。 評估板的數據存儲器有64kb,分別由一片非易失性sram ds1644(0000h7fffh

16、)和一片常規ram62256(8000hff7fh)實現,測控器并帶有相應的地址數據鎖存器和譯碼器,由74ls573等器件實現。 四、串行程序下載(一)max232芯片介紹max 232是異步串行通訊中應用最廣泛的標準總線,它包括了按位串行傳輸的電氣和機械方面的規定。使用于數據終端設備和數據通訊設備之間的接口。rs-232標準是廣泛使用的串行通信標準,但使用的電平與ttl和mos電平完全不同,邏輯“0”至少為+3v,邏輯“1”至少為-3v,而單片機系統則使用ttl電平或mos電平。因此,需要使用接口電路來實現ttl電平或mos電平與rs-232電平之間的轉換。目前已有現成的接口芯片可供選用,價

17、格低一些的如mc地488(將ttl電平轉換為rs-232c標準電平)和mc1489(將rs-232標準電平轉換為ttl電平),但mc1488需要±12v的供電電壓。另外,也有許多使用單一的+5v供電芯片可供選擇,如max2003,但此類芯片價格不菲,且需要若干外圍元件。在對體積和成本有較嚴格的要求時,進一步簡化接口電路很有必要如圖2-5所示:圖2-5 芯片的圖形 (二)adc812 的系統調試、編程技術 目前,由于adc812 只提供表貼封裝形式,因而在用仿真器進行程序調試時將會帶來一些問題。為方便調試,adc812片內除集成了各具特色的硬件模塊外,還因化了方便實用的監控調試軟件,使

18、其只需少量的外圍器件即可實現聯機調試,從而大大方便了用戶的使用,縮短了產品的研制周期。啟用調試方式的電路連接如圖2-6所示。在上電復位的瞬間,使ea 引腳接高電平,psen 引腳接一下拉電阻,即可使adc812 進入監控調試支援方式。在此方式下,通過基于pc 的quick start 開發工具包,即可下載用戶程序。通過運行于microsoft windows 系統下的adc.exe 調試軟件,可實時調試用戶程序。該調試軟件支持單步、斷點和連續運行等工作方式,可方便地觀察mcu 的運行結果,包括內部ram、sfr、程序flasheeprom 和數據flash eeprom 等單元的內容。從而提高

19、了工作效率,縮短了產品的開發周期。圖2-6 中max232 為rs232 電平轉換器,用于將ttl 電平轉換成rs232 電平,以便直接連至pc 的串行口,進行聯機調試或下載程序。quick start 還提供了工作于dos 環境下的串行下載軟件download.exe。運行該軟件可直接將用戶程序編程到adc812芯片中的程序flash 存儲器中,免除了需用編程器和封裝適配器的麻煩,真正實現了在系統可編程。quick start 開發工具軟件包可從 下載得到。圖2-6 adc812串口程序下載電路圖五、復位電路aduc812需要外接por(power-on reset,上電復位)電路。上電復位

20、電路在電源電壓低于2.5v時,要使reset引腳保持高電平;而且,在電源電壓高于2.5v時,reset引腳保持低電平至少10ms。在評估板中采用專門的por芯片max813設計的por電路如圖2-7所示。 圖2-7 復位電路圖max813是cmos監控電路芯片,能夠監控電源電壓、電源故障和微處理器的工作狀態。復位信號reset用于啟動或重新啟動cpu,在上電期間只要電源電壓vcc大于1.0v,就能保證輸出高電平電壓。在vcc上升期間reset保持高電平直到電源電壓升至復位門限(4.65v)以上。在超過此門限后,內部定時器大約再維持200ms后釋放reset,使其返回低電平。無論何時,只要電源電

21、壓降低到復位門限以下(即電源跌落),reset引腳就會變高,如果在已經開始的復位脈沖期間出現電源跌落,復位脈沖至少再維持140ms。在掉電期間,一旦電源電壓vcc降到復位門限以下,只要vcc不比1.0v還低,就能使reset維持高電平。 max813片內還具有周期為1.6s的硬件看門狗定時器,用于監控cpu的活動。如果在1.6s內看門狗輸入端wdi沒有收到來自cpu的觸發信號,并且wdi處于非高阻狀態,則看門狗輸出端wdo輸出變低,產生復位脈沖。一旦電源電壓vcc降至復位門限以下,wdo端也將變低并保持低電平;只要vcc升至門限以上,wdo就會立刻變高,不存在延時。評估板采用硬件看門狗不但可以

22、減少程序中的喂狗次數,而且防止了由于瞬間掉電而引起的系統不能正常復位,從而無法正常工作的情況。 低電平有效的手動復位輸入端mr可被片內上拉電流源拉到高電平,并可以被按鈕開關拉成低電平。不需要采用外部去抖動電路,理由是最小為140ms的復位時間足以消除機械開關的抖動。簡單地將mr端連接到wdo端,就可以使看門狗定時器超時產生復位脈沖。 六、按鍵與液晶人機交互組件包括9個觸摸鍵、5只狀態與告警指示燈led以及液晶lcd顯示模塊。鍵盤共有9個鍵,其中的(上)、(下)、+、確認、換屏、取消和校驗8個鍵,通過573鎖存輸入。而“復位”鍵則用外部中斷0處理。led為高亮度發光二極管,有紅色、綠色和橙色三種

23、,通過驅動加以點亮,分別指示電源、工作、通信、故障和報警狀態。液晶lcd顯示模塊包括點陣液晶顯示控制器t6963c及液晶顯示屏mgls240128t。點陣液晶顯示控制器t6963c適用于較小規模的液晶顯示器件,顯示窗口尺寸及字體等模式采用硬件設置方式,可以控制240×128點陣單屏結構或240×256點陣雙屏結構的液晶顯示器件,顯示字體可以為5×88×8點陣四種字體之一。液晶顯示屏mgls240128t是240×128黑白帶背光、寬溫型圖形式點陣液晶顯示屏,可顯示數字、字符、漢字及圖形。 七、評估板設計圖本節主要列出了評估板的原理圖和印刷電路板

24、pcb圖,如圖所示。第三章 adc812評估板的軟件設計一、程序設計語言與軟件開發環境 (一)程序設計語言的選用評估板中的處理器是與51系列單片機兼容的aduc812,可以采用面向mcs-51的程序設計語言,包括asm51匯編語言和c51高級語言,這兩種語言各有特點。匯編語言更接近機器語言,常用來編制與系統硬件相關的程序,如訪問i/o端口、中斷處理程序、實時控制程序、實時通信程序等;而數學運算程序則適合用c51高級語言編寫,因為用高級語言編寫運算程序可提高編程效率和應用程序的可靠性。 考慮到匯編語言的以下特點,在評估板的基本功能軟件開發中,全部程序均采用asm51匯編語言編寫: 匯編語言是最基

25、本的程序設計語言。迄今為止,匯編語言仍然是計算機系統軟件(例如匯編程序、pc機的bios等)設計的基本語言; 能充分利用機器的硬件功能與結構特點。匯編語言與機器語言密切相關,因此能透徹地反映計算機硬件的功能與特點。程序員可充分利用機器硬件系統的許多特性(如寄存器、標志位以及一些特殊指令等)。這樣能充分發揮程序設計的技巧; 用匯編語言編寫的程序比起用高級語言編寫程序具有更高的系統性能。匯編語言程序具有執行速度快和節省存儲空間的特點,它可以精確地描述算法,把計算過程和控制過程刻畫得更具體; 實時性能好。用匯編語言編制的程序可以對各種接口芯片及i/o端口直接進行控制,實時性能好。對于一些應用領域(例

26、如工業監控系統等)匯編語言是不可缺少的,一般高級語言不適合這種應用,因為一般高級語言不能充分地利用計算機硬件所提供的諸如中斷等方面的功能。 (二)系統軟件開發環境與以往的80c51單片機不同,aduc812具有在線調試和下載功能,它由支持aduc812的開發工具包quickstart開發系統來提供。也就是說,在用戶系統保留aduc812的情況下,通過開發系統與aduc812的串行接口通信,直接對用戶系統進行調試,并在調試完成后將調試好的程序下載到aduc812中。quickstart開發系統提供四項功能:編譯、下載、調試和模擬,分別由metalink 8051編譯器、在線串行下載器window

27、s調試器和windows模擬器來實現。metalink編譯器可在windows操作系統下直接使用,編譯匯編源程序,并生成16進制文件和列表文件。串行下載器是一個軟件程序,它允許通過標準pc機上的串口串行下載匯編程序到片內8kb的閃速程序存儲器中。調試器采用windows系統,允許用戶使用aduc812的uart串行接口在芯片上調試代碼執行。在典型調試對話中,調試器提供對片內所有外圍設備的訪問、單步和設置斷點的代碼執行控制方式。模擬器采用windows系統,能完全模擬aduc812的所有功能,包括adc和dac外圍。模擬器使用簡單,結合了許多標準調試特征,包括多斷點、單步以及代碼執行跟蹤等能力。

28、 二、軟件設計(一)程序流程程序主要由主程序和中斷處理程序兩部分構成。 主程序主要實現系統的初始化,顯示數據和通信的處理。系統的初始化包括寄存器的初始化(控制寄存器、堆棧、中斷寄存器等),通信的初始化(串口的初始化,通信緩沖區的初始化),液晶的初始化,輸出端口的初始化,采集、累計數據的初始化。顯示數據包括數據轉換(主要實現將各類參數、測量數據等轉換成液晶顯示所需的數據類型)和顯示屏的刷新(包括刷新采集數據屏和根據按下的鍵更改顯示屏)。主程序流程圖如下: 圖3-1 主程序流程圖(二)鍵盤管理鍵盤管理軟件包括鍵盤消息接收和鍵盤消息處理兩個部分。 鍵盤消息接收是指當用戶按下某個鍵后,通過對鍵盤端口的

29、分析,接收到按鍵的編碼信息,然后查詢鍵值表獲得相應的鍵值并保存。鍵盤消息接收算法由接收去抖動、接收按鍵編碼、查詢鍵值表、取鍵值并保存等過程組成。 鍵盤消息處理是取出所得到的鍵值,并按照鍵值的定義分別處理。在評估板中,包括“確認”、“取消”、“換屏”、“復位”, “(上)”、“(下)”、“+”、“”、“校驗”九個鍵,除“復位”鍵(其按下后直接復位)不通過鍵盤消息處理程序處理外,其余的八個鍵的按下處理均由鍵盤消息處理程序在主循環程序中完成。 鍵值具體定義如下: ! “換屏”:將液晶屏切換至主菜單; ! “(上)”、“(下)”:移動光標或切換同類型的屏; ! “+”、“”:修改數據,并與“”和“”構

30、成口令輸入鍵; ! “確認”:確認所做的操作,包括確認所選擇的菜單項或數據、確認所輸入的口令、確認被修改的數據等; ! “取消”:可取消輸入的口令值或被修改的數據; ! “校驗”:進入校驗狀態; ! “復位”:軟復位系統。 (三)用戶界面的液晶lcd顯示用戶界面采用文本與圖形合成的顯示方式實現。其中,以圖形方式顯示8×16點陣西文字符和16×16點陣中文字符,以文本方式顯示t6963c中內置于cgrom的字符以作為普通下標字符。 用戶界面按屏分頁顯示。顯示一屏是指顯示一個菜單選項的內容,而一屏可包含若干顯示頁的內容。顯示字符程序模塊主要包括3個子程序模塊:其一,顯示一個西文

31、字符(8×16點陣英文、希臘、標點符號、數學符號等);其二,顯示一個中文字符(16×16點陣漢字);其三,顯示一個小號西文字符,作為下標符號(8×8點陣字符)。 由于用戶界面的顯示字符集(點陣式字模庫或者字庫)需要占用較大的程序存儲器(rom)空間,為了提高設計效率,并節省rom的空間資源,用戶界面的顯示字符集使用專有的一個應用程序生成針對測控器需要的專用字符集。 顯示的具體實現方法: ! 在系統啟動時要初始化液晶,包括:清液晶顯示屏,設置文本/圖形緩沖區的起始地址,設置文本/圖形顯示的顯示寬度,設置顯示模式,光標的形狀及顯示方式等。 ! 字符的顯示:8×

32、;16點陣西文字符和16×16點陣中文字符均以圖形方式顯示。顯示時從字庫中讀出字符的點陣信息,填入圖形緩沖區的相應地址中,再由yj6963顯示到液晶屏幕上。 ! 下標字符的顯示:yj6963帶有一8×8點陣的字符集可作為下標字符使用。顯示時,只需將字符的代碼填入文本緩沖區的相應位置就可在液晶上顯示。 三、a/d轉換程序(一)軟件控制特性可編程性是應用系統發展的必然趨勢。為適應不同信號源的實際需求,adc812 片內adc 模塊內的所有部件都能方便地通過3 個sfr 寄存器來設置。 adccon1控制轉換和采集時間adccon2控制adc 通道選擇和轉換模式adccon3ad

33、c 狀態指示(二)定時adc 編程舉例該例程主要說明如何利用adc 的單次轉換功能實現定時采樣的目的。定時器t0 用于1.25ms 定時,8 個通道完成一次。數據采集需要10ms。為增加抗干擾的能力,軟件中還加入了數字濾波功能。每個通道連續采樣16 次后再進行平均處理,然后將高8 位結果送出,其匯編語言源程序清單如下:*$nomod51$include() ;使用adc812 預定義符timer_ms_const equ(65536-9216/8);當晶振頻率為11.0592mhz 時,10ms 對應9216 個周期adc_tlag equ 20h;ad 轉換標志,=1 時表示采樣的8 路ad

34、 值有效adc_coun equ 30h;用于指示當前正在處理的adc 通道adc_result equ 38h;38h3fh 存入07 通道的adc 結果adc_acc equ 40h;404fh 存入07 通道的累加值org 0000hstart:jmp beginorg start+0bhjmp timer0_interruptorg start+100hbegin;mov sp,#60hmov r0,#20h;清工作單元mov r7,#40hclr airam_init;mov r0,ainc r0djnz r7,iram_initcall timer0_init;初始化t0 為1.2

35、5ms 中斷一次call adc_init;初始化adc 為單次轉換setb eacontrolloop:jnb adc_flag,controlloop ;將ad 轉換的結果取走clr adc_flag;允許開始下一次轉換jmp controlloopadc_init:mov adccon1,#01101100b;上電adcmov adccon2,adc_count;選擇轉換通道rettimer0_interrupt:setb sconv;開始單次adc 轉換mov tl0,#low(timer_ms_const);裝入定時常數mov th0,#high(timer_ms_const)pus

36、h pswmov psw,#00001000b;使用page1mov r2,a;暫存a 累timer0_int_adc:jb adc_flag,timer0_int_adc_end;數據未取走則退出mov a,adccon3;讀adc 狀態jb acc.7,timer0_int_adcmov a,adc_countanl a,#07hrl aadd a,#adc_accimov r0,amov a,adcdatal;將adc 轉換結果加入累加單元add a,r0mov r0,ainc r0mov a,adcdatahanl a,#0fhaddc a,r0mov #r0,a35inc adc_c

37、ountmov a,adc_countanl a,#07hmov adccon2,a;選擇下一通道mov a,adc_countcjne a,#80h,timer0_int_adc_endmov adc_count,#0mov r0,#adc_acc;數字濾波后存入adc 結果mov r1,#adc_resultmov r7,#08timer0_int_save_adc:clr amov #r0,ainc r0xch a,#r0mov r1,ainc r0inc r1djnz,r7,timer0_int_save_adcsetb adc_flagtimer0_int_adc_end:mov a

38、,r2pop pswretitimer0_init;mov th0,#high(timer_ms_const);裝入定時常數mov tl0,#low(timer_ms_const)anl tmod,#11110000borl tmdd,#00000001bsetb et0;允許t0 中斷setb tr0;t0 開始運行retend四、程序下載程序(一)uart串行接口的結構 aduc812的串行接口主要由2個數據緩沖器、1個輸入移位寄存器、1個串行控制寄存器scon和1個波特率發生器t1(即定時器1)等組成,其結構如圖所示。 串行接口數據緩沖器sbuf是可以直接尋址的專用寄存器。在物理上,一個

39、作發送緩沖器,一個作接收緩沖器。兩個緩沖器共用一個口地址99h,由讀、寫信號區分:cpu寫sbuf時為發送緩沖器,讀sbuf時為接收緩沖器。接收緩沖器是雙緩沖的,它是為了避免在接收下一幀數據之前,cpu未能及時響應接收器的中斷,把上幀數據讀走,而產生兩幀數據重疊的問題而設置的雙緩沖結構。對于發送緩沖器,為了保持最大傳輸速率,一般不需要雙緩沖,這是因為發送時cpu是主動的,不會產生寫重疊的問題。定時器t1作串行接口的波特率發生器。 (二)串行通信過程 在進行通信時,當cpu允許接收時,外界數據通過引腳rxd(p3.0)串行輸入,數據的最低位首先進入輸入移位器,一幀接收完畢,再并行送入緩沖器sbu

40、f中,同時將接收中斷標準位ri置位,向cpu發出中斷請求。cpu響應中斷后,用軟件將ri位清除,同時讀走輸入的數據。接著又開始下一幀數據的輸入過程,重復直至所有數據接收。 cpu發送數據時,將數據并行寫入發送緩沖器sbuf中,同時啟動數據由txd(p3.1)腳串行發送。任何時候執行一條mov sbuf , a 指令,都可啟動一次發送。當一幀數據發送完,即發送緩沖器空時,由硬件自動將發送中斷標志位ti置位,向cpu發出中斷請求。cpu響應中斷后,用軟件將ti位清除,同時又將下一幀數據寫入sbuf中,重復上述過程直到所有數據發送完畢。 1.串行接口的工作方式 aduc812串行接口可以通過軟件設置

41、四種不同的工作方式: 方式0 方式0為同步移位寄存器輸出方式,在這種方式下,數據從rxd端串行輸入或輸出,同步信號從txd端輸出,波特率固定不變,為fosc/12(fosc為振蕩器頻率)。該方式以8位數據為一幀,沒有起始位和停止位。 方式1 方式1規定發送或接收10位數據為一幀:一個起始位,8個數據位和一個停止位。方式1特別適合于點對點的異步通信,其波特率可以通過軟件設置。 方式2 方式2以11位數據為一幀,比方式1增加了1個數據位,其余相同。所增加的第9個數據具有特別的用途,可以通過軟件控制它,再加特殊功能寄存器scon的配合,可使aduc812串行接口適用于多機通信。方式2的波特率只能為f

42、osc/64或fsock/32。 方式3 方式3類似于方式2,唯一的區別是方式3的波特率是可變的,而幀格式與方式2一樣,所以方式3也適合于多機通信。 (三)串行接口的編程 在使用串行口進行通信前,首先要對串口進行必要的初始化,設定各種參數,包括設置波特率、奇偶校驗、數據位、停止位參數。操作站與測控站點由于采用撥號方式,通信必然為“點對點”方式。因此,串行接口的工作方式采用方式1。 串口的初始化程序為: mov tmod,#00100001b ;定時器t1工作于模式2作為波特率發生器 mov pcon,#0 mov tl1,#0feh mov th1,#0feh ;采用串口波特率為14400hz

43、 mov scon,#50h ;方式1 由于aduc812串口的發送和接收中斷共用一個中斷向量地址23h,因此在編制串口的中斷服務程序時,是通過ri和ti標志位來判斷是發送中斷還是接收中斷的。中斷服務程序如下: org 0023h ljmp seriint serint : jnb ri, send acall sin sjmp intend send: acall sout intend: reti sout: ;發送中斷的處理 ret sin: ;接收中斷的處理 ret 第四章 adc812應用中的問題adc812作為新一代微控制器,具有強大的功能,比以往的單片機有著更廣闊的應用前景。在實

44、際應用中發現,芯片本身尚存在一些應注意的問題及使用時的特殊要求。一、在線調試注意事項(一)rs232接口電路對于用戶開發系統來說,在線調試和下載功能最重要,也是最常使用的,但二者都需通過pc機上的串行端口與adc812的uart串行端口之間連接的串行端口電纜進行數據通信才能發揮作用。因此,用戶在開發應用系統的同時,應設計一個rs232接口電路來實現pc機與adc812的串口通信。v和v引腳電壓是否足夠高(分別超過8v和-8v)。若電壓較低,則可能adm202芯片已損壞r1in腳是否存在±12v的脈沖信號。若存在,則說明pc機方面通信發送信號正常 r1out腳是否存在5v信號。若存在,

45、則說明adm202接收pc機信號工作正常。 t1in腳是否存在5v信號。若存在,則說明adc812對pc機的通信產生響應;否則是adc812通信存在問題,說明adc812工作不正常。t1out腳是否存在±12v的脈沖信號。若存在,但adc812還無法進入在線調試狀態,則說明db9與pc機之間的串行接口電纜有問題(二)psen引腳用戶系統在具備rs232接口電路之后,還需通過一個與地相連的1k電阻將adc812的psen引腳拉至低電平才能進入在線調試和下載狀態。因此,psen引腳拉低是在線調試和下載功能實現的另一關鍵所在值得強調的是,psen引腳與地之間連上1k電阻并不一定就能保證psen為低電平。若靜電造成psen引腳損傷,則1k電阻不能將psen引腳拉低。經試驗證明,在psen引腳損傷不嚴重時,可通過把psen直接對地短路將其拉至低電平;但若損傷嚴重,則即使直接接地,器件仍然不能工作。因此,在使用adc812時,應特別小心、謹防靜電。如焊接芯片時應將電烙鐵接地,并戴上防靜電手鐲。由于adc812的調試器是在用戶系統復位時檢測psen引腳狀態的,因此,為提高通信成功幾率,可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論