STC89C52交通灯实验

合集下载

基于STC89C52单片机的交通灯设计

基于STC89C52单片机的交通灯设计

目录1 系统设计 (3)1.1 设计要求 (3)1.2 硬件设计部分 (3)1.2.1 交通灯系统电路 (3)1.2.2 单片机最小系统电路(见附录1) (4)1.2.3 复位电路 (4)1.2.4 晶振电路 (4)1.2.5 74HC573的功能(见附录2) (5)1.2.6 发光二极管 (6)1.2.7 数码管 (6)2 软件设计(见附录3) (7)3 电路原理图的制作 (7)3.1电路原理图的设计 (7)3.2 PCB的制作 (8)结论 (11)参考文献 (12)摘要本次设计系统有交通灯设置电路、单片机、显示电路等构成。

信号灯控制的实现是通过电路与C语言程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。

电路部分原理图是通过用 Protel 99SE软件绘制设计,C语言程序的设计与调试都在KEIL上完成。

本系统功能设计完善,采用AT89C52单片机为核心,具有实用,方便,灵活的特点。

随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。

单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。

在此基础上对系统进行了优化设计,整体性好,人性化强、可靠性高。

关键词:单片机;交通灯;显示1 系统设计1.1 设计要求南北方向红灯与东西方向绿灯同时亮,倒计时30秒,数码管显示;南北方向黄灯与东西方向黄灯亮,倒计时3秒,数码管显示;南北方向绿灯与东西方向红灯亮时,倒计时30秒,数码管显示。

1.2 硬件设计部分根据本设计交通灯的模型和实现的功能,硬件部分可以分为以下两个大的系统:单片机系统、交通灯演示系统。

基于STC89S52单片机智能交通灯控制系统的设计与制作及应用

基于STC89S52单片机智能交通灯控制系统的设计与制作及应用

STC89S52单片机智能交通灯控制 系统的应用
在应用方面,我们将该智能交通灯控制系统安装在了某城市的交通要道上。通 过实时采集车辆和行人的信息,根据交通灯时序控制算法控制交通灯的时序, 实现了对交通流量的有效调控。同时,我们还通过无线通信模块将交通灯的运 行情况实时传输到城市交通管理中心,方便管理人员对整个城市的交通状况进 行监控和调度。
智能交通灯控制系统在国内外的 研究现状
智能交通灯控制系统最早出现在20世纪90年代,经过多年的发展,已经在国内 外得到了广泛应用。目前,该系统的实现方式主要有两种:一种是基于嵌入式 系统,通过传感器采集车辆和行人的信息,然后通过预先设定的算法控制交通 灯的时序;另一种是基于计算机控制系统,通过监控摄像头采集交通流量信息, 然后通过中央控制系统对交通灯进行实时控制。
未来的研究方向可以包括提高系统的自适应性、降低对传感器的依赖程度、综 合考虑行人和非机动车的需求等方面。
参考内容
一、引言
随着社会和经济的快速发展,城市交通问题日益凸显,如交通拥堵、安全事故 等。为了改善这些问题,智能交通系统逐渐被引入到城市交通管理中。其中, 智能交通灯控制系统作为智能交通系统的重要组成部分,对于提高交通效率、 确保交通安全起着至关重要的作用。本次演示将介绍一种基于STC89C52单片 机的智能交通灯控制系统的设计。
三、系统软件设计
本系统的软件设计采用C语言,主要包括以下几个部分:
1、初始化程序:在系统上电后,首先进行硬件初始化,包括单片机的时钟、 I/O口等 单片机通过I/O口读取这些数据。
3、信号灯控制程序:根据采集到的交通数据,单片机通过信号灯控制模块控 制交通信号灯的灯光时序。例如,当检测到车辆较多时,单片机将延长绿灯时 间;当检测到行人较多时,单片机将延长红灯时间。

交通灯实训实验报告

交通灯实训实验报告

一、实验目的1. 理解交通灯控制系统的工作原理。

2. 掌握使用单片机进行交通灯控制系统的设计与实现。

3. 提高动手实践能力和问题解决能力。

二、实验原理交通灯控制系统通常采用单片机作为核心控制单元,通过编程实现对交通灯的红、黄、绿三种灯光状态的切换。

本实验采用单片机(如STC89C52)作为核心控制单元,利用定时器实现灯光的定时切换,并通过LED灯模拟交通灯的灯光状态。

三、实验器材1. 单片机开发板(如STC89C52开发板)2. LED灯(红、黄、绿各一个)3. 电阻(根据LED灯的规格选择)4. 跳线5. 编程器6. 计算机四、实验步骤1. 硬件连接:- 将红、黄、绿LED灯分别连接到单片机的P1.0、P1.1、P1.2端口。

- 将电阻串联在每个LED灯的两端,防止LED灯过载。

- 将跳线连接到单片机的相关引脚,用于编程和调试。

2. 软件编程:- 使用Keil软件编写单片机程序,实现交通灯的控制逻辑。

- 设置定时器,实现灯光的定时切换。

- 编写主循环程序,根据定时器的值切换LED灯的状态。

3. 程序调试:- 将程序烧录到单片机中。

- 使用示波器或逻辑分析仪观察LED灯的状态,确保程序运行正常。

4. 实验验证:- 将LED灯连接到实际交通灯的位置。

- 启动单片机,观察LED灯的状态是否符合交通灯的控制逻辑。

五、实验结果与分析1. 实验结果:- 红灯亮时,表示禁止通行。

- 绿灯亮时,表示允许通行。

- 黄灯亮时,表示准备切换到红灯。

2. 实验分析:- 通过本次实验,掌握了使用单片机进行交通灯控制系统的设计与实现。

- 了解了定时器在实现灯光切换中的作用。

- 提高了动手实践能力和问题解决能力。

六、实验总结1. 优点:- 实验操作简单,易于上手。

- 理论与实践相结合,提高了学生的动手能力。

2. 不足:- 实验内容较为简单,未能涉及到复杂交通灯控制系统的设计。

- 实验器材较为有限,限制了实验的拓展性。

七、实验拓展1. 研究复杂交通灯控制系统的设计,如多路口交通灯协同控制。

基于 STC89C52RC单片机 十字路口智能交通灯设计

基于 STC89C52RC单片机 十字路口智能交通灯设计

《单片机课程设计》课程设计说明书专业班级:姓名:学号:指导教师:设计时间:目录1 概述 (3)1.1 设计的意义 (3)1.2 设计的思想 (3)1.3 设计满足的基本功能 (4)2 系统方案设计 (4)2.1 系统方案的选择................ . (4)2.2 系统方案的确定 (4)3 系统硬件设计3.1 显示部分电路设计 (5)3.2 时钟部分电路设计 (6)3.3 复位部分电路设计 (6)3.4 LED显示电路 (7)4 系统软件设计 (7)4.1 应用系统软件设计要求 (7)4.2 主程序模块的设计 (8)4.3 延时程序模块的设计 (10)5 Protel软件仿真 (10)5.1 具体仿真结果显示 (10)6 课程设计体会 (10)参考文献 (11)7.附录 (12)附1:源程序代码 (12)附2:系统原理图 (19)摘要本设计是关于单片机控制的交通灯模拟系统的设计。

该设计中用LED灯来模拟信号灯。

利用STC89C52RC单片机,调用延时程序对通行时间进行倒计时,从P0口输出并显示在数码管上,P1控制LED的显示,P2通过74LS138译码器控制数码管的位选,以此来实现十字路口交通灯的指示功能,当出现紧急情况时,通过按下P3.2产生中断,路口全部显示红灯,一段时间后可恢复原来的状态。

根据交通灯系统所需要实现的功能要求,先画出程序部分的流程图和主程序流程图,然后根据流程图写出其子程序。

从而通过模拟系统的仿真来实现该设计所要求的功能。

此交通灯系统要求实现如下的的功能:1)南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为80秒、支干道每次通行间为60秒。

2)在绿灯转为红灯时,要求黄灯先闪亮3秒钟,才能变换运行车道;3)当出现紧急情况时,四个路口全部显示红灯,一段时间后恢复原来状态。

关键字:单片机交通灯系统 LED指示灯 74LS138译码器1概述1.1设计意义交通的发达程度,是一个城市发达程度的指标之一,由此可见对交通的管理则显得越来越重要。

基于STC89C52RC单片机的智能交通灯控系统设计

基于STC89C52RC单片机的智能交通灯控系统设计

基于STC89C52RC单片机的智能交通灯控制系统设计Design of Traffic Lights Control Module Based on STC89C52RC摘要:交通灯控制系统是智能交通系统中重要的组成部分。

选择微处理器STC89C52RC作为核心芯片,设计了一种通用化、可独立挂接的交通灯控制模块。

硬件电路围绕STC89C52RC搭建,由单片机的I/0口给出控制信号,数码管显示倒计时,LED放光二极管模拟交通灯运行。

软件体系在总体上按照串口通信机理设计了自定义通信协议,并编写了指令以实现系统运行所要求的功能。

关键词:交通灯控制模块 STC89C52RC 单片机倒计时 Proteus1 引言城市智能交通系统(ITS)中,路口信号灯控制子系统是现代城市交通监控指挥系统中重要的组成部分。

交通控制灯是我们日常生活中重要的交通控制设施,安装在各个交叉路口,在疏导车辆通行中有着很重要的意义。

交通控制灯有红黄绿三种颜色组成,红灯代表停止,绿灯代表通行,黄灯代表警示,在车辆逐渐增多的今天,交通灯的出现大大缓解了交通堵塞,以及减少了交通事故的发生。

目前交通信号灯控制系统有多种的实现方法,本文采用STC89C52RC为核心器件配以数码管,发光二极管来进行交通控制灯的设计,采用Proteus软件来进行模拟仿真,提高了系统的可实用性,使过程更加形象生动。

2 设计要求十字交叉路口的东西南北四个方向各有一组红绿灯和一个时钟显示管,用于显示红绿灯的时间。

设计要求如下:1.东西方向红灯亮30s,南北方向绿灯亮30s。

2.东西方向黄灯亮3 s,南北方向黄灯亮3 s。

3.东西方向绿灯亮30s,南北方向红灯亮30s。

4.东西方向黄灯亮3 s,南北方向黄灯亮3 s。

5.依次循环显示。

6.数码显示管采用倒计时方式显示,显示红黄绿灯的显示时间。

东西方向红灯绿灯黄灯南北方向红灯绿灯黄灯30s3s30s3s30s图1 交通灯工作时序3 系统总体设计及硬件电路系统系统设计为独立模块,模块可以采用智能总线的形式与上位机相连接,这种分布式开放体系结构使得交通灯控制系统可以自由组合与自由发展。

基于单片机STC89C52RC的交通灯

基于单片机STC89C52RC的交通灯

基于单片机STC89C52RC的交通灯摘要:本交通灯系统采用STC89C52RC作为核心控制器,控制红绿黄三盏灯,来达到模拟日常交通灯系统,其中倒计时时间通过1602显示出来。

关键词:交通灯1602液晶一、设计方案整个模拟交通灯系统用单片机STC89C52RC作为核心控制器,有序的控制着红黄绿三盏灯的运行,实际交通灯系统所需的倒计时时间采用1602显示出来,并且其倒计时时间可通过独立式键盘进行调整。

