预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

设计报告 课程名称嵌入式技术I 题目基于ARM9的数据采集应用程序设计 专业电子信息工程 班级 学号 姓名 成绩 2014年06月24日 (注:为设计报告完成的日期) 目录 实验设计要求……………………………………………….1 实验分析………………………………………………………2 实验步骤以及相关程序设计…………………………………4 课题总结和体会………………………………………………8 PAGE\*MERGEFORMAT9 第一章实验设计要求 考核题目:基于ARM9的数据采集应用程序设计 通过S3C2410X(ARM9)的ADC采集实验箱电位器的值,旋转电位器时可在屏幕上看到当前采集值的变化。实验箱有三个电位器,学生可自选一个或多个。 可增功能: (1)中断功能:按下中断按键触发中断,中断时三个LED灯闪烁一次,且屏幕上打印正在中断的提示。 (2)报警功能:设定一个临界值(如500),当采集的值超过此临界值时,灯闪烁报警,三个电位器可与三个灯一一对应。 考核要求: 硬件平台为博创经典UP-NETARM2410实验箱(S3C2410处理器)。 软件平台为eclipse+keil+PUTTY(串口调试助手)。 报告内容包括: 实现的功能 软硬件平台 硬件原理分析及原理图 硬件驱动的实现步骤及分析 代码设计:所有需要编写的代码(如adc.c、adc.h、main.c、Makefile等)、代码的注释。 运行及调试的步骤 总结体会:具体学到了什么知识、在学习过程中的经验、体会。 第二章实验分析 A/D转换器是模拟信号和CPU之间联系的接口,它将连续变化的模拟信号转换为数字信号,以供计算机和数字系统进行分析、处理、存储、控制和显示。 在编写驱动是可以通过查找数据手册: 2.1.选择通道(通过底板AD-DA-CAN图可知三个ADC电位器对应AINO2,所以选择通道2) ADCCON[5:3]=010; ADCCON&=~(0x7<<3); ADCCON|=0x1<<4; 2.2.时钟配置与分频(如图2-1和图2-2) ADC控制寄存器(ADCCON)地址为0x58000000 图2-1 时钟配置,CLKCON[15]=0b1,表示使能 CLKCON|=0x1<<15; 时钟分频 图2-2 A/D转换器当预定标器值N,预定数据值是(N+1),初始状态是0xff ADCCON[14]=0b1,ADCCON[13:6]=0xFF; ADCCON|=0x1<<14; ADCCON|=0xFF<<6; 2.3.选择模式(如图2-3) 图2-3 模式选择:选择正常模式ADCCON[2]=0; ADCCON&=~(0x1<<2); 2.4.设置启动 设置启动AD转换的方式:读启动 ADCCON&=~(0x1<<1); 启动AD转换 ADCCON|=0X1; 2.5.实现功能 判断采样转换完成以及读取 while(!(ADCCON&(1<<15))); data=ADCDAT0&0xFFF; 2.6.相关寄存器定义(如图2-4) 图2-4 ADC触摸屏控制寄存器(ADCTSC)地址为0x58000004 ADC启动延时寄存器(ADCDLY)地址为0x58000008 ADC转换数据寄存器(ADCDAT0)地址为0x5800000C ADC转换数据寄存器(ADCDAT1)地址为0x58000010 时钟寄存器(CLKCON)地址为0x4C00000C 第三章实验步骤以及相关程序设计 3.1、启动串口调试 首先连接串口线,一端连实验箱的RS232-0,另一端连电脑主机的串口。打开putty,exe。将Serial中Serialline的9600修改为115200,并将将右边最后一项改为“None”,点击“Open”按钮,出现串口调试界面,拨动实验箱电源开关,若串口调试界面中显示vivi>,表示串口通了,配置好了. 3.2、启动H-JTAG 实验箱电源打开,并口线连接好,然后打开H-JTAG,确认连接。 3.3、运行Eclipse工程以及编写相关程序 3.3.1.打开软件,新建一个cproject工程,将第三次试验(I/O口,串口,中断)的文件复制到该工程,并删除创建的工程,刷新界面,获取之前的实验目录。 3.3.2.相关寄存器定义 工程->include文件夹->adc文件夹->adc.h,在adc.h中添加: #defineADCCON(*((volatileunsignedint*)0X58000000))//ADC控制寄存器 #defineADCTSC(*((volatileunsignedint*)0X