南邮AVR单片机软件交通灯设计报告.docx

上传人:b****6 文档编号:7442072 上传时间:2023-01-24 格式:DOCX 页数:18 大小:168.83KB
下载 相关 举报
南邮AVR单片机软件交通灯设计报告.docx_第1页
第1页 / 共18页
南邮AVR单片机软件交通灯设计报告.docx_第2页
第2页 / 共18页
南邮AVR单片机软件交通灯设计报告.docx_第3页
第3页 / 共18页
南邮AVR单片机软件交通灯设计报告.docx_第4页
第4页 / 共18页
南邮AVR单片机软件交通灯设计报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

南邮AVR单片机软件交通灯设计报告.docx

《南邮AVR单片机软件交通灯设计报告.docx》由会员分享,可在线阅读,更多相关《南邮AVR单片机软件交通灯设计报告.docx(18页珍藏版)》请在冰豆网上搜索。

南邮AVR单片机软件交通灯设计报告.docx

南邮AVR单片机软件交通灯设计报告

通信与信息工程学院

/学年第学期

软件设计实验报告

模块名称AVR单片机软件设计(proteus)

专业

学生班级

学生学号

学生姓名

指导教师

设计题目

基于LED数码管显示的交通灯控制

任务要求

基本要求:

1•用2个7段数码管或2片LCD液晶显示屏分别倒计时东西及南北方向的通行及等待时间。

2•用两组各3个发光二极管模拟两个方向的红、黄、绿交通灯的显示。

3•可任意调节通行时长。

4•要求对东西、南北直行方向的交通灯进行控制,南北方向

互相配合,在通行方向的最后5秒这样处理:

绿灯闪烁3秒后灭,最后2秒黄灯亮。

禁行方向则直接由红灯变为绿灯。

发挥部分:

1•设计三车道十字路口信号灯(左转、直行、右转),右转灯常亮,直行和左转分时通行。

2•用定时器而不是普通的延时程序控制显示时间

实验设备

及软件

CVAVR编程软件、PROTUES仿真软件

同组人员

学号及姓

一人一组,无同组成员

参考文献

[1]刘文涛.单片机应用开发实例•北京:

清华大学出版社,2005年

9月:

19〜113

[2]周宝善.经典电子设计与实践DIY.北京:

人民邮电出版社,2008年8月:

7〜8,61〜92

[3]宁武,唐晓宇,闫晓金.电子设计竞赛技能指导.北京:

电子工业出版社,2006年:

128〜156

[4]胡伟,季晓衡.单片机c程序设计及应用.北京:

人民邮电出版社,2003年7月:

67〜135

[5]童诗白,华成英.模拟电子技术基础.北京:

高等教育出版社,2001年1月:

501〜550

[6]张靖武,周灵彬•单片机原理应用与PROTEUS真•北京:

电子工业出版社,2008年:

28〜60

[7]张超琦,钟明哲•单片机原理及实例.实践篇•上海:

上海交

通大学出版社,2007年:

110〜158

[8]潘超群•单片机控制技术在通信中的应用:

MCS-51北京:

子工业出版社,2008年:

200〜228

[9]陈涛.单片机原理及C51程序设计.北京:

机械工业出版社,2008年:

20〜66

AVF单片机软件设计(proteus)报告

摘要

本文介绍了交通灯系统的设计。

软件部分是基于ATMEGA128单片机的

CVAVR软件系统。

本系统利用单片机的定时器产生秒信号,控制十字路口的红绿黄灯交替点亮和熄灭,并且用2位共阳数码管显示十字路口两个方向的剩余时间。

本系统可以按照设定程序在PROTUES仿真软件中自行运行。

可实现基本交通灯功能,系统实用性强、操作简单。

关键词:

单片机最小系统ATMEGA128红绿灯控制仿真

一、总体设计原理及思路

(一)整体思路

本系统的整体框图由ATMEGA128构成主控芯片,主要是实现各个功能模块之间功能交互。

本系统包括红黄绿LED灯显示模块,LED数码管显示模块。

LED数码管显示模块用来显示被点亮的指示灯还将点亮多久;LED发光二极管模块用于指示该方向的3种状态:

通行(绿灯亮)、暂缓通行(黄灯亮)和禁止通行(红灯亮)。

系统结构框图如图所示:

(图)系统结构框图

红绿灯控制器的总体的设计如下图所示:

F-Ds-u:

Li*iT-用■錨F-CiJ«:

