教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

北航ARM9实验报告(2)

来源:网络收集 时间:2026-08-05
导读: 北京航空航天大学研究生实验报告 hudelay(10); WrUTXH0(data); } else { while(!(rUTRSTAT1 //Wait until THR is empty. hudelay(10); WrUTXH1(data); } } char Uart_Getchn(char* Revdata, int Uartnum, int timeo

北京航空航天大学研究生实验报告

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. 串行通讯最少需要几根线,分别如何连接?

答:至少需要三根线,分别是发送线,接收线,和接地线。连接方法如图所示,

- 5 -

北京航空航天大学研究生实验报告

3. ARM的串行口有几个,相应的寄存器是什么? 答:S3C2410自带三个异步串行口控制器。控制寄存器UCONn,FIFO控制寄存器UFCONn,线路控制寄存器ULCONn,控制寄存器UMCONn,状态寄存器UTRSTAT,错误状态寄存器UERSTAT,FIFO状态寄存器UFSTAT,发送寄存器UTXH和接收寄存器URXH,波特率因子寄存器UBRDIV。

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

答:中断方式实现串口驱动的流程图如下:

- 6 -

北京航空航天大学研究生实验报告

实验二

LCD 和电机等综合实验

一、实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出用于控制直流电机。 3.了解LCD基本概念与原理。 4.理解LCD的驱动控制。

5.熟悉用ARM内置的LCD控制器驱动LCD。

二、实验内容

学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM知识,掌握PWM的生成方法。

1.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其正反转及转速。

2.通过超级终端来控制直流电机的转动。 学习LCD显示器的基本原理,理解其驱动控制方法。掌握两种LCD驱动方式的基本原理和方法。并用编程实现:

1. 用ARM内置的LCD控制器来驱动LCD。

三、预备知识

1、用EWARM集成开发环境,编写和调试程序的基本过程。 2、ARM应用程序的框架结构。

3、掌握通过ARM自带的A/D转换器的使用。 4、了解直流电机的基本原理。

四、实验设备及工具

硬件:ARM嵌入式开发平台、用于S3C2410的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序

五、实验原理及说明

1)直流电动机的PWM电路原理

晶体管的导通时间也被称为导通角а,若改变调制晶体管的开与关的时间,也就是说通过改变导通角а的大小,如下图所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制 (PWM)变速控制。在PWM变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。

- 7 -

北京航空航天大学研究生实验报告

2)开发平台中直流电机驱动的实现

开发板中的直流电机的驱动部分如图7-3所示;由于S3C2410X芯片自带PWM定时器,所以控制部分省去了三角波产生电路、脉冲调制电路和PWM信号延迟及信号分配电路,取而代之的是S3C2410X芯片的定时器0、1组成的双极性PWM发生器。

PWM发生器用到的寄存器主要有以下几个:TCFG0、TCFG1、TCON、TCNTB0 & TCMPB0、TCNTO0。

3)LCD(Liquid Crystal Display)原理

液晶得名于其物理特性:它的分子晶体,以液态存在而非固态。 LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元的通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。

4)S3C2410 LCD控制器逻辑框图

5)UPTECH-2410-S LCD图形显示方式

UPTECH-2410-S的LCD显示模块由LCD控制器和16位色彩色LCD示器组成。其显示方式以直接操作显示缓冲区的内容进行,LCD控制器会通过DMA从显示缓冲区中获取数据,不需要CPU干预。

本系统采用的LCD分辨率为640X480,工作在65536色彩色显示模式,在该模式下,显示缓冲区中的一个字节数据代表LCD上的一个点的颜色信息,因此,所需要的显示缓冲区大小为640X480X2字节。其中每个字节的彩色数据格式如下图所示:

- 8 -

北京航空航天大学研究生实验报告

六、实验方法

电机试验

1 通过一个电位器控制直流电机转动速度,并且用该电位器值使屏幕显示不同颜色。 2 用三个电位器分别控制R、G、B,观察屏幕的变化。 3 使用函数Uart_Printf(),将RGB的值打印到串口输出。 LCD实验:

1 在Main函数里执行LCD_Init();

2 将AD采样的结果在驱动电机的同时,和jcolor建立起联系。 3 显示缓冲区填充LCDBufferII2[k][j]=jcolor; 4 调用LCDFresh()函数。

七、程序源代码

#include \#include \#include #include #include

#include \#include \#include \#include \#include \

#define MCLK (50700000)

#define MOTOR_SEVER_FRE 1000 //20kHz #define MOTOR_CONT (MCLK/2/2/MOTOR_SEVER_FRE) #define MOTOR_MID (MOTOR_CONT/2)

#define ADCCON_FLAG (0x1<<15)

//#define ADCCON_ENABLE_START_BYREAD (0x1<<1) #define ADCCON_ENABLE_START_BYREAD (0x0<<1)

#define rADCCON (*(volatile unsigned *)0x58000000) #define rADCDAT0 (*(volatile unsigned *)0x5800000C) #define PRSCVL (49<<6)

#define ADCCON_ENABLE_START (0x1) #define STDBM (0x0<<2) #define PRSCEN (0x1<<14)

- 9 -

…… 此处隐藏:350字,全部文档内容请下载后查看。喜欢就下载吧 ……
北航ARM9实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443262.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)