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

上传人:夏** 文档编号:431750500 上传时间:2023-01-19 格式:DOC 页数:52 大小:980.59KB
返回 下载 相关 举报
基于LCD12864的交通信号灯单片机课程设计报告_第1页
第1页 / 共52页
基于LCD12864的交通信号灯单片机课程设计报告_第2页
第2页 / 共52页
基于LCD12864的交通信号灯单片机课程设计报告_第3页
第3页 / 共52页
基于LCD12864的交通信号灯单片机课程设计报告_第4页
第4页 / 共52页
基于LCD12864的交通信号灯单片机课程设计报告_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《基于LCD12864的交通信号灯单片机课程设计报告》由会员分享,可在线阅读,更多相关《基于LCD12864的交通信号灯单片机课程设计报告(52页珍藏版)》请在金锄头文库上搜索。

1、 实事求是,敢为人先湖南大学电气与信息工程学院本科生单片机课程设计 题目:基于LCD12864的交通信号灯 学 院:电气与信息工程学院专业:电气工程及其自动化班级:学号:姓名:指导老师:设计时间: 2012年6月 29日 交通灯的历史1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯-煤气交通信号灯,这是城市街道的第一盏信号灯。1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。随着各种交通工具的发展和交通指挥的

2、需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生,使城市交通大为改善。中国最早的马路红绿灯,则是于1928年出现在上海的英租界。目 录第一部分 开发板部分硬件介绍3一、板上资源分布3二、ADuC848简要介绍5三、LCD显示模块6第二部分 交通信号灯的设计8一、题目任务设计要求8二、系统原理分析及流程框图8三、具体程序实现10四、具体操作步骤18五、设计心得体会19六、参考文献21附录一:开发板硬件图22附录二:单片机历史23第一部分 开发板硬件部分介绍一、板上资源分布图1.1 板上资源分布1、2、3:单

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,从左至右为LED70,分别被P0.7P0.0控制; 16:复位按键和下载按键; 17、18:I

4、IC总线上的EEPROM AT24C08和RTC DS1307; 19:IIC接口; 20:PS/2接口; 21:红外接收头; 22:功能选择和配置插针; 23:4X4矩阵式键盘或4个独立按键; 24:直流电源输入; 此外还有红外二极管(由单片机PWM模块输出信号控制)、USB电源输入接口。二、ADuC848的简要介绍1、8051-based core、5V供电电压; 2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序; 3、16位8通道-ADC,片内有1.25V参考电压、buffer和PGA; 4、12位电压输出DAC、Dual 16-BIT - DAC; 5、32kbyt

5、e程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte); 6、PLL(12.58 MHz max)(片外只需接32.768kHz晶振); 7、316位定时/计数器、看门狗定时器; 8、11中断源(2优先级)、11位堆栈指针; 9、24I/O+8模拟或数字输入; 10、UART、 SPI和I2C、高速115200波特率发生; 11、Power supply monitor、上电复位、Dual 200A激励电流源。12、单片机引脚分布 三、 LCD显示模块 LCD显示信号连接图如下图所示。图1.7 LCD信号连接关键网络名和引脚名解释: (1)DISCTRL

6、04:显示控制信号。(2)D0D7、DB0DB7:数据总线。(3)E:LCD使能信号。(4)RS:数据、指令选择信号。(5)RW:读、写选择信号。(6)CS1、CS2:LCD12864由两部分组成,CS1和CS2为选择信号。板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排针和排母左对齐插入。第二部分 交通信号灯的设计一、 题目任务设计要求1、 题目设计及目的(1)设计一智能交通信号灯。(1)了解交通灯管理的基本工作原理(2)熟悉ADuC848的工作原理和应用编程(3)熟悉ADuC848并行接口的各种工作方式和应用(4)熟悉AT89C51计数器/定时器的工作方式和应用编程