rDi[ih

FGiTdj城<1口tfJKWh*FTJfDCJM-hlK^££,|Mi>

毗Fl

PC」

PTMCiud-

mr

臨iaT」.T&Ff

l^TUaTH*

眦凹A

FfJMjziKJtf&J怙心

[Pt-MDi-

的心*

K-e.TVQT

FT;嗣口时眾据PF^MjgTUim«bCMUPFFTMCiYlU

hiMrF-drflThU«Fmirrofif?

M-lTKl

(图)红绿灯控制器总体设计图

从上图中可以看出整个设计图。

由CVAVR单片机最小系统模块来控制红绿黄发光二极管组合模块与LED数码管动态显示模块的联合动态显示,可通过代码的编写任意改变通行时间的长短和红绿黄三种灯的交替。

(二)整体设计流程图

、各模块设计思路及原理图

单片机最小系统

ATMEGA1是ATME公司的8位系列单片机的最高配置的一款单片机,稳定性极高,应用极其广泛。

它是高性能、低功耗的AVR8位微处理器,具有先进的RISC结构。

它工作于16MHz时性能高达16MIPS,具有只需两个时钟周期的硬件乘法器。

它有128K字节的系统内可编程Flash,4K字节的EEPRQM4K字节的内部SRAM多达64K字节的优化的外部存储器空间。

它有两个具有独立的预分频器和比较器功能的8位定时器/计数器,两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器,具有独立预分频器的实时时钟计数器,两路8位PWM6路分辨率可编程(1到16位)的PWM输出比较调制器,8路10位ADC2个具有可编程增益(1x,10x,或200x)的差分通道。

它还具有6种睡眠模式:

空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式。

单片机最小系统如下图所示:

20

PA150

PA249

48PA4~

PA546

45£

PBO10P

PB-111

PB212

13

PB414

PB515

..d

17

PCO35

PC13B

PC237

PC336

PC43Q

PCS43

PC641

PAO51

PB7/002/001C

PF3/ADC3

PF砂DZTCK

PCO/AB

PFS/AOCSHMS

FC1/AS

PF6/ADC6;TDO

PC2/A10

PF7/A0C7/TDI

PC3/A11

PC4/A-12

PijtWR

PC5/A13

PG-VRD

PC6/A14

P02/ALE

PC7iAd5

P03/T0SC2

PO^VTOSCI

AREF

AVCC

FEN

62

P

1J■-J■d・-・_J1-aa-■Fa・rll■■-a■JanJ

567-s-9-0-12-J厂■■--1-09s-785-43-4-s-91

222-22-3-33--23-45-ft-789--R-&55555533-411-丄

■P

(图)单片机最小系统图

LED数码管显示电路模块

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

共阳数码

管是指将所有发光二极管的阳极接到一起形成公共阳极(COM的数码管,共阳数

码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

本系统的数码管采用的是两位共阳数码管。

数码管如下图所示:

 

ABCDEFGDP1S

8

1

:

£

1

r—

.LL

・・・

.Cl

-4

■卜

(图)LED数码管显示模块图

LED灯显示模块

LED灯采用的是共阳接法,即所有的LED管阳级通过一个限流电阻上拉到5V电源,所有的阴级接到单片机的相应引脚。

只要该I/O口置低,该灯就能点亮'本系统出于节省资源,左转灯只用了红、绿两色,直行灯用了红、绿、黄三色,而右转灯由于要常绿,因此只用了一个绿灯。

下图只给出了东西南北方向重其中任意的一个。

LED灯显示模块如下图所示:

-J1REEm

4-3-94ft-

3is■

(图)LED灯显示模块图

三、软件设计

(一)各模块设计思路及流程图主程序模块

主要完成定时器T0的设置,绿、黄灯的初值设定以及各子程序的调用

主程序的流程图如下图所示:

(图)主程序的流程图

LED数码管显示模块

LED数码管显示模块包括南北方向LED显示、东西方向LED显示。

LED数码管显示模块的程序流程图如下图所示:

(图)LED显示模块程序流程图

LED灯显示模块

LED灯的显示及执行流程主要是对I/O的高低电平的控制

LED显示模块的程序流程图如下图所示:

开始

mode=0?

已15ok=l?

20

南北和东西相反

wm绿曹亀縣红躍绿灯亮

5

W脣藝绿曹亀鶴红瀑绿灯亮

南北直行绿灯闪烁

2

1

L是

南北方向直行黄灯亮

*,

返口

0

(图)LED显示模块程序流程图

定时器0中断模块

定时器0主要通过计数产生1秒的定时时间,使LED数码管按照每秒减1进行倒计时。

定时器0中断模块的程序流程图如下图所示:

10

(图)定时器0中断模块程序流程图

(二)关键代码说明

Stepl以下是将计数数值转换成LED能显示的两个数字的程序代码。

将一

个两位十进制数通过numberO=a/10;numberl=a%10;转换成两个数字并显示

voidled_play(unsignedchara)

{

number0=a/10;

number1=a%10;

PORTD=0x00;

PORTD=wei[0];

PORTC=table[number0];

delay_ms(5);

PORTD=0x00;

PORTD=wei[1];

PORTC=table[number";

delay_ms(5);

}

Step2以下是计数器0的中断服务程序。

由于初始化的参数设置,使程序1ms进入一次中断函数,等到进入第1000次时代表1s计时时间到。

1s到了就讲time_counter清零,并将time_1s_os置1,便于主函数每1s执行一次显示函数。

interrupt[TIM0_COMP]voidtimer0_comp_isr(void)

{

if(++time_counter==1000)

{

time_counter=0;

time_1s_ok=1;

}

}

11

Step3以下是主函数里的while

(1)函数。

首先判断是否到达了1s(即检验

time_1s_ok是否为1,若为1,则到达了1s)。

然后将time_1s_ok清零,将计数值num自减1,并将num的值送给LED数码管显示。

接着判断mode为1还是0。

如果为0,贝U是南北方向通行,否则则是东西方向通行。

我在函数中初始化计数初值num为30。

假设mode为0,那么如果num<=30&&num>21,那么使南北方向的左转方向通行,即使南北方向的左转灯为绿灯;同时南北方向的直行方向为红灯;而右转灯无论南北还是东西方向一直都是通行的,即为绿灯。

女口

果num<=21&&num>6,那么南北方向的直行方向为绿灯,左转禁止通行了。

如果num<=6&num>3,南北方向的绿灯闪烁三秒。

如果num<=3&&num>1,则南北方向的直行方向为黄灯。

在mode=0的这30s内,东西方向的左转和直行方向都是禁止的。

mode=1时,则南北和东西方向的情况完全相反,这里就不赘述了。

while

(1)

{

led_play(num);

if(time_1s_ok)

{

time_1s_ok=0;

if(!

mode)

//使东西方向的左转和直行灯都是红灯

//南北方向绿灯闪烁

{

PORTA=Ox2d;if(num<=30&&num>21)PORTB=Ox1d;if(num<=21&&num>6)PORTB=Ox2b;if(num<=6&num>3){

PORTB=0x2f;for(i=0;i<20;i++){

led_play(num);

}

PORTB=0x2b;

}if(num<=3&&num>1)PORTB=0x2e;if(num<=1)

{

mode=~mode;num=31;

}

}

if(mode)

12

PORTB=0x2d;

if(num<=30&&num>21)

PORTA=0x1d;

if(num<=21&&num>6)PORTA=0x2b;

if(num<=6&num>3)

{

PORTA=0x2f;for(i=0;i<20;i++){

led_play(num);

}

PORTA=0x2b;

}if(num<=3&&num>1)PORTA=0x2e;

if(num<=1)

{mode=~mode;num=31;

}

}

num--;

}

}

四、系统测试

在PROTUES软件中画好了仿真图后,将CVAVR中写好的代码放入

ATMEGA16芯片中,然后启动。

情况如下:

mode=0的30秒内:

21

6

3

1

mode=1的30秒内:

东西方向与南北方向与上述现象正好相反。

系统仿真出来的结果和实验的基础要求及提高要求大致上符合,较好的完成

了预期期望。

13

PS仿真一开始led灯的颜色较淡,之后将串接的限流电阻阻值改小后就解决了这个问题。

五、实验心得

首先,从此次实验的完成成果一一基于LED数码管显示的交通灯控制的角度来总结,本次单片机课程设计的红绿灯控制器结构简单,操作方便,对优化城

市交通具有一定的意义。

本设计将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。

同时由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大而且可以随时的更新系统,进行不同状态的组合。

总而言之,本次实验我努力完成了课程要求的基本部分和发挥部分,探索的

内容丰富、学习内容非常充实。

其次,从我个人的收获角度来说,在我学习AVR单片机之前我学过51单片机,51单片机用起来简单,价钱也便宜,用于一些比较简单的控制还算可以,开发平台相对单一,但是单片机应用系统开发时,首先遇到的问题就是存储器的扩展。

因为51单片机内部的存储器容量一般都比较小,因此,从单片机外部配置外部存储器,包括程序存储器和数据存储器,就成了应用系统的重要工作之一。

同时扩展的同时又占用了I/O口,当外部设备较多时,原有的几个内部I/O接口就明显不够使用。

所以,通过此次对AVR的学习,让我掌握了一种新的、功能更强大的单片机,对我以后的实际应用很有帮助。

不仅如此,在这几个礼拜的学习中,不断的摸索激发了我对AVR的兴趣,同时也锻炼我的耐心和分析能力,解决一个个困难的过程我认为是非常宝贵的,相信有了这次实验的经历,会对我今后各门学科的学习深有帮助,我觉得受益匪浅、收获良多。

14

15

设计成绩评定

评分内容

具体要求

总分

评分

上机时间

上机时间是否达到要求的学时,按照实际情况给与一定的成绩。

10分

报告审阅结果

报告结构严谨,文字通顺,用语符合技术规范,图表清楚,书写格式规范,不与别人雷同。

30分

验收结果

原理

原理清楚,能较好地理解课题任务并提出实施方案。

20分

完成情况

独立完成规定设计任务,论证、分析、设计、计算、结构、建模、实验正确合理,有一定的创新。

30分

操作

能熟练操作相关工具软件,并利用工具软件完成设计任务。

10分

总成绩(五分制)

100分

指导教师评阅意见

注:

放最后一页

16

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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