单片机课程设计指导书(4学分)

时间:2019-05-15 11:11:45下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机课程设计指导书(4学分)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机课程设计指导书(4学分)》。

第一篇:单片机课程设计指导书(4学分)

单片机应用

课程设计指导书

中原工学院信息商务学院信息工程系

2014年5月

课程名称:单片机应用课程设计 适用对象:自动化,电气,测控,机自 学分:4学分

先修课程:电子技术,单片机应用与接口技术

一、课程设计目的:

大学本科学生动手能力的培养和提高是大学本科教育的一个重要内容。如何让学生在学好基础知识的同时,迅速掌握应用技术,实验与课程设计环节起着非常重要的作用。本课程设计的目的,是让电子信息类(自动化,电气,测控)及相关专业学生通过课程设计,首先建立起单片机应用系统的概念,根据实际的系统设计要求,掌握初步的单片机系统设计方法,从硬件系统和软件系统设计两个方面得到实际的提高,为今后的毕业设计和就业打下良好的基础。

二、课程设计基本要求

1、全体学生集中,介绍和说明本次综合课程设计的目的、实施方法和要完成的任务内容;

2、组织学生购买或印刷本次综合课程设计相关参考资料;

3、介绍51单片机相关知识,给出单片机最小系统,引导学生进行扩展设计和应用;

4、以具体任务为主线和示例,并以一边讲解一边实践操作的方式,引导学生学习和掌握单片机高级开发语言C51和单片机仿真软件PROTEUS的基本使用方法。以PROTEUS仿真建立虚拟硬件运行为主,要求学生完成规定的公共学习项目。

5、安排学生根据自己的兴趣和意愿进行选题,并据此分好各个选题组。在学生培训的同时,指导学生开始设计自己所选题目的原理图和印制板图。

6、运用51系列单片机,根据设计要求用Protel绘制系统电路图;

7、编制系统程序流程图、根据系统程序流程图编制C语言程序;

8、运用仿真软件proteus进行运行调试;

9、焊接制作电路板,硬件焊接3-4人一组;

10、硬件电路调试;

11、认真编写课程设计报告,课程设计报告的书写格式见附录。

三、课程设计题目安排:

设计题目一:DS18B20数字温度计

【题目描述及要求】

设计一个基于单片机的DS18B20数字温度计。课程设计要求:

1.9V供电;

2.温度采集采用DS18B20; 3.4位LED显示; 4.4个按键;

5.设计温度控制器原理图,学习用PROTEL画出该原理图,并用proteus进行

仿真;设计和绘制软件流程图,用C语言进行程序编写;焊接硬件电路,进行调试。

设计题目二:基于单片机的工业产品自动计数器

【题目描述及要求】

掌握光电传感器的使用方法;掌握利用单片机制作一种简单工业生产线计数

系统。设计要求:

1、数码管可以显示产品个数(0-99),自由设定产品报警个数(比如 产品数目是8的个数时,发出报警(蜂鸣器响)。

2、独立设计电路,应包括单片机小系统、红外光电开关、数码管显示部分。

8),当

四、时间安排计划:

时间安排:共计4周1、硬件原理图、PCB检查时间:第一周周四/第三周周四;

2、proteus仿真结果检查时间:第二周周四/第四周周三;

3、设计报告上交时间:第四周周五;

4、检查地点:12285、报告上交地点:信息工程系办公室3423;

五、评分标准

1.设计方案新颖,有独到之处,且可实现性强; 2.逻辑严密,分析透彻,计算到位。

3.实验过程中认真投入,对老师提问的问题能够流利回答。4.最后验证效果良好。

5.设计论文编写完整、条理分明、排版工整、符合格式要求。

课程设计应由学生本人独立完成,严禁抄袭(对自己的设计不熟悉,读不懂设计中的关键功能部分,对设计的结构不清楚,对设计的功能不了解等),一经验收教师认定其抄袭行为,成绩即为不及格。

附录 课程设计报告书写格式要求

为了培养学生严谨的工作态度,锻炼学生编写文档的能力,要求实验报告包括下面主要部分:

1、目录

2、课程设计功能描述

3、课程设计分析设计

4、绘制硬件电路图(用Protel软件)并对硬件电路进行说明;

5、绘制软件流程图(用VISIO软件)并对软件流程进行说明;

6、程序的源代码清单;

7、上机调试运行结果及分析;

8、课程设计经验教训总结,设计心得体会;

9、参考文献;

注意:

1、课程设计报告不得少于30页。

2、课程设计报告封面应该按照下面的要求。

第二篇:单片机课程设计指导书

