基于LCD12864的交通信号灯本科单片机课程设计报告.docx

上传人:b****3 文档编号:1864915 上传时间:2022-10-24 格式:DOCX 页数:67 大小:794.68KB
下载 相关 举报
基于LCD12864的交通信号灯本科单片机课程设计报告.docx_第1页
第1页 / 共67页
基于LCD12864的交通信号灯本科单片机课程设计报告.docx_第2页
第2页 / 共67页
基于LCD12864的交通信号灯本科单片机课程设计报告.docx_第3页
第3页 / 共67页
基于LCD12864的交通信号灯本科单片机课程设计报告.docx_第4页
第4页 / 共67页
基于LCD12864的交通信号灯本科单片机课程设计报告.docx_第5页
第5页 / 共67页
点击查看更多>>
下载资源
资源描述

基于LCD12864的交通信号灯本科单片机课程设计报告.docx

《基于LCD12864的交通信号灯本科单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于LCD12864的交通信号灯本科单片机课程设计报告.docx(67页珍藏版)》请在冰豆网上搜索。

基于LCD12864的交通信号灯本科单片机课程设计报告.docx

基于LCD12864的交通信号灯本科单片机课程设计报告

湖南大学电气与信息工程学院

本科生单片机课程设计

 

题   目:

基于LCD12864的交通信号灯

学院:

电气与信息工程学院

专   业:

电气工程及其自动化

交通灯的历史

1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街道的第一盏信号灯。

1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。

稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。

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

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

中国最早的马路红绿灯,则是于1928年出现在上海的英租界。

 

第一部分开发板硬件部分介绍

一、板上资源分布

图1.1板上资源分布

1、2、3:

单片机P0、P2、P3口引出接口(有限流保护电阻);

4:

上排图形点阵LCD12864的接口、下排LCD1602的接口;

5、6:

两路16位ADC输入、可作差分输入;

7、8:

12位DAC输出、对DAC输出进行比例放大或者跟随的运放;

9:

单片机AduC848;

10:

无源蜂鸣器、由单片机PWM模块输出信号控制;

11:

8位数码管;

12:

SPI接口;

13:

RS232串口(通过串口在线下载、单步、断点、运行到某一行等方式调试程序);

14:

步进电机(5V、70欧姆、6线4相)接口;

15:

8路LED,从左至右为LED7~0,分别被P0.7~P0.0控制;

16:

复位按键和下载按键;

17、18:

IIC总线上的EEPROMAT24C08和RTCDS1307;

19:

IIC接口;

20:

PS/2接口;

21:

红外接收头;

22:

功能选择和配置插针;

23:

4X4矩阵式键盘或4个独立按键;

24:

直流电源输入;

此外还有红外二极管(由单片机PWM模块输出信号控制)、USB电源输入接口。

二、ADuC848的简要介绍

1、8051-basedcore、5V供电电压;

2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序;

3、16位8通道Σ-ΔADC,片内有1.25V参考电压、buffer和PGA;

4、12位电压输出DAC、Dual16-BITΣ-ΔDAC;

5、32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte);

6、PLL(12.58MHzmax)(片外只需接32.768kHz晶振);

7、3×16位定时/计数器、看门狗定时器;

8、11中断源(2优先级)、11位堆栈指针;

9、24I/O+8模拟或数字输入;

10、UART、SPI和I2C、高速115200波特率发生;

11、Powersupplymonitor、上电复位、Dual200μA激励电流源。

12、单片机引脚分布

三、LCD显示模块

LCD显示信号连接图如下图所示。

图1.7LCD信号连接

关键网络名和引脚名解释:

(1)DISCTRL0~4:

显示控制信号。

(2)D0~D7、DB0~DB7:

数据总线。

(3)E:

LCD使能信号。

(4)RS:

数据、指令选择信号。

(5)RW:

读、写选择信号。

(6)CS1、CS2:

LCD12864由两部分组成,CS1和CS2为选择信号。

板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排针和排母左对齐插入。

第二部分交通信号灯的设计

1、题目任务设计要求

1、题目设计及目的

(1)设计一智能交通信号灯。

(1)了解交通灯管理的基本工作原理

(2)熟悉ADuC848的工作原理和应用编程

(3)熟悉ADuC848并行接口的各种工作方式和应用

(4)熟悉AT89C51计数器/定时器的工作方式和应用编程外部中断的方法

(5)掌握LCD显示问题的解决

2、题目设计要求

(1)了解实际交通灯的变化规律(以十字路口为例)

(2)要求用LCD显示字符“红、黄、绿”(或字母r、y、g)代替相应的信号灯

(3)要求有东西、南北四组信号灯显示,并显示对应的时间

(4)时间要求倒计时显示,计时时间到,对应的信号准确切换

(5)信号灯按一定的规律闪烁,实现简单的交通管理

(6)能实现紧急事件处理(例如救护车的通行等),可用蜂鸣器报警和特殊数字显示