系统框图二、主程序流程图三、附录------源程序(C)一、the main function of this system/**用stc52实现简易交通灯*/#include<reg52.h>#include<intrins.h>#include "define.h"#include "lcd_1602.h"#include "delay.h"#include "some_inits.h"#include "control.h"/****************************************主函数void main()****************************************/void main(){sys_init();while(1){key_scan(); //扫描键盘delay_ms(100);}}二、include Some .h files(1)defines.h#ifndef _define_h#define _define_h#define uchar unsigned char#define unint unsigned int/* 液晶数据区*/sfr lcd_bus=0x80; //液晶数据口sbit E=P2^7;sbit RW=P2^6;sbit RS=P2^5;/* 定义三盏led */sbit red=P2^0;sbit green=P2^1;sbit yellow=P2^2;/* 定义三个开关*/sbit jia=P1^0; //加一键sbit jian=P1^1; //减一键sbit ok=P1^2; //确认键uchar flag=1; //1,2,3:绿灯,黄灯,红灯bit first=0;/* 蜂鸣器*/sbit bell=P1^4;uchar sec_h; //秒针十位uchar sec_l; //秒针个位uchar g_h=1,g_l=0;//绿灯计时数据uchar y_h=1,y_l=0;//黄灯计时数据uchar r_h=1,r_l=0;//红灯计时数据#endif(2)some_inits.h#ifndef _some_inits_h#define _some_inits_h#include "lcd_1602.h"#include "define.h"//state some functionsvoid L1602_init();void Time0_init();/*系统初始化*/void sys_init(){flag=1; //绿灯green=1;red=0;yellow=0;L1602_init();//1602液晶初始化Time0_init();//定时器0初始化}/*1602初始化*/void L1602_init(void){enable(0x01);enable(0x38);enable(0x0c);enable(0x06);enable(0xd0);L1602_string(1,2,"traffic lights");sec_h=g_h;sec_l=g_l;L1602_char(2,8,sec_h+0x30);L1602_char(2,9,sec_l+0x30);}/* 定时器0初始化*/void Time0_init(){TMOD=0x01; //time0,time1工作在方式一IE=0x8a; //开EA,允许ET0,允许ET1TH0=0x4c; //50ms,晶振是11.0592MTL0=0x00;//TH1=0xfc; //1ms//TL1=0x66;TR0=1; //time0开始计数}#endif(3)control.h #ifndef _control_h_#define _control_h_#include <intrins.h>#include "lcd_1602.h"#include "define.h"#include "delay.h"/* state some functions */void inc();void dec();void fmq();/* 键盘扫描函数*/void key_scan(){if(ok==0){delay_ms(5);if(ok==0){fmq();enable(0x0c); //关光标first=0;TR0=1; //开始计数}else _nop_();}else if(jia==0 || jian==0){delay_ms(5);if(jia==0 || jian==0){TR0=0; // 停止计数fmq();while(!first){first=1;enable(0x0f); //开光标,开反白}if(jia==0) inc();else if(jian==0) d ec();}else{_nop_();}}}/* 加一*/void inc(void){_nop_();if(green==1 && yellow==0 && red==0) {if(g_l<9 && g_h<5) g_l++;else{if(g_h<5){g_h++;g_l=0;}else{g_h=5;g_l=0;}}sec_h=g_h;sec_l=g_l;}else if(yellow==1 && red==0 && green==0) {if(y_l<9 && y_h<5) y_l++;else{if(y_h<5){y_h++;y_l=0;}else{y_h=5;y_l=0;}}sec_h=y_h;sec_l=y_l;}else if(red==1 && green==0 && yellow==0 ) {if(r_l<9 && r_h<5) r_l++;else{if(r_h<5){r_h++;r_l=0;}else{r_h=5;r_l=0;}}sec_h=r_h;sec_l=r_l;}L1602_char(2,9,sec_l+0x30);L1602_char(2,8,sec_h+0x30);}/* 减一*/void dec(void){_nop_();if(green==1 && yellow==0 && red==0){if(g_l>0 && g_h>0){g_l--;}else{if(g_h>0){g_h--;g_l=9;}else if(g_l>0){g_l--;}else{g_h=0;g_l=0;}}sec_h=g_h;sec_l=g_l;}else if(yellow==1 && green==0 && red==0) {if(y_l>0 && y_h>0){y_l--;}else{if(y_h>0){y_h--;y_l=9;}else if(y_l>0){y_l--;}else{y_h=0;y_l=0;}}sec_h=y_h;sec_l=y_l;}else if(red==1 && yellow==0 && green==0) {if(r_l>0 && r_h>0){r_l--;}else{if(r_h>0){r_h--;r_l=9;}else if(r_l>0){r_l--;}else{r_h=0;r_l=0;}}sec_h=r_h;sec_l=r_l;}L1602_char(2,9,sec_l+0x30);L1602_char(2,8,sec_h+0x30);}/* 蜂鸣器鸣响一声*/void fmq(){unint i=150;while(i--){bell=~bell;delay_ms(1);}}/* time0 service function */void time0() interrupt 1{static count=0;TR0=0;if(count==20) //1s{count=0;if(sec_l==0){if(sec_h==0) //30s结束{if(flag==1){flag++;green=1;red=0;yellow=0;sec_h=g_h;sec_l=g_l;}else if(flag==2) //状态二,亮黄灯{flag++;green=0;red=0;yellow=1;sec_h=y_h;sec_l=y_l;}else if(flag==3)//状态三,红灯亮{flag=1; //回到状态一,绿灯亮green=0;red=1;yellow=0;sec_h=r_h;sec_l=r_l;}}else //个位为0而已{sec_h--;sec_l=9;}}else{sec_l--;}L1602_char(2,8,sec_h+0x30);L1602_char(2,9,sec_l+0x30);}else{count++;}TH0=0x4c;TL0=0x00;TR0=1;}#endif(4)lcd_1602.h#ifndef _lcd_1602_h#define _lcd_1602_h#include "define.h"#include "delay.h"uchar Convert(uchar In_Date){uchar i, Out_Date = 0, temp = 0;for(i=0; i<8; i++){temp = (In_Date >> i) & 0x01;Out_Date |= (temp << (7 - i));}return Out_Date;}/*写命令*/void enable(uchar del){P0 = Convert(del);RS = 0;RW = 0;E = 0;delay();E = 1;delay();}/*写数据*/void write(uchar del){P0 = Convert(del);RS = 1;RW = 0;E = 0;delay();E = 1;delay();}/*写字符*/void L1602_char(uchar hang,uchar lie,char sign) {uchar a;if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);write(sign);}/*写字符串*/void L1602_string(uchar hang,uchar lie,uchar *p) {uchar a;if(hang == 1) a = 0x80;if(hang == 2) a = 0xc0;a = a + lie - 1;enable(a);while(1){if(*p == '\0') break;write(*p);p++;}}#endif。

单片机交通灯实验报告

单片机交通灯实验报告

单片机交通灯实验报告交通灯是城市交通管理的重要组成部分,它能够规范车辆和行人的通行秩序,保障交通安全。

为了进一步学习交通灯的原理和掌握其设计,我们进行了一次单片机交通灯实验。

本次实验使用单片机和几个LED灯,通过对单片机的编程控制来实现交通灯的自动切换。

下面是我对该实验进行的详细记录和分析。

首先,我们需要连接电路。

我们采用的是STC89C52单片机,使用3个LED灯来模拟红灯、黄灯和绿灯。

利用杜邦线将LED灯连接到单片机的GPIO口,另外还需要连接一个电位器到单片机的模拟口,用来控制红灯亮灭的时间。

接下来,我们进行了单片机的编程。

我们使用C语言编写程序,利用单片机提供的GPIO口控制LED灯的亮灭,从而实现交通灯的控制。

我们通过控制红灯、黄灯和绿灯的亮灭时间,模拟真实交通灯的工作。

在编写程序的过程中,我们首先做了一些准备工作。

我们初始化了单片机的GPIO口,设定了红灯、黄灯和绿灯的引脚。

然后,我们使用一个循环语句不断地进行交通灯的切换。

具体来说,我们将交通灯控制划分为红灯、绿灯和黄灯三个状态,利用if-else语句对不同状态进行判断并进行相应的控制。

通过对红灯亮灭时间的控制,我们能够实现交通灯的自动切换。

在程序设计的过程中,我们还考虑了交通灯的变化时间。

我们在红灯和绿灯之间设置了一个黄灯过渡时间,以模拟真实交通灯的工作。

同时,我们还设置了一个迟滞时间,使得每个状态之间的切换更加顺滑。

通过这次实验,我们进一步了解了交通灯的工作原理和掌握了单片机的编程技巧。

通过对交通灯的模拟,我们成功地实现了交通灯的自动切换。

总结起来,这次实验不仅提高了我们对交通灯的认识,还锻炼了我们的动手能力和创新思维。

在今后的学习和工作中,我们将继续学以致用,将所学的知识应用到实际问题中。

让我们共同努力,为交通安全做出贡献。

单片机实验1 交通灯控制

单片机实验1  交通灯控制

华南农业大学实验报告专业班次08电信1 组别200831120102 题目实验一交通灯控制实验姓名陈建泽日期2010.10.23一、实验目的1. 使用P1口做为输出实现交通灯控制实验。

2. 学习数据输出程序的设计方法。

二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理图1 发光二极管电路原理图如图2-1发光二极管采用共阳极接法,阳极接上拉排阻到VCC,发光二极管与单片机之间用锁存器74HC573链接,实验对二极管发送高低电平的选通控制,在这里相当于开光。

发光二极管阴极接单片机P1口,要使这里的发光二极管发光,P1口就得输出底电平。

成绩:教师:日期:本实验使用发光二极管模拟交通灯,LED1到LED3作为东西路口的红、黄、绿灯,LED5到LED7作为南北路口的红、黄、绿灯。

灯的亮灭规则按流程图要求。

由原理图可分析出,当端口为低电平时,发光二极管亮,高电平时,发光二极管灭,考虑人眼的视觉暂留(0.1S),可以适当调整发光二极管亮灭的延时时间。

四、实验步骤1. 分析实验所用到的电路原理图,根据需要连接跳线帽。

2. 根据实验要求设LED1到LED3作为东西路口的红、黄、绿灯,LED5到LED7作为南北路口的红、黄、绿灯。

3. 画出流程图。

4.根据流程图编写实验程序,并完成调试。

五、实验流程图开始两个红灯亮并延时3S东西路口绿灯亮,南北路口红灯亮。

并且延时10S东西路口绿灯灭,黄灯闪烁5次,亮灭各延时0.5S两红灯同时亮,并延时0.2S南北路口绿灯亮,东西路口红灯亮。

并且延时10S南北路口绿灯灭,黄灯闪烁5次,亮灭各延时0.5S两红灯同时亮,并延时0.2S图2 交通灯流程图六、实验程序根据实验流程图,编写出一下实验程序,为了更精确延时,本实验采用定时器。

//============================实验一交通灯控制实验========================== ORG 0000HAJMP STARTORG 000BHAJMP T0_INTORG 0030HSTART:MOV TMOD,#01H ;设置定时器0在工作模式16为计数器下,50ms每次 MOV TL0,#(65536-46080)/256 ;给定时器初值,50ms @11.0592 MHZMOV TH0,#(65536-46080)MOD 256SETB EASETB ET0SETB TR0 ;启动定时器0MOV P1,#77H ;两个红灯亮CJNE R0,#60,$ ;R0为中断次数寄存器,延时60*50 ms=3 sMOV R0,#00H ;定时器中断次数置零LOOP: MOV P1,#7DH ;东西绿灯亮,南北红灯亮CJNE R0,#200,$ ;延时10SMOV R0,#00HMOV P1,#7FH ;东西绿灯灭,南北红灯亮MOV R1,#5 ;黄灯闪烁次数计数器L1: MOV P1,#7BHCJNE R0,#10,$ ;黄灯每隔0.5S闪烁一次,亮灭都延时0.5S,共5次MOV R0,#00HMOV P1,#7FHCJNE R0,#10,$MOV R0,#00HDJNZ R1,L1MOV P1,#77H ;两红灯亮,延时0.2SCJNE R0,#4,$MOV R0,#00HMOV P1,#0D7H ;南北绿灯亮,东西红灯亮,10SCJNE R0,#200,$MOV R0,#00HMOV P1,#0F7H ;南北绿灯灭,东西红灯亮MOV R1,#5 ;黄灯闪烁计数器L2: MOV P1,#0B7HCJNE R0,#10,$ ;黄灯每隔0.5S闪烁一次,亮灭都延时0.5S,共5次 MOV R0,#00HMOV P1,#0F7HCJNE R0,#10,$MOV R0,#00HDJNZ R1,L2MOV P1,#77H ;两红灯亮,延时0.2SCJNE R0,#4,$MOV R0,#00HAJMP LOOP ;循环执行T0_INT:INC R0 ;每中断一次,中断计数器都曾1MOV TL0,#(65536-46080)/256 ;进入中断,马上给定时器赋初值MOV TH0,#(65536-46080)MOD 256RETIEND七、调试遇到问题及解决办法(一)不清楚定时器与计数器的区别,定时器初值的计算不精确,导致定时器延时部分在软件调试时出现偏差比较大。

基于STC89C52RC单片机交通灯设计与实现

基于STC89C52RC单片机交通灯设计与实现

学年论文题目:基于STC89C52RC单片机交通灯设计与实现学院:计算机科学与工程学院专业:计算机科学与技术(物联网方向)学生姓名:钟昌材学号:201171060149指导教师:黄萍目录1绪论 (1)1.1背景 (1)1.2城市交通的作用 (1)1.3国内外交通系统发展现状及存在的主要问题 (2)1.4城市交通解决的主要途径 (3)2基础知识 (4)2.1信号控制方式的分类 (4)2.2交通规则介绍 (4)2.3交通信号控制硬件设备简介 (4)2.4交通信号控制系统信息传输系统简介 (5)2.5常用交通标志简介 (5)2.6交通信号控制原理 (6)3系统总体设计 (7)3.1设计方案 (7)3.2总体设计 (8)3.2.1功能概述 (8)3.2.2系统构成 (8)4系统硬件设计 (9)4.1交通灯通行模式及行车方向指示 (9)4.2各单元电路模块功能 (100)4.2.1时钟电路模块 (10)4.2.2复位电路模块 (10)4.2.3主控制系统模块 (11)4.2.4交通灯输出控制模块 (12)4.2.5时间显示电路模块 (13)4.2.6系统电源模块电路 (13)4.2.7按键输入模块 (14)5系统软件设计 (15)5.1软件总体流程图 (15)6系统调试分析及结果 (16)6.1电路板实物的制作 (16)6.1.1印制电路板PCB图的绘制 (16)6.1.2实物的制做 (16)6.2系统硬件调试 (17)6.3系统软件调试 (17)6.4系统总体调试 (17)7结论 (18)致谢 (19)参考文献 (20)附录 (21)附录A:元器件清单 (21)附录B:总体电路原理图、PCB、仿真图 (21)附录C:程序 (23)摘要交通灯控制系统是城市道路管理中极为重要的一个环节,其在加强道路交通管理,减少交通事故的发生,提高道路使用效率等方面具有不可替代的作用。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制技术日益更新。

基于STC89C52单片机的交通灯设计

基于STC89C52单片机的交通灯设计

基于STC89C52单片机的交通灯设计摘要一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。

信号灯控制的实现是通过电路与汇编程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。

电路部分原理图是通过用 DXP 软件绘制设计,汇编程序的设计与调试都在KEIL上完成。

最后使用DXP软件上的虚拟元件来代替所有的电路元件完成整个系统的调试和仿真,这样就大大保证了焊制硬件实物能正常运行。

本系统功能设计完善,采用AT89C51单片机为核心,具有实用,方便,灵活的特点。

随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。

本设计以单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。

在此基础上增设了LED灯和数码管实时显示系统各种状态,还可根据交通拥挤情况分别设置主干道和次干道的通行时间以及紧急情况时可根据需要手动设置某干道车辆通行状态,紧急情况结束后再转成自动状态,并对系统机械结构进行了优化设计,整体性好,人性化强、可靠性高。

关键词:单片机;交通灯;显示目录摘要 (2)1绪论 (5)1.1 交通灯的历史和现状 (5)1.2 单片机相关介绍 (5)2 系统设计 (6)2.1 课程内容 (6)2.2 系统硬件设计部分 (6)2.2.1 单片机系统 (6)2.2.2 复位电路 (7)2.2.3 晶振电路 (8)2.2.4 交通灯演示系统 (8)2.2.5 电源供电电路 (9)2.2.6 74HC573的功能 (9)2.2.7 发光二极管 (11)2.2.8 数码管 (12)3 软件设计 (12)4设计结果与分析 (16)4.1 proteus简介 (16)4.2 proteus仿真过程 (16)4.3 制板印制电路板PCB (18)4.3.1 DXP简介 (18)4.3.2 电路原理图制作 (18)4.3.3 PCB制作 (19)5实物图 (22)5.1 印制电路板概述 (22)5.1.1 印制电路板 (22)5.1.2 印制电路板结构 (22)5.1.3 印制电路板的种类 (22)5.2 印制电路板流程 (23)5.3 元器件安装与焊接 (24)5.3.1 手工安装 (24)5.3.2 手工焊接 (24)6 系统调试 (26)6.1 断电调试 (26)6.2 通电调试 (26)6.3 基本要求部分的测试与分析 (27)7 结论 (27)参考文献 (28)1 绪论今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

交通灯实验报告

交通灯实验报告

实验报告DIY电子达人大赛题目:基于STC89C52的交通灯电路设计队名追梦少年队长吴绍锋队员孙春禄、杨泽2014年4月交通灯控制电路设计报告目录一.设计任务和要求 (2)二.设计方案的总体思路与选择 (3)1.时钟信号发生器电路设计论证 (4)2.定时器设计论证 (4)3.控制器论证 (4)4.信号灯的论证 (4)三.电路设计计算与分析 (5)1.秒脉冲的设计 (5)2.定时器电路的设计 (6)3.控制器的设计 (8)4.信号灯的设计 (13)四.Multisim简介 (14)五.总结及心得 (15)六.附录 (16)1.总原理图 (16)2.元件清单 (17)一.设计任务和要求1.用红、绿、黄三色发光二极管作信号灯,两位的共阳数码管显示时间。

2.当南北主道允许通行亮绿灯时,南北人行道亮绿灯,东西主道亮红灯,东西人行道亮红灯,而东西主道允许亮绿灯时,东西人行道亮绿灯,南北主道亮红灯,南北人行道亮红灯。

3.南北道交替允许通行,南北道每次放行30s、东西道30s。

设计30s计时显示电路。

4.在每次由亮绿灯变成亮红灯的转换过程中间,要亮5s的黄灯作为过渡,以使行驶中德车辆有时间停到禁止线以外,设置5s计时显示电路。

5.人行道绿灯亮时蜂鸣器响,以提醒行人可以通行。

原件清单如下图:元件序名称数量备注号1 STC89C52RC 1 单片机2 74H573 2 锁存器3 发光二极管20 信号灯4 有源蜂鸣器 4 警报器5 8550三极管 4 放大电流6 12MHZ晶振 17 22uF瓷片电容 28 10uF电解电容 19 按键 110 330欧电阻 411 1K电阻 112 开关 113 电池盒 1若干14 杜邦线二.系统硬件设计方案(1)1.设计要求和目的此设计采用STC89C52单片机为核心控制元件,结合数码管,发光二极管等器件;利用了单片机的延时电路,按键复位电路,时钟电路,定时中断等电路构成一个用于十字路口的交通灯系统。

基于STC89C52单片机的交通灯设计讲解

基于STC89C52单片机的交通灯设计讲解

基于STC89C52单片机的交通灯设计摘要一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。

信号灯控制的实现是通过电路与汇编程序的结合来完成,其中信号灯的模拟采用了发光二极管,发光二极管有熄灭、点亮和闪烁三种信号,其中闪烁信号的产生运用了延时程序来实现,而时间倒数方面引进了LED数字显示,克服了人们在等待时的心急的心情,减少了红灯未灭,闯红灯的现象。

电路部分原理图是通过用 DXP 软件绘制设计,汇编程序的设计与调试都在KEIL上完成。

最后使用DXP软件上的虚拟元件来代替所有的电路元件完成整个系统的调试和仿真,这样就大大保证了焊制硬件实物能正常运行。

本系统功能设计完善,采用AT89C51单片机为核心,具有实用,方便,灵活的特点。

随着电子技术的广泛应用,车辆日益增多将成为一种发展趋势,所以要有一套安全可靠的交通指示灯。

本设计以单片机AT89S52为控制核心,以红、绿、黄三种LED发光管作为直行和左右拐弯以及行人通行的指示,以LED数码管作为倒计时指示,完成了题目要求的所有功能。

在此基础上增设了LED灯和数码管实时显示系统各种状态,还可根据交通拥挤情况分别设置主干道和次干道的通行时间以及紧急情况时可根据需要手动设置某干道车辆通行状态,紧急情况结束后再转成自动状态,并对系统机械结构进行了优化设计,整体性好,人性化强、可靠性高。

关键词:单片机;交通灯;显示目录摘要 (2)1绪论 (5)1.1 交通灯的历史和现状 (5)1.2 单片机相关介绍 (5)2 系统设计 (6)2.1 课程内容 (6)2.2 系统硬件设计部分 (6)2.2.1 单片机系统 (6)2.2.2 复位电路 (7)2.2.3 晶振电路 (8)2.2.4 交通灯演示系统 (8)2.2.5 电源供电电路 (9)2.2.6 74HC573的功能 (9)2.2.7 发光二极管 (11)2.2.8 数码管 (12)3 软件设计 (12)4设计结果与分析 (16)4.1 proteus简介 (16)4.2 proteus仿真过程 (16)4.3 制板印制电路板PCB (18)4.3.1 DXP简介 (18)4.3.2 电路原理图制作 (18)4.3.3 PCB制作 (19)5实物图 (22)5.1 印制电路板概述 (22)5.1.1 印制电路板 (22)5.1.2 印制电路板结构 (22)5.1.3 印制电路板的种类 (22)5.2 印制电路板流程 (23)5.3 元器件安装与焊接 (24)5.3.1 手工安装 (24)5.3.2 手工焊接 (24)6 系统调试 (26)6.1 断电调试 (26)6.2 通电调试 (26)6.3 基本要求部分的测试与分析 (27)7 结论 (27)参考文献 (28)1 绪论今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

单片机交通灯实验报告

单片机交通灯实验报告

一、实验目的1. 理解单片机在交通灯控制系统中的应用原理。

2. 掌握单片机编程方法,实现交通灯的自动控制。

3. 学会使用Proteus进行电路仿真和调试。

4. 培养动手实践能力和团队协作精神。

二、实验环境1. 硬件:STC89C52单片机、数码管、LED灯、电阻、电容、按键、三极管等元器件。

2. 软件:Keil C51、Proteus 8.0。

三、实验原理本实验基于STC89C52单片机,通过编程实现交通灯的红、黄、绿三色灯光切换,并利用数码管显示倒计时功能。

系统主要包括以下模块:1. 单片机控制模块:负责控制LED灯的亮灭和数码管的显示。

2. 数码管显示模块:显示交通灯状态和倒计时时间。

3. 按键模块:实现交通灯的紧急停用功能。

四、实验步骤1. 电路连接:根据原理图连接单片机、数码管、LED灯、电阻、电容、按键等元器件。

2. 程序编写:使用Keil C51编写单片机控制程序,实现以下功能:- 初始化单片机I/O端口;- 设置定时器中断,实现倒计时功能;- 编写主循环程序,控制LED灯的亮灭和数码管的显示;- 编写按键中断程序,实现紧急停用功能。

3. 仿真调试:使用Proteus软件对电路进行仿真,观察LED灯和数码管的显示效果,确保程序运行正确。

4. 实物测试:将程序烧录到单片机中,连接实物电路,测试交通灯控制系统是否正常工作。

五、实验结果与分析1. LED灯控制:通过编程实现LED灯的红、黄、绿三色灯光切换,模拟交通灯的运行状态。

2. 数码管显示:数码管显示倒计时时间,方便观察交通灯的运行状态。

3. 按键控制:按下按键,实现交通灯的紧急停用功能。

实验结果表明,本实验成功实现了单片机控制的交通灯系统,达到了预期目标。

六、实验总结1. 通过本次实验,掌握了单片机编程方法,实现了交通灯的自动控制。

2. 学会了使用Proteus进行电路仿真和调试,提高了动手实践能力。

3. 培养了团队协作精神,与同学共同完成了实验任务。

赵亮_基于stc89c52的交通信号灯设计

赵亮_基于stc89c52的交通信号灯设计

长春工业大学毕业设计、毕业论文题目基于STC89C52的交通信号灯设计学院电气与电子工程学院专业班级生物医学工程 110314班指导老师林晓梅姓名赵亮2015年6月1日摘要随着电子技术的蓬勃发展,智能交通信号灯系统的控制已然成为新时代的一个重点研究课题。

自从上世纪70年代单片机的发明,至目前各种类型的微处理器的广泛应用,四十多年来嵌入式技术被不断地丰富完善,与此同时,微控制芯片的功能也变得愈发地强大。

本设计采用STC89C52为中心器件,它拥有如下优点:操作简单,价格低廉,低功耗。

从古至今,交通一直在人类的生产和日常生活中扮演着至关重要的角色,随着人们社会精神文明的进步,交通信号灯的重要性更是体现得酣畅淋漓。

交通信号灯可以有效地管理交通,它能够合理地疏导拥堵的道路,大大地改善车辆的通行能力,并且减少交通事故的发生。

本论文旨在解决交通拥堵的问题,它通过使用四个路口的32盏交通灯(车道红绿灯12盏,人行横道16盏,右转常亮绿灯4盏)和倒计时功能较好地模拟了十字路口的交通情况。

关键词:嵌入式 STC89C52 交通信号灯Traffic Lights System based on STC89C52AbstractWith the rapid development of electronic technology,the control of intelligent traffic light system has become a significant research topic in the new era.Since the appearance of micro-controller in 1970s,until today the large-scale application of a variety of microprocessors,embedded technology has been continuously enriched and improved for more than 40 years,at the same time,the function of micro-control chip has also become stronger and stronger.This design regards STC89C52 as centric device,the system has advantages of simple operation,low cost and low power consumption.From ancient times to the present,traffic has always played an undispensable role in human’s production and daily life,with the progress of social spiritual civilization,the vital importance of traffic lights is reflected most fully and vividly.The traffic lights make the transportation managed more effectively.It has an obvious effect on easing traffic flow,improving the road capacity and reducing traffic accidents.This paper aims at solving the problem of traffic congestion.It simulates the traffic situation at the crossroads very well by using 32 traffic lights in four ways(12 in the lane,16 in the crosswalk and 4 in the right-turning direction) and countdown function.keywords: Embedded system STC89C52 traffic lights目录摘要 (I)Abstract (II)第一章绪论 (1)1.1 课题研究的背景 (1)1.1.1 单片机的应用与发展 (1)1.1.2 LED技术的应用 (2)1.2 课题研究的目的及意义 (3)1.3 国内外现状 (5)1.4 本文研究的主要内容 (7)1.5 本章小结 (7)第二章总体设计方案 (8)2.1 设计思路 (8)2.2 总体设计框图 (9)2.3 本章小结 (10)第三章系统硬件设计 (11)3.1 STC89C52芯片介绍 (11)3.2 Altium Designer的介绍 (12)3.3 STC89C52最小系统的设计 (12)3.4 系统电源电路设计 (13)3.5 时钟电路设计 (14)3.6 复位电路设计 (15)3.7 LED循环显示设计 (16)3.8 数码管倒计时设计 (18)3.9 本章小结 (21)第四章系统软件设计 (22)4.1 Keil C51 µVision4的介绍 (22)4.2 软件流程图 (24)4.3 程序设计 (25)4.4 本章小结 (25)第五章仿真结果及分析 (26)5.1 Proteus的介绍 (26)5.2 仿真结果 (29)第六章实物的制作 (31)第七章总结与展望 (32)7.1 总结 (32)7.2 展望 (32)致谢 (34)参考文献 (35)附录A (36)附录B (37)附录C (63)附录D (64)第一章绪论1.1 课题研究的背景1.1.1单片机的应用与发展单片机自1976年由Intel公司推出MCS-48开始,迄今已有三十多年了,由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面。

单片机原理课程设计-基于STC89C52的交通灯电路设计

单片机原理课程设计-基于STC89C52的交通灯电路设计

《单片机原理及应用》课程设计题目:基于STC89C52的交通灯电路设计学院名称电气工程学院指导老师班级学号学生姓名二0一一年六月基于STC89C52的交通灯电路设计摘要交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

本系统采用STC89C52点单片机以及数码管为中心器件来设计交通灯控制器,实现了南北方向为主要干道,要求南北方向每次通行时间为30秒,东西方向每次通行时间为25秒。

启动开关后,南北方向红灯亮25秒钟,而东西方向绿灯先亮20秒钟,然后闪烁3秒钟,转为黄灯亮2秒钟。

接着,东西方向红灯亮30秒钟,而南北方向绿灯先亮25秒,然后闪烁3秒钟,转为黄灯亮2秒钟,如此周而复始。

软件上采用C语言编程,主要编写了主程序,中断程序延时程序等。

经过整机调试,实现了对十字路口交通灯的模拟。

关键字:单片机STC89C52 数码管交通灯发光二极管Abstracttraffic in People's Daily life has important position, as people social activities have become increasingly frequent, this also reflect incisively and vividly. The emergence of the traffic lights, traffic to effectively control, for facilitating traffic flow, improve traffic capacity, reduce the number of traffic accidents have obvious effect. In recent years, with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology increasingly updates. In real-time detection and automatic control of microcomputer application system, often as a core component single-chip microcontroller, only to use knowledge is not enough, should according to specific hardware structure, software and hardware combined with improved.The system uses the microcontroller and digital tube STC89C52 points for center device to designing traffic light controller, realized the north-south direction for the main road north and south direction, requirements for 30 seconds each passage of time, time for something every passage direction of 25 seconds. Start switch, the north-south direction after 25 seconds, and a redlight green light first things direction and blink 20 seconds to 3 seconds, yellow light for 2 seconds. Then, things direction, and red light is 30 seconds before the north and south direction green light 25 seconds, then flashing lights to kelly 3 seconds, two seconds, so go round and round.Software programmed using C language, the main program mainly prepared, interruption program delay procedures, etc. After the commissioning, realized the simulation of intersection traffic lights.Keyword: SCM STC89C52 digital tube traffic light emitting diode目录(一)引言---------------------------------5 1.1 交通灯的历史和现状---------------------51.2 单片机概述-----------------------------5 (二)硬件部分--------------------------- -62.1 STC89C52芯片简介-----------------------62.2 主要功能特性---------------------------72.3 STC89C52芯片封装与引脚功能-------------72.4 基于STC89C52交通灯控制系统的硬件电路分析及设计-------------------------------------------10 (三)软件部分----------------------------143.1 交通灯的软件设计流程图-----------------143.2 控制器的软件设计-----------------------15 (四)电路原理图与PCB图的绘制-------------164.1 电路原理图的绘制(见附录二)----------164.2 PCB图的绘制(见附录三)---------------164.3 印刷电路板的注意事项------------------16 (五)调试及仿真---------------------------------------195.1 调试----------------------------------195.2 仿真结果------------------------------20 (六)实验总结及心得体会---------------------------216.1 实验总结-----------------------------------------------216.2 实验总结-----------------------------------------------22 (七)参考文献------------------------------------------22 附录一程序清单---------------------------22 附录二电路原理图(显示部分)-------------28 附录三电路PCB图(显示部分)-------------29 附录四实物图-----------------------------30(一)引言1.1 交通灯的历史和现状当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。

