ARM9实验报告(一)

时间:2024.4.27

实验一  ARM串行口实验

一、实验目的

1.掌握ARM的串行口工作原理

2.学习编程实现ARM的UART通讯

3.掌握S3C2410寄存器配置方法。

二、预备知识

1.了解EWARM集成开发环境的基本功能

2.学习串口通讯的基本知识

3.熟悉S3C2410串口有关的寄存器

三、实验设备

1.2410s教学实验箱

2.ARM920T的JTAG仿真器

3.ARM EWARM5.3集成开发环境

4.串口连接线

四、实验内容

1.熟悉打开已有工程的步骤,掌握仿真调试的方法。

2.建立一个新工程,熟练掌握编译器和链接器的设置方法。

3.从串口输入字符串,将0~9数字在超级终端上连续显示,“Enter”键换行。

4.将第三步得到的字符转换成BCD码,限制在0~1023,用于控制直流电机。

五、实验步骤

1.创建新工程

(1)在D盘根目录创建一个newproj的目录,将ARM串口实验的5个文件夹和2个文件拷入,如上图所示,这5个文件夹是:inc(库文件)、init(初始化文件)、src(源文件)、startup(启动文件)和uhal(串口文件),这2个文件是:s3c2410_ram.icf和上从410_ram.mac

(2)运行IAR Embedded Workbench,执行file>new>workspace,工程名newproj1.ewp,保存在d:\newproj下,保存Workspace,和工程名一样,存在同一目录。此时编译,出现错误。

(3)有3个头文件做以下修改:#include “../inc/macro.h”,#include “../inc/drivers.h“,#include ”../uhal/isr.h“  General Option>Library configuration选Full,C/C++ Compiler>Code>Processor mode选ARM,编译通过。

(4)选CPU,选仿真器RDI、“Run to Main”打勾、选mac文件s3c2410_ram.mac,选链接器配置文件s3c2410_ram.icf,配置仿真器的动态链接库H-JTAG.dll,IAR 生成的out文件供RDI等仿真器使用,通过输出转换可生成bin文件,供vivi烧写Flash使用。

2.串口传送字符

将开发板重新启动同时按下键盘中任意键,这时在超级终端将会看到下面的提示,在 vivi>后键入 load flash ucos x 然后回车。然后打开超级终端上方的“传送”菜单并选择发送文件,点击浏览按键,查找并进入到编译生成的映象文件夹下,打开 system.bin.然后在发送文件对话框中的协议栏选择 Xmodem,最后选择发送。将接收串口数据的数组cl[1]改为cl[256],用cl[i]==0x0d 回车字符作为一帧结束的条件。

3.电机转动控制

(1)将“Exp4 电机转动控制实验” inc目录下的MotorCtrl.H 和src目录下的MotorCtrl.C拷到该工程相应目录,将MotorCtrl.C 添加到工程中。

(2)在main函数里包含以下头文件  #include “../inc/MotorCtrl.h”。

(3)在main函数里包含以下头文件  #include “../inc/macro.h” , 

#define  MOTOR_COUNT  12657 

(4)在Main函数里执行init_MotorPort();

(5)直流电机调试的函数是 SetPWM((setspeed -512)*MOTOR_COUNT/1024),setspeed是速度指令,取值范围0~1023。

六、程序流程及代码

1. 主程序流程见图6-1,子程序(发送数据和接收数据)见图6-2。

  图6-1  主程序流程图

          图6-2 发送及接收子程序流程(左发送、右接收)

2.具体程序(main.c)

#define U8 unsigned char

#include <string.h>

#include <stdio.h>

#include "../inc/MotorCtrl.h"

#include "..inc/macro.h"

#define  MOTOR_COUNT  12657 

#define TRUE       1

#define FALSE     0

#define rUTRSTAT0     (*(volatile unsigned *)0x50000010)

#define rUTRSTAT1     (*(volatile unsigned *)0x50004010)

#define WrUTXH0(ch)  (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)

#define WrUTXH1(ch)  (*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)

#define RdURXH0()      (*(volatile unsigned char *)0x50000024)

#define RdURXH1()      (*(volatile unsigned char *)0x50004024)

void Uart_SendByten(int Uartnum, U8 data)

char Uart_Getchn(char* Revdata, int Uartnum, int timeout);

void ARMTargetInit(void);

void hudelay(int time);

int main(void)

    char c1[256];

    char err;

       ARMTargetInit();        //开发板初始化

init_MotorPort();

    while(1)

  { for(i=0;i<256;i++)

        {err=Uart_Getchn(c1,0,0);    //从串口采集数据

           if(err==truth)  //有数据传过来

             {if(cl[i]!=0x0d) //没有回车

                { if((cl[i]>=0x30)&& (cl[i]<=0x39))

Uart_SendByten(0,c1[i]);  //显示采集的数据 

                  cl[i]=cl[i]-0x30;//转换为0~9的数据

                  setspeed=setspeed*10+cl[i]; //设定转速

                }

             else

                { Uart_SendByten(0,0x0a);//换行

                 Uart_SendByten(0,0x0d);//回车

                 break;

                }

            }

         }

     SetPWM((setspeed-512)*MOTOR_COUNT/1024);

 }

/***************************************

发送数据子程序

***************************************/

void Uart_SendByten(int Uartnum, U8 data)//ok eric rong

{  

       if(Uartnum==0)

    {     while(!(rUTRSTAT0 & 0x4)); //Wait until THR is empty.

              hudelay(10);

              WrUTXH0(data);

     }

       else

    {     while(!(rUTRSTAT1 & 0x4));  //Wait until THR is empty.

              hudelay(10);

              WrUTXH1(data);

    }    

}           

/***************************************

接收数据子程序

***************************************/

   char Uart_Getchn(char* Revdata, int Uartnum, int timeout)

{if(Uartnum==0)

{while(!(rUTRSTAT0 & 0x1)); //Receive data read

              *Revdata=RdURXH0();

              return TRUE;

          }

          Else

{     while(!(rUTRSTAT1 & 0x1));//Receive data read

              *Revdata=RdURXH1();

              return TRUE;

          }

}    

七、实验思考

1.232串行通讯的数据格式是什么?

2.串行通讯最少需要几根线,分别如何连接?

答:至少需要三根线,分别为RXD、TXD、信号地。A的RXD接B的TXD,B的RXD接到A的TXD上,两者信号地相连,如下图所示。

3.ARM的串行口有几个,相应的寄存器是什么?

答:串行口有3个,相应的寄存器分别包括:线控制寄存器ULCONx、控制寄存器UCONx、状态寄存器UTRSTATx、发送寄存器UTXH、接收寄存器URXH、波特率因子寄存器UBRDIV、FIFO控制寄存器UFCONn、FIFO状态寄存器UFSTAT、错误状态寄存器UERSTAT。

4.用中断方式实现串口驱动

答:操作UART控制寄存器UCONx第8、9位来使能发送和接收中断。然后编写中断服务函数,来完成程序中读取A/D转换器的功能,函数体主要包括:中断标志位清零、读取A/D转换器、重新使能中断。

八、心得体会

通过本次的学习,我了解到ARM9嵌入式系统的体系架构和EWARM集成开发环境,重点学习了UART通讯,通过串口终端,可以清晰地看到程序执行的结果以及正确与否。刚开始写程序的时候不知道电机如何控制,究其原因是没有理解程序中SetPWM()函数的定义,到MotorCtrl.c文件中查看方知。


第二篇:ARM9实验报告


嵌入式系统设计实验报告

实验一 Linux命令的使用及演示程序的运行

一、实验目的:

掌握超级终端的使用,熟悉常用Linux命令的使用,并在Linux环境下运行演示程序。

二、实验内容:

1、 掌握超级终端的使用,自行建立超级终端并与ARM9开发系统连接;

2、 熟悉常用Linux命令,理解Linux文件系统;

