单片机课程设计指导书.docx
- 文档编号:9544506
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:45
- 大小:636.63KB
单片机课程设计指导书.docx
《单片机课程设计指导书.docx》由会员分享,可在线阅读,更多相关《单片机课程设计指导书.docx(45页珍藏版)》请在冰豆网上搜索。
单片机课程设计指导书
盐城工学院
电气工程学院
课程设计指导书
课程名称:
单片机原理与接口技术
适用专业:
电气工程及其自动化
张兰红周云龙陆广平
2009-3
前言
课程设计是单片机课程教学的最后一个环节,目的是对学生进行全面系统的训练。
进行课程设计可以让学生把学过的零碎知识系统化,能够开发简单的系统,也进一步激发学生学习的热情,因此课程设计是必不少的,非常必要。
但是在多年的教学实践中,我们感到一方面学生掌握的理论知识和实践知识有限;另一方面课程设计的时间有限,一般不多于两周。
要想让学生在规定时间内,运用自己有限的知识去独立完成一个单片机应用系统的全部设计、制作和调试是不现实的。
在两周的时间内,学生把绝大部分时间要么花在设计制作硬件电路上,要么花在编写程序上,不能掌握整个系统的全貌。
事实上用课程设计时间进行的单片机系统设计不要太复杂,但要将软、硬件两部分都贯穿进去,让学生清楚地了解单片机系统的整个设计过程,培养学生设计单片机应用系统的初步能力。
基于以上认识,我们将课程设计内容分为理论设计与实践操作两部分。
在理论设计部分,要求根据指定的题目完成硬件与软件的设计(对学有余力的同学,该部分也可以制作实物,实验室提供条件);实践操作部分由指导老师事先设计好一块包括流水灯、交通灯、显示器、键盘、A/D、D/A等电路的单片机综合应用系统的印刷电路板,并提供必需的元器件,每位同学完成单片机综合应用系统的焊接与硬件调试,编写相关控制程序并调试通过。
本指导书首先介绍了单片机应用系统的设计步骤;然后介绍了单片机综合应用系统;接着详细地介绍了用单片机控制的交通灯系统的总体设计、硬件设计与软件设计。
编者
第一章课程设计(大型作业)的教学组织
1.1性质与目的
当前,理工科高等院校许多专业的教学计划都安排有单片机课程设计或大型作业。
单片机课程设计应该注意软件、硬件结合和兼顾,尤其应重视动手操作的内容,做到设计与实践两者并重。
课程设计的选题,可选择已完成了的真实课题,经教师裁剪增删,在符合教学、符合学生水平、符合实验室条件的情形下,供学生试设计。
考虑到设计时间较短促、学生的独立工作能力还较差,且教师将同时指导整个班级,因此要学生完成的内容要精选,工作量不宜太大;学生可编组进行设计,但提倡个人有独到的见解,并应独立写出设计说明书。
本教学环节的目的,大体为:
(1)训练学生正确地应用单片微机,培养解决工业控制、工业检测等领域具体问题的初步能力。
(2)让学生通过所做课题,“解剖麻雀”,熟悉单片微机应用系统开发、研制的过程,软硬件设计的工作方法、工作内容、工作步骤。
(3)对学生进行基本技能训练,例如组成系统、编程、调试、查阅资料、绘图、编写说明书等;使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。
单片微机课程设计(大型作业)可利用单片机实验装置作为学生动手实践的基本装置,也可将包括流水灯、交通灯、显示器、键盘、A/D、D/A等电路的单片机综合应用系统的印刷电路板与必须的元器件提供给学生,让学生在半成品的基础上将产品完成;除此以外,还可以结合每一课题,另制作足够数量的、配套的辅助性装置,以模拟工业应用实际情况,提高课题的真实性,扩大学生的实践内容和收获。
为了这一教学环节的正常开展,还应积累(或复印)一定数量的参考资料(例如芯片、元器件的手册,某些装置的使用说明,有关的期刊、参考书籍等)。
在课程设计教学中,应以学生自主设计为主,充分发挥学生的自主性和创造精神。
教师的指导作用主要体现在工作方法,思维方法的引导。
为保证顺利完成设计院任务,应注意如下要求:
(1)认真阅读设计任务书,保质保量地完成任务书的规定的工作。
(2)在总体方案确定过程中,要求多想,多查资料,少问。
(3)程序设计时,先画框图再编程,无论是自上而下,还是自下而上,必须一步一步调试,做到可读性好,主要语句一定要写注释。
(4)硬件图用A3绘制,必须符合国家有关标准的规定。
(5)说明书要求文字通顺,简炼。
不少于5000字(不算源程序)。
(6)设计的系统必须进行实验演示。
1.2设计任务书
设计任务书需阐明:
课题的名称;课题的意义与概况;课题的具体要求与工作步骤;及进度安排;分组办法;各组应完成的任务与侧重;参考资料等情况。
设计任务书样例见附录二。
除书面下达外,指导教师还须作详细说明,以期真正组织好这一教学环节。
为此,在初始阶段可安排一定时间的讲课。
讲课时还应向学生交待:
课程设计(大型作业)教学环节的性质、与毕业设计的区别;设计说明书的写法与要求;最后考核的办法与评分依据。
伴随着课题的具体进展,教师应加强辅导与答疑。
课程设计宜挑选典型、成熟的课题。
因此,不必届届更新。
为了提高这一教学环节的教学质量,除设计任务书外,另可由有经验的教师编写好教学指导书,供指导教师参考,并注意逐届总结和修改完善。
1.3成绩考核
本教学环节,只是对学生设计能力的初步训练,每一(或每组)学生完成的任务常不够完整,学生由做习题、回答思考题过渡到面对全面、复杂的课题,独立完成的比重也还不高。
所以,在最后适当留出一些时间组织相互交流,常可使学生扩大视野、增加收获,有很好的效果;同时,也锻炼了学生正确、条理地讲述清楚技术问题的能力。
本教学环节单独进行成绩考核。
考核可以与上述的交流相结合,或再伴以适当提问;也可另外单独组织提问或笔试。
成绩的评定应兼顾到实验动手能力;也应考虑设计说明书的质量。
如时间与条件允许,应鼓励学生将自己的观点具体化,修改程序或重编程序,再通过调试,论证与完善自己的观点。
以这样的内容充实到设计说明书中,即使设计不太完整,也将使说明书生色不少。
在课程设计阶段,完成思考题这样的任务也可编组进行。
或由教师编组,或让思考相同题目、钻研相同内容、具有相同观点的学生自由聚合成组,或两者兼顾,教师可酌情引导与决定。
应提倡学生讨论、争论,培育良好的学术气氛,并组织好交流。
1.4设计时间安排和设计步骤
占用的时间以2周左右为宜。
可以集中2周,也可分散为每周一天,连续十周(半个学期)完成。
为了使安排紧凑,占用的时间勿超过两周;如教学计划十分饱满,则最短也不宜低于1周。
设计步骤建议如下:
1)系统工作原理:
叙述完成课题设计要求的工作原理
2)总体设计:
叙述软、硬件部分总体设计
3)硬件:
系统的组成,硬件的选用,芯片的特点、功能和编址
4)软件:
存储单元的分配,标志位的设置,由上自下的程序框图,子程序的设计及调试。
5)综合调试
6)整理设计说明书(设计说明书参考目录见附录二),准备答辩。
第二章单片机应用系统的设计步骤
单片机的应用系统随着用途不同,它们的硬件和软件结构差别很大,但系统设计的方法和步骤基本上是相同的。
一般包括总体设计、硬件设计、软件设计、仿真调试、固化程序、应用系统独立运行等步骤。
课程设计由于时间安排、学生水平、实验条件等诸方面的限制,仅要求学生完成仿真调试即可。
2.1总体设计
2.1.1明确任务
根据课题的要求确定系统的工作原理。
如电脑时钟的工作原理为:
每百分之一秒对计数一次,满100次秒加一,秒满60次分加一……;并在数码管上显示时、分秒当前值。
如果需要还要提出相应的技术指标。
如电脑时钟要求显示的最小单位为秒,还是百分之一秒;温度测量系统要求测量多少路?
测量精度是多少;收银机计算金额的范围多大,最小单位是否计分;交通灯控制系统测量车流量的最大频率是多少等。
2.1.2硬件和软件功能的划分
系统的硬件配置和软件设计是紧密地联系在一起的,且硬件和软件具有一定的互换性。
多用硬件完成一些功能,可以提高工作速度,但降低了系统的柔性。
若用软件替代某些硬件功能,可增加系统的柔性,但降低系统的工作速度。
因此,总体设计时,应综合考虑,合理划分硬件和软件的功能。
2.2硬件设计
根据总体设计要求,确定系统扩展与功能接口,设计出系统的电路原理图。
2.2.1系统扩展
必须首先组成最小系统,即由8031、地址锁存器和程序存储器组成。
根据课题要求,在此基础上进行扩展。
包括程序存储器扩展、数据存储器扩展、I/O口扩展(8155、8255、74LS164)、定时器/计数器扩展(8253)和中断控制器扩展(8259)等(若单片机内包括存储器,则可以不进行存储器扩展)。
如交通灯控制系统中要求控制四个方向的红、绿、黄灯共12个,因此,需扩展I/O口,可选用8255,也可利用串入并出移位寄存器74LS164扩展2个8位输出口的接口电路。
2.2.2功能接口
所谓接口是CPU与外界的连接部件,以实现CPU与外部设备的最佳耦合和匹配。
包括键盘、显示、A/D转换、D/A转换和打印机等。
根据课题要求,选用外设,并选用合适的外围接口芯片。
2.2.3系统的组成及统一编址
I/O端口是CPU与I/O设备直接通信的地址。
单片机系统对I/O端口是采用端口地址与存储器地址统一编址的方式,即存储器映射方式。
而编址技术又分线选法和译码法。
对8155、8255、0809、0832等芯片地址,学生在设计硬件时,应自行编址。
2.3软件设计
一个优秀的的系统的软件应具有下列特点:
①软件结构清晰、简捷、流程合理。
②各功能程序实现模块化、子程序化。
这样,既便于调试、链接,又方便移植、修改。
③程序存储区、数据存储区分配合理。
④运行状态实现标志化管理。
各个功能程序运行状态、运行结果以及运行要求都设置状态标志(一般用位寻址区的位)以便查询,程序的转移、运行、控制都可以通过状态标志条件来控制。
⑤实现全面软件抗干扰设计。
(由于条件有限,课程设计中不考虑。
)
软件设计一般步骤如下:
2.3.1系统定义
系统定义是在软件设计前,把软件承担的任务明确出来。
2.3.1.1各种数据类型的定义。
是定点数还是浮点数;是有符号数还是无符号数;是十六进制数还是BCD码。
如果一个参数的变化范围有限,就可以用定点数来表示,以简化程序设计和加快运行速度。
当参数的变化范围太宽时,只好采用浮点数来表示,如智能电桥中被测对象的变化范围达10个数量级(l~l0000μF),定点数是无法胜任的。
若要求数据的正负之分,则考虑定义有符号数。
对于自然数列,为显示方便,可以采用BCD码,如电脑时钟的时、分、秒。
2.3.1.2合理定义和分配存储空间、定义标志位。
资源分配的主要工作是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为分配给小时的存储单元的地址)。
2.3.2软件结构设计
软件设计有两种方法:
一种是自上而下,逐步细化;另一种是自下而上,先设计出每一个具体的模块(子程序),然后再慢慢扩大,最后组成一个系统。
两种方法各有优缺点。
自上而下的方法在前期看不到什么具体效果,对于初学者来说,心中总是不踏实。
而自下而上的方法一开始就有结果,每设计并测试好一个模块,就能看到实际的效果,给人一步一个足印的感觉,能树立信心。
我们建议两种方法结合运用。
主程序采用自上而下的方法,将它分成若干个功能相对独立的较小的程序模块。
然后再采用自下而上的方法,设计一个模块,调试一个模块,加入主程序调试;再进行下一个模块设计和调试。
所以在这一步骤就是设计主程序的框架。
2.3.3模块设计
2.3.3.1建立入口条件和出口条件,明确模块功能
根据问题的定义,描述出各个输入变量的存放地址(入口条件)和各个输出变量的存放地址(出口条件)。
例如输入量是经A/D转换后的8个数字量,存入在以30H为首的数据块中,输出量是这8个数字量的平均值,存放在40H中。
为方便起见,用R0存放输入量数据块首地址,用R1存放输出量地址。
则入口条件为R0,出口条件为R1。
2.3.3.2绘制程序框图
根据问题的定义,确定算法,并绘制程序框图。
注意必须确保程序框图的正确性。
比如在电脑时钟中,考虑输入“分”的数据的合理性,数据必须小于60,程序框图中就不能忽视等于60如何处理,这是初学者常犯的错误。
2.3.3.3编写程序
在确保程序框图的正确性的前提下,才能编写程序。
在编程时必须注意以下几点:
①一定要严格根据框图编程。
②一定要写注释。
③通过编译后,只表明语法没错,并不表明逻辑正确,一定要用不同的数据对模块进行测试。
完全符合预定结果,方可确认通过。
④将该模块加到主控模块进行测试,如果与预定结果不符,必须查找原因,进行修改、调试。
⑤必须注意随时保存调试通过的副本。
以便当新程序出现故障时,随时可返回前面的正确点重新开始。
2.3.4编写设计说明书
设计说明书的格式见附录二。
由于设计时间紧迫,读者不要在完成全部设计后再编写设计说明书。
而应在设计过程中逐步完成。
一开始不可能设计出满意的主程序框图。
因此,总体设计部分在完成全部设计任务后再写。
而硬件部分和软件部分可以在设计过程同步完成。
第三章单片机综合应用系统
3.1系统硬件原理图与说明
单片机综合应用系统电路原理图如图3-1所示,其中包括单片机最小系统、电源电路、键盘、显示器电路、流水灯电路、交通灯电路、串行接口电路、AD转换电路。
单片机最小系统部分如图3-2所示。
选用Phlips公司的P89V51RD2单片机作为控制核心,接上晶振与复位电路,四个八位并行口通过开关接输入/输出器件。
电源电路如图3-3所示。
四个八位并行口所接的上拉电阻图如图3-4所示,选用四个8*2k的排阻来实现。
键盘与扬声器电路如图3-5所示。
显示器电路如图3-6所示。
流水灯电路如图3-7所示。
交通灯电路如图3-8所示。
串行接口电路如图3-9所示。
AD转换电路如图3-10所示。
3.2硬件电路焊接注意事项
所有器件要看清位置再焊接,另外注意:
1、排阻要注意方向(做标志的是公共端)
2、发光二极管和整流二极管要分清阴极和阳极
3、三极管注意EBC三极
4、交通灯的分布要按要求焊接(分色)
5、蜂鸣器有方向
6、MAX232边上的两个电阻是跳线
焊接成功的综合应用系统照片如附录三所示。
图3-1单片机综合应用系统电路原理图
图3-2单片机最小系统
图3-3电源电路
图3-4上拉电阻
图3-5键盘与扬声器电路
图3-6显示器电路
图3-7流水灯电路
图3-8交通灯电路
图3-9串行接口电路
图3-10AD转换电路
3.3uVision2集成开发环境简介
uVision2IDE是一个基于Window的开发平台,包含一个高效的编辑器,一个项目管理器和一个MAKE工具。
uVision2支持所有的KEIL8051工具,包括C编译器,宏汇编器,连接/定位器,目标代码到HEX的转换器。
uVision2通过以下特性加速嵌入式系统的开发过程:
(1) 全功能的源代码编辑器。
(2) 器件库用来配置开发工具设置。
(3) 项目管理器用来创建和维护项目。
(4) 集成的MAKE工具可以汇编,编译和连接嵌入式应用。
(5) 所有开发工具的设置都是对话框形式的。
(6) 真正的源代码级的对CPU和外围器件的调试器。
(7) 高级GDI(AGDI)接口用来在目标硬件上进行软件调试,以及和Monitor-51进行通信。
(8) 与开发工具手册和器件数据手册和用户指南有直接的链接。
第四章单片机课程设计示例(交通灯控制)
4.1课题设计内容
对基于单片机的交通灯控制系统进行设计。
所设计的系统功能为:
以MCS-51系列单片机作为控制核心,在东西南北四个方向设置左拐、右拐、直行及行人4种通行指示灯,用计时器显示路口通行转换剩余时间。
在出现紧急情况时,可以由交警手动实现全路口车辆禁行而行人通行状态,在特种车辆如119、120通过路口时,系统可自动转为特种车辆放行,其他车辆禁止通行状态。
4.2设计方案论证
根据设计内容要求,提出了如下三种方案:
方案一:
采用40脚、片内带8kBFlashROM的AT89S52单片机作为控制核心,采用四组高亮红绿双色二极管作为东西南北四个路口的通行指示灯,采用四组3位LED数码管作为四个路口的通行倒计时显示器,LED显示采用动态扫描方式,以节省端口数。
方案一结构框图如图4-1所示,按照这种结构设计,单片机端口资源刚好满足要求。
图4-1方案一:
采用LED动态扫描的交通灯控制系统结构框图
方案二:
采用20脚、片内带2kBFlashROM的AT89C2051单片机作为控制器,左拐、右拐、直行及行人4种通行指示采用16×16点阵双色LED发光管,通行倒计时显示也采用16×16点阵LED发光管。
LED点阵的列驱动采用74LS595,以实现串行端口扩展,行译码采用4/16译码器74LS154,74LS154生成16条行选通信号线,每条行线上需要较大的驱动电流,选用大功率三极管作为驱动管。
方案二结构框图如图4-2所示,
方案三:
采用AT89C2051单片机作为控制器,左拐、右拐、直行、行人通行指示及通行倒计时指示采用单块LCD液晶点阵显示器。
三种方案的特点比较如下:
方案一具有电路简单,设计方便,显示亮度高,耗
图4-2方案二:
采用16×16点阵LED发光管设计的交通灯控制系统结构框图
电较少,可靠性高等特点;方案二的图案显示逼真,单片机占用端口资源少,缺点是需要大量的硬件,电路复杂,耗电量大,不太适合于模型制作;方案三设计占用单片机的端口最少,硬件也少,耗电也最少,虽然显示图案也很精美,但由于亮度太暗,晚上还得开背光灯,不够实用。
可见方案一优于其他两种方案,因此本设计选用方案一:
采用LED动态扫描的方案进行设计。
4.3系统硬件设计
采用LED动态扫描的交通灯控制系统电路原理图如图4-3所示系统由控制模块、通行灯显示模块、时间显示模块、电源模块四部分组成。
4.3.1控制模块
控制模块电路如图4-4所示。
主控制器采用AT89S52。
AT89S52的晶振及复位电路按典型电路设计,元器件参数如图4-4中所示,晶振频率选为12MHz。
P1口用于控制南北通行灯,P2口用于控制东西通行灯,P0口用于四组3位LED显示器的段码控制,P3.0~P3.2口用于3位LED显示器的位码控制。
对不同城市,准备采用两种倒计时方式:
对车流量较大的大城市采用120S倒计时,对中小城市采用60S倒计时。
两种倒计时采用P3.6上的S2开关进行转换。
在出现紧急情况时,由交警手动按S3实现全路口车辆禁行而行人通行状态。
现场特种车的到来信号可以采用红外线接收器采集,使用单片机的外部中断1响应特种车的通行要求。
此处采用S4按键模拟特种车的到来信号,按一下S4表示有特种车要通行,执行相应的中断服务程序。
由于AT89S52使用片内的8KB的Flash程序存储器,所以片内外程序存储器选择引脚
/VPP接+5V电源。
4.3.2通行灯显示模块
通行灯显示模块如图4-5所示(以西路口和北路口为例)。
通行灯指示采用高亮共阴红绿双色发光二极管,左拐、右拐、直行及行人各一个。
双色发光二极管的共阴极通过电阻接地,阳极接P1口或P2口(南北为P1口,东西为P2口),经74HC244控制。
当发光电流为6mA时,限流电阻按公式R=(5-1.8)/0.006计算,取标称值为510Ω。
由于通行时南北双向指示牌相同,东西双向指示牌相同,因此每个端口应具有12mA的驱动电流能力,在单片机的输出口接驱动电路74HC244,以保护单片机的输出端口。
4.3.3时间显示模块
通行剩余时间显示模块如图4-6所示(以北路口为例)。
图4-3采用LED动态扫描的交通灯控制系统电路原理图
路口通行剩余时间采用高亮红色7段共阳LED发光数码管显示。
如用单片机吸收电流驱动,列扫描驱动使用三级管,按每段6mA电流算,全显示字型“8”时,每个数码管需6mA×8=48mA。
由于时间显示每个路口相同,4组需192mA,因此设计中采用功率三极管S9012驱动。
由于单片机每位段码输出口需吸收24mA电流,因此在电路设计中也使用了驱动集成块74HC244。
4.3.4电源电路
电源电路如图4-7所示。
整个系统采用的电源电压只需+5V电压,将交流电经变压器变换为15V交流电,再用整流桥得到13.5V左右的直流电,采用不可调的3端稳压器件LM7805将电源稳定在5V直流输出。
图4-4控制模块原理图
图4-5通行灯输出显示模块
图4-6时间显示模块电路
图4-7电源电路图4-8AT89S52引脚功能
4.4系统软件设计
交通灯控制系统软件主要分为主程序、定时器中断服务子程序、特种车中断服务子程序三部分。
4.4.1主程序
主程序主要负责总体程序管理功能,包括初始化部分与人机交互设定部分。
由于采用动态扫描方式显示时间,因此主程序大部分时间是调用扫描显示程序。
主程序流程图如图4-9所示。
P3.7=0表示按下了自动/手动转换开关。
图4-9主程序流程图
初始化部分主要完成内存规划,定时器的工作模式、中断方式等的设定。
由于子程序调用较多,因此初始化时堆栈指针设于80H处。
定时器T0、T1设为16位定时器模式,定时时间为50mS,T0为秒计时用,T1为特种车通行秒计时用。
4.4.2定时器中断服务子程序
定时器中断服务子程序主要用于车辆与行人的通行指示,按照通行规则,红绿灯控制转换逻辑表如表4-1所示。
通行规则如下:
A.车辆南北直行、各路右拐,南北向行人通行。
南北向通行时间为1min(60S),各路右拐比直行滞后10S开放。
B.车辆南北向左拐、各路右拐,行人禁行。
通行时间为1min(60S)。
C.车辆东西直行、各路右拐,东西向行人通行。
东西向通行时间为1min(60S),各路右拐比直行滞后10S开放。
D.车辆东西向左拐、各路右拐,行人禁行。
通行时间为1min(60S)。
交通灯的4种通行规则,是以给控制红绿灯端口送控制码的方式实现的。
它的原理是,将按不同规则通行时的各路口的红绿灯亮灭情况转换为单片机端口控制码。
红绿灯指示功能通过T0定时中断服务程序实现。
表4-1路口通行方式控制码数据表
南
北
方
向
端口
控制功能
120-110S
110-70S
70-60S
60-10S
10-0S
P1.7
左拐红
1(亮)
1(亮)
1(亮)
0(暗)
0(暗)
P1.6
左拐绿
0(暗)
0(暗)
0(暗)
1(亮)
1/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 指导书