ARM9报告基于ARM9的数据采集应用程序设计.doc

上传人:laozhun 文档编号:2392407 上传时间:2023-02-17 格式:DOC 页数:24 大小:1.78MB
返回 下载 相关 举报
ARM9报告基于ARM9的数据采集应用程序设计.doc_第1页
第1页 / 共24页
ARM9报告基于ARM9的数据采集应用程序设计.doc_第2页
第2页 / 共24页
ARM9报告基于ARM9的数据采集应用程序设计.doc_第3页
第3页 / 共24页
ARM9报告基于ARM9的数据采集应用程序设计.doc_第4页
第4页 / 共24页
ARM9报告基于ARM9的数据采集应用程序设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《ARM9报告基于ARM9的数据采集应用程序设计.doc》由会员分享,可在线阅读,更多相关《ARM9报告基于ARM9的数据采集应用程序设计.doc(24页珍藏版)》请在三一办公上搜索。

1、第1章 需求分析1.1实验设计题目基于ARM9的数据采集应用程序设计。1.2 设计目的巩固、实践本课程所学理论知识,由于这门课程是理论与实践相结合且实践性很强的课程,该课程的学习目标是培养学生嵌入式开发的基本能力,通过实验设计培养学生查阅、合理运用参考资料的能力。1.3 设计任务及要求1.3.1 设计任务通过S3C2410X(ARM9)的ADC采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。实验箱有三个电位器,学生可自选一个或多个。可增功能:(1)中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。(2)报警功能:设定一个临界值(如500)

2、,当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。、1.3.2 报告要求(1)实现的功能(2)软硬件平台(3)硬件原理分析及原理图(4)硬件驱动的实现步骤及分析(5)代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、Makefile等)、代码的注释。(6)运行及调试的步骤(7)心得体会1.4 实验平台硬件平台:博创经典UP-NETARM2410实验箱(S3C2410处理器)。软件平台:eclipse+keil+PUTTY(串口调试助手)。第2章 实验分析2.1硬件原理在ADC这章中相应的硬件原理图截图如下:图1 硬件原理图2.2设计原理由硬件原理图可知A

3、D和DA转化与AIN0,AIN1,AIN2三个引脚有关,在gpio一章中查找可知这三个引脚均不是多功能引脚。在AD和DA转化时也不需要用到时钟信号。A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。在编写驱动是可以通过查找数据手册。2.3选择通道通过底板AD-DA-CAN图可知三个ADC电位器对应AINO2,所以选择通道2。ADCCON5:3=010;ADCCON&=(0x73);ADCCON|=0x14;2.4时钟配置与分频ADC控制寄存器(ADCCON)地址为0x58000000。 图2 ADC控制寄存

4、器图时钟配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 15;时钟分频:图3 时钟分频图A / D转换器当预定标器值N,预定数据值是(N + 1),初始状态是0XFF ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x114;ADCCON|=0xFF6;2.5选择模式(如图2-3)图4 选择模式图模式选择:选择正常模式 ADCCON2=0;ADCCON&=(0x12);2.6设置启动设置启动AD转换的方式:读启动ADCCON&=(0x11);启动AD转换ADCCON|=0X1;2.7实现功能判断采样转换完成以及读取while(!(ADCCO

5、N&(1所有程序-H-JTAG-H-JTAG”,可以自动检测到CPU类型,如下:图19 自动检测到CPU类型的界面图3.1.3运行Eclipse工程以及编写相关程序创建Eclipse工程,双击桌面的eclipse。图20 双击后的界面图选择工作空间(存放源代码及工程文件的地方),点击OK按钮,打开如下界面:图21选择工作空间的界面图进入主界面后,单击File -New- C Project菜单项,Eclipse将打开一个标准对话框,输入project_s3c2410 (希望新建工程的名字)单击Finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。创建Keil工程,点击如下菜单:

6、图22进入如下界面:图23进入主界面后的界面图点击Next按钮,如下图图24点击Next按钮的界面图选择S3C2410A设备,点击Finish按钮,这时会打开keil软件,关闭keil工程。添加文件到工程。拷贝老师发的工程文件夹“project_s3c2410空”中的所有内容到D:eclipse_projects_cygproject_s3c2410工程目录下,在Eclipse软件下,按F5刷新工程目录,再按照上课讲的新建文件夹和文件,添加程序,按ctrl+s保存,按ctrl+b编译工程。调试工程,点击下图菜单:图25添加程序的界面图右键单击,下面红颜色部分:图26右键单击的界面图出现如下菜单

7、:图27 出现的界面图点击New菜单,出现如下界面:图28点击New菜单后的界面图点击Browse.,出现下面界面:图29点击Browse.后的界面图选中led,点击OK按钮,出现如下界面:图30选中led点击OK按钮的界面图点击Browse.,出现下面界面:图31点击Browse.后的界面图选中led.uvproj,然后点击OK按钮,出现如下界面:图32选中led.uvproj的界面图点击Target Options按钮,出现如下界面:图33 点击Target Options按钮的界面图选择Output标签,界面如下:图34选择Output标签的界面图点击Select Folder for

8、Objects按钮,出现如下界面:图35 点击Select Folder for Objects的界面图点击向上按钮,如下图:图36点击向上按钮的界面图点击OK按钮,出现如下界面:图37点击OK按钮的界面图点击Debug标签,出现如下界面:图38点击Debug标签的界面图选择H-JTAG ARM,然后点击OK按钮,出现如下界面:图39选择H-JTAG ARM的界面图点击Debug按钮,开始调试程序,如下图:图40点击Debug按钮的界面图出现下图的对话框时,点“Yes”。图41 出现的界面图调试成功时出现下图的界面:图42 调试成功时的界面图点击绿色三角“运行”按钮,看实验箱上的运行效果。点击

9、红色方块“停止”按钮,停止运行。3. 2打开软件新建一个c project工程,将第三次试验(I/O口,串口,中断)的文件复制到该工程,并删除创建的工程,刷新界面,获取之前的实验目录。3.3相关寄存器定义 工程-include文件夹-adc文件夹-adc.h,在adc.h中添加:#define ADCCON (*(volatile unsigned int *)0x58000000)/adc控制寄存器#define ADCTSC (*(volatile unsigned int *)0x58000004)/adc触摸屏控制寄存器#define ADCDLY (*(volatile unsign

10、ed int *)0x58000008)/adc启动或间延时寄存器#define ADCDAT0 (*(volatile unsigned int *)0x5800000C)/adc转化数据寄存器0#define ADCDAT1 (*(volatile unsigned int *)0x58000010)/adc转化数据寄存器1#define CLKCON (*(volatile unsigned int *)0x4C00000C)int adc_read(void);/读取模拟型号void adc_init(void); /A/D转化初始化3.3.1实现驱动在工程中新建drivers文件夹,

11、在drivers中新建adc文件夹,在adc中新建adc.c文件,在adc.c中添加如下代码:#include adc/adc.hvoid adc_init(void)/时钟配置,CLKCON15 = 0b1,表示使能 CLKCON |= 0x1 15;/时钟分频ADCCON14=0b1,ADCCON13:6=0xFF;ADCCON|=0x114;ADCCON|=0xFF6;/通道选择,选择通道2,ADCCON5:3=010;ADCCON&=(0x73);ADCCON|=0x14;/模式选择:选择正常模式 ADCCON2=0;ADCCON&=(0x12);/设置启动AD转换的方式:读启动ADC

12、CON&=(0x11);/启动AD转换ADCCON|=0X1;int adc_read(void) int data;/启动AD转换ADCCON|=0X1;/判断采样转换完成while(!(ADCCON&(1 main.c,在main.c中添加:#include adc/adc.h#include uart/uart.h#include key/key.h#include gpio/led.hint main(void) uart_init(); led_init(); key_init(); adc_init(); while(1) /读写采样值 int ch,i=0,j=0; ch=adc

13、_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;i1000000;i+);led_on();for(i=0;i1000000;i+);break;INTPND |= 1 key中, 在drivers-adc下的Makefile中找到:“COBJS:=”改为:COBJS:= adc.o /即将adc.c编译成adc.o 找到

14、“LIB=” 改为:LIB= libadc.a /将adc.o生成库文件libadc.a 找到工程中的Makefile文件,在其中添加:LIBS += drivers/adc/libadc.a /将libadc.a 链接到工程中3.3.4保存文件并编译3.4创建Keil工程打开eclipse中run-debug configurations,右击Vision project创建New Browse选中adc,点击Target Options,打开output中Select Folder for Objects.点击向上按钮后ok.接着点击debug选择H-JTAG ARM,最后点击Debug按

15、钮,开始调试程序。调试完成后运行。3.5运行结果图如下:图43 运行结果图第四章 课题总结和体会在本次实验设计中,我碰到的问题还是蛮多的,当然在解决它们的同时我又学到了很多,使我对ARM9嵌入式系统设计这门学科有了更进一步的认识与熟悉。这次实验是和小伙伴们一起做,其中有两位都是几位学霸级人物,所以有不懂的就会咨询他们。通过这几次的ARM9嵌入式系统设计,我对这学期ARM9嵌入式系统设计的知识有了更进一步的认识,经过这次实验设计的鞭策和逼迫,我们才不得不通过各方面途径去查取相关资料,去自学相关知识,去一个个逐步消解我们学习上的盲点,使我受益匪浅,收获颇多,但从中也发现了自己许多的不足和需要改进的地方。通过本次实验设计,我的实际操作能力和设计能力都得到了一定的提高,但理论与实践之间永远是存在着一定差距的,要把理论知识充分灵活地运用于实践是需要一定的实践经验和牢固的理论基础,希望以后能有更多这样的实践的机会。总结这次实验设计给我们感受最深的至少有四点:1.进行实验设计这样的工作,要有恒心,要能静下新来做,而不能浮躁。2.要遵循实验设计要求本身的规律和善于吸收已有的经验。3.要善于同别人交流与合作,善于获取有用的各种资源。4.要真真实实多查资料,多问,多看。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号