logo资料库

交通灯控制系统课程设计东华大学.docx

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
一、项目概述
二、系统设计
1.设计思想
2.方案可行性分析
3.总体方案
三、硬件设计
1.单片机最小系统部分
2.LED数码管串行显示部分
3.独立按键部分
四、软件设计
1.软件设计思想
2.程序流程图
3.程序清单
五、系统仿真及调试
六、 结果与展望
七、参考文献
MCS-51 单片机课程设计报告 MCS-51 单片机课程设计报告 ——交通灯控制系统 姓名:朱正威 学号:110901418 指导老师:潘 峰 东华大学信息学院自动化系 2014.6.22 1
MCS-51 单片机课程设计报告 目录 一、 项目概述......................................................................................................... 3 二、 系统设计......................................................................................................... 3 1. 设计思想......................................................................................................... 3 2. 方案可行性分析............................................................................................. 3 3. 总体方案......................................................................................................... 3 三、 硬件设计......................................................................................................... 5 1. 单片机最小系统部分..................................................................................... 5 2. LED 数码管串行显示部分.............................................................................. 5 3. 独立按键部分................................................................................................. 5 四、 软件设计......................................................................................................... 6 1. 软件设计思想................................................................................................. 6 2. 程序流程图..................................................................................................... 6 3. 程序清单......................................................................................................... 7 五、 系统仿真及调试........................................................................................... 13 六、 结果与展望................................................................................................... 15 七、 参考文献....................................................................................................... 15 2
MCS-51 单片机课程设计报告 一、 项目概述 项目所要设计的是交通灯控制系统,十字路口交通灯由红、绿两色 LED 显示 器(两位 8 段 LED 显示器)组成,LED 显示器显示切换倒计时,以秒为单位,每 秒更新一次;为确保安全,绿 LED 计数到 0 转红,经 5 秒延时(显示红色 0)后, 另一道开始绿色倒计时。 1) 主干道(A 道)先通行且通行时间为 45s;(加 5 秒红灯延时,共 50 秒) 2) 支道(B 道)通行时间为 25 s;(加秒红灯延时,共 30 秒) 3) 主道与支道的车辆交错通行; 4) 若遇紧急情况,按开关时,主道与支道都为红灯 20 s 5) 根据实时交通堵塞情况人为控制时,按 K2 时,主道延时 30 s 通行,按 K3 时,支道延时 30 s 通行。 设计以 AT89C51 为核心的控制电路,并编写相关的系统软件。 该模拟交通灯控制系统采用模块化结构,主要分为定时器中断控制、按键扫 描、LED 数码管显示三个部分。在设计完成一个方向上的红绿灯数码管计时后, 再进行两个方向红绿灯的切换显示以及特殊情况下的处理。 采用 AT89C51 作为系统主控芯片,其包含两个定时器中断 T0 和 T1、两个外 部中断,以及 4 个 I/O 端口 P0 到 P3 端口。本系统采用其定时器 T1 进行定时, 每隔一定时间定时中断一次,在中断程序内进行变量自加,以此可以设置任意长 的定时时间。如设置 1s 的定时改变红绿灯 LED 数码管显示值,设置 0.2m 的按键 扫描周期进行按键定时扫描。为了节省 I/O 口资源以及硬件连接上的方便,采用 串口显示芯片 MAX7219 进行 LED 数码管显示部分的设计。 整个方案设计结构清晰明了,硬件连接简洁,软件编程模块清晰,经实践验 二、 系统设计 1. 设计思想 2. 方案可行性分析 证,此方案可行。 3. 总体方案 在 Proteus 环境中进行硬件电路的设计和搭建,具体硬件电路设计如图 1、2 所示。在 Keil 环境下进行软件设计 51 单片机编程,为定时器中断和 MAX7219 串 口显示和主函数部分分别建立相应的源文件和头文件,进行模块化编程。 3
MCS-51 单片机课程设计报告 图 1、硬件连接图 图 2、整体系统图 4
MCS-51 单片机课程设计报告 三、 硬件设计 系统硬件设计主要分为三个部分,即单片机最小系统部分、LED 数码管串行 显示部分和独立按键部分。 1. 单片机最小系统部分 2. LED 数码管串行显示部分 按要求选用 AT89C51 型号单片机,晶振频率 12MHz,使用内部 RAM 和 ROM。由于 Proteus 环境下默认无需晶振电路和复位电路等,所以并未画出。 MAX7219 是一种集成化的串行输入/输出共阴极显示驱动器,与单片机只 需三根信号进行通信,可以连接 8 位数字的 7 段 LED 数码管。其内部集成了 数据保持、BCD 译码器、多路扫描器、段驱动器和位驱动器。每片 MAX7219 最多可同时驱动 8 个 LED 数码管,而交通灯控制系统正好需要 8 个 LED 数码 管。同时,利用其内部 BCD 译码功能,可以省去额外的软件或硬件译码操作。 具体连接如图 3 所示。 图 3、MAX7219 连接图 3. 独立按键部分 该系统需要根据外部按键 K1、K2 和 K3 进行人工干预,按键较少,可以 采用三个独立按键接在三个单片机 I/O 引脚上,在定时中断内进行按键的扫 描。按键连接部分如图 4 所示。 5
MCS-51 单片机课程设计报告 图 4、按键连接图 四、 软件设计 1. 软件设计思想 在 Keil 环境下进行软件设计 51 单片机编程,软件部分主要分为定时器中断、 MAX7219 串口显示和主函数部分,进行模块化编程,为各个部分分别建立相应 的.h 头文件和.c 源文件。 定时器中断部分:选用定时器 T1,方式 2,8 位自动重装初值。250us 产生 一次定时器中断,由于单片机晶振为 12MHz,经计算,计数初值为 6。在中断服 务程序内进行变量 counter 的自加,当 counter 自加 40 次之后即为一次 10ms 中 断,以此为基本时间单位可以进行进一步的定时。 MAX7219 串口显示部分:首先定义串口数据发送函数 MAX7219_write,然后 按照命令控制字,初始化 MAX7219 工作模式。主要需要初始化的几个寄存器为: 寄存器地址 0x0A 0x0B 0x0C 0x09 功能 亮度控制,0x00~0x0F,0x0F 最亮 设置扫描 LED 个数 工作模式 0x00ShutDown 0x01:Normal 编码模式 对应 bit 为 1 则支持编码 2. 程序流程图 整个程序的流程图如图 5 所示。 6
MCS-51 单片机课程设计报告 图 5、程序流程图 3. 程序清单 1) MAX7219 串口显示程序 //串行数据输入 DIN #include #include "MAX7219.h" #define uchar unsigned char sbit MAX7219_DIN = P1^0; sbit MAX7219_CLK = P1^1; sbit MAX7219_LOAD = P1^2; //数据锁存脉冲信号 LOAD /************MAX7219 写寄存器函数**************/ // addr: 寄存器地址 // dat: 写入寄存器的值 //说明: D12~D15 为无关位,D8~D11 为寄存器地址,D0~D7 为命令或待显数据 void MAX7219_write(uchar addr, uchar dat) { //时钟信号 CLK uchar i=0; MAX7219_LOAD=0; for(i=0;i<8;i++) { //先写地址 MAX7219_CLK = 0; MAX7219_DIN = (addr&(0x80>>i))? 1:0; i++; i--; MAX7219_CLK = 1; //时钟上升沿写入 } 7
MCS-51 单片机课程设计报告 for(i=0;i<8;i++) { //再写数据 MAX7219_CLK = 0; MAX7219_DIN = (dat&(0x80>>i))? 1:0; i++; i--; MAX7219_CLK = 1; } MAX7219_LOAD=1; } /*********************************************/ /*************MAX7219 初始化函数***************/ void MAX7219_init() { MAX7219_write(0x0A,0x07); //亮度地址 0AH,0x00~0x0F,0x0F 最亮 MAX7219_write(0x0B,0x07); //设置扫描 LED 个数地址 0BH,扫描 8 个 MAX7219_write(0x0C,0x01); // 工 作 模 式 地 址 0x0C. 0x00:ShutDown;0x01:Normal MAX7219_write(0x09,0xFF); //编码模式地址 0x09. 0x00~0xFF:哪一位为 1, 哪一位就支持译码 } /*********************************************/ 2) 按键扫描函数 /******************按键扫描函数******************/ uchar key_scan() { uchar key,valid_key,delay=125; key=P1&0x70; while(delay--); valid_key=P1&0x70; if(key!=valid_key) //按键消抖 return 0; switch(key) { case 0x60: //按下 K1 按键 return 1; case 0x50: //按下 K2 按键 return 2; case 0x30: //按下 K3 按键 return 3; default: //其它情况不考虑 8
分享到:
收藏