单片机课程设计指导书

一、设计内容及步骤

1、方案设计

先要明确设计任务的要求,根据设计任务及要求,确定设计所要实现的具体功能,例如“流水灯”具体怎么“流”、有几种“花样”、如何操作、等等。这是一项见仁见智的工作,没有统一的要求,各人可根据自己的理解自行设计。

2、硬件电路设计

设计能使单片机工作并实现所需功能的基本硬件电路,包括选择和确定元器件的规格、参数。

3、软件程序设计

单片机由于内存小、速度低,因此一般不用高级语言编程而多用汇编语言编程,这样软件程序和硬件电路就要有严格的对应关系。单片机电路的功能主要是由软件程序实现的,因此硬件电路比较简单而软件程序相对复杂,软件程序设计是整个课程设计的难点和重点。

4、烧写调试程序

由于软件程序一般都比较复杂,设计时难免会有考虑不周的问题,或是有一些疏漏,而这些问题或疏漏仅凭在纸上的分析是很难发现的,因此软件程序设计好后还要经过运行调试,才能知道所设计的软件程序能否实现之前确定的功能。这个过程往往要经过多次反复才能最终达到目的。一般先用计算机仿真进行调试,成功后再把程序写到单片机中并制作实际电路进行验证。

二、设计方法及要求

1、方案设计

首先要完整、准确地理解设计任务(虽然课程设计只是做个电路模型进行一下验证演示,但设计时要假象是设计一个实用的产品),然后通过必要的调研、分析,综合考虑各方面的因素,定出一个具体的设计目标。

例如,可先把自己当作用户,从用户的角度考虑这个“产品”应该具备哪些功能、怎样操作使用比较方便,同时又安全可靠;再从厂家的角度,结合实际的客观条件,考虑怎样既能满足用户的基本需求,又能最大限度地降低生产成本。

因此设计目标不要追求尽善尽美,但也不能过于简单,要从实际出发,用足用够给定的硬件条件,充分开发可以用软件实现的功能以使整体功能最大化。

2、硬件设计

硬件设计包括确定电路的结构组成、绘制电气原理图、确定元器件的规格参数。

由于是课程设计,多数题目采用最小系统即可,如果要求高一点,还要考虑抗干扰措施、电路的功耗、数据的断电保护、元器件的来源和性价比等。

最小系统基本上是一种固定的模式,需要设计的就是合理分配单片机的资源,分配、确定输入输出端口用途,这没有固定的模式,只要符合单片机的端口功能和性能就行。例如,输入输出应优先采用P1口,还要注意各口作输出口时带负载的能力,即高电平时所能输出的最大电流,或低电平时允许灌入的最大电流,以及高阻态时所能承受的最高电压。原则上输出口所接负载的电流消耗不能超过输出口允许进出的最大电流值,最好是让输出口通过缓冲驱动器(例如三极管)带负载而不是直接带负载,以免造成单片机的损坏。

硬件结构应结和应用软件一并考虑,若某种功能既可以用硬件实现,也可以用软件实现,应优先选择用软件实现,以尽可能地简化硬件结构。

3、软件设计

软件设计要结合功能设计和硬件设计进行,或者说在做功能设计和硬件设计时就要对软件设计有所考虑,即那些功能应由软件完成。

设计软件不要一来就急于用指令写程序,要先做总体规划设计,明确软件要实现的功能是什么,分那些步骤、按什么顺序来实现设计的功能,画出程序的流程图。程序的流程也就是单片机的工作过程,从通电工作开始,程序的第一步做什么,后面又做什么„„;怎样结束,等等。由于单片机是靠程序进行工作的,程序怎么规定它就怎么做,程序没有规定它就无法工作,很死板。因此设计程序流程时要作仔细、周全的考虑,只要出现所设计的“产品”在正常操作使用过程中可能出现的任何一种情况,都要让单片机知道该如何应对处理,否则就会出现死机无法工作的情况。

程序的流程是编写程序的纲领、指导、前提,有了正确的程序流程,就容易编写出正确的程序,单片机也才能实现所设计的功能。俗话说,磨刀不误砍柴工,所以构思、设计程序的流程要给予高度的重视,要花大的气力,有时一次两次难以考虑周全,可能需要反反复复地进行多次。

如果整个流程实现一个总体功能,则流程的每一分支或步骤即可看成是一个子功能。对于比较复杂的功能,则子功能下还可再分解出孙功能,即总体功能画一个流程图,再针对较大的子功能画细致的流程图。总之流程图画的越细致,程序越容易编写。

