嵌入式系统课程设计报告

发布 2022-10-21 08:48:28 阅读 6930

直流电机控制实验。

指导老师:王念桥。

学生姓名:王占龙。

学号:完成时间:2011/11/22

直流电机控制实验。

一。系统设计背景介绍。

通过对《arm9嵌入式系统设计》这门课程的学习,掌握了一些嵌入式系统设计的基本知识;结合以前学过的c语言的编程知识,并查阅相关资料,设计出此程序。

二。系统总体设计方案。

系统总体上来说是以直流电机的控制为基础,实现四级调速。在此基础上添加一些新功能,例如led显示速度和蜂鸣器报警提示。通过这样一个简单程序的设计,加深对嵌入式系统设计思路、方法、过程的理解。

三。系统具体设计。

1)系统需求分析。

1、利用按键控制arm输出一定占空比的pwm波形,同时用此波形信号驱动直流电机。

2、pwm共分四个不同的占空比,且每按一次按键改变一次。

3、为了指示当前pwm输出的占空比驱动直流电机的值,用四个led等指示当前状态。当占空比为1/4时,第一个灯亮;占空比为2/4时点亮第二个灯。以此类推,主要用移位的思想实现。

当实现一次周期调速时就用蜂鸣器响一声。

2)硬件设计。

本实验基于magicarm2410 嵌入式教学实验开发平台,采用arm9作为主控制器,以cos-ii操作系统作为系统平台,使用code warrior开发环境作为开发工具。设计上,选择arm2410 嵌入式实验平台作为主控制器构成硬件平台,主要利用其丰富的外部接口和系统本身的直流电机,按键和蜂鸣器等资源来达到实时给直流电机信号、及时处理信号、快速传输信号、达到控制电机的四级控制并能直观地通过观察开发板上的led灯对电机的当前运行状态进行掌握的目的。

3)软件设计。

系统流程图:

1 总体程序设计思路。

本程序采用查询方式,在主函数中调用waitkey(void),runbeep(void),pwm_init(uint16 cycle, uint16 duty),led_dispnum(uint32 dat)这几个子函数实现分级控制实时监控直流电机的目的。

2 子程序设计。

1、端口定义:新定义了四个显示led灯的端口和驱动蜂鸣器的端口。

2、对于led灯显示,定义了void led_dispnum(uint32 dat)函数,控制灯显示,其中led1为最低。

3、对于蜂鸣器,定义了void runbeep(void)函数,用于驱动蜂鸣器响。

4、在主函数(main)中,新定义了 uint8 i;用来指示当前点亮的灯的对应位。

5、把初始时电机的级别改变为第一级,同时点亮第一个灯。

6、新增加了端口定义:

// 初始化i/o

rgpecon = rgpecon & 0x0f<<22)))0x05<<22); rgpecon[25:22] =0101b,设置gpe11、gpe12为gpio输出模式。

rgphcon = rgphcon & 0x33<<8)))0x11<<8rgphcon[13:8] =01xx01b,设置gph4、gph6为gpio输出模式。

rgphcon = rgphcon & 0x03<<20)))0x01<<20); rgphcon[21:20] =01b,设置gph10为gpio输出模式。

具体子程序(1)void runbeep(void)

rgphdat = rgphdat & beep_maskbeep = 0

delayns(5);

rgphdat = rgphdat | beepbeep = 1

delayns(5);

2)void waitkey(void)

uint32 i;

while(1)

while((rgpfdat&key_con) !key_con等待按键放开。

3)void pwm_init(uint16 cycle, uint16 duty)

// 参数过滤。

if(duty>cycle) duty = cycle;

// 设置定时器0,即pwm周期和占空比。

// fclk=200mhz,时钟分频配置为1:2:4,即pclk=50mhz。

rtcfg0 = 97预分频器0设置为98,取得hz

rtcfg1 = 0timer0再取1/2分频,取得hz

rtcmpb0 = duty设置pwm占空比。

rtcntb0 = cycle; /定时值(pwm周期)

if(rtcon&0x04) rtcon = 1<<1更新定时器数据 (取反输出inverter位)

else rtcon = 1<<2)|(1<<1

rtcon = 1<<0)|(1<<3启动定时器。

4)void led_dispnum(uint32 dat)

dat = dat & 0xf; /参数过滤。

// 控制led4、led3显示(d3、d2位)

if(dat & 0x08) rgphdat = rgphdat | 0x01<<6);

else rgphdat = rgphdat & 0x01<<6));

if(dat & 0x04) rgphdat = rgphdat | 0x01<<4);

else rgphdat = rgphdat & 0x01<<4));

// 控制led2、led1显示(d1、d0位)

rgpedat = rgpedat & 0x03<<11)))dat&0x03) <11);

3.主程序

附在小组实验报告源程序里)

四。程序调试与执行。

由于实验程序比较简短,调试的过程中并未发现大的错误。

程序调试完成后,在**软件上运行,完成了系统需求里所要求的各项功能。

五.个人设计总结。

首先,读懂所给的基础实验源程序,结合实验要求,提出设计思路,得出具体设计方案。在调试的过程中,对于程序出现的问题,一起讨论解决,提出了一些好的建议。

其次,通过这次实验,通过和小组成员的协同合作,对嵌入式系统设计的大致过程有一个比较清晰地认识:提出系统需求,构思程序框图,编写具体程序,调试执行… 同时,加深了对嵌入式系统的相关知识的理解,为以后参加更大规模的程序设计奠定了基础。

六。教学建议。

由于老师参加过很多实际的项目设计,上课的时候给我们举了很多面向生活的方方面面的例子,让我深深地感受到嵌入式系统应用的广泛性和重要性!但是由于课时比较少,感觉刚开始进入就要结束了。希望可以增加些课时,多组织一些实验。

如果课时增加不了,希望老师能就某些问题讲得更深入些。如果掌握不全面那就局部掌握深一点吧,这样印象可能会深点。

嵌入式系统课程设计报告

嵌入式系统。课程设计报告。设计任务一十字路 通灯控制。一 设计目的 1 了解基于arm7核的lpc2106的管脚功能和特点,掌握i o控制寄存器的设置方法 2 掌握arm7应用系统编程开发方法,能用c语言编写应用程序 3 熟练掌握ads1.2软件的使用以及proteus 调试的方法 二 具体任务 1...

嵌入式系统课程设计报告

题目 基于skyeye的嵌入式linux系统设计 2013 2014第2学期。院系 电子通信工程系 姓名 张衡 专业 通信工程 学号 111307334 指导老师 赵成 电子通信工程系。2014年5月制。目录。一 引言。二 设计目的。三 设计要求。1 建立vmware虚拟机。2 安装linux rh...

嵌入式系统课程设计报告

课程设计。采用模块化设计方法设计出一款基于arm微控制芯片和linux操作系统的楼宇对讲系统,该对讲系统通过以太网与楼宇间的各室内机相连,实现了安装在楼道门口的终端机与各室内机的ip对讲,同时将访客的 信息传输到室内机,并采用指纹身份识别技术实现了门控系统管理。关键词 嵌入式系统设计 楼宇对讲 指纹...