1、河南科技大学课 程 设 计 说 明 书课程名称 软件项目综合实践 题 目 院 系 国际教育学院 班 级 计科082学生姓名 刘焕文指导老师 孙士保、白秀玲、赵海霞、杨春蕾 日 期 .8.29.9.9 软件项目综合实践任务书软件项目综合实践题目【超市商品销售/图书借阅/学生成绩】数据挖掘系统姓名学号专业班级组长同组组员 指导老师孙士保 白秀玲 赵海霞 杨春蕾 软件综合实践目标经过综合实践,使学生巩固数据库技术、数据结构、数据挖掘等知识,将理论和实际相结合,完成一个小型数据挖掘系统设计和实现。在此基础上强化学生实践意识,提升其实际动手能力和创新能力。软件综合实践环境硬件:装有windows操作系统
2、计算机软件:SQL Server 及【填写自己采取开发工具 】。软件综合实践任务和要求任务:1.进行【超市商品销售/图书借阅/学生成绩】数据挖掘系统数据管理、数据采集、数据预处理、数据挖掘、解释评定等步骤设计;2.实现【超市商品销售/图书借阅/学生成绩】数据挖掘系统【xx,填写自己实现功效名称】功效。要求:1.功效满足需求说明、界面友好、确保一定性能要求。2.撰写出符合要求软件项目综合实践汇报。参考文件学生自己填写,按汇报要求格式时 间 进 度 安 排序号起止日期工 作 内 容18月29日讲授数据挖掘概念及其算法,学生分组28月30日数据预处理,依据给定数据库数据形成挖掘处理所需要数据格式38
3、月31日-9月5日算法设计49月6日界面设计:参数设置,阈值设定;结果显示59月7日程序组装调试69月8日形成文档内容及格式撰写要求,讲授文档撰写方法,撰写软件综合实践汇报79月9日上交软件综合实践汇报附:超市商品销售数据挖掘系统需求说明一、关联规则算法要求挖掘出超市商品销售之间关联,如哪些商品往往会一起购置。1数据管理。对数据库中数据进行管理和维护工作。2.数据采集。从数据库中采集数据,形成事务集合。要求最少要有100条事务。如:事务1:牙膏、牙刷、 牛奶、饼干 事务2:牛奶,面包,手套即用户一次购置商品名称。3 数据预处理。将采集到数据转换为可进行数据挖掘形式。如事务:牙膏、牙刷、 牛奶、
4、饼干。可转换为:1,2,3,44数据挖掘。采取关联规则中Apriori算法对超市销售事务集合进行数据挖掘。挖掘出结果形如:牛奶=面包 支持度2%,置信度 30%,或牛奶、面包=牙刷 支持度0.5%,置信度 1%5结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。 如上述第一例,可解释为:包含牛奶和面包交易数和总交易数之比为2%,包含牛奶和面包交易数和包含牛奶交易数之比为30%。二、决议树方法要求挖掘出各类商品销售额和利润之间关联。1 数据采集。从数据库中采集数据,形成事务集合。要求最少要有100条事务。数据集形式序号食品类(销售额)洗化类(销售额)服装类(销售额)
5、书籍类(销售额)家电类(销售额)利润(销售额)113696545621264569高25644586932891687中3296126565432126低其中每条数据为一天销售情况,利润为决议属性,其它为条件属性,数字表示该类商品销售额。2 数据预处理。将采集到数据转换为可进行数据挖掘形式。如:销售额100 可转换为1, 100销售额5000,100洗化类利润 高4结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。 汇报上不要写上附:学生成绩数据挖掘系统需求说明一、关联规则算法要求挖掘出学生各门功课成绩间关联,如什么课程成绩好会造成另外课程成绩很好。1数据管理。对
6、数据库中数据进行管理和维护工作。2.数据采集。从数据库中采集数据,形成事务集合。事务集数据形式。其中每项数字为该门课程考试成绩。序号离散数学数据结构操作系统计算机网络组成原理面向对象程序设计184749084756527363817652743 数据预处理。将采集到数据转换为可进行数据挖掘形式。首先将连续数据转化为离散数据,如:优、良、中、及格、不及格。接着再进行转化,如事务:离散数学 优、数据结构 良、操作系统 及、计算机网络 中、组成原理 优、面向对象程序设计 中。可转换为:1,3,6,7,2,84数据挖掘。采取关联规则中Apriori算法对学生成绩集合进行数据挖掘。挖掘出结果形如:组成原
7、理 优=操作系统 优 支持度2%,置信度 30% ,或组成原理 优数据结构 良=操作系统 良 支持度3%,置信度 20%5结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。如上述第一例,可解释为:包含组成原理 优和操作系统 优事务数和总事务数之比为2%,包含组成原理 优和操作系统 优事务数和包含组成原理 优事务数之比为30%。 二、决议树方法要求挖掘出学生各门功课成绩和就业之间关联。1 数据采集。从数据库中采集数据,形成事务集合。要求最少要有100条事务。数据集形式。其中“就业情况”为决议。序号离散数学数据结构操作系统计算机网络组成原理面向对象程序设计就业情况18
8、47490847565已就业2736381769284未就业2 数据预处理。将采集到数据转换为可进行数据挖掘形式。数据预处理方法同关联规则算法。3数据挖掘。采取决议树对学生成绩集合进行数据挖掘,形成决议树,并形成份类。决议树略。分类规则形如:数据结构 优,计算机网络 优=已就业4结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。 汇报上不要写上附:图书借阅数据挖掘系统需求说明一、关联规则算法要求挖掘出所借阅图书间关联,如哪些图书往往会一起借阅。1数据管理。对数据库中数据进行管理和维护工作。2.数据采集。从数据库中采集数据,形成事务集合。要求最少要有100条事务。如
9、:事务1:数据库原理、SQL Server、 操作系统 事务2:组成原理,数据挖掘,网页制作即用户一次购置商品名称。3 数据预处理。将采集到数据转换为可进行数据挖掘形式。如事务:数据库原理、SQL Server、 操作系统。可转换为:1,2,34数据挖掘。采取关联规则中Apriori算法对图书借阅事务集合进行数据挖掘。挖掘出结果形如:数据库原理= SQL Server 支持度2%,置信度 30%,或数据库原理、SQL Server=Delphi 支持度0.5%,置信度 1%5结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。 如上述第一例,可解释为:包含数据库原理
10、和SQL Server交易数和总交易数之比为2%,包含数据库原理和SQL Server交易数和包含数据库原理交易数之比为30%。二、决议树方法要求挖掘出所借阅图书和整理图书间关联,如哪些图书借阅量多时需要对图书进行整理。1 数据采集。从数据库中采集数据,形成事务集合。数据集形式序号计算机类文学类数学类哲学类生物类整理图书1124523956否25216211219是33687144578是其中每条数据为图书一天借阅量,整理图书为决议属性,其它为条件属性,数字表示该类图书借阅量。2 数据预处理。将采集到数据转换为可进行数据挖掘形式。如:借阅量10 可转换为1, 10借阅量50,20文学类整理图书
11、 是4结果显示和解释评定。把挖掘出结果以一个直观方法显示出来,并对挖掘出结果进行评价。 汇报上不要写上目录第一章需求分析11.1 课程设计题目11.2 课程设计任务及要求11.3 软硬件运行环境及开发工具1第二章概要设计22.1 步进电机步骤图22.2 步进电机设计原理及其方法2第三章具体设计33.1 硬件设计和软件设计33.2 硬件电路设计和实现4第四章系统调试和操作说明74.1 系统调试74.2 操作说明7第五章课程设计总结和体会8致谢9参考文件10附录 步进电机控制程序11第一章 需求分析1.1 课程设计题目微机步进电机控制系统设计。现在在社会各个方面全部有用到了步进电机,比如:打印机控
12、制打印发票长度,工厂利用步进电机把传送带上多种元件停在不一样工人操作台前,等等一系列应用。控制步进电机顺时针旋转,逆时针旋转,快速旋转和慢速旋转。调整步进电机运转,让其在社会上广泛应用。1.2 课程设计任务及要求在这次步进电机课程设计中,我们要完成步进电机硬件设计和软件设计,在最终测试中能够完成老师所要求四项功效。快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转。试验要完成试验方案论证,电路原理图和元器件布局图设计、电路建构、软件编程、调试、运行和试验指导书文档建立等一整套工作任务。控制软件,使用C语言。课程设计思想步进电机是将脉冲信号转换成角位移一个机电式数模转换器。步进电机旋
13、转角位移和输入脉冲个数成正比;步进电机转速和输入脉冲频率成正比;步进电机转动方向和输入脉冲对绕组加电次序相关。所以,步进电机旋转角位移、转速和方向均受输入脉冲控制。步进电机运行方法是指各相绕组循环轮番通电方法。如四相步进电机有单四拍、双四拍、单双八拍和双八拍多个方法。为了实现对各绕组按一定方法轮番加电,需要一个脉冲循环分配器。循环分配器可用硬件电路来实现,也可用软件来实现。采取软件来设计脉冲循环分配器,又有两种方法:控制字法和循环查表法。1.3 软硬件运行环境及开发工具一、软硬件运行环境利用MFID试验平台和自制步进电机模块板进行硬件连接,利用MF集成开发环境进行步进电机控制程序设计,调试,直
14、到使步进电机正常运行。要求步进电机(四相步进电机)以双八拍方法运行,同时要实现对步进电机运行方法、方向、速度、启/停控制。二、开发工具试验所使用试验开发设备是MFID型多功效微机试验平台,它硬件由基础系统、外设功效模块和面包板试验区三大部分,按模块化开放式结构设计而成。不仅含有很好可添加性和灵活性,而且整个平台硬件资源全部向用户开放,由用户自由支配,系统不占用,给用户留下宽广可资使用硬件资源,避免了那种大部分硬件资源被占用固定式封闭带来弊端。第二章 概要设计2.1 步进电机步骤图 要完成步进电机四个功效,首先要用到四个开关语句,因为选择是C语言编程,所以用Switch循环语句来控制,其程序概要
15、步骤图以下:开始8255初始化,关74LS373Switch循环,开74LS373退出循环,关74LS373结束图2.1 概要步骤图2.2 步进电机设计原理及其方法步进电机速度基础控制电路,由8255PC0送出控制脉冲来驱动功率三极管TIP122,使用两种控制方法来控制三级管导通时间进而控制步进电机转速。加上反向器提供功率三极管基极偏流,加上LED能够显示脉冲工作情形,只要由PC0送入工作脉冲,LED便会一闪一闪,同时使直流电机转动。若PC0送出低电位则LED点亮,功率三极管TIP122导通,电机则全速运转,当PC0送出高电位,LED熄灭,三极管TIP122截止,电机停止转动,合适控制PC0输
16、出脉冲能够控制电机运转。首先,依据试验要求,设计步进电机控制电路,然后,根据电路原理,选择部分元器件,在面包板上分别搭建电路模块。因为试验中要用到MFID多功效微机试验平台板上8255A作接口控制信号,所以要用两头带插针软导线,经过26芯电缆插孔将8255A输出信号接入面包板,这么,整个组成了步进电机控制系统硬件。其次,编写步进电机控制系统控制程序,并进行调试。最终,加入软件控制程序,分别对这两个接口进行驱动,组成了直流电机控制系统。第三章 具体设计3.1 硬件设计和软件设计一、硬件设计1.基础系统基础系统包含总线驱动板和试验平台。其作用有二:将系统总线从总线机内引到机外试验平台上。在试验平台
17、上提供多种经典接口电路,供连接外设功效模块。2.外设功效模块这里所说外设功效模块包含微机I/O设备和元器件和指示灯、开关等。这些外设加上各自驱动电路就组成了不一样外设功效模块,它们是微机接口控制和连接对象。用户将外设功效模块挂接到平台办接口插座和插槽上,和平台上接口芯片相结合,可组成多种多样外设应用系统接口电路。外设功效模块能够任意添加。3.面包板试验区面包板试验区包含一块高质量面包板和平台板接口插座、插槽,和扁平连接电缆和连接导线,供用户自行设计、安装、调试外设应用系统电路之用。面包板试验区是新试验开发和新产品开发强有力工具。4.步进电机控制区 控制区包含一个芯片,一个LS芯片,四个TIP1
18、22三极管和一个步进电机,步进电机四根控制线分别和四个三极管相连,不一样信号步进电机产生不一样动作。为了控制步进电机启/停和运行方向,通常采取设置硬件开关或软件开关方法。所谓硬开关方法,通常是在外部设置按键开关SW,而且约定当某个开关SW按下时开启运行或停止运行,而另外一个SW开关开启可用来控制步进电机运行速度。为此,需要在程序中将开关SW状态读入,方便检测SW是否按下。所谓软开关方法,就是利用系统键盘,定义某一个键,当该键按下时,开启或停止运行。为此,在程序中要利用DOS系统功效调用来检测键盘输入。此次课程设计中使用使硬开关方法。设置了SW1和SW2两个硬开关,分别连接到8255APC0和P
19、C1,分别用以控制步进电机启/停和方向控制。二、软件设计考虑到步进电机有四个动作快速顺时针旋转;慢速顺时针旋转;快速逆时针旋转;慢速逆时针旋转。所以需要用到一个switch语句,里面包含四个case 语句,分别来控制选择步进电机四个动作。快速顺时针旋转时,就用正相序表和短延时;慢速顺时针旋转时,就用正相序表和长延时;快速逆时针旋转,反相序表和短延时;慢速逆时针旋转,反相序表和长延时。程序步骤图以下:图3.2 具体步骤图步进电机运行方向是采取设置相序表指针进行控制,其相序表以下:表3.1 相序表3.2 硬件电路设计和实现步进电机接口硬件部分关键是提供输送相序代码并行数据线,和保护电机绕组器件,所
20、以接口电路以8255为主芯片,将PA口作为数据口,传送加点代码,再加上锁存器74LS373作绕组保护。另外,还有功率驱动管TIP122,和二极管,按键开关SW等,其电路原理图以下:图3.3步进电机驱动模块电路连接图一、试验平台并行接口插座并行接口插座有26根信号线,其中24根信号线是来自8255三个端口(A口、B口和C口),输出有锁存功效,输入有缓存功效。可作三个独立8位传送,也可作16位传送,为用户提供设计多种并行设备控制模块并行接口电路。J5还包含了+5V电源线和地线。二、8255A基础特征8255A是个含有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口接口芯片,它为In
21、tel系列CPU和外部设备之间提供TTL电平兼容接口,如打印机、A/D、D/A转换器、键盘、步进电机和需要同时两位以上信息提供传送一切形式并行接口。而且它PC口还含有按位置位/复位功效,为按位控制提供了强有力支持。 D0D7:双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据。CS:选片信号,低电平有效,由系统高位地址线经I/O端口地址译码电路产生。A1,A0:芯片内部端口地址信号。RD:读信号,低电平有效。WR:写信号,低电平有效。RESET:复位信号。PA0PA7:端口A输入/输出线。PB0PB7:端口B输入/输出线。PC0PC7:端口C输入/输出线。三、P
22、CB图和3D效果图下面PCB图是用Protel软件经过自动布线后生成:图3.4步进电机驱动模块PCB图这是由PCB图生成3D效果图:图3.5步进电机驱动模块3D效果图第四章 系统调试和操作说明4.1 系统调试把电路接好以后,首先用平台上封装好程序对电路进行测试,假如步进电机能够正常运转就开始编写自己程序。不过在调试硬件时候常常会碰到部分意想不到结果,如:步进电机根本就不旋转、左右摆动等等。步进电机不旋转,可能是因为开关没有接正确,或是端口号搞错了;左右摆动则是因为步进电机四根控制线次序接错了。硬件调试好了就要开始调试软件了,这个系统程序比较简单关键就是四个开关语句,调试软件时候一定要注意相序表
23、次序,假如相序表里八个数字次序搞错了,步进电机也会乱旋转。4.2 操作说明把连接好硬件经过芯数据线连接到MFID平台上,在平台上运行已编辑好程序,运行经过后,在提醒语言下,输入命令:按回车后,步进电机快速顺时针旋转;按回车后,步进电机慢速顺时针旋转;按回车后,步进电机快速逆时针旋转;按回车后,步进电机慢速逆时针旋转;按回车后,步进电机停止旋转。运行后会出现下面提醒:图4.1 步进电机运行界面至此,基础实现了试验要求,试验结果正确。第五章 课程设计总结和体会在这个课程设计中,我关键负责进行硬件连接和调试工作,经过快要一个星期学习和探索,最终按老师要求完成了各项任务,用软件控制步进电机旋转速度和旋
24、转方向。作为该小组组长,不仅完成了自己工作,而且还帮助我们小组其它组员完成她们工作。在整个课程设计阶段,不仅学会了怎么协调分工,让每个组员能够参与到课程设计中来,而且还学会了很多书本上没有东西。不过在整个课程设计阶段,自己还有很多不足地方,一旦碰到极难处理问题,陷入困境后,极难自己独立处理问题,常常需要老师引导。在以后学习工作过程中还要加强独立处理问题能力。作为开放式设计型试验,不仅仅能够激发学生独立思索和创新意识,让学生感受、了解知识产生和发展过程,培养学生科学精神和创新思维习惯,重视培养学生搜集信息能力,获取新知识能力, 更能够提升学生实际动手能力,熟练使用多种仪器和实际布线能力。刚开始拿
25、到哪个6针脚开关时,不知道怎么用。最终在老师指导下,用万用表测量一对一正确针脚,当开关没有按下时,三对针脚,任何一对全部不通,当按钮按下时,有两对针脚是通,搞清了开关按下时是哪两个针脚是通,顺利完成了开关连接。经过这件事让我们知道了一个道理,以后在工作中碰到很多问题全部是我们没见过,不过在这些陌生问题前千万不能退缩,要想措施经过多种路径来处理问题。作为开放式设计型试验,对于软件方面调试,先只是需要在编译环境中编译、连接经过。然后连接硬件线路,连接之前先检测元器件,方法见上,能够对硬件单独检测,最好先单独检测硬件电路。最终是软硬件联合起来调试。刚开始时候,总认为做这个小小试验没有什么用,只是看成
26、一份作业来完成,能达成要求就行。以后经过和张老师一次长谈后,让我们认识到了一个问题,不管是多么简单或是多么难课题,我们全部要认真对待,其实步进电机在我们生活中已经应用到了各个方面,比如,超市里打印发票打印机,工厂里定点传送带等等。再由这个小小试验推广开来,有很多我们熟悉试验全部能够得到应用。设计完步进电机控制系统,就我个人来说,加深了对8255A芯片和74LS373芯片这两个芯片工作原理了解,了解了在MFID微机试验平台上进行微机应用系统设计方案、过程。在硬件方面,增强了我实际动手能力,能够熟练使用万用表检测元器件,;就软件方面,深入熟练了C语言编程,学会了使用Protel来绘制电路原理图。经
27、过论文撰写,提升了我综合思维能力和文字表示能力。另外,提升了我分析问题和处理问题能力,当系统出现问题时候,不是全部将线取下后再次连接,而是就电路中出现情况进行分析,找犯错误原因,从而,发觉问题并处理问题。致谢在这篇论文立即完成之时,我要在这里尤其感谢一下在我毕业设计过程中帮助和关心过我老师和同学。在毕业设计整个试验过程中,龚义建,张绪辉,陈宇三位老师给了我很多关心和帮助。陈老师更是直接指导了课程设计工作。龚老师态度谦逊、专业知识深厚,在接口技术方面有很深造诣,对我毕业设计工作给了极大支持和最热诚帮助。她严谨治学态度、亲和工作作风和深厚科研知识,全部给我留下了深刻印象。从龚老师身上,我学到了很多
28、东西,不仅是学术知识,还有工作方法、治学态度等。张绪辉老师在我整个设计、安装、调试过程中,给了我很多很好提议和帮助,使我能顺利地完成课题实际操作工作。还有同组何长江,徐爱萍,詹静昀同学,全部对我给了帮助,在此一并表示感谢。最终,再一次向全部关心过我、帮助过我老师和同学送上最深谢意和最真挚祝福!参考文件1 32位微机试验指导书,华中科技大学计算机学院2 刘乐善等,微型计算机接口技术及应用,武汉,华中科技大学出版社,3 王元珍等,IBM-PC宏汇编语言程序设计4 清华大学计算机教研室,微型计算机及外部设备常见芯片手册,清华大学出版社,152-1555 江思明,电路工程设计Protel99实例演练,
29、人民邮电出版社6附录 步进电机控制程序(备注:软件设计类源代码能够不打印,但提交电子文档中不能省略)/*-*/* hushichao.cpp(微机步进电机控制接口试验) */* 步进电机 Source File */*- */#include #include #include #include void main()int zheng8=0x05,0x15,0x14,0x54,0x50,0x51,0x41,0x45;/正相序表int fan8=0x45,0x41,0x51,0x50,0x54,0x14,0x15,0x05;/反相序表int i=0;/正循环初值int j=0;/反循环初值in
30、t a;/开关选择 outportb(0x303,0x81);/初始化outportb(0x303,0x09);/置PC4=1关闭74LS373printf(n1 kuai shu zheng zhuann);printf(n2 man shu zheng zhuann);printf(n3 kuai shu fan zhuann);printf(n4 man shu fan zhuann);printf(n5 exitn); doscanf(%d,&a);/输入要选择值 switch(a)case 1:do outportb(0x300, zhengi);/送相序代码到PA口 outport
31、b(0x303,0x08);/置PC4=0,打开74LS373 i+; if(i7) i=0; delay(10);/延时 while(!kbhit(); break;case 2:do outportb(0x300, zhengi);/送相序代码到PA口 outportb(0x303,0x08);/置PC4=0,打开74LS373 i+; if(i7) i=0; delay(50);/延时 while(!kbhit(); break; case 3:do outportb(0x300,fanj);/送相序代码到PA口 outportb(0x303,0x08);/置PC4=0,打开74LS37
32、3 j+; if(j7) j=0; delay(10);/延时while(!kbhit();break;case 4:do outportb(0x300,fanj);/送相序代码到PA口 outportb(0x303,0x08);/置PC4=0,打开74LS373 j+; if(i7) j=0; delay(50);/延时 while(!kbhit(); break;default: break;/end switchwhile(!(a = 5);outportb(0x300,0x00);delay(50);outportb(0x303,0x09);/置PC4=1,关闭74LS373课程设计题目姓名学号专业班级指导老师评语: 指导老师署名: 年 月 日成绩评定项 目分 值评 分 要 素成 绩1设计过程中出勤、学习态度等方面20上机出勤及端正学习态度、认真刻苦程度等2软件设计质量40采取算法、设计方案,设计结果,界面友好等方面进行综合评定3 答辩20能简明扼要地叙述设计关键内容,能正确流利地回复多种问题4设计汇报书写10条理清楚,表述清楚、措词适当5 实际动手能力10组长全方面负责,负担复杂模块设计分值就高总 成 绩 计算机系课程设计指导老师评分表