(7)可根据交通流量智能调整各路段的通行时间

(8)显示北京时间,可调整

二、系统原理分析及程序流程框图

1、交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。

绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。

下图为一种红绿灯的显示状态图

状态一:

设东西向为主干道,东西向绿灯定为20s.

状态二设定黄灯时间为5s。

状态三南北向为副干道,南北向绿灯设为10s

状态四南北向黄灯也设为5s.

紧急状态:

此时为紧急状态,所有灯为红灯,所有车辆禁止通行,触发紧急状态由紧急按钮触发,再次触发,则解除紧急状态,回到原来状态。

 

2、车流量处理。

首先根据两条道路的车流量划分为主干道和副干道,主干道和副干道的绿灯时间设置不一样,主干道的绿灯时间设置的较长,红灯时间等于另一条道路的绿灯时间与黄灯时间之和。

其次,考虑有车流高峰时期,在本次设计中,设置北京时间18:

00:

00——20:

00:

00为车流量高峰时期,在此时期,亮灯时间会变成另一个设定值,具体设置可依据实践情况设置,本次设计中将主干道,副干道绿灯实践均延长10s.当在此时期之外时,亮灯时间为正常设定时间。

3、倒计时显示。

东西南北四个方向各有一个倒计时显示,倒计时数字表示当前亮灯的剩余时间。

因为相对的方向显示相同,因而本次设计中只两个倒计时显示,一个表示南北方向,一个表示东西方向。

计时的快慢通过改变对频率的计数实现。

4、北京时间显示。

本次设计中,12864LCD显示屏第一行显示北京时间的时、分、秒,时间可调。

北京时间功能采用T0计时器中断来实现。

ADuC848的coreclock频率默认为1.572864MHz,定时器0的时钟为coreclock,1572864=65536*24。

故将定时器0设置为16位计数模式,且初值为0,无需在定时器溢出中断中给定时器赋初值(中断溢出就开始执行中断程序,计数器为加法计数器,从0加到65536)。

每65536个coreclock周期将产生一次中断,在中断处理程序中累计中断次数,当有24次中断产生时即为1秒,进行计时。

5、主程序流程图

 

5、交通灯显示流程图

 

三、具体程序实现

#include

#include"ds1307.h"

#include"juzhenkeyboard.h"

#include"smg12864.h"

#defineuncharunsignedchar

#defineunintunsignedint

sbitbuzzer=P2^6;

unchargreen[2]={50,30};

uncharyellow[2]={5,5};

uncharred[2]={55,35};

unchartime[7]={1,2,1,1,1,1,1};

uninttimeflag=0;

uncharstate=0;

uncharstate_buffer;

uncharzhugandao=20;

uncharfudao=10;

uncharkey=0;

uncharweizhi=0;

bitjinjiflag=0;

bitset_flag=0;

uninti;

uncharj;

voidjiaotong_con(void)

{

switch(state)

{

case0:

displayascall(1,2,shuzi[16]);

displayascall(2,2,shuzi[16]);

displayascall(3,2,shuzi[16]);

displayascall(4,2,shuzi[16]);

displayascall(5,2,shuzi[16]);

displayascall(6,2,shuzi[16]);

displayascall(9,2,shuzi[16]);

displayascall(10,2,shuzi[16]);

displayascall(11,2,shuzi[16]);

displayascall(14,2,shuzi[16]);

displayascall(15,2,shuzi[16]);

displayascall(16,2,shuzi[16]);

displayascall(1,4,shuzi[16]);

displayascall(2,4,shuzi[16]);

displayascall(3,4,shuzi[16]);

displayascall(4,4,shuzi[16]);

displayascall(5,4,shuzi[16]);

displayascall(6,4,shuzi[16]);

displayascall(9,4,shuzi[16]);

displayascall(10,4,shuzi[16]);

displayascall(11,4,shuzi[16]);

displayascall(12,4,shuzi[16]);

displayascall(13,4,shuzi[16]);

displayascall(14,4,shuzi[16]);

displayascall(15,4,shuzi[16]);

displayascall(16,4,shuzi[16]);

displayascall(1,3,shuzi[16]);

displayascall(2,3,shuzi[16]);

displayascall(3,3,shuzi[16]);

displayascall(4,3,shuzi[16]);

displayascall(7,3,shuzi[16]);

displayascall(8,3,shuzi[16]);

displayascall(11,3,shuzi[16]);

displayascall(14,3,shuzi[16]);

displayascall(15,3,shuzi[16]);

displayascall(16,3,shuzi[16]);

displayhanzi(3,3,table[1]);

displayhanzi(5,3,table[1]);

displayhanzi(4,2,table[0]);

displayhanzi(4,4,table[0]);

displayshuzi(12,3,green[0]);

displayshuzi(12,2,red[1]);

green[0]--;

red[1]--;

if(green[0]==0)

{

green[0]=zhugand

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

当前位置:首页 > 农林牧渔 > 林学

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

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