《课设论文-利用LCD1602显示时间的交通灯控制设计》由会员分享,可在线阅读,更多相关《课设论文-利用LCD1602显示时间的交通灯控制设计(22页珍藏版)》请在金锄头文库上搜索。
1、 目录目录 一 总体设计的框图.1 1.1 总体方案介绍.1 1.2、硬件设计.1 1.3 软件设计.2 1.3.1.交通灯显示时序的理论分析.2 1.4 交通灯显示的理论分析.5 1.4.1 倒计时显示的理论分析.5 1.4.2 状态灯显示的理论分析.5 1.4.3 中断理论分析.5 1.4.4 LCD 显示接口.6 1. 4.5 源程序.11 1.4.6 工作原理图.20 二 设计的体会.21 参考文献.221一一 总体设计的框图总体设计的框图1.1 总体方案介绍总体方案介绍本课程设计用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行, 而接入 LCD1602 就可以显示倒计时
2、以提醒行使者,更具人性化。本系统在此基础上,加入 了紧急状态下的运行。本设计系统以单片机为控制核心,连接成最小系统,由独立式键盘 模块、复位电路模块、晶振电路模块产生输入,LED 信号灯状态模块,LCD1602 液晶显示器 接受输出。系统的总体框图如图 1 所示。 键盘设置模块对系统输入模式选择及具体通行时 间设置的信号,系统进入正常工作状态,执行交通灯状态显示控制,同时将时间数据倒计 时输入到 LCD1602 显示器实时显示。在此过程中还要实时紧急按键信号,以达到对异常状 态进行实时控制的目的。1.2、硬件设计、硬件设计因才用了 PC 机和单片机试验箱接口应用平台硬件电路相对简单,利用 80
3、31 的 P1 口对交通灯的控制、计数/定时器、中断和数码管显示构成的简易交通灯,实验电路连接如表 1所示。表 1 实验连接图连线连接孔 1连接孔 21P7L7(东西红灯)2P6L6(东西黄灯)LCD1602 液晶显示器AT89C51 单片机外部终端交通灯显示23P5L5 (东西绿灯)4P4L4 (南北红灯)5P3L3(南北黄灯)6P2L2(南北绿灯)7P3.2负脉冲8KEY/LED_CSCS01.3 软件设计软件设计1.3.1.交通灯显示时序的理论分析交通灯显示时序的理论分析以下四图所示为红黄绿灯规则的状态图NSWE黄绿红红绿黄黄绿红红绿黄图 2 状态 S1 南北通行 30S 东西禁止3NW
4、E黄绿红红绿黄黄绿红红绿黄图 3 状态 S2 南北转黄灯NWE黄绿红红绿黄黄绿红红绿黄图 4 状态 S3 南北禁止 东西通行 30SNW黄绿红红绿黄黄绿红红绿黄4图 5 状态 S4 东西绿灯转黄灯共四种状态,分别设定为 S1、S2、S3、S42,交通灯以这四种状态为一个周期,循环执行如图 6 所示。如果有意外发生,去处理中断,红灯全亮,时间 10S。开始S2S1S4S3图 6 交通灯状态循环依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如表 1 所示(其中逻辑值“1”代表执行通行,逻辑值“0”代表禁止通行,逻辑值“L”代表绿灯转黄灯):表 2 状态逻辑表S1 的状态ESWN逻辑值0101
5、显示时间30SS2 的状态ESWN逻辑值0L0L显示时间1SS3 的状态ESWN逻辑值1010显示时间30SS4 的状态ESWN逻辑值L0L0显示时间1S5程序就是上述四种状态下循环转化的,一个周期四个状态,正常情况下共花费 63S。1.4 交通灯显示的理论分析交通灯显示的理论分析1.4.1 倒计时显示的理论分析倒计时显示的理论分析利用 MCS-51 内部的定时器/计数器进行,配合软件延时实现倒计时。在工作之前必须通过软件设定它的工作方式,即对寄存器 TMOD 中每位进行设定,格式如表 3 所示。表 3 TMOD 格式D7 D6 D5 D4 D3 D2 D1 D0CATEC/TM1M0CATE
6、C/TM1M0其中,低四位用于决定 T0 的工作方式,高四位用于决定 T1 的工作方式,M1 和 M0 工作方式控制位用以确定 4 种工作方式,如下表 4 所示:表 4 M1 和 M0 控制 4 种工作方式M1 M0工作方式说明0 0方式 013 位计数器0 1方式 116 位计数器1 0方式 2自动装载 8 位计数器1 1方式 3定时器 0:分为两个 8 位计数器定时器 1:对外部停止计数采用 T0 方式 1,定时 1S,系统时钟为 6MHZ,所以时钟周期=(12*1/6)us=2us;采用每隔 100ms 中断一次,中断 10 次为 1S,使时间的计数值减 1,实现了倒计时的功能。计算计数
7、初值 X:(216-X)*2us=1s,所以 X=15536=3CB0H,因此 TH0=3CH,TL0=B0H。1.4.2 状态灯显示的理论分析状态灯显示的理论分析南北通行,东西禁止时利用定时器中断倒计时 1S;东西通行,南北禁止时利用定时器中断倒计时 1S。1.4.3 中断理论分析中断理论分析MCS-51 中断系统有 5 个中断源,分别是外部中断 0、外部中断 1、定时器/计数器 T06溢出中断、定时器/计数器 T1 溢出中断、串行口中断请求。MCS-51 的 CPU 对中断源的开放和屏蔽,是由片内的中断允许寄存器 IE 控制。中断允许控制寄存器 IE 的格式,如表 5 所示。表 5 IE
8、的格式位地址AFAEADACABAAA9A8位符号EA/ESET1EX1ET0EX0EA 中断允许总控制位,EA=0,中断总禁止,禁止所有中断。EA=1,中断总允许,总允许位打开后,各中断的允许或禁止由各中断允许控制位设置决定。 EX0(EX1) 外部中断允许控制位,EX0(EX1)=0,禁止外部中断。EX0(EX1)=1,允许外部中断。 ET0(ET1) 定时/计数中断允许控制位, ET0(ET1)=0, 禁止定时/计数中断。ET0(ET1)=1,允许定时/计数中断。 ES 串行中断允许控制位,ES=0,禁止串行中断。ES=1,允许串行中断。 利用 MCS-51 内部的中断进行,采用外部中断
9、 0,跳沿触发方式;外部中断 0 的中断入口地址为 0003H。1.4.4 LCD 显示接口显示接口LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是 基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序 可以很方便地应用于市面上大部分的字符型液晶。字符型LCD 通常有14 条引脚 线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与 14 脚的 LCD 完全一样,定义如下表所示:字符型 LCD 的引脚定义71.清屏指令功能: 清除液晶显示器,即将DDRAM 的内容全部填入“空白“的ASCI
10、I码20H;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为0。2.光标归位指令8功能: 把光标撤回到显示器的左上方;把地址计数器(AC)的值设置为0;保持 DDRAM 的内容不变。3.进入模式设置指令功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名设置DL 0=数据总线为4位 1=数据总线为8位N 0=显示1行 1=显示2行F 0=57 点阵/每字符 1=510 点阵/每字符设计流程图设计流程图9主循环中首先通过 receive_message 函数查询 CAN 命令,如果系统接收到了 CAN 命令,则从 CAN 数据接收缓存器中读取相应的命令,然后检
11、查命令中的 ID 是否与本机的 ID 一致。确认命令是发给本机后执行 modbus_cmd_parse函数,析命令内容,完成指定的相应操作。进入主循环后系统工作的过程如下主程序入口LCD 初始化清楚 LCD 开始界面确认系统是否处于设置 状态初始化 CANBUS 的波 特率 12MHz设置 CAN 总线模式,为 全通过初始化 IIC 总线测试系统是否为新系统, 如为断系统则使 Flash 单 元初始化全为零将 IICFlash 相应内容 复制到双口 RAM 依 据条件编译硬件的测 试系统主循环10图所示。开始初始化设定初值红灯倒计时红外高电平?倒计时完毕?闪烁 5S绿灯闪烁 2S黄灯倒计时红外
12、对管高电平?倒计时完毕?绿灯闪烁 2S结束闪烁 1S111. 4.5 源程序源程序ORG 0000H RS BIT P2.0 RW BIT P2.1 MOV A,#38H LCALL LOOP LCALL BUSY MOV A,#01H LCALL LOOP LCALL BUSY MOV A,#0CH LCALL LOOP LCALL BUSY MOV A,#04H LCALL LOOP LCALL BUSY ;LCD 初始化程序 START:CLR P1.0MOV A,#0C5HLCALL LOOPLCALL BUSYMOV A,#30HLCALL LOOP1LCALL BUSY;数字 0 的显示MOV A,#0C6HLCALL LOOPLCALL BUSYMOV A,#32HLCALL LOOP1LCA