基于STC89C52单片机的交通信号灯控制电路的设计与实现

基于STC89C52单片机的交通信号灯控制电路的设计与实现

毕业论文基于STC89C52单片机的交通信号灯控制电路的设计与实现学院:软件学院专业班级:XX学号:2XXXX学生姓名:XXX指导教师:XXX太原理工大学基于单片机的交通信号灯控制电路的设计与实现摘要随着各种交通工具的发展和交通指挥的需要,第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。

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

当前,大量的信号灯电路正向着数字化、小功率、多样化、方便人车路三者关系的协调以及多值化方向发展。

随着社会和经济的发展,城市交通问题越来越引起人们的关注。

随着城市规模的不断扩大,城市交通成为制约城市发展的一大因素。

因此,有许多设计工作者为改善城市交通环境设计了许多方案,而大多数都是交通指挥灯。

交通信号灯作为一个用来指挥车辆顺利、畅通通过十字路口的装置,与我们的生活紧密的联系在一起。

设计交通灯控制电路的方法有很多种,由于数字电子技术的逻辑性很强,用它来设计交通灯的控制电路非常方便。

而且数字电子技术芯片只要在一定的范围内输入,都能得到稳定的输出,调试简单,电路的工作也比较稳定。

本论文的设计就是通过一些基本的数字芯片组合来实现对十字路口交通灯的六个不同信号灯的控制,另外还加以倒计时数码管显示,以设计实现了一个十字路口信号灯的仿真模型及其控制电路。

这个电路的设计看似较为复杂,其实就是由一些基本的数字电路组成。

论文采用中、小规模集成电路,设计了交通信号灯控制电路,画出了各单元电路图、整机框图和逻辑电路图,完成了组装和调试,实现了交通信号灯控制的各项功能,最后对论文的工作进行了总结。

关键词STC89C52;独立键盘;数码管;蜂鸣器。

Microcontroller-based traffic signal control circuitDesign and ImplementationAbstractWith the development needs of the various modes of transport and traffic control, the first truly three-color lights (red, yellow, and green flag) was born in 1918. It is surrounded by three-color circular projector is mounted on a tower fifth Street in New York City, since its birth, the urban traffic greatly improved.Currently, a large number of signal circuits is toward digital, low-power, diversity, facilitate people, vehicles, coordinating the three-way relationship, and more value-oriented development along with social and economic development, urban transport problems more cause for concern with the development of society, expanding the size of cities, urban transport as a constraint to urban development is a major factor, so there are many workers in order to improve the urban traffic design environment designed many programs, but most are traffic lights.Traffic lights used as a command vehicle smooth, smooth crossroads devices with our lives closely linked through. There are many ways to design the traffic light control circuit, because the logic of digital electronic technology is strong, use it to design a traffic light control circuit is very convenient. And as long as the digital electronics chips within a certain range of the input, the output can get a stable, easy adjustment, operation of the circuit is relatively stable.I have this design is through some basic digital chip to achieve a combination of six different lights on the crossroads of traffic lights control, in addition to a countdown digital display. Crossroads lights to do the simulation model, the design of this circuit may seem more complicated, in fact, some of the basic digital circuit. Using medium and small-scale integrated circuit design traffic signal circuits, and assembly and commissioning, and then thevarious functions of the design, each unit to draw circuit diagrams, block diagrams andmachine logic circuit, a breakthrough step by step, and finally finishing summary.Keywords: STC89C52, separate keyboard, LED, buzzer.目录摘要 (I)Abstract ..................................................................................................................................... I I 1 引言 (1)1.1 目的和意义 (1)1.2研究概况和发展趋势 (2)1.3 本系统主要研究内容 (3)2. 总体方案论证与设计 (1)2.1主控模块的选型和论证 (1)2.2显示模块的选型和论证 (1)2.3按键模块的选型和论证 (1)2.4系统整体设计概述 (2)3.系统硬件电路设计 (3)3.1主控模块 (3)3.1.1 STC89C52单片机主要特性 (3)3.1.2 STC89C52单片机的中断系统 (6)3.1.3 单片机最小系统设计 (6)3.2数码管显示电路 (6)3.3键盘模块设计 (7)3.4蜂鸣器模块设计 (8)3.5路灯指示电路 (8)4.系统软件设计 (11)4.1系统软件总体设计 (11)4.2程序设计原理 (11)5.系统调试 (13)5.1硬件调试 (13)5.2软件调试 (13)5.3调试结果 (14)结论 (15)参考文献 (16)致谢 (16)附录 (17)1 引言1.1 目的和意义随着人口快速的增多,交通工具的爆炸性的发展,以及道路资源的有限性,交通控制就应运而生,在人类的生活、工作环境中,交通扮演着极其重要的角色,人们的出行都无时不刻与交通打着交道。

基于AT89c52制作的多功能交通灯

基于AT89c52制作的多功能交通灯

基于STC89C52制作的多功能交通灯一、摘要AT89C52单片机具有控制二连体共阴极数码管和发光二极管的输出显示以及检测按键输入的功能。

利用AT89C52单片机模仿制作室外十字路口多功能交通灯,实现室内控制与室外显示的功能。

合理控制交通繁忙,交通特殊情况和恢复交通正常的三种情况。

二、方案设计与验证1.数码管显示部分方案一:利用9013三极管驱动二连体数码管,由于总共用到5个二连体数码管,需要使用40个9013三极管,故舍弃该方案。

方案二:利用4511译码器驱动二连体数码管,可以使用动态扫描法同时驱动5个二连体数码管,只需要使用一个4511译码器,故选择该方案。

2.二连体数码管位码显示方案一:利用软件进行动态扫描使十位数码管同时显示,但程序会过于冗长,故舍弃该方案。

方案二:利用74LS04反向器在硬件上进行动态扫描,同时点亮十个数码管,编写程序简单,故选择该方案。

3.按键模块由于只有五个按键,故使用行列式按键,在程序上使用动态扫描法,测试按键是否按下。

三、总体设计利用proteus设计的整体电路图:1、首先自己画好显示面板、小系统面板和控制面板三部分的电路图。

2、将元器件在实际洞洞板上布局。

四、局部设计1、显示部分用四个共阴极LED显示东西南北方向的时间,用一个LED显示主控制台的选择时间。

并在每一路口有一个红灯、一个黄灯和两个绿灯(其中一绿灯作执行指示灯,另一个作左转指示灯)。

在每一人行道两端均有两个红绿灯,作为人行控制灯。

在主控制台有两灯,分别用于指示正常与繁忙。

2、核心控制部分用89C52单片机作为核心控制,P00——P03与HEF4511相接,使其驱动十个数码管,控制数码管的代码。

P20——P25与74LS04相接,使其控制数码管的位码。

3、主控台部分为实现工作人员智能调控交通指示灯时间,在主控台部分有五个按键实现,有正常指示按键,特殊指示按键,繁忙指示按键以及时间加减按键。

五、测试1.用keil写好程序,利用PROTEUS仿真,电路运行良好2.焊接好硬件电路,用万用表分别检测单片机最小系统,控制面板,显示面板,所有发光二极管和二连体数码管均正常显示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
//#define ENABLE_IAP0x80//SYSCLK<30MHz
//#define ENABLE_IAP0x81//SYSCLK<24MHz
//#define ENABLE_IAP0x82//SYSCLK<20MHz
#define ENABLE_IAP0x83//SYSCLK<12MHz
IAP_ADDRL= 0;//Clear IAP address to prevent misuse
}
/*---------------------
Read one byte from ISP/IAP/EEPROM area
Input:addr (ISP/IAP/EEPROM address)
Output: Flash data
IapIdle();
}
uchar code duanxuan[]={
0x3f,/*显示0*/0x06,/*显示1*/0x5b,/*显示2*/0x4f,/*显示3*/
0x66,/*显示4*/0x6d,/*显示5*/0x7d,/*显示6*/0x07,/*显示7*/
0x7f,/*显示8*/0x6f,/*显示9*/0x77,/*显示A*/0x7c,/*显示B*/
{
uint i,j;
for(i=xms;i>0;i--)
for(j=250;j>0;j--);//*该层循环延时约1ms*/
}
void displays(uchar H,L)
{
W1=0;P1=duanxuan[num0(L)];delay_ms(1);W1=1;P1=0x00;
W2=0;P1=duanxuan[num1(L)];delay_ms(1);W2=1;P1=0x00;
IAP_ADDRL = addr;//Set ISP/IAP/EEPROM address low
IAP_ADDRH = addr>>8;//Set ISP/IAP/EEPROM address high
IAP_DATA = dat;//Write ISP/IAP/EEPROM data
IAP_TRIG = 0x5a;//Send trigger command1(0x5a)
0x39,/*显示C*/0x5e,/*显示D*/0x79,/*显示E*/0x71/*显示F*/
,0x00/*不显示*/};
sfr P1M1=0x91;//和后面的main函数中的
sfr P1M0=0x92;//P1M1 P1M0合在一起增加亮度
void delay_ms(uint xms)//*延时子函数程序
//#define ENABLE_IAP0x84//SYSCLK< 6MHz
//#define ENABLE_IAP0x85//SYSCLK< 3MHz
//#define ENABLE_IAP0x86//SYSCLK< 2MHz
//#define ENABLE_IAP0x87//SYSCLK< 1MHz
Erase one sector area
Input: addr (ISP/IAP/EEPROM address)
Output:-
-----------------------------*/
void IapEraseSector(WORD addr)
{
IAP_CONTR = ENABLE_IAP;//Open IAP function,and set wait time
IAP_CMD= CMD_ERASE;//Set ISP/IAP/EEPROM ERASE command
IAP_ADDRL = addr;//Set ISP/IAP/EEPROM address low
IAP_ADDRH = addr>>8;//Set ISP/IAP/EEPROM address high
办法,使用延时函数,增加数码管的余晖效果*/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char#define N 46源自80sbit H1=P3^6;
sbit H2=P3^7;
else{
switch(K3)//K3是上次的值key=1或者2才是本次检测到的
{
case 0:{EA=1;
if(cnt>(Y_L+G_H+Y_H)){P2=0x9e;P3=0xdf;delay_ms(1);P2=0xff;P3=0xff;
displays((cnt-G_H-Y_H-1),(cnt-Y_L-G_H-Y_H-1));}//H红L绿
#define CMD_IDLE0//Stand-By
#define CMD_READ1//Byte-Read
#define CMD_PROGRAM2//Byte-Program
#define CMD_ERASE3//Sector-Erase
/*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/
Output:-
-----------------------------*/
void IapProgramByte(WORD addr, BYTE dat)
{
IAP_CONTR = ENABLE_IAP;//Open IAP function,and set wait time
IAP_CMD= CMD_PROGRAM;//Set ISP/IAP/EEPROM PROGRAM command
_nop_();//MCU will hold here until ISP/IAP/EEPROM
//operation complete
dat = IAP_DATA;//Read ISP/IAP/EEPROM data
IapIdle();//close ISP/IAP/EEPROM function
else{if(cnt>(G_H+Y_H)){P2=0xae;P3=0xef;delay_ms(1);P2=0xff;P3=0xff;
displays((cnt-G_H-Y_H-1),(cnt-G_H-Y_H-1));}//H红L黄
else{if(cnt>Y_H){P2=0xf3;P3=0xf3;delay_ms(1);P2=0xff;P3=0xff;
uchar G_L=8,Y_L=3,G_H=7,Y_H=2;
#define num3(X2) (X2/10)
#define num2(X2) (X2%10)
#define num1(X1) (X1/10)
#define num0(X1) (X1%10)
typedef unsigned char BYTE;
/*Start address for STC10F08XE series EEPROM */
#define IAP_ADDRESS0x0000
/*---------------------
Disable ISP/IAP/EEPROM function
Make MCU in a safe state
河南理工大学电工电子实验中心
单片机课程实验报告
实验名称:交通灯实验实验学时
专业电子信息技术与仪器班级姓名学号
指导教师日期实验成绩
一、实验目的
1、按键、数码管、发光二极管综合应用编程技术
2、数据存储于EEPROM的技术(也可以不使用)
3、定时中断技术
4、按键中断技术
二、实验原理图
三、实验程序
/*使用推挽方式不能增加数码管亮度,解决
sfr IAP_CMD= 0xC5;//Flash command register
sfr IAP_TRIG= 0xC6;//Flash commandtrigger
sfr IAP_CONTR= 0xC7;//Flash control register
/*Define ISP/IAP/EEPROM command*/
W3=0;P1=duanxuan[num2(H)];delay_ms(1);W3=1;P1=0x00;
W4=0;P1=duanxuan[num3(H)];delay_ms(1);W4=1;P1=0x00;
}
void law()
{
if(K6==1) {EA=0;P2=0xff;P3=0xff;P2=0xb6;P3=0xf7;displays(99,99);}//紧急指挥
return dat;//Return Flash data
}
/*----------------------------
Programe one byte to ISP/IAP/EEPROM area
Input: addr(ISP/IAP/EEPROM address)
dat(ISP/IAP/EEPROM data)
IAP_TRIG = 0x5a;//Send trigger command1(0x5a)
IAP_TRIG = 0xa5;//Send trigger command2(0xa5)
_nop_();//MCU will hold here until ISP/IAP/EEPROM
//operation complete
IAP_ADDRL = addr;//Set ISP/IAP/EEPROM address low
IAP_ADDRH = addr>>8;//Set ISP/IAP/EEPROM address high
IAP_TRIG = 0x5a;//Send trigger command1(0x5a)
相关文档
最新文档