流程设计好后,也不要就急于写具体的程序,因为那样写程序缺乏条理,很容易出错,而且可读性差,难以发现和纠正错误。因此写程序前还应对程序的编写结构进行认真的规划设计。

程序的结构总体上可分为两大部分,即主程序和子程序(或中断程序)。主程序可按程序的功能分块、分段进行编写,每块、每段完成一个特定的功能。如果某一块或段在主程序中需多次出现,应把它作为子程序,以减少整个程序的长度。

程序设计的重点在于搭建程序的框架,框架搭成,工作就完成了大半,剩下的就是填充框架。填充框架不一定要自己去一条一条地想该用什么指令,可根据某一块或某一段程序的功能,寻找具有相同功能的现成的程序块、段去填充,对于一些“通用”的程序段,例如按键消抖程序、延时程序等,应优先采用成熟的“标准”程序,这样既可减少工作量,又可减少出错。事实上,程序设计大多数时候就是用一些零散、成熟的程序快(段)拼凑成一个自己所需的完整程序。

程序运行中,可能需要在不同的功能模块间进行跳转,这就需要在跳转的入口处加上标号。为便于阅读,在符合指令的语法规则的前提下,标号应能简要地反映该段程序的功能,例如采取常见的英文缩写或汉语拼音缩写(通常是缩写单字拼音的首字母)。

运用跳转指令时要注意避免进入死循环。若不可避免进入死循环,或有意要进入死循环,除复位外,最好能有其他退出死循环的措施。

单片机程序的运行离不开单片机的内存,因此编写程序前还应充分了解所用单片机的内存情况,尤其是要搞清楚那些具有特定用途的特殊内存的用途、位置及长度,同时还要搞清楚所用程序指令(包括常数表格)以及依程序流程产生的各项数据要占用的存储空间,编写程序前,要合理地分配利用内存空间,注意不要占用特殊内存。

最后,为了便于以后(以及其他人)对程序的阅读、分析,所编写的程序应该条理清楚,程序各块、段、条的功能作用明确,在一些重要、关键或用意不是很明确的指令后最好加以注释。

三、设计报告的内容及要求

1、方案设计说明

从总体上概括介绍所设计项目的构成、功能及操作使用方法,详细说明该方案是怎么设计出来的。

2、硬件设计说明

画出完整、规范的电路图,说明单片机I/O口分配使用的情况以及为何这样分配使用,分析介绍电路的工作原理,介绍电路中主要元器件在电路中的作用以及他们的规格或参数是怎样确定的。

3、软件设计说明

1)说明软件设计的思路,介绍软件的总体功能,画出完整、规范的程序的流程图;

2)介绍程序的总体框架结构,即整个程序由哪些模块构成,各模块的功

能是什么,其中又包含哪些子功能,等等,从总体上说明整个程序的执行及工作过程;

3)以一些重要或关键的程序段为例,说明该段程序的功能、作用和编写

思路;

4)列出完整的程序清单,重要、关键或难以理解用意的模块、语句要加

以注释;

4、制作调试说明

介绍制作调试的过程、结果,以及在过程中出现的问题和解决问题的方法。

5、操作使用说明

介绍所设计“产品”的操作及使用方法。

6、总结说明

介绍本次课程设计的收获、体会或经验教训,要求客观、具体。

 报告不要盲目追求篇幅,只要能说清楚问题即可,不必大量拷贝或摘抄资

料文献。正文采用宋体四号字,若用手写,要求字迹工整。

四、进度安排

本课程设计共两周的时间,按10个工作日算,进度安排如下:

 明确设计任务,调研、查阅资料,构思、确定总体方案,用两天时间;  设计硬件电路,设计软件功能,画程序流程图,用一天时间;

 设计程序结构,编写程序,用两天时间;

 通过计算机仿真验证调试程序,用一天时间;

 制作硬件电路,用一天时间;

 通过硬件电路验证调试程序,用一天时间;

 撰写设计报告,验收设计成果,用两天时间。

五、成绩评定

及格标准如下:

1、按期完成设计并提交设计报告和交验根据设计制作的实物,出勤良好;

2、报告的内容、格式符合要求,能反映设计过程的实际情况,设计制作的实物的功能和性能基本能达到设计任务的要求。

 在及格的基础上,根据设计成果的质量酌情评定为优秀、良好或中等。 不交设计报告或报告的内容大部分是抄来的,以及不交验设计制作的实物

或用别人的实物来交验,出勤很少,将判为不及格。

第三篇:单片机课程设计指导书(学生)

单片机课程设计指导

电气与信息工程学院实验室

一、设计任务:

1.1 设计一个单片机最小系统,用仿真软件设计,要求有5V电

源,8个LED灯,12MHZ晶振,完成流水灯的仿真。1.2外部脉冲自动计数,自动显示。

1.2.1设计一个255计数器:0-255计数,计满后自动清0,重新计数(在数码管中显示)。

1.2.2设计一个50000计数器:0-50000计数,计满后自动清0,重新计数(在数码管中显示)。

1.3 设计一个出租车计费系统:

起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)

1.4 单片机最小系统实训板的设计。(要求采用PROTEL完成单片机最小系统的硬件电路设计)

二.课程安排:

17周完成设计任务(1.1-1.2)的程序设计以及软件仿真 18周完成设计任务(1.3-1.4)以及所有设计任务的硬件实现

三、单片机最小系统硬件资源介绍:

※89S51单片机; ※6位共阳极数码管;

※段码驱动器74HC573,位选译码器74HC138; ※4路独立式按键; ※外部晶振电路;

※ISP下载接口(In system program,在系统编程); ※DC+5V电源试配器(选配); ※ISP下载线(选配)。

单片机最小系统实训板硬件资源分布见图1元件布局图和图2电路原理图:其中P1为外部电源输入座(DC+5V),S8为电源最小系统的电源开关,E1和C3为电源滤波,去耦电容。D1为系统电源指示灯。J2为ISP下载接口,S7系统复位按键。CRY1,C1,C2为外部时针电路。IC1为89S51(DIP-40),左上角为第一脚。PRE1,PRE2。为上拉排阻(阻值4.7k—10k)。J5,J9,J6,J10分别对应单片机的P0,P1,P2,P3口。便于二次开发。6路共阳极数码管动态显示电路,P0口通过74HC573(起驱动和隔离作用,让电流通过74CH573流入公共地),来控制数码管的8路段码,P20-P22通过74HC138译码器(使用其中的6

路)控制数码管的公共端(中间还有三极管做驱动器)。这样设计的理由:为了保证该单片机最小系统的二次开发的资源充足和合理性。如果单只做一个动态显示电路,可以省去74HC573,和74HC138。

图1 元件布局图

图2 单片机最小系统原理图

四、设计思路:

1、255计数:255可用8位二进制数表示,故本设计可直接采用可以重

装载的计数器T1模式二进行计数。然后对TL1的内容进行相应的二进制---十进制转换:首先TL1的内容除以64H,所的商就是十进制的百位,然后用余数除以0AH,所得的商就是十进制数的十位,余数即相应的十进制的个位。接着将相应的十进制数进行译码,并在LED数码管上显示出来。每来一个脉冲其显示的结果加一,直加至255然后T1重新开始计数。

图3 255计数程序流程图2、0-50000计数:

思路1:由于DIV AB指令中A、B均为8位寄存器,因此255二进制转十进

制计数的方法不能用于0-50000的循环计数。可根据TH0(T0计数)或TH1(T1计数)中的内容为多少进行256累加,因为TH0或TH1中每一个二进制‘1’代表十进制的256,再和TL0或TL1按前一步二转十的方法转换得到的百、十、个相加,即可完成16位二进制转十进制。

思路2:置TL0或TL1的内容为0FFH,这样每来一个计数脉冲,TL0或TL1的内容就会溢出回零,只要通过指令判断TL0或TL1的内容是否为零,为零则70H(个位)加1,70H(个位)逢9进一,71H(十位)加1,十位个位为99进一,72H(百位)加1,以此类推,可实现0-999999(只有6个数码管)的循环计数。

3、出租车计费:

在上步的基础上,每1个脉冲当作1公里(可自己设置几个脉冲1公里),5个脉冲,数码管显示05.0 005,前3位金额,后3位为里程,超过5个脉冲,里程加1,金额加0.8元。难点主要在于计费金额的显示,可将初值置为50,其中十位调用带点的字型码,即显示05.0,超过5个脉冲,里程加1,金额加8,由于十位是带有小数点,即可实现金额加0.8元。

五、设计报告要求:

1.要求完成所有的设计任务,并且将仿真的效果截图贴在设计报告中。2.写出所有的程序,关键部分要求写出注释 3.写不少于1000字的设计心得。

4.要求统一风格的封面,封面上注明班级,姓名,学号,以及湖南工业大学的标示。

第四篇:单片机原理及接口技术课程设计指导书

长 沙学院

课程设计指导书(部)

级单片机原理及接口技术机电工程系机械设计制造及其自动化

年月日 课程设计名称系专班

课程名称:《单片机原理及接口技术》课程设计