3、 在Linux下运行系统提供的演示程序,观察程序运行情况。

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、串口线。

软件:PC 机操作系统Win2000 或WinXP、超级终端通讯程序。

四、实验过程记录:

五、回答下列问题:

1、 列举常用Linux命令并解释功能及用法

2、 超级终端的作用是什么?如何建立一个超级终端

3、 请列举运行演示程序需要哪些步骤。

嵌入式系统设计实验报告

实验二 ADS1.2开发环境及绘图API函数实验

一、实验目的:

ADS1.2开发环境的使用。并进行绘图API函数的实验。

二、实验内容:

1、掌握ADS1.2开发环境和调试环境AXD的使用。

2、打开系统移植试验工程文件,并调试观察运行结果。

3、进一步掌握ADS1.2开发环境的使用及调试方法。

4、打开绘图API函数工程文件,调试并观察运行的结果;

5、修改该工程文件调试并观察运行的结果。

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、用于ARM9开发平台的JTAG 仿真器、串口线。 软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序。

四、实验过程记录:

五、回答下列问题:

1、UarmJtag.exe的作用是什么。在ARM9开发平台上使用时应该如何设置。

2、AXD是什么工具?在和UarmJtag配合使用时应该如何设置。

3、简述ADS1.2工程文件的结构,及建立一个工程的大致步骤。

4、什么是API函数,其作用如何?

5、AXD的使用大致有哪些步骤?如何设置及取消断点。

6、简单描述绘图API函数的使用。

嵌入式系统设计实验报告

综合应用

一、实验目的:

掌握ADS1.2开发环境的使用。并初步掌握开发简单项目的能力

二、实验内容:

1、以数字和图形两种方式显示实时时钟;

2、同时支持触摸屏和键盘修改时间;

3、可显示万年历及可对年月修改

4、支持闹钟

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、用于ARM9开发平台的JTAG 仿真器、串口线。 软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序。

四、实验过程记录:

五、回答下列问题:

1、请分别描述设计思路及程序框图,并另外形成项目报告。

嵌入式系统设计实验报告

综合应用

一、实验目的:

掌握ADS1.2开发环境的使用。并初步掌握开发简单项目的能力

二、实验内容:

开发基于UCOS-II及ARM9的“贪食蛇”游戏。

1、“蛇”可以屏幕上以现有坐标及方向前进;

2、通过键盘可以控制“蛇”的行进方向;

3、“蛇”触及屏幕边框或设定的范围边界则游戏结束;

4、“蛇”可以吃掉在设定范围内随机产生的点,并得分 5、可以计算“蛇”吃掉所有点的时间

6、有多个关口

7、可以累计成绩

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、用于ARM9开发平台的JTAG 仿真器、串口线。 软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序。

四、实验过程记录:

五、回答下列问题:

1、请分别描述设计思路及程序框图,并另外形成项目报告。

嵌入式系统设计实验报告

综合应用

一、实验目的:

掌握ADS1.2开发环境的使用。并初步掌握开发简单项目的能力

二、实验内容:

开发基于UCOS-II及ARM9的“贪食蛇”游戏(按照以下关键点评分)

1、“蛇”可以屏幕上以现有坐标及方向前进;

2、通过键盘可以控制“蛇”的行进方向;

3、“蛇”触及屏幕边框或设定的范围边界则游戏结束;

4、“蛇”可以吃掉在设定范围内随机产生的点,吃完以后身体加长并得分 5、可以计算“蛇”吃掉所有点的时间

6、有多个关口

7、可以累计成绩

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、用于ARM9开发平台的JTAG 仿真器、串口线。 软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序。

四、实验过程记录:

五、回答下列问题:

1、请分别描述设计思路及程序框图,并另外形成项目报告。

嵌入式系统设计实验报告

综合应用

一、实验目的:

掌握ADS1.2开发环境的使用。并初步掌握开发简单项目的能力

二、实验内容:

开发基于UCOS-II及ARM9的“弹球”游戏(按照以下关键点评分)

1、球板位于屏幕下方,可左右移动;

2、通过键盘可以控制球拍的移动;

3、“球”触及屏幕边框或设定的范围边界会按照物理规律反弹;

4、“球”碰到屏幕下边框则游戏结束。 5、坚持一分钟则过一关,新的一关“球”将加快运动。

6、有多个关口

7、可以累计成绩

三、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发平台、PC 机、用于ARM9开发平台的JTAG 仿真器、串口线。 软件:PC 机操作系统Win2000 或WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序。

四、实验过程记录:

五、回答下列问题:

1、请分别描述设计思路及程序框图,并另外形成项目报告。

更多相关推荐:
初一生物实验报告

初一生物实验报告实验探索淀粉酶对淀粉和蔗糖的水解作用一、实验目的1.初步学会探索酶催化特定化学反应的方法。2.探索淀粉酶是否只能催化特定的化学反应。二、实验原理淀粉和蔗糖都是非还原糖,它们在酶的催化作用下都能水…

初中生物实验报告

实验一练习使用显微镜目的要求1练习使用显微镜学会规范的操作方法2能够独立操作显微镜3能够将标本移动到视野中央并看到清晰的图象材料用具显微镜e字玻片写有上字的玻片动植物永久玻片擦镜纸纱布方法和步骤一取镜和安放1右...

中学初一生物下学期实验报告

祁东县灵官镇中学初一生物实验报告单祁东县灵官镇中学初一生物实验报告单祁东县灵官镇中学初一生物实验报告单祁东县灵官镇中学初一生物实验报告单祁东县灵官镇中学初一生物实验报告单祁东县灵官镇中学初一生物实验报告单祁东县...

初一生物实验报告单

初一生物实验报告单一姓名班级1学生探究鼠妇生活环境的实验报告实验内容鼠妇的生活环境与什么有关实验时间这要你自己写吧实验目的让学生通过试验知道鼠妇的生活环境与什么有关实验器材鼠妇若干培养皿两个潮湿泥土若干实验步骤...

初中生物实验报告单学生用

实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实验报告单指导教师实验教师实...

七年级上学期生物实验报告

实验一练习使用显微镜目的要求1练习使用显微镜学会规范的操作方法2能够独立操作显微镜3能够将标本移动到视野中央并看到清晰的图象材料用具显微镜写有上字的玻片动植物玻片标本擦镜纸纱布方法步骤1右手握住镜臂左手托住镜座...

初中生物实验报告单

七年级生物实验报告

中学初一生物下学期实验报告

生物实验报告单班姓名年月日合作者生物实验报告单班姓名年月日合作者生物实验报告单班姓名年月日合作者生物实验报告单班姓名年月日合作者生物实验报告单班姓名年月日合作者

[初一生物]_实验报告:探究光对鼠妇分布的影响

[初一生物]_实验报告:探究光对鼠妇分布的影响,内容附图。

七年级上学期生物实验收报告汇总

实验一练习使用显微镜目的要求1练习使用显微镜学会规范的操作方法2能够独立操作显微镜3能够将标本移动到视野中央并看到清晰的图象材料用具显微镜写有上字的玻片动植物玻片标本擦镜纸纱布方法步骤1右手握住镜臂左手托住镜座...

初中生物实验报告

初中生物实验教案20xx20xx学年度环潭镇中心学校实验员叶园园二O一四年九月1实验一练习使用显微镜目的要求1练习使用显微镜学会规范的操作方法2能够独立操作显微镜3能够将标本移动到视野中央并看到清晰的图象材料用...

初中生物光合作用实验报告

初中生物光合作用实验报告一提出问题绿叶在光下制造的有机物是不是淀粉二作出假设绿叶在光下制造的有机物是淀粉三小组实验设计突出创新点采用水浴锅进行隔水加热避免了课本实验装置的不安全因素四实验目的1检验绿叶在光下制造...

初一生物实验报告(39篇)