1、三、LCD显示模块 6第二部分 交通信号灯的设计 8一、题目任务设计要求 8二、系统原理分析及流程框图 8三、具体程序实现 10四、具体操作步骤 18五、设计心得体会 19六、参考文献 21附录一:开发板硬件图 22附录二:单片机历史 23第一部分 开发板硬件部分介绍一、板上资源分布图1.1 板上资源分布1、2、3:单片机P0、P2、P3口引出接口(有限流保护电阻); 4:上排图形点阵LCD12864的接口、下排LCD1602的接口;5、6:两路16位ADC输入、可作差分输入;7、8:12位DAC输出、对DAC输出进行比例放大或者跟随的运放;9:单片机AduC848;10:无源蜂鸣器、由单片机
2、PWM模块输出信号控制;11:8位数码管;12:SPI接口;13:RS232串口(通过串口在线下载、单步、断点、运行到某一行等方式调试程序);14:步进电机(5V、70欧姆、6线4相)接口;15:8路LED,从左至右为LED70,分别被P0.7P0.0控制;16:复位按键和下载按键;17、18:IIC总线上的EEPROM AT24C08和RTC DS1307;19:IIC接口;20:PS2接口;21:红外接收头;22:功能选择和配置插针;23:4X4矩阵式键盘或4个独立按键;24:直流电源输入;此外还有红外二极管(由单片机PWM模块输出信号控制)、USB电源输入接口。二、ADuC848的简要介
3、绍1、8051-based core、5V供电电压;2、可以通过串口在线下载程序和单步、断点、运行到某一行等方式调试程序;3、16位8通道-ADC,片内有1.25V参考电压、buffer和PGA;4、12位电压输出DAC、Dual 16-BIT - DAC;5、32kbyte程序存储器、4kbyte用户信息Flash存储器、256RAM+2048XRAM(byte);6、PLL(12.58 MHz max)(片外只需接32.768kHz晶振);7、316位定时计数器、看门狗定时器;8、11中断源(2优先级)、11位堆栈指针;9、24IO+8模拟或数字输入;10、UART、 SPI和I2C、高速
4、115200波特率发生;11、Power supply monitor、上电复位、Dual 200A激励电流源。12、单片机引脚分布 三、 LCD显示模块 LCD显示信号连接图如下图所示。图1.7 LCD信号连接关键网络名和引脚名解释:(1)DISCTRL04:显示控制信号。(2)D0D7、DB0DB7:数据总线。(3)E:LCD使能信号。(4)RS:数据、指令选择信号。(5)RW:读、写选择信号。(6)CS1、CS2:LCD12864由两部分组成,CS1和CS2为选择信号。板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排针和排母左对齐插入。第二部分 交通信号灯的设计1
5、、题目任务设计要求1、题目设计及目的(1)设计一智能交通信号灯。(1)了解交通灯管理的基本工作原理(2)熟悉ADuC848的工作原理和应用编程(3)熟悉ADuC848并行接口的各种工作方式和应用(4)熟悉AT89C51计数器定时器的工作方式和应用编程外部中断的方法(5)掌握LCD显示问题的解决 2、题目设计要求(1)了解实际交通灯的变化规律(以十字路口为例)(2)要求用LCD显示字符“红、黄、绿”(或字母r、y、g)代替相应的信号灯(3)要求有东西、南北四组信号灯显示,并显示对应的时间(4)时间要求倒计时显示,计时时间到,对应的信号准确切换(5)信号灯按一定的规律闪烁,实现简单的交通管理(6)
6、能实现紧急事件处理(例如救护车的通行等),可用蜂鸣器报警和特殊数字显示(7)可根据交通流量智能调整各路段的通行时间(8)显示北京时间,可调整二、系统原理分析及程序流程框图1、交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。下图为一种红绿灯的显示状态图状态一:设东西向为主干道,东西向绿灯定为20s. 状态二 设定黄灯时间为5s。状态三 南北向为副干道,南北向绿灯设为10s 状态四 南北向黄灯也设为5s.紧急状态:此时为紧急状态,所有灯为红灯,所有车辆禁止通行,触发紧急状态由紧急按钮触发,再次触发
7、,则解除紧急状态,回到原来状态。2、车流量处理。首先根据两条道路的车流量划分为主干道和副干道,主干道和副干道的绿灯时间设置不一样,主干道的绿灯时间设置的较长,红灯时间等于另一条道路的绿灯时间与黄灯时间之和。其次,考虑有车流高峰时期,在本次设计中,设置北京时间18:00:0020:00为车流量高峰时期,在此时期,亮灯时间会变成另一个设定值,具体设置可依据实践情况设置,本次设计中将主干道,副干道绿灯实践均延长10s.当在此时期之外时,亮灯时间为正常设定时间。3、倒计时显示。 东西南北四个方向各有一个倒计时显示,倒计时数字表示当前亮灯的剩余时间。因为相对的方向显示相同,因而本次设计中只两个倒计时显示
8、,一个表示南北方向,一个表示东西方向。计时的快慢通过改变对频率的计数实现。4、北京时间显示。 本次设计中,12864LCD显示屏第一行显示北京时间的时、分、秒,时间可调。北京时间功能采用T0计时器中断来实现。ADuC848的core clock频率默认为1.572864MHz,定时器0的时钟为core初值为0,无需在定时器溢出中断中给定时器赋初值(中断溢出就开始执行中断程序,计数器为加法计数器,从0加到65536)。每65536个core clock周期将产生一次中断,在中断处理程序中累计中断次数,当有24次中断产生时即为1秒,进行计时。5、主程序流程图5、交通灯显示流程图三、具体程序实现#i
9、ncludeaduc848.2=50,30;unchar yellow2=5,5;unchar red2=55,35;unint timeflag=0;unchar 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); dis
10、playascall(2,2,shuzi16); displayascall(3,2,shuzi16); displayascall(4,2,shuzi16); 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,
11、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); display
12、ascall(13,4,shuzi16); displayascall(14,4,shuzi16); displayascall(15,4,shuzi16); displayascall(16,4,shuzi16); displayascall(1,3,shuzi16); displayascall(2,3,shuzi16); displayascall(3,3,shuzi16); displayascall(4,3,shuzi16); displayascall(7,3,shuzi16); displayascall(8,3,shuzi16); displayascall(11,3,shuz
13、i16); displayascall(14,3,shuzi16); displayascall(15,3,shuzi16); displayascall(16,3,shuzi16); displayhanzi(3,3,table1); displayhanzi(5,3,table1); displayhanzi(4,2,table0); displayhanzi(4,4,table0); displayshuzi(12,3, green0); displayshuzi(12,2, red1); green0-; red1-; if(green0=0) green0=zhugandao; green1=fudao; red0=fudao+5; yellow0=5; yellow1=5; state=1; 转黄红 br
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1