版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 需求分析1.1實驗設(shè)計題目基于ARM9的數(shù)據(jù)采集應(yīng)用程序設(shè)計。1.2 設(shè)計目的鞏固、實踐本課程所學(xué)理論知識,由于這門課程是理論與實踐相結(jié)合且實踐性很強(qiáng)的課程,該課程的學(xué)習(xí)目標(biāo)是培養(yǎng)學(xué)生嵌入式開發(fā)的基本能力,通過實驗設(shè)計培養(yǎng)學(xué)生查閱、合理運用參考資料的能力。1.3 設(shè)計任務(wù)及要求1.3.1 設(shè)計任務(wù)通過S3C2410X(ARM9)的ADC采集實驗箱電位器的值,旋轉(zhuǎn)電位器時可在屏幕上看到當(dāng)前采集值的變化。實驗箱有三個電位器,學(xué)生可自選一個或多個??稍龉δ埽?1)中斷功能:按下中斷按鍵觸發(fā)中斷,中斷時三個LED燈閃爍一次,且屏幕上打印正在中斷的提示。(2)報警功能:設(shè)定一個臨界值(如500)
2、,當(dāng)采集的值超過此臨界值時,燈閃爍報警,三個電位器可與三個燈一一對應(yīng)。、1.3.2 報告要求(1)實現(xiàn)的功能(2)軟硬件平臺(3)硬件原理分析及原理圖(4)硬件驅(qū)動的實現(xiàn)步驟及分析(5)代碼設(shè)計:所有需要編寫的代碼(如adc.c、adc.h、main.c、Makefile等)、代碼的注釋。(6)運行及調(diào)試的步驟(7)心得體會1.4 實驗平臺硬件平臺:博創(chuàng)經(jīng)典UP-NETARM2410實驗箱(S3C2410處理器)。軟件平臺:eclipse+keil+PUTTY(串口調(diào)試助手)。第2章 實驗分析2.1硬件原理在ADC這章中相應(yīng)的硬件原理圖截圖如下:圖1 硬件原理圖2.2設(shè)計原理由硬件原理圖可知A
3、D和DA轉(zhuǎn)化與AIN0,AIN1,AIN2三個引腳有關(guān),在gpio一章中查找可知這三個引腳均不是多功能引腳。在AD和DA轉(zhuǎn)化時也不需要用到時鐘信號。A/D轉(zhuǎn)換器是模擬信號和CPU之間聯(lián)系的接口,它將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號,以供計算機(jī)和數(shù)字系統(tǒng)進(jìn)行分析、處理、存儲、控制和顯示。在編寫驅(qū)動是可以通過查找數(shù)據(jù)手冊。2.3選擇通道通過底板AD-DA-CAN圖可知三個ADC電位器對應(yīng)AINO2,所以選擇通道2。ADCCON5:3=010;ADCCON&=(0x7<<3);ADCCON|=0x1<<4;2.4時鐘配置與分頻ADC控制寄存器(ADCCON)地址為0x
4、58000000。 圖2 ADC控制寄存器圖時鐘配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 << 15;時鐘分頻:圖3 時鐘分頻圖A / D轉(zhuǎn)換器當(dāng)預(yù)定標(biāo)器值N,預(yù)定數(shù)據(jù)值是(N + 1),初始狀態(tài)是0XFF ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x1<<14;ADCCON|=0xFF<<6;2.5選擇模式(如圖2-3)圖4 選擇模式圖模式選擇:選擇正常模式 ADCCON2=0;ADCCON&=(0x1<<2);2.6設(shè)置啟動設(shè)置啟動AD轉(zhuǎn)換的方式:讀啟動ADCCON&a
5、mp;=(0x1<<1);啟動AD轉(zhuǎn)換ADCCON|=0X1;2.7實現(xiàn)功能判斷采樣轉(zhuǎn)換完成以及讀取while(!(ADCCON&(1<<15);data=ADCDAT0&0xFFF;2.8列出寄存器列表如下圖ADC控制寄存器:圖5 ADC控制寄存器圖ADC觸摸屏控制寄存器(ADCTSC)如下:圖6 ADC觸摸屏控制寄存器圖ADC啟動延時寄存器(ADCDLY):圖7 DC啟動延時寄存器圖ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT0) 如下:圖8 ADC轉(zhuǎn)換數(shù)據(jù)寄存器ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT1) 如下:圖9 ADC轉(zhuǎn)換數(shù)據(jù)寄存器2.9相關(guān)寄存器定義圖10
6、 相關(guān)寄存器定義ADC觸摸屏控制寄存器(ADCTSC)地址為0x58000004ADC啟動延時寄存器(ADCDLY) 地址為0x58000008ADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT0) 地址為0x5800000CADC轉(zhuǎn)換數(shù)據(jù)寄存器(ADCDAT1) 地址為0x58000010時鐘寄存器(CLKCON)地址為0x4C00000C2.10查數(shù)據(jù)手冊根據(jù)底板確定與AIN0有關(guān)在gpio中查找AIN0查找結(jié)果如下圖:圖11 在gpio中查找AIN0查找結(jié)果圖第三章 實驗步驟以及相關(guān)程序設(shè)計3.1 eclipse工程運行步驟3.1.1啟動串口調(diào)試首先連接串口線,一端連實驗箱的RS232-0,另一端連電腦
7、主機(jī)的串口。雙擊桌面的,出現(xiàn)下圖界面:圖12 雙擊后的界面圖選中Serial,如下圖所示:圖13選中Serial后的界面圖將“9600”改為“115200”,如下圖所示:圖14將“9600”改為“115200”后的界面圖點擊左邊樹形列表中的“Serial”:圖15 點擊左邊樹形列表中的“Serial”后的界面圖將右邊最后一項改為“None”:圖16將右邊最后一項改為“None”的界面圖點擊“Open”按鈕,出現(xiàn)如下串口調(diào)試界面:圖17 出現(xiàn)如下串口調(diào)試界面的界面圖撥動實驗箱電源開關(guān),若串口調(diào)試界面中有如下顯示,表示串口通了,配置好了:圖18撥動實驗箱電源開關(guān)的界面圖按電腦鍵盤的任意鍵,光標(biāo)停在
8、vivi處,等待eclipse程序運行。3.1.2啟動H-JTAG先確定實驗箱電源打開,并口線連接好,然后單擊“開始->所有程序->H-JTAG->H-JTAG”,可以自動檢測到CPU類型,如下:圖19 自動檢測到CPU類型的界面圖3.1.3運行Eclipse工程以及編寫相關(guān)程序創(chuàng)建Eclipse工程,雙擊桌面的eclipse。圖20 雙擊后的界面圖選擇工作空間(存放源代碼及工程文件的地方),點擊OK按鈕,打開如下界面:圖21選擇工作空間的界面圖進(jìn)入主界面后,單擊File ->New-> C Project菜單項,Eclipse將打開一個標(biāo)準(zhǔn)對話框,輸入proje
9、ct_s3c2410 (希望新建工程的名字)單擊Finish即可創(chuàng)建一個新的工程,建議對每個新建工程使用獨立的文件夾。創(chuàng)建Keil工程,點擊如下菜單:圖22進(jìn)入如下界面:圖23進(jìn)入主界面后的界面圖點擊Next按鈕,如下圖圖24點擊Next按鈕的界面圖選擇S3C2410A設(shè)備,點擊Finish按鈕,這時會打開keil軟件,關(guān)閉keil工程。添加文件到工程。拷貝老師發(fā)的工程文件夾“project_s3c2410空”中的所有內(nèi)容到D:eclipse_projects_cygproject_s3c2410工程目錄下,在Eclipse軟件下,按F5刷新工程目錄,再按照上課講的新建文件夾和文件,添加程序,
10、按ctrl+s保存,按ctrl+b編譯工程。調(diào)試工程,點擊下圖菜單:圖25添加程序的界面圖右鍵單擊,下面紅顏色部分:圖26右鍵單擊的界面圖出現(xiàn)如下菜單:圖27 出現(xiàn)的界面圖點擊New菜單,出現(xiàn)如下界面:圖28點擊New菜單后的界面圖點擊Browse.,出現(xiàn)下面界面:圖29點擊Browse.后的界面圖選中l(wèi)ed,點擊OK按鈕,出現(xiàn)如下界面:圖30選中l(wèi)ed點擊OK按鈕的界面圖點擊Browse.,出現(xiàn)下面界面:圖31點擊Browse.后的界面圖選中l(wèi)ed.uvproj,然后點擊OK按鈕,出現(xiàn)如下界面:圖32選中l(wèi)ed.uvproj的界面圖點擊Target Options按鈕,出現(xiàn)如下界面:圖33
11、點擊Target Options按鈕的界面圖選擇Output標(biāo)簽,界面如下:圖34選擇Output標(biāo)簽的界面圖點擊Select Folder for Objects按鈕,出現(xiàn)如下界面:圖35 點擊Select Folder for Objects的界面圖點擊向上按鈕,如下圖:圖36點擊向上按鈕的界面圖點擊OK按鈕,出現(xiàn)如下界面:圖37點擊OK按鈕的界面圖點擊Debug標(biāo)簽,出現(xiàn)如下界面:圖38點擊Debug標(biāo)簽的界面圖選擇H-JTAG ARM,然后點擊OK按鈕,出現(xiàn)如下界面:圖39選擇H-JTAG ARM的界面圖點擊Debug按鈕,開始調(diào)試程序,如下圖:圖40點擊Debug按鈕的界面圖出現(xiàn)下圖
12、的對話框時,點“Yes”。圖41 出現(xiàn)的界面圖調(diào)試成功時出現(xiàn)下圖的界面:圖42 調(diào)試成功時的界面圖點擊綠色三角“運行”按鈕,看實驗箱上的運行效果。點擊紅色方塊“停止”按鈕,停止運行。3. 2打開軟件新建一個c project工程,將第三次試驗(I/O口,串口,中斷)的文件復(fù)制到該工程,并刪除創(chuàng)建的工程,刷新界面,獲取之前的實驗?zāi)夸洝?.3相關(guān)寄存器定義 工程->include文件夾->adc文件夾->adc.h,在adc.h中添加:#define ADCCON (*(volatile unsigned int *)0x58000000)/adc控制寄存器#define ADC
13、TSC (*(volatile unsigned int *)0x58000004)/adc觸摸屏控制寄存器#define ADCDLY (*(volatile unsigned int *)0x58000008)/adc啟動或間延時寄存器#define ADCDAT0 (*(volatile unsigned int *)0x5800000C)/adc轉(zhuǎn)化數(shù)據(jù)寄存器0#define ADCDAT1 (*(volatile unsigned int *)0x58000010)/adc轉(zhuǎn)化數(shù)據(jù)寄存器1#define CLKCON (*(volatile unsigned int *)0x4C00
14、000C)int adc_read(void);/讀取模擬型號void adc_init(void); /A/D轉(zhuǎn)化初始化3.3.1實現(xiàn)驅(qū)動在工程中新建drivers文件夾,在drivers中新建adc文件夾,在adc中新建adc.c文件,在adc.c中添加如下代碼:#include "adc/adc.h"void adc_init(void)/時鐘配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 << 15;/時鐘分頻ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x1<<14;ADCCON|=0
15、xFF<<6;/通道選擇,選擇通道2,ADCCON5:3=010;ADCCON&=(0x7<<3);ADCCON|=0x1<<4;/模式選擇:選擇正常模式 ADCCON2=0;ADCCON&=(0x1<<2);/設(shè)置啟動AD轉(zhuǎn)換的方式:讀啟動ADCCON&=(0x1<<1);/啟動AD轉(zhuǎn)換ADCCON|=0X1;int adc_read(void) int data;/啟動AD轉(zhuǎn)換ADCCON|=0X1;/判斷采樣轉(zhuǎn)換完成while(!(ADCCON&(1<<15);data=ADCDAT0
16、&0xFFF;/啟動AD轉(zhuǎn)換ADCCON|=0X1;return data;3.3.2編寫main.c common文件夾-> main.c,在main.c中添加:#include "adc/adc.h"#include "uart/uart.h"#include "key/key.h"#include "gpio/led.h"int main(void) uart_init(); led_init(); key_init(); adc_init(); while(1) /讀寫采樣值 int ch,i
17、=0,j=0; ch=adc_read(); printf("%dn",ch); return 0;void do_irq(void) /中斷采樣值部分int src = INTOFFSET;int i;printf("中斷操作中:do irq n");/打印中斷switch (src) case 4:key_isr();led_off();for(i=0;i<1000000;i+);led_on();for(i=0;i<1000000;i+);break;INTPND |= 1 << src;3.3.3修改兩個Makefile
18、復(fù)制工程中common文件夾中的Makefile文件到drivers->key中, 在drivers->adc下的Makefile中找到:“COBJS:=”改為:COBJS:= adc.o /即將adc.c編譯成adc.o 找到“LIB=” 改為:LIB= libadc.a /將adc.o生成庫文件libadc.a 找到工程中的Makefile文件,在其中添加:LIBS += drivers/adc/libadc.a /將libadc.a 鏈接到工程中3.3.4保存文件并編譯3.4創(chuàng)建Keil工程打開eclipse中run->debug configurations,右擊Vision project創(chuàng)建New Browse選中adc,點擊Target Options,打開out
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境經(jīng)濟(jì)學(xué)試題庫(含參考答案)
- 護(hù)理教育導(dǎo)論模擬練習(xí)題含答案
- 保安跨省派遣合同范例
- 2025年喀什貨運上崗證考試題
- 個人占地協(xié)議合同范例
- 公路汽車租賃合同范例
- 活動方式合同范例
- 2025年杭州貨運從業(yè)資格證考試模擬題庫
- 天府新區(qū)航空旅游職業(yè)學(xué)院《審計學(xué)2(注會)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年泰安駕駛資格證模擬考試
- 中醫(yī)科進(jìn)修總結(jié)匯報
- 初中英語比較級和最高級專項練習(xí)題含答案
- 激光技術(shù)在能源、環(huán)保、農(nóng)業(yè)等領(lǐng)域的應(yīng)用
- 【高分復(fù)習(xí)筆記】周小普《廣播電視概論》筆記和課后習(xí)題詳解
- 中國玉石及玉文化鑒賞智慧樹知到期末考試答案2024年
- MOOC 物理與藝術(shù)-南京航空航天大學(xué) 中國大學(xué)慕課答案
- 《旅游財務(wù)管理》課件-1認(rèn)識旅游企業(yè)
- (正式版)JBT 5300-2024 工業(yè)用閥門材料 選用指南
- 工藝工程師的成長計劃書
- 家政運營方案
- 會展英語教學(xué)大綱
評論
0/150
提交評論