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

在线预览结束,喜欢就下载吧,查找使用更方便

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

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

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

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

实验八:AD采样实验 一、实验目的 熟悉AD模块的基本原理及应用,能熟练的掌握将数据通过SPI发送到键盘板上显示。 二、实验设备 硬件:PC机一台、EasyARM2103开发板一套,键盘显示板1块。 软件:Windows98/XP/2000系统,ADS1.2集成开发环境。 三、实验内容 使用AD功能,采集电压,并将采集到的电压发送到键盘板上进行显示。 四、实验预习要求 仔细阅读教材AD的说明,熟悉SPI工作原理。 五、实验步骤 1.启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程AdSpi_c。 2.建立C源文件AdSpi.c,编写实验程序,然后添加到工程的user组中。 3.选用DebugInExram生成目标,然后编译连接工程。 4.将EasyARM2200开发板上的P0.22用跳线与1.8V电压相连。 5.选择【Project】->【Debug】,启动AXD进行JTAG仿真调试。 6.全速运行程序,查看AD采集到的电压与1.8V电压是否相等。 7.将AD采集到的电压发送到键盘板上显示。 8.改变采集电压,查看采集到的电压是否是参考电压。 六、实验参考程序 PWM输出实验的参考程序见程序清单3.12。 程序清单4.13AD实验 #include"config.h" #include<stdio.h> #defineSLAVE_CS1<<7/*P0.4口作为SPI的片选*/ uint8T0Flag=0; uint8DATA0[8]; constuint8digitable[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*断码0,1,2,3,4,5,6,7,8,9,*/ constuint8selectable[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};/*位码*/ /***************************************************************************** **函数名称:DelayNS **功能描述:延时函数 **入口参数:uiDly值越大,延时时间越长 **出口参数:无 ******************************************************************************/ voidDelayNS(uint32uiDly) { uint32i; for(;uiDly>0;uiDly--){ for(i=0;i<50000;i++); } } /***************************************************************************** **函数名称:Timer0_InitExt() **功能描述:TIMER0初始化 **入口参数:无 **出口参数:无 ******************************************************************************/ voidTimer0_InitExt(void) { T0TC=0; /*定时器设置为0 */ T0PR=0; /*时钟不分频 */ T0MCR=0x03; /*设置T0MR0匹配后复位T0TC,并产生中断标志 */ T0MR0=Fpclk/400; /*5毫秒定时 */ T0TCR=0x01; /*启动定时器*/ } /***************************************************************************** **函数名称:IRQ_Timer0() **功能描述:TIMER0中断服务程序 **入口参数:无 **出口参数:无 ******************************************************************************/ void__irqIRQ_Timer0(void) { T0Flag=1; //T0中断标志置位 T0IR=0x01; //清除中断标志 VICVectAddr=0; } /****************************************************************************** **函数名称:IRQ_Init() **功能描述:设置定时器0中断IRQ **入口参数:无 **出口参数: