嵌入式系统 各实验实验报告(2)

2019-01-12 14:21

if(key>9)

{//键值大于9显示十位 }

WriteSDIO(ZLG7289_CMD_DATA0|2);//发送十位数据 WriteSDIO((unsigned char)(key/10)); Delay(1);

WriteSDIO(ZLG7289_CMD_HIDE);//使一、二两位数码管显示 WriteSDIO(4);

else

据老师要求,又将8位的改成了2位的,成功实现实验要求。

{//键值小于10不显示十位 }

WriteSDIO(ZLG7289_CMD_HIDE);//使个位数码管显示 WriteSDIO(1);

ZLG7289_DISABLE();//zlg7289放弃同步串口控制权

3.7 实验结果总结

通过本次实验,我熟悉ZLG7289芯片的内部结构,掌握了用ZLG7289驱动键盘和LED的方法,掌握了ARM汇编语言和C语言的编程方法,达到实验目的。

3.8 心得体会

实验过程中的编码耗时较长,自己的编程能力不足,在同学的协助下才完成,往后要加强这方面的练习。

4. 实验四

4.1 实验名称

电机转动控制及中断实验

4.2 实验目的

①熟悉ARM自带的六路(三对)PWM

②了解直流电机和步进电机的工作原理

③熟悉ARM自带的A/D转换器的工作原理及编程方法 ④利用A/D转换器实现对直流电机和步进电机

4.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上。

软件:PC 机操作系统Windows、ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

4.4实验内容及要求

内容:

学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM 知识,掌握PWM 的生成方法,同时掌握I/O 的控制方法。 要求:

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

②编程实现ARM 的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动,通过A/D 旋钮转角控制步进电机的转角。

③通过超级终端来控制直流电机与步进电机的切换。

4.5实验设计与实验步骤

首先,新建工程,将“Exp6 电机转动控制实验”中的文件添加到工程。其次,编写直流电机初始化数(MotorCtrl.c),设置寄存器TCFG0、TCFG1、TCNTB0、TCON,再次,控制直流电机,还有,初始化开发板,初始化直流电机,初始化AD转换器,采样AD值,延时,设置相应的脉冲宽度,延时。最后,采样AD值,延时,采样AD值,延时,根据AD旋钮转角确定步数及转动方向,发出步进电机控制命令,保存本次采样值。

4.6实验过程与分析

核心代码如下 void init_ADdevice()

{//初始化 }

int GetADresult(int channel) {

rADCCON=(channel<<2)|ADCCON_ENABLE_START; }

void init_MotorPort() {

rTCFG0=(0<<24)|2; rTCFG1=0; }

void SetPWM(int value) { }

rTCMPB0= MOTOR_MID+value; rTCNTB0= MOTOR_CONT; rTCMPB0= MOTOR_MID; rTCON=0x2; rTCON=0x19;

Delay(10);

while(!(rADCCON&ADCCON_FLAG));//转换结束 return rADCDAT;//返回采样值 rADCPSR=20;

rADCCON=ADCCON_SLEEP;

4.7 实验结果总结

实现了ARM 芯片的一对PWM 输出用于控制直流电机的转动,通过A/D 旋钮控制其正反转及转速。实现ARM 的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动,通过A/D 旋钮转角控制步进电机的转角。通过超级终端来控制直流电机与步进电机的切换。通过键盘来控制直流电机的转动或停止。

4.8 心得体会

通过本次实验,熟悉了ARM自带的六路。了解了直流电机和步进电机的工作原理。熟悉了ARM自带的A/D转换器的工作原理及编程方法。掌握了利用A/D转换器实现对直流电机和步进电机的控制。因为看到自己努力的成果,我不由得多按了几次键盘来控制直流电机。

5. 实验五

5.1 实验名称

LCD驱动及触摸屏实验

5.2 实验目的

①掌握LCD显示原理及显示驱动的嵌入式系统编程实现方法

②学习基于ARM的LCD 显示驱动控制方法,通过对ARM 内置的LCD 控制器进行编程实现驱动LCD显示屏。

③学习触摸屏基本原理,理解触摸屏的输出标定以及与LCD 显示器配合的过程

5.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上。

软件:PC 机操作系统Windows、ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。

5.4实验内容及要求

内容:

学习基于ARM的LCD 显示驱动控制方法,通过对ARM 内置的LCD 控制器进行编程实现驱动LCD显示屏。学习触摸屏基本原理,理解触摸屏的输出标定以及与LCD 显示器配合的过程,编程实现对触摸屏的控制。 要求:

①点击触摸屏上两点后,两点之间画出一条直线。 ② 点击触摸屏并在其上移动,显示移动轨迹。

5.5实验设计与实验步骤

①新建工程,将“Exp8 触摸屏驱动实验”中的文件添加到工程。

②在头文件中定义宏及常量(tchscr.c,tchscr.h) ③定义驱动函数(tchscr.c)

读取触摸点x 轴电压值:发送读取x电压值,控制字SendSIOData,等待8个时钟节拍,读取采样值高8位,ReadSIOData,发送读取x电压值,控制字SendSIOData,将第一次采样值左移8位,读取低8位并与以前高8位组成16位数据,去掉低4位,保留12位有效数据。

读取触摸点坐标:打开ADS7843,读取触摸点x轴电,压值4次取平均值,读取触摸点y轴电压值4次取平均值,打开ADS7843,对采样结果进行转换。

④编写测试函数(tchscr.c)

将触摸动作及触摸点坐标在超级终端上显示出来。

⑤校准触摸屏坐标输出,转换坐标,与LCD 紧密配合 ⑥通讯软件超级终端来将生成的文件放到嵌入式开发平台中。

5.6实验过程与分析

核心代码如下:

void TchScr_GetScrXY(int *x, int *y, U8 bCal)

{//获得触摸点坐标

unsigned int temp;

rPDATF&=~ADS7843_PIN_CS;//打开ADS7843

SendSIOData(ADS7843_CMD_X);//发送读取x电压值控制字

SendSIOData(0);//等待8个时钟节拍,因为完成一转换需要16个时钟 temp=ReadSIOData();//读取采样值高8位 SendSIOData(ADS7843_CMD_X); temp<<=8;

temp|=ReadSIOData();//读取低8位并与以前高8位组成16位数据 *x=(temp>>4);//去掉低4位,保留12位有效数据 SendSIOData(0); temp=ReadSIOData();

SendSIOData(ADS7843_CMD_X); temp<<=8;

temp|=ReadSIOData(); *x+=(temp>>4);


嵌入式系统 各实验实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:研究生参加学术活动总结报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: