单片机基础课程设计指导书_第1页
单片机基础课程设计指导书_第2页
单片机基础课程设计指导书_第3页
单片机基础课程设计指导书_第4页
单片机基础课程设计指导书_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北水利水电学院课程设计指导书课程名称:单片机应用基础专业:机械设计制造及其自动化指导教师:雷冀南设计期限:2018年04月14日开始2018年04月25日结束华北水利水电学院机械学院2018年4月一、课程设计目地《单片机应用基础》课程设计是学好本门课程地又一重要实践性教案环节,课程设计地目地就是配合本课程地教案和平时实验,以达到巩固消化课程地内容,进一步加强综合应用能力及单片机应用系统开发和设计能力地训练,启发创新思维,使之具有独立单片机产品和科研地基本技能,是以培养学生综合运用所学知识地过程,是知识转化为能力和能力转化为项目素质地重要阶段.二、课程设计任务根据给定地任务要求选择合适地单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求.有关参数选择要求符合国家标准.具体设计内容如下:模拟步进电机、模拟交通灯模块、模拟键盘输入及显示模块.设计系统工作原理图,利用PROTEUS软件绘制系统工作原理图;系统控制程序设计、调试及实现:<1)根据要求,写出完整地程序流程图;<2)将设计程序输入、汇编,排除语法错误,生成*.OBJ文件;<3)按所设计地原理图,在实验平台上连线,检查无误;<4)将目标文件传送到实验系统,执行并运行调试该程序,最终实现控制要求写出设计说明书,说明书格式见附录,3000字左右三、单片机应用系统地设计步骤单片机地应用系统随着用途不同,它们地硬件和软件结构差别很大,但系统设计地方法和步骤基本上是相同地.一般包括总体设计、硬件设计、软件设计、仿真调试、固化程序、应用系统独立运行等步骤.课程设计因为时间安排、学生水平、实验条件等诸方面地限制,仅要求学生完成仿真调试即可.<一)总体设计1、明确任务根据课题地要求确定系统地工作原理.如电脑时钟地工作原理为:每百分之一秒对计数一次,满100次秒加一,秒满60次分加一……;并在数码管上显示时、分秒当前值.如果需要还要提出相应地技术指标.如电脑时钟要求显示地最小单位为秒,还是百分之一秒;温度测量系统要求测量多少路?测量精度是多少;收银机计算金额地范围多大,最小单位是否计分;交通灯控制系统测量车流量地最大频率是多少等.2、硬件和软件功能地划分系统地硬件配置和软件设计是紧密地联系在一起地,且硬件和软件具有一定地互换性.多用硬件完成一些功能,可以提高工作速度,但降低了系统地柔性.若用软件替代某些硬件功能,可增加系统地柔性,但降低系统地工作速度.因此,总体设计时,应综合考虑,合理划分硬件和软件地功能.在课程设计中,应充分利用仿真系统地硬件资源.如单个脉冲可以通过程序CPLP1.0得到,也可利用实验仿真系统地硬件资源获得.<二)硬件设计根据总体设计要求,确定系统扩展与功能接口,设计出系统地电路原理图.系统扩展实验仿真系统地CPU是8031,因此,必须首先组成最小系统,即由8031、地址锁存器和程序存储器组成.根据课题要求,在此基础上进行扩展.包括程序存储器扩展、数据存储器扩展、I/O口扩展<8155、8255、74LS164)、定时器/计数器扩展<8253)和中断控制器扩展<8259)等.如交通灯控制系统中要求控制四个方向地红、绿、黄灯共12个,因此,需扩展I/O口,可选用8255,也可利用串入并出移位寄存器74LS164扩展2个8位输出口地接口电路.功能接口所谓接口是CPU与外界地连接部件,以实现CPU与外部设备地最佳耦合和匹配.包括键盘、显示、A/D转换、D/A转换和打印机等.根据课题要求,选用外设,并选用合适地外围接口芯片.系统地组成及统一编址I/O端口是CPU与I/O设备直接通信地地址.单片机系统对I/O端口是采用端口地址与存储器地址统一编址地方式,即存储器映射方式.而编址技术又分线选法和译码法.因为实验仿真系统地地址总线没有开放,如8155、8255、0809、0832等芯片地址均已定义,但学生在设计硬件时,仍应自行编址.<三)软件设计一个优秀地地系统地软件应具有下列特点:①软件结构清晰、简捷、流程合理.②各功能程序实现模块化、子程序化.这样,既便于调试、链接,又方便移植、修改.③程序存储区、数据存储区分配合理.④运行状态实现标志化管理.各个功能程序运行状态、运行结果以及运行要求都设置状态标志<一般用位寻址区地位)以便查询,程序地转移、运行、控制都可以通过状态标志条件来控制.⑤实现全面软件抗干扰设计〈因为条件有限,课程设计中不考虑.)软件设计一般步骤如下:系统定义系统定义是在软件设计前,把软件承担地任务明确出来.各种数据类型地定义.是定点数还是浮点数;是有符号数还是无符号数;是十六进制数还是BCD码.如果一个参数地变化范围有限,就可以用定点数来表示,以简化程序设计和加快运行速度.当参数地变化范围太宽时,只好采用浮点数来表示,如智能电桥中被测对象地变化范围达10个数量级<1〜10000叱),定点数是无法胜任地.若要求数据地正负之分,则考虑定义有符号数.对于自然数列,为显示方便,可以采用BCD码,如电脑时钟地时、分、秒.合理定义和分配存储空间、定义标志位.资源分配地主要工作是RAM资源地分配.片外RAM地容量要比片内RAM大,通常用来存放批量大地数据,如采样数据系列.主要考虑片内RAM地分配.系统上电复位时,自动定义0区为工作寄存器,1区为堆栈,并向2区、3区延伸.如果系统前台程序要用1区、2区作为工作寄存器,就应将堆栈空间重新规划,常将堆栈安放在片内RAM地高端,如60H〜7FH.在工作寄存器地8个单元中,R0和R1具有指针功能,是编程地重要角色,应充分发挥其作用,尽量避免用来做其他事情.20H〜2FH这16个字节具有位寻址功能,用来存放各种软件标志、逻辑变量、位输入信息、位输出信息副本、状态变量、逻辑运算地中间结果等.当这些项目全部安排好后,保留一两个字节备用,剩下地单元才可改作其他用途.30H〜7FH为一般通用寄存器,只能存入整字节信息.通常用来存放各种参数、指针、中间结果,或用作数据缓冲区.RAM资源规划好后,应列出一张RAM资源地详细分配清单,作为编程依据.为了增加可读性,便于修改,一般对分配地存储单元取名.如保存当前时间地时、分、秒取HOUR、MINI、SEC,编程时用变量名,编译时只需在前面加HOUREQU24H即可<20H为分配给小时地存储单元地地址).软件结构设计软件设计有两种方法:一种是自上而下,逐步细化;另一种是自下而上,先设计出每一个具体地模块<子程序),然后再慢慢扩大,最后组成一个系统.两种方法各有优缺点.自上而下地方法在前期看不到什么具体效果,对于初学者来说,心中总是不踏实.而自下而上地方法一开始就有结果,每设计并测试好一个模块,就能看到实际地效果,给人一步一个足印地感觉,能树立信心.我们建议两种方法结合运用.主程序采用自上而下地方法,将它分成若干个功能相对独立地较小地程序模块.然后再采用自下而上地方法,设计一个模块,调试一个模块,加入主程序调试;再进行下一个模块设计和调试.所以在这一步骤就是设计主程序地框架.模块设计建立入口条件和出口条件,明确模块功能根据问题地定义,描述出各个输入变量地存放地址(入口条件>和各个输出变量地存放地址(出口条件〉例如输入量是经A/D转换后地8个数字量,存入在以30H为首地数据块中,输出量是这8个数字量地平均值,存放在40H中.为方便起见用R0存放输入量数据块首地址,用R1存放输出量地址.则入口条件为R0,出口条件为R1.绘制程序框图根据问题地定义,确定算法,并绘制程序框图.注意必须确保程序框图地正确性.比如在电脑时钟中,考虑输入“分”地数据地合理性,数据必须小于60,程序框图中就不能忽视等于60如何处理.这是初学者常犯地错误.编写程序在确保程序框图地正确性地前提下,才能编写程序.在编程时必须注意以下几点:①一定要严格根据框图编程.②一定要写注释.③通过编译后,只表明语法没错,并不表明逻辑正确,一定要用不同地数据对模块进行测试.完全符合预定结果,方可确认通过.④将该模块加到主控模块进行测试,如果与预定结果不符,必须查找原因,进行修改、调试.⑤必须注意随时保存调试通过地副本.以便当新程序出现故障时,随时可返回前面地正确点重新开始.编写设计说明书设计说明书地格式见附录.因为设计时间紧迫,要求学生尽量不要在完成全部设计后再编写设计说明书.而应在设计过程中逐步完成.一开始不可能设计出满意地主程序框图.因此,总体设计部分在完成全部设计任务后再写.而硬件部分和软件部分可以在设计过程同步完成.四、步进电机控制系统设计<一)步进电机工作原理步进电机是工业过程控制及仪表中常用地控制元件之一,例如在机械装置中可以用丝杠把角度变为直线位移,也可以用步进电机带螺旋电位器,调节电压或电流,从而实现对执行机构地控制.步进电机可以直接接收数字信号,不必进行数模转换,用起来非常方便.步进电机还具有快速启停、精确步进和定位等特点,因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛地应用.步进电机实际上是一个数字/角度转换器,三相步进电机地结构原理如图所示.从图中可以看出,电机地定子上有六个等分磁极,A、A‘、B、B'、C、C’,相邻地两个磁极之间夹角为60°,相对地两个磁极组成一相<A-A',B-B’,C-C'),当某一绕组有电流通过时,该绕组相应地两个磁极形成N极和S极,每个磁极上各有五个均匀分布矩形小齿,电机地转子上有40个矩形小齿均匀地分布地圆周上,相邻两个齿之间夹角为9°.当某一相绕组通电时,对应地磁极就产生磁场,并与转子形成磁路,如果这时定子地小齿和转子地小齿没有对齐,则在磁场地作用下,转子将转动一定地角度,使转子和定子地齿相互对齐.由此可见,错齿是促使步进电机旋转地原因.相地定子齿对齐,我们以此作次为B相地定子齿对齐,我们以此作次为B相磁极与A相磁极相差1相定子地齿对应,只是第13号,三相步进隹例如在三相三拍控制方式’壬磁场作用下使转子齿和A转子齐地转子地齿为0号齿,因,所以此时转子齿没有与B,线相差3°,如果此时突然变为B相通电,A、C相不通电,则B相磁极迫使13号转子齿与之对齐,转子就转动3°,这样使电机转了一步.如果按照A—B—C地顺序轮流通电一周,则转子将动9°.步进电机地运转是由脉冲信号控制地,传统方法是采用数字逻辑电路——环形脉冲分配器控制步进电机地步进.下图为环形脉搏冲分配器地简化框图.AABBBO0CAA地见反不tzk土xru,心/l寸土用1七/「口出i七坯竿〃土jxru,।义七d八干q任以x,所以调节CP脉冲地周期就可以控制步进电机地运转速度.③旋转地角度控制.因为每输入一个CP脉冲使步进电机三相绕组状态变化一次,并相应地旋转一个角度,所以步进电机旋转地角度由输入地CP脉冲数确定.<二)利用P1口进行步进电机控制系统设计原理图举例说明:20BY-0型4相步进电机,其工作电压为4.5丫,在双四拍运行方式时,其步距角为18O,相直流电阻为55Q,最大静电流为80Ma.采用8031单片机控制步进电机地运转,按四相四拍方式在P1口输出控制代码,令其正转或反转.因此P1口输出代码地变化周期T控制了电机地运转速度:n=60/T.N式中:n——步进电机地转速〈转/分);N——步进电机旋转一周需输出地字节数;T——代码字节地输出变化周期.设N=360°/18°=20,T=1.43ms,则步进电机地转速为2100转/分.控制P1口输出地代码字节个数即控制了步进电机地旋转角度.

根据步进电机工作原理,使用8031地P1.0-P1.3分别驱动步进电机A、B、C、D相用软件控制P1口输出一脉冲序列,控制步进电机转速、方向、步距.同时为能观察步进电机旋转状态,在A、里、羊、D相输出到状态指示灯.开始清状态寄存器

置正转相通电步进电机控制主程序框图清状态寄存器

置正转相通电步进电机控制主程序框图正反转步进子程序框图步计数器置步延时计数器 置P1.11.2P1.3 Y〈三)扩展二^ 控制原理图步<-N过对U2]K8255延时子程序丫正转?」严, 25k步进电机控N1*进电机驱动原理是通+5V力相线圈中地电流地顺序上换艮据)查来使电机作步进式旋冲信号))杳)-1?<-[是通过单片机输出脉-来实现地.所以调节脉地频率步计数器置可以改变步1电调用步进电机子程序(AB坪计数需一鳖100方式,也地转速步计数器置步延时计数器 置P1.11.2P1.3 Y〈三)扩展二^ 控制原理图步<-N过对U2]K8255延时子程序丫正转?」严, 25k步进电机控N1*进电机驱动原理是通+5V力相线圈中地电流地顺序上换艮据)查来使电机作步进式旋冲信号))杳)-1?<-[是通过单片机输出脉-来实现地.所以调节脉地频率步计数器置可以改变步1电调用步进电机子程序(AB坪计数需一鳖100方式,也地转速,改变各相脉冲)一顺序,可以改变电机地in机地转速应由慢到快逐步加速.电机驱动方式可以采用双四拍可以采用单四拍(人(A—AB—B"C—CtcD^D—DA效)调用延时 子程序调用步进电机子程序双四拍方式或单、双八拍种工作方式驮口下:<高-A>方式.各L调用步进电机子程序单四拍方式电平有号是高有效,但实际控制地,所以实际控制脉冲是出地脉冲信号经ULN2003A)倒相驱动信号序列.8051或PL。Pl.lWT立式键盘和4*4矩阵式矩阵式结构接正电源,并将列线P1.4 键盘显然比直接?法要复杂一些,号是高有效,但实际控制地,所以实际控制脉冲是出地脉冲信号经ULN2003A)倒相驱动信号序列.8051或PL。Pl.lWT立式键盘和4*4矩阵式矩阵式结构接正电源,并将列线P1.4 键盘显然比直接?法要复杂一些,识别n-i >接地单片机地I/O口作为输出端RD日也要而行■Ug-V?h.线所接地;-RD些上图中7行线通过电4/O匚则作为专俞入.这样,当按键没有按下时,所有地P1.5 输^都B是高电平,代表无键按下.行线,-啰1有键按Pl."/,则输入线就会被拉低,这;羊,通过读入输入线地状态就可得知PC3一■了.单、双八拍工作方式上图中示意地脉冲信时公共端是接在VCC上低有效.8255地PA口输<MC1413 或后,向步进电机输出脉冲80C196单片机也可以通过P1口输出脉冲信号控制步进电机地运转.五、模拟键盘输入显示系统设计<一)键盘工作原理键盘是由若干按键组成地开关矩阵,是嵌入式控制系统地一种输入部件.键盘分两种:一种是独立式按键,另一种是矩阵式按键.如图所示.独立式按键用地比较少,可以直接与单片机地P1口某一位进行连接,通过判断这一位地状态知道是否有键输入.在应用中通常需要数量较多地按键,为了减少I/O口地占用,通常将按键排列成矩阵形式,如图所示.在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接.这样,一个端口<如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键地键盘,而直接用端口线则只能多出一键<9键).由此可见,在需要地键数比较多时,采用矩阵法来做键盘是合理地.VCC<二)LED显示接口及原理LED是发光二极管地英文缩写,LED显示器是由发光二极管构成地,它在单片机中地应用非常普遍.通常所说地LED显示器由7个发光二极管组成,其排列形状如图所示.此外,显示器中还有一个圆点型发光二极管以dp表示,用于小数点表示.通过七个发光二极管亮暗地不同组合,可以显示多种数字、字母以及其它符号.LED显示中地发光二极管共有两种连接方法:共阳极接法:把发光二极管地阳极连在一起构成公共阳极.使用时公共阳极接+5V.这样阴极端输入低电平地段发光二极管就导通点亮,而输入高电平地则不亮.共阴极接法:把发光二极管地阴极连在一起构成公共阴极.使用时公共阴极接地.这样阳极端输入高电平地段发光二极管就导通点亮,而输入低电平地则不亮.控制数码管驱动级地控制电路有静态式和动态式两类:静态驱动:它是指每个数码管都要用一个译码器译码驱动.动态驱动:它是所地数码管使用一个专门地译码驱动器,使各位数码管逐个轮流显示,它地扫描速度极快,因此显示效果与静态驱动相同.采用动态数码管显示,可以大幅度地降低硬件成本和电源地功耗,因为某一时刻只有一个数码管工作,就是所谓地分时显示,显示所需要地硬件电路可分时复用.字型共阳极代码共阴极代码字型共阳极代码共阴极代码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭FFH00H880H7FH<三)键盘输入与LED显示设计中通过键盘输入到单片机中,由程序控制找到输入点,计算键码,调用显示模块,把输入地数值通过LED显示器显示出来.(1>判断键盘中有无键按下:将全部行线P1.0到P1.3置低电平,然后检测列线地状态.只要有一列地电平为低,则表示键盘中有键被按下,而且闭合地键位于低电平线与4根行线相交叉地4个按键之中.若所有列线均为高电平,则键盘中无键按下.(2>判断闭合键所在地位置:在确认有键按下后,即可进入确定具体闭合键地过程.其方法是:将行线置为低电平,即在置行线为低电平时,其它线为高电平.在确定某根行线位置为低电平后,再逐行检测各列线地电平状态.若某列为低,则该列线与置为低电平地行线交叉处地按键就是闭合地按键.检测地方法是P1.4-P1.7输出全“1””,读取P1.0-P1.3地状态,若P1.0-P1.3为全“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论