7、外部中断的方法(5)掌握LCD显示问题的解决 2、题目设计要求(1)了解实际交通灯的变化规律(以十字路口为例)(2)要求用LCD显示字符“红、黄、绿”(或字母r、y、g)代替相应的信号灯(3)要求有东西、南北四组信号灯显示,并显示对应的时间(4)时间要求倒计时显示,计时时间到,对应的信号准确切换(5)信号灯按一定的规律闪烁,实现简单的交通管理(6)能实现紧急事件处理(例如救护车的通行等),可用蜂鸣器报警和特殊数字显示(7)可根据交通流量智能调整各路段的通行时间(8)显示北京时间,可调整二、系统原理分析及程序流程框图1、交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。绿灯亮时,准许车

8、辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。下图为一种红绿灯的显示状态图状态一:红红绿绿设东西向为主干道,东西向绿灯定为20s. 状态二 红红黄黄 设定黄灯时间为5s。状态三 绿绿红红 南北向为副干道,南北向绿灯设为10s 状态四 黄黄红红南北向黄灯也设为5s.紧急状态:红红红红此时为紧急状态,所有灯为红灯,所有车辆禁止通行,触发紧急状态由紧急按钮触发,再次触发,则解除紧急状态,回到原来状态。2、 车流量处理。首先根据两条道路的车流量划分为主干道和副干道,主干道和副干道的绿灯时间设置不一样,主干道的绿灯时间设置的较长,红灯时间等于另一条道路的绿灯时间与黄灯时间之和

9、。其次,考虑有车流高峰时期,在本次设计中,设置北京时间18:00:0020:00:00为车流量高峰时期,在此时期,亮灯时间会变成另一个设定值,具体设置可依据实践情况设置,本次设计中将主干道,副干道绿灯实践均延长10s.当在此时期之外时,亮灯时间为正常设定时间。3、倒计时显示。 东西南北四个方向各有一个倒计时显示,倒计时数字表示当前亮灯的剩余时间。因为相对的方向显示相同,因而本次设计中只两个倒计时显示,一个表示南北方向,一个表示东西方向。计时的快慢通过改变对频率的计数实现。4、北京时间显示。 本次设计中,12864LCD显示屏第一行显示北京时间的时、分、秒,时间可调。北京时间功能采用T0计时器中

10、断来实现。ADuC848的core clock频率默认为1.572864MHz,定时器0的时钟为core clock,1572864=65536*24。故将定时器0设置为16位计数模式,且初值为0,无需在定时器溢出中断中给定时器赋初值(中断溢出就开始执行中断程序,计数器为加法计数器,从0加到65536)。每65536个core clock周期将产生一次中断,在中断处理程序中累计中断次数,当有24次中断产生时即为1秒,进行计时。5、主程序流程图 开始设置定时方式,初始化运行过程NKey是否有输出YY是否Key=16紧急状态NY北京时间调节是否Key=13N5、 交通灯显示流程图 开始状态一N是否

11、green0=0Y状态二N是否red1=0Y状态三N是否green1=0Y状态四N是否red0=0Y三、具体程序实现#include#includeds1307.h#includejuzhenkeyboard.h#includesmg12864.h#define unchar unsigned char#define unint unsigned intsbit buzzer=P26;unchar green2=50,30;unchar yellow2=5,5;unchar red2=55,35;unchar time7=1,2,1,1,1,1,1;unint timeflag=0;uncha

12、r state=0;unchar state_buffer;unchar zhugandao=20;unchar fudao=10;unchar key=0;unchar weizhi=0;bit jinjiflag=0;bit set_flag=0;unint i;unchar j;void jiaotong_con(void)switch(state) case 0: displayascall(1,2,shuzi16); displayascall(2,2,shuzi16); displayascall(3,2,shuzi16); displayascall(4,2,shuzi16);

13、displayascall(5,2,shuzi16); displayascall(6,2,shuzi16); displayascall(9,2,shuzi16); displayascall(10,2,shuzi16); displayascall(11,2,shuzi16); displayascall(14,2,shuzi16); displayascall(15,2,shuzi16); displayascall(16,2,shuzi16); displayascall(1,4,shuzi16); displayascall(2,4,shuzi16); displayascall(3,4,shuzi16); displayascall(4,4,shuzi16); displayascall(5,4,shuzi16); displayascall(6,4,shuzi16); displayascall(9,4,shuzi16); displayascall(10,4,shuzi16); displayascall(11,4,shuzi16); displayascall(12,4,shuzi16);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号