课程编号:JX010146

主 笔 人:程立志

主 审 人:许焰

1、课程设计的目的通过《单片机原理及接口技术》课程设计,使学生初步具备以下能力:

1.1、加深对《单片机原理及接口技术》所学知识的理解;

1.2、掌握单片机内部资源的使用方法和步骤;

1.3、掌握单片机应用的环节和步骤;

1.4、进一步熟悉在proteus软件里进行硬件设计和编程调试;

1.5、能使用汇编语言或C语言编程环境Keil编写程序、编译、仿真和修改程序;

1.6、能初步判断分析单片机系统的简单故障;

1.7、能对自己的实践工作进行总结,具备编写实习报告书能力;

1.8、初步具备辩证思维和逻辑分析的能力;

1.9、培养学生热爱科学,实事求是的学风和创新意识、精神,合作精神。

2、课程设计的题目

单片机的应用领域非常广泛,就其基本的控制原理和实现方法无外乎是对一些常见的如:距离或位移(米)、重量(千克)、时间(秒)、电流或电压(安培)、温度(开尔文)、等物理量进行测量控制,鉴于单片机当前的应用状态和学员对其应掌握的程度,本次课程设计题目的设定主要是以贴近现实生活为主,提出了一些在教学、工业控制和科研等领域基本常见的课题,其目的是要让学员们拓宽视野,着重体会其学习基本的原理及控制编程基础的重要性,以期达到培养学员们的兴趣和今后再学习的愿望。

2.1、;LED流水灯控制设计:

拓展:广告灯的左移右移控制设计;汽车尾灯模拟控制设计;城市景观灯的控制设计;…

2.2、电子日历、数字钟设计:

拓展:智能晨起系统控制设计;智能全自动洗衣机控制设计;秒表/时钟计时器控制设计;…

2.3、数字温度计的控制设计:

拓展:新生儿恒温箱监控系统设计;多点温度的控制设计;传导系数测量仪的应用设计;…

2.4、16×16 点阵LED汉字显示设计:

拓展:机场、车站、码头、商场、银行、政务等公共服务场所信息指示牌设计;…

2.5、1602液晶显示屏显示设计:

拓展:机场、车站、码头、商场、银行、政务等公共服务场所信息指示牌设计;…

2.6、128×64点阵LED汉字显示设计:

拓展:机场、车站、码头、商场、银行、政务等公共服务场所信息指示牌设计;…

2.7、直流电机控制设计:

拓展:传送带单控与顺序控制设计;电子装配生产线部件移动控制设计;多层电梯控制设计;…

2.8、步进电机控制设计:

拓展:机械手动作行程控制设计;安防监控自动寻迹云台的控制设计;条码打印机的控制设计;…

2.9、AD/DA转换控制设计:

拓展:简易数字电压表设计;简易数字压力计设计;吊车悬臂角度的控制设计;超声波测距器的设计…

2.10、逻辑算法控制设计:

拓展:抢答器控制设计;交通灯设计;多层电梯控制设计;4×4 矩阵键盘计算器设计…

2.11、遥控设计:

拓展:无线电遥控升降系统控制设计、红外遥控升降系统控制设计、红外遥控多路开关控制设计;…

2.12、PWM方式控制设计:

拓展:直流电机调速控制设计;城市立交桥景观带的控制设计;…

2.14、电子琴设计;

拓展:报警发生器控制设计;函数信号发生器的设计;

3、课程设计内容(主要技术关键的分析、解决思路和方案比较等)

要求学生根据所选课题,结合实际工程应用情况参照以下几例给出的具体实现功能和控制参数完成课题的设计任务书。

3.1、简易数字电压表的设计

利用MCS-51系列单片机设计简易数字电压表测量0~5v的8路输入电压值,并在四位LED数码管上轮流显示或单路选择显示。测量最小分辨率为0.019V,测量误差约为±0.02V

3.2、秒表/时钟计时器的设计

秒表/时钟计时器要求使用六位LED数码显示管显示时、分、秒,以24(小时)计时方式。使用按键开关可实现时分调整、秒表/时钟功能转换功能。

3.3、电子日历的设计

电子日历上能显示阳历年,月,日,星期,时,分,秒和阴历年、月,使用按键开关可实现调整。

3.4、超声波测距器的设计

设计一个超声波测距器,可以应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。要求测量范围在0.10-4.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。

3.5、DS18B20数字温度计的设计

利用89C51单片机、DS18B20温度传感器,制作数字温度计。要求测温范围为-50~110℃,精度误差在0.1℃以内,LED数码管直接显示测量温度值。

