09嵌入式网络协议及其应用开发课程设计报告1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计说明书

学生信息

系别计算机工程学院专业计算机科学与技术

班级姓名学号

课程设计信息

课程名称嵌入式软件开发课程设计

课程设计题目基于QT的直流电机设计

课程设计时间学期第 1~16 周

小组情况指导教师

批改情况

成绩评阅教师批改时间2012年5月 6 日2011-2012学年第2 学期

目录

1.课程设计内容 (3)

2.课程设计目的 (3)

3.背景知识 (3)

4.工具/准备工作 (3)

5.设计步骤与方法 (3)

5.1.步骤 1:设计直流电机控制界面 (3)

5.1.1. 步骤1.1:添加控件事件代码 (4)

5.2. 步骤2:编译程序 (5)

5.2.1. 步骤2.1:redhat主机下编译程序 (5)

5.2.2. 步骤2.2:在ARM板下测试直流电机界面–嵌入式下运行 (6)

6.软件测试截图 (7)

7.设计结果及分析 (7)

8.设计结论 (7)

9.问题及心得体会 (7)

10.对本设计过程及方法、手段的改进建议 (8)

11.任务分配 (8)

12.参考文献【1】C++ GUI Qt4编程(第2版) 兰切特 (Jasmin Blanchette)、萨默菲尔德(Mark Summerfield)、闫锋欣、曾泉人子工业出版社2008 (8)

13.课程设计评价(教师) (8)

课程设计报告

1. 课程设计内容

本课程设计的内容是设计一个基于QT的直流电机设计,支持电机正反转以及设置参数以控制转速。

2. 课程设计目的

考察自己对课程的掌握程度,以及自己实际的动手能力,编程能力。

3. 背景知识

1.嵌入式linux下驱动程序的基本编译方法

2.掌握直流电机控制基本原理

3.QT软件的应用

4. 工具/准备工作

硬件:

安装有QT的PC机一台

软件:

WindowsXP操作系统

VMware Workstation 7.0

Red Hat

QT 4.6.3

5. 设计步骤与方法

5.1.步骤 1:设计直流电机控制界面

利用QT Creator,ui文件来编写一个良好的用户交互界面:

图5.1电机控制界面

5.1.1. 步骤1.1:添加控件事件代码

使用信号-槽机制在函数添加操作

功能实现:

1、手动启动、停止直流电机

2、显示电机的转速,以及转动的方向,如向左还是向右,顺时针还是逆时针

3、通过设置参数,动态改变电机的转动速度

具体实现代码如下

char *DCM_DEV="/dev/dcm/0raw";

void motor()

{ if((dcm_fd=open(DCM_DEV, O_WRONLY))<0)

{ printf("Error opening %s device\n", DCM_DEV);

}

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (512 * factor));

}

void MainWindow::on_pushButton_clicked()

{ motor();//电机开始转动

}

void MainWindow::on_pushButton_2_clicked()

{ ioctl(dcm_fd, DCM_IOCTRL_SETPWM, 0);//电机停止转动

}

void MainWindow::on_pushButton_4_clicked()

{ factor = DCM_TCNTB0/1024;//电机逆时针转动

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));

ui->lineEdit_2->setText("Left");;

}

void MainWindow::on_pushButton_5_clicked()

{ factor = DCM_TCNTB0/1024*(-1);//电机顺时针转动

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));

ui->lineEdit_2->setText("Right");

}

void MainWindow::on_pushButton_3_clicked()

{ char str[30];

setpwm=setpwm*(1-0.05);//电机减速

if(setpwm<=0) setpwm=0;

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));

sprintf(str,"%d",setpwm);

ui->lineEdit_3->setText(str);

}

void MainWindow::on_pushButton_6_clicked()

{ char str[30];

setpwm=setpwm*(1+0.05);//电机加速

if(setpwm>=512) setpwm=512;

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));

sprintf(str,"%d",setpwm);

ui->lineEdit_3->setText(str);

}

5.2. 步骤2:编译程序

5.2.1.步骤2.1:redhat主机下编译程序

1.把QT设置好源程序代码拷贝到redhat主机指定的目录下:

/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4.

0/examples目录

2.使用qmake产生Makefile:

#/home/sprife/qt4/for_arm/qt-embedded-linux-opensource-src-4.4

相关文档
最新文档