课程设计报告样例.docx

上传人:b****4 文档编号:24924886 上传时间:2023-06-02 格式:DOCX 页数:27 大小:417.75KB
下载 相关 举报
课程设计报告样例.docx_第1页
第1页 / 共27页
课程设计报告样例.docx_第2页
第2页 / 共27页
课程设计报告样例.docx_第3页
第3页 / 共27页
课程设计报告样例.docx_第4页
第4页 / 共27页
课程设计报告样例.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

课程设计报告样例.docx

《课程设计报告样例.docx》由会员分享,可在线阅读,更多相关《课程设计报告样例.docx(27页珍藏版)》请在冰豆网上搜索。

课程设计报告样例.docx

课程设计报告样例

广西科技大学

单片机技术课程设计报告

课程:

单片机技术

题目:

学院:

专业:

姓名:

学号:

指导老师:

完成时间:

 

成绩评定

设计报告得分S1:

(百分制)

平时考勤得分S2:

(百分制)

问题回答得分S3:

(百分制)

总成绩:

(S1×0.6+S2×0.2+S3×0.2)

指导教师签字年月日

 

摘要

随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。

它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。

黄色信号灯的发明者是我国的胡汝鼎,他怀着“科学救国”的抱负到美国深造,在大发明家爱迪生为董事长的美国通用电器公司任职员。

一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼地一声擦身而过,吓了他一身冷汗。

回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。

他的建议立即得到有关方面的肯定。

于是红、黄、绿三色信号灯即以一个完整的指挥信号家族,遍及全世界陆、海、空交通领域了。

交通灯控制器设计主要功能是用单片机控制LED灯模拟指示。

模拟东西南北方向的十字路口交通灯信号控制情况。

以89C52单片机为核心芯片,采用中断方式实现控制。

本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。

和复位电路控制电路等组成,较好的模拟了交通路面的控制。

 

关键词:

交通灯单片机数码管

目录

1.概述............................................................1

 

2系统总体方案及硬件设计...........................................2

2.1设计内容.....................................................2

2.2设计要求.....................................................2

2.3总体设计思想.................................................2

2.4设计参考.....................................................2

2.5知识点准备...................................................2

 

3各模块设计.......................................................3

3.1设计项目简介.................................................3

3.2总体设计.....................................................3

3.3硬件设计.....................................................3

3.4软件设计.....................................................9

 

4软件仿真.........................................................12

 

5课程设计体会.....................................................13

参考文献...........................................................14

附录一程序清单.....................................................15

附录二系统原理图...................................................21

 

1概述

自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。

近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。

本模拟交通灯系统利用单片机AT89C52作为核心元件,实现了通过信号灯对路面状况的智能控制。

从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。

系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。

本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统。

和复位电路控制电路等组成,较好的模拟了交通路面的控制。

2系统总体方案及硬件设计

2.1设计内容

交通灯控制器设计主要功能是用单片机控制LED灯模拟指示。

模拟东西南北方向的十字路口交通灯信号控制情况。

以89C52单片机为核心芯片,采用中断方式实现控制。

(1)数码管选用2位共阴极显示的数码管,共4个;

(2)东西通行时间为80s,南北通行时间为60s,缓冲时间为3s;

2.2设计要求

•设计单片机最小系统(包括复位按钮、晶振电路等);

•绘制实现本设计内容的硬件电路(原理图),系统的组成框图。

•相应的控制状态表;

•编写本课程设计内容的软件设计(包含程序流程图和对程序注释)。

•硬件实验部分可选用实验箱测试或Proteus仿真软件实现。

2.3总体设计思想(供参考)

•利用定时器T0产生每10ms一次的中断,每100次中断为1s;

•对两个方向分别显示红、绿、黄灯的剩余时间即可;

•用MAX7219芯片实现共阴极显示驱动;

•A方向的红灯时间=方向的绿灯时间+黄灯缓冲时间。

2.4设计参考

交通灯控制器设计有电源电路、单片机主控电路、显示电路、信号灯电路等组成,如图1所示:

2.5知识点准备:

•+5V电源原理及设计;

•MAX7219工作原理;

•单片机复位电路工作原理及设计(元件选择的依据);

•单片机晶振电路工作原理及设计(元件选择的依据);

•数码管显示特性、驱动设计及应用;

•LM1602液晶显示屏特性、驱动设计及应用;

•89C51单片机引脚资源、引脚分配等;

•单片机汇编语言及程序设计(中断、延时子程序的设计)。

 

3各模块设计

3.1设计项目简介

功能:

交通灯控制器,通过单片机控制交通灯和数码管,实现4路口交通灯的正确亮灭,并能显示发亮交通灯发亮状态的剩余时间。

东西通行时间为80s,南北通行时间为60s,缓冲时间为3s。

类似产品简介:

基于数字电子技术设计的交通灯控制器:

元器件多而复杂,连线复杂易出错,设计困难,且功耗较大,不经济,不利于节约环保。

基于PLC技术设计的交通灯控制器:

设计程序简单易懂,但价格较贵,不经济。

项目特色:

通过单片机控制,进行模块化处理,体积小,功耗低,元器件少且简单,价格实惠,功能齐全,能够实现正常显示,而不会出现4路口交通灯混乱的情况,时间显示正常。

3.2总体设计

总体设计模式图:

用一片AT89C52单片机控制4路口交通灯的亮灭。

单片机发送地址、数据信息给MAX7219,通过MAX7219控制数码管的时间显示。

3.3硬件设计

硬件原理图:

电路图:

硬件选型及相关依据:

AT89C52:

4组8位I/O输入/输出端口,可满足控制所需I/O口数目要求。

可外接时钟电路,有复位管脚,接复位电路可实现复位功能。

接5V高电平,功耗小,价格低。

MAX7219:

串行输入,16位并行输出,可控制8位八段数码管显示。

满足设计中的四位控制要求。

4组2位共阴数码管:

4路口两位数显示,满足所需,易实现控制。

4个LED-GREEN:

10mA额定电流,2.2V额定电压,用于模拟十字路口绿灯亮灭显示。

4个LED-YELLOW:

10mA额定电流,2.0V额定电压,用于模拟十字路口黄灯亮灭显示。

4个LED-RED:

10mA额定电流,2.0V额定电压,用于模拟十字路口红灯亮灭显示。

4个280Ω电阻、8个300Ω电阻:

由VCC=V+IR,(VCC:

5V;I:

LED灯额定电流;V:

LED灯额定电压)计算出电阻大小。

9KΩ电阻1个:

MAX7219的18管脚接高电平时串联电阻。

12MHZ晶振1个、30pf电容2个:

根据经验,12M晶振与2个30p电容并联构成外部时钟振荡电路。

10KΩ电阻1个、1KΩ电阻1个、10uf电解电容1个、1个按键:

构成单片机复位电路。

电容放电时间τ=RC=10K10uf=0.1s>21/12M=s(2个时钟周期),即电容放电时间大于2倍的时钟周期,即可实现复位。

AT89C52简介:

AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

主要特性:

与MCS-51兼容;4K字节可编程闪烁存储器;寿命:

1000写/擦循环;数据保留时间:

10年;全静态工作:

0Hz-24Hz;;三级程序存储器锁定;128*8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。

MAX7219芯片简介:

MAX7219是MAXIM公司生产的串行输入/输出共阴极数码管显示驱动芯片,一片MAX7219可驱动8个7段(包括小数点共8段)数字LED、LED条线图形显示器、或64个分立的LED发光二级管。

该芯片具有10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置所有LED的段电流。

它的操作很简单,MCU只需通过模拟SPI三线接口就可以将相关的指令写入MAX7219的内部指令和数据寄存器,同时它还允许用户选择多种译码方式和译码位。

此外它还支持多片7219串联方式,这样MCU就可以通过3根线(即串行数据线、串行时钟线和芯片选通线)控制更多的数码管显示。

MAX7219

的外部引脚分配如图1所示及内部结构如上图所示。

各引脚的功能为:

DIN:

串行数据输入端

DOUT:

串行数据输出端,用于级连扩展

LOAD:

装载数据输入

CLK:

串行时钟输入

DIG0~DIG7:

8位LED位选线,从共阴极LED中吸入电流

SEGA~SEGGDP7段驱动和小数点驱动

ISET:

通过一个10k电阻和Vcc相连,设置段电流

MAX7219有下列几组寄存器:

译码控制寄存器、亮度控制寄存器、扫描界限寄存器、关断模式寄存器、测试控制寄存器。

编程时只有正确操作这些寄存器,MAX7219才可工作。

MAX7219读写时序说明:

MAX7129是SPI总线驱动方式。

它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。

要想与MAX7129通信,首先要先了解MAX7129的控制字。

MAX7129的控制字格式如下图。

如图,工作时,MAX7219规定一次接收16位数据,在接收的16位数据中:

D15~D12可以与操作无关,可以任意写入,D11~D8决定所选通的内部寄存器地址,D7~D0为待显示数据或是初始化控制字。

在CLK脉冲作用下,DIN的数据以串行方式依次移入内部16位寄存器,然后在一个LOAD上升沿作用下,锁存到内部的寄存器中。

注意在接收时,先接收最高位D16,最后是D0,因此,在程序发送时必须先送高位数据,在循环移位。

工作时序图见下图。

由于52是8位单片机故需要分两次来送数据。

数据读写时序图

单片机复位电路:

上电自动复位原理:

在电路图中,电容的的大小是10uF,电阻的大小是10k。

所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。

也就是说在启动的0.1S内,电容两端的电压时在0~3.5V增加。

这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。

所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。

在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。

所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。

按键按下的时候复位原理:

在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。

当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。

随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。

根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。

单片机系统自动复位。

数码管简介:

数码管也称LED数码管,数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

驱动方式:

分静态显示驱动和动态显示驱动两种方式。

静态驱动也称直流驱动。

静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

3.4软件设计

首先对程序进行模块化处理,根据要求的4路口交通灯的具体功能,对程序进行模块化处理。

根据不同功能的分配可以将程序划分为以下几个模块:

主模块、MAX7219初始化模块、初始化模块(主函数初始化)、定时器模块、MAX7219地址和数据发送模块、数字变化处理模块。

由子模块的功能,可以设计绘制出各模块的程序流程图。

各子模块之间可能会有联系,也可能没有联系,最后由主模块对其进行必要的汇总处理,实现要求的功能。

流程图绘制完毕后,可以将流程图作为编程的依据,进行编程操作。

如此,可使程序简化处理,减少错误,提高程序的编写效率。

给自己带来不少的方便之处。

程序流程图:

本着简洁清晰明了易懂的目的,对程序模块化处理,不同模块执行不同的功能。

就如同多元化的大家庭一样,进行不同的分工,个分工之间也可能存在联系。

最后,由主模块进行总的调用处理,从而将零散的分工汇聚一起,共同实现最终的目的。

模块说明:

主模块:

采用顺序循环程序设计,进行汇总处理,实现最终的目的。

即实现交通等控制器功能,东西通行时间为80s,南北通行时间为60s,缓冲时间为3s。

MAX7219初始化模块:

顺序调用MAX7219地址、数据发送模块,对MAX7219进行初始化处理。

初始化模块:

采用顺序程序对定时器中断初始化,开中断定时器进行计时。

并对相应变量和交通灯做初始化出处理。

数码管数字显示处理模块:

调用数字变化处理模块,得到正确的跳变时间,根据时间的变化做出相应变化,并作出相应的处理。

调用MAX7219地址和数据发送模块使数字信息在数码管上正确地显示出来。

MAX7219地址和数据发送模块:

根据MAX7219地址、数据发送时序图,对MAX7219做相应处理,使其能够发送一位地址和数据。

数字变化处理函数:

当数字变量变为0时,相应方向的数字变化标志增1,并根据数字变化标志当前值,使数字变量做出相应的变化,并使相应方向上相应的灯发亮。

以实现数字变量从0的正确跳转和交通灯的正确发亮。

定时器模块:

对定时器重新赋初值,并使时间标志t加1计时。

 

4软件仿真

课程设计体会

一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。

在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。

学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次单片机设计,本人在多方面都有所提高。

通过这次单片机设计,综合运用本专业所学课程的理论和生产实际知识进行一次DXP制板设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了单片机设计等课程所学的内容,提高了计算能力,绘图能力,熟悉了规范和标准,同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。

在这次设计过程中,体现出自己单独设计单片机的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。

由于本人的设计能力有限,在设计过程中难免出现错误,恳请老师们多多指教,我十分乐意接受你们的批评与指正,本人将万分感谢。

 

参考文献

[1]张毅刚,彭喜元,彭宇等单片机原理及应用[M].北京:

高等教育出版社,2010.5

[3]赵茂泰.智能仪器原理及应用[M].北京:

电子工业出版社,2009

[4]刘江海.EDA技术[M].北京:

华中科技大学出版社,2006

[5]郭天祥.51单片机C语言教程[M].北京:

电子工业出版社,2006

[6]张忠梅.单片机的C语言应用程序设计[M].北京:

北京航空航天大学出版社,2006

 

附1:

程序代码

#include

#defineunintunsignedint

#defineuncharunsignedchar

//管脚定义

sbitDIN=P3^0;

//MAX7219串行数据1脚

sbitLOAD=P3^1;

//MAX7219片选12

sbitCLK=P3^2;

//MAX7219串行时钟13脚

sbitP10=P1^0;

sbitP11=P1^1;

sbitP12=P1^2;

sbitP15=P1^5;

sbitP16=P1^6;

sbitP17=P1^7;

//寄存器宏定义

#defineDECODE_MODE0x09

//译码控制寄存器

#defineINTENSITY0x0A

/亮度控制寄存器

#defineSCAN_LIMIT0x0B

//扫描界限寄存器

#defineSHUT_DOWN0x0C

//关断模式寄存器

#defineDISPLAY_TEST0x0F

//测试控制寄存器

//定义全局变量

unchart,dte,dts;

//t为1ms脉冲产生标志,dte、dts分别为东西方向、南北方向数字变化标志

uncharEasw,Soun;

//东西、南北方数码管数字变量

//函数声明

voidWrite7219(uncharaddress,unchardat);

//MAX7219控制处理函数声明

voidDisplay();

//数码管数字显示处理函数声明

voidInitial(void);

//MAX7219初始化函数声明

voidInit(void);

//定时器初始化函数声明

/*主函数:

交通等控制器,东西通行时间为80s,南北通行时间为60s,缓冲时间为3s。

*/

voidmain(void)

{

Initial();

//MAX7219初始化

Init();

//变量初始化

while

(1)

{

Display();//调用显示函数

}

}

/*MAX7219初始化函数:

MAX7219初始化,设置MAX7219内部的控制寄存器*/

voidInitial(void)

{

Write7219(SHUT_DOWN,0x01);

//开启正常工作模式(0xX1)

Write7219(DISPLAY_TEST,0x00);

//选择工作模式(0xX0)

Write7219(DECODE_MODE,0xff);

//选用全译码模式

Write7219(SCAN_LIMIT,0x03);

//选用前4只LED

Write7219(INTENSITY,0x04);

//设置初始亮度

}

/*初始化函数:

设置定时/计数器0工作方式1,设置50ms定时时间,并进行初始化。

开总中断、定时/计数器0,初始化所需全局变量*/

voidinit()

{

TMOD=0X01;

//设置定时器0工作方式1

TH0=0X4C;

//定时器0高八位初始化

TL0=0X00;

//定时器0低八位初始化

ET0=1;

//定时器0中断允许

TR0=1;

//开定时器0

EA=1;

//开总中断

t=0;

dte=0;

dts=0;

Easw=7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 院校资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1