3.6、1602液晶显示屏设计

设计一个室内用1602液晶显示屏,要求在目测条件下LED显示屏个点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。

3.7、六路数字抢答器的设计

1)、抢答器同时供6名选手或6个代表队比赛,分别用6个按钮S0 ~ S5表示。

2)、设置一个系统清除和抢答控制开关S,该开关由主持人控制。

3)、抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

4)、抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。

5)、参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

6)、如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

3.8、机械手动作行程控制

1)、设“单步”、“单程”、“往返”、“连续”4个按钮及4个键值灯;

2)、设“左上”、“左下”、“右上”、“右下”4个电磁位置开关及4个指示灯。

3)、设“左上”为初始位置,根据不同的选择按钮,驱动相应的(3台)直流电机正反转,完成相应的行程动作。

3.9、三层楼电梯呼叫控制

1)、第一层只设“上”、第二层设“上”、“下”、第三层只设“下”共四个按钮;

2)、每层都设一个电磁位置开关,轿厢上下指示灯;共享一台直流电机正反转。

3)、电梯轿厢内设“1”、“2”、“3”三个楼层键及键位指示灯,轿厢上下指示灯,开关门指示灯,电梯根据当前层位和楼层选择按钮的先后顺序,决定向上或向下,电机以正反转时延2秒完成层间动作。

3.10、16×16 点阵LED汉字显示设计。

1)、点阵显示汉字“长沙大学机电系”;

2)、实现自定义滚动效果,如左滚屏,有滚屏,上、下卷帘等。

单片机的应用系统随着用途不同,它们的硬件和软件结构差别很大,但系统设计的方法和步骤基本上是相同的。一般包括总体设计、硬件设计、软件设计、仿真调试、固化程序、应用系统独立运行等步骤。

课程设计由于时间安排、学生水平、实验条件等诸方面的限制,仅要求学生完成仿真调试即可,同时根据实际情况,在试验箱上调试通过。

由于设计时间紧迫,不要在完成全部设计后再编写设计说明书。而应在设计过程中逐步完成。一开始不可能设计出满意的主程序框图。因此,总体设计部分在完成全部设计任务后再写。而硬件部分和软件部分可以在设计过程同步完成。

4、注意事项

4.1、充分调研相关文献,针对课题需要进行系统详细的论证,不能盲目生搬硬套,严谨抄袭;

4.2、以小组为单位(原则上是3人一组),小组内成员分工明确,各司其职,按照所分配的任务在规定的时间内合理的完成好。

4.3、课程设计报告要包括:设计功能要求,设计控制参数,硬件电路设计(元件选型,硬件电路布局),系统程序的设计(注意总结出现的问题、疑难以及解决的方法和思路,对以后的借鉴作用等),调试及性能分析,课程设计小结、控制源程序清单等;图包括设计方案框图、硬件原理图(要求有描述)、程序流程图等。

第五篇:单片机课程设计

设计题目: 单片机课程设计

学生姓名:

院: 电气与信息工程学院

级: 电子111班 指导教师:

日 期: 2014年9月20日

一、课程设计目的:

了解电子元器件的功能与原理,掌握单片机的结构和原理,学会使用单片机应用开发技术的相关软件如 keill、STC_ISP_V394等,能够使用c语言的语言编程简单的功能。

二、设计的思想:

利用所提供的单片机和开发板的原理图用keill软件编程程序以实现一些功能。然后用STC_ISP_V394.exe软件将编译完全正确的程序生成的hxe文件下载到开发板上,再调试编译的程序能否实现其所设计的功能。

1、对蜂鸣器的了解:

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,它由振荡器、电磁线圈、磁铁、振动膜片及外壳组成,接通电源后,振荡器产生的音频信号由电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性的振动发声。

2、设计:

我们所使用的开发板实物图如图一,单片机对右上角蜂鸣器的控制是加入三极管接入vcc,单片机的第22引脚和负极上,以此来控制蜂鸣器工作。单片机我们选择STC89C52RC+1602液晶来实现对蜂鸣器的控制及显示所需要的信息。

图一 调试说明:

首先用Keil软件创建一个工程,将程序源代码输入并编译生成单片可执行的.hex文件。其次,打开单片机实践板的电源,接好串口线,用STC-ISP烧录软件,将.hex文件烧录入单片机中。程序下载完毕后,单片机会自动执行程序功能。最后,观察程序功能的执行情况,看是否达到了设计要求。

如果单片机实践板硬件电路的执行结果与设计结果一致,则说明设计过程及流程没有问题,完全符合设计要求。否则,先检查单片机实践板的硬件电路是否完好,是否有断点、漏焊、虚焊以及元器件是否完好等情况,排除故障重新连接后重新进行调试。如果仍然无法正

常实现,则说明程序编写有误,需要认真检查程序流程,然后经过反复的修改与调试排除故障,实现设计要求的各项功能。编译和烧写该程序到单片机:

(1)用Keil编译上面的代码,并设置产生16进制代码文件*.hex.(2)用专用下载线,连接好实验板和电脑串口(DB9)(2)运行hex文件烧写软件STC_ISP_V394.exe

选单片机的型号,并打开编译产生好的hex文件

点击下载,给开发板上电。

3、实现的功能:使用单片机将歌曲《八月桂花》的调子通过蜂鸣器播放出来,用1602液晶将想要表达的信息有步骤地显示在液晶显示屏上,并且调子与显示内容可以任意通过修改的程序烧录到单片机内,实现设计产品的使用性与灵活性。

三、实验程序:

/************************************************************************

[主题] C51音乐程序《八月桂花》

[功能]

通过单片机演奏音乐,显示一些内容

/**********************************************************************/

#include

#include

//本例采用89C52, 晶振为11.0592MHZ

//关于如何编制音乐代码, 其实十分简单,各位可以看以下代码.//频率常数即音乐术语中的音调,而节拍常数即音乐术语中的多少拍;

//所以拿出谱子, 试探编吧!

unsigned char i=0;sbit Beep = P2^7;

unsigned char p,m;

//m为频率常数变量

unsigned char n=0;//n为节拍常数变量

unsigned char code music_tab[] ={

0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10,0x1C, 0x10, 0x18 , 0x40,0x1C, 0x20, 0x20 , 0x20,0x1C, 0x20, 0x18 , 0x20,0x20, 0x80, 0xFF , 0x20,0x30, 0x1C, 0x10 , 0x18,0x20, 0x15, 0x20 , 0x1C,0x20, 0x20, 0x20 , 0x26,0x40, 0x20, 0x20 , 0x2B,0x20, 0x26, 0x20 , 0x20,0x20, 0x30, 0x80 , 0xFF,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x20, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x80,0x20, 0x30, 0x1C , 0x10,0x20, 0x10, 0x1C , 0x10,0x20, 0x20, 0x26 , 0x20,0x2B, 0x20, 0x30 , 0x20,0x2B, 0x40, 0x20 , 0x15,0x1F, 0x05, 0x20 , 0x10,0x1C, 0x10, 0x20 , 0x20,0x26, 0x20, 0x2B , 0x20,0x30, 0x20, 0x2B , 0x40,0x20, 0x30, 0x1C , 0x10,0x18, 0x20, 0x15 , 0x20,0x1C, 0x20, 0x20 , 0x20,0x26, 0x40, 0x20 , 0x20,0x2B, 0x20, 0x26 , 0x20,0x20, 0x20, 0x30 , 0x30,0x20, 0x30, 0x1C , 0x10,0x18, 0x40, 0x1C , 0x20,0x20, 0x20, 0x26 , 0x40,0x13, 0x60, 0x18 , 0x20,0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00

};

void int0()interrupt 1

//采用中断0 控制节拍

{ TH0=0xd8;

TL0=0xef;

n--;

}

void delay(unsigned char m)

//控制频率延时

{

unsigned i=3*m;

while(--i);

}

void delayms(unsigned char a)//豪秒延时子程序

{

while(--a);

//采用while(--a)不要采用while(a--);各位可编译一下看看汇编结果就知道了!

}

typedef unsigned char BYTE;typedef bit BOOL;

sbit LCD_RS = P2^0;

sbit LCD_RW = P2^1;sbit LCD_EP = P2^2;

BYTE code dis1[] = {“

WLCOME TO

”};BYTE code dis2[] = {“

DanPianJi ”};BYTE code dis3[] = {“

111iZnaiD

”};BYTE code dis4[] = {“

eiXeiX ”};

delays(int ms){

// 延时子程序 int i;while(ms--){

for(i = 0;i< 250;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

} } }

BOOL lcd_bz(){

// 测试LCD忙碌状态 BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result =(BOOL)(P0 & 0x80);LCD_EP = 0;return result;}

lcd_wcmd(BYTE cmd){

while(lcd_bz());LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;

}

lcd_pos(BYTE pos){

lcd_wcmd(pos | 0x80);

// 写入指令数据到LCD //设定显示位置

}

lcd_wdat(BYTE dat)

{

//写入字符显示数据到LCD while(lcd_bz());LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0;}

lcd_init(){

lcd_wcmd(0x38);

delays(1);lcd_wcmd(0x0c);

delays(1);lcd_wcmd(0x06);

delays(1);lcd_wcmd(0x01);

delays(1);}

void main()

{

BYTE j;

lcd_init();

delays(10);

//LCD初始化设定

//16*2显示,5*7点阵,8位数据//显示开,关光标 //移动光标 //清除LCD的显示内容

// 初始化LCD

lcd_wcmd(0x06);

//向右移动光标

lcd_pos(0);

//设置显示位置为第一行的第1个字符

j = 0;

while(dis1[ j ]!= '')

{

//显示字符“Welcome TO”

lcd_wdat(dis1[ j ]);

j++;

delays(30);

//控制两字之间显示速度

}

lcd_pos(0x40);

j = 0;

while(dis2[ j ]!= '')

{

lcd_wdat(dis2[ j ]);

j++;

delays(30);

}

delays(800);

lcd_wcmd(0x01);

delays(1);

lcd_wcmd(0x04);

lcd_pos(15);

j = 0;

while(dis3[ j ]!= '')

{

lcd_wdat(dis3[ j ]);

j++;

delays(30);

}

lcd_pos(0x4F);

j= 0;

while(dis4[ j ]!= '')

{

lcd_wdat(dis4[ j ]);

j++;

delays(30);

}

delays(800);

//设置显示位置为第二行第1个字符 //显示字符“ DanPianJi ”

//控制两字之间显示速度

//控制停留时间

//清除LCD的显示内容

//向左移动光标

//设置显示位置为第一行的第16个字符

//显示字符“DianZi111”

//控制两字之间显示速度

//设置显示位置为第二行的第16个字符//显示字符“ XieXie ”

//控制两字之间显示速度

//控制停留时间

TMOD&=0x0f;

TMOD|=0x01;

TH0=0xd8;TL0=0xef;

IE=0x82;

play:

while(1)

{

a: p=music_tab[i];

if(p==0x00)

{ i=0, delayms(1000);goto play;}

//如果碰到结束符,延时1秒,回到开始再来一遍

else if(p==0xff){ i=i+1;delayms(100),TR0=0;goto a;} //若碰到休止符,延时100ms,继续取下一音符

else

{m=music_tab[i++], n=music_tab[i++];} //取频率常数 和 节拍常数

TR0=1;

//开定时器1

while(n!=0)Beep=~Beep,delay(m);

//等待节拍完成, 通过P1口输出音频(可多声道哦!)

TR0=0;

//关定时器1

}

}

四、电路图的protue仿真

五、单片机课程设计心得体会:

这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践

关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

下载单片机课程设计指导书(4学分)word格式文档
下载单片机课程设计指导书(4学分).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机课程设计

    基于单片机的火灾智能报警控制系统的设计前言在各种灾害中,火灾是最经常、最普通地威胁公众安全和社会发展的灾害之一。人类能够对火进行利用和控制,是文明进步的一个重要标志......

    单片机课程设计

    单片机课程设计 课题: 简易电子琴设计 学院:电气与信息工程学院 专业:电子信息工程 姓名:李琳琳 学号:093411106 指导老师:田巍 河南城建学院 2014年01 月01 日......

    单片机课程设计

    单片机课程设计 --------- 机电汽车工程学院 同组成员:(机091-1) 姓名(学号):......

    单片机课程设计

    单片机课程设计_报警器 报警器 ORG 0010H START:MOV DPTR,#TAB CLR P3.1 SETB P1 MOV A,P1 CPL A ANL A,#0F0H SWAP A MOV R0,A LCALL DISP1 MOV A,P1 CPL A ANL A,#0FH MOV......

    单片机课程设计

    单片机课程设计报告 专业:电气工程及其自动化 班级:电0901-4班 姓名:代红新 学号:20092444 指导老师:石彦辉 电气与电子工程学院 2012/6/22 一、 设计题目:电子时钟 二、 设计要求......

    单片机课程设计

    武汉理工大学单片机实训报告 第一章 绪论 ...............................................................................................................................

    单片机课程设计

    镇江高等专科学校课程设计1 项目要求 基于AT89S51单片机的密码锁设计,具体功能如下: (1)总共可以设置8位密码,每位密码值范围为1~8。 (2)用户可自行设定和修改密码。 (3)按每个......

    单片机课程设计

    中北大学单片机原理及接口技术课程设计说明书 1 绪论 电子钟已成为人们日常生活中必不可少的物品,广泛用于个人、家庭以及车站、影院、办公室等公共场所,给人们的生活、学习、......