单片机交通灯控制系统
一、实验目的
掌握单片机的综合应用设计。
二、实验仪器、材料
Keil软件、proteus软件
三、实验内容及要求
完成以下任务:十字路口的交通灯控制系统,四组灯对应十字路口的四个方向,用两位的数码管显示剩余的时间。
四、实验原理
五、实验过程及原始记录(包括原理图程序代码)
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar shuzi[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//p0控制LED灯是否亮
sbit ew_red=P0^0; //东西红灯,低电平亮
sbit ew_yellow=P0^1;
sbit ew_green=P0^2;
sbit sn_red=P0^3;
sbit sn_yellow=P0^4;
sbit sn_green=P0^5;
//p2口控制段码
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
//控制数码管位码
sbit P1_0=P1^0;
sbit P1_1=P1^1; //p1_0,p1_1控制东西灯位码
sbit P1_2=P1^2;
sbit P1_3=P1^3; //p1_2,p1_3控制南北灯位码
//按键控制
sbit P3_3=P3^3; //南北通行按键
sbit P3_4=P3^4; //全部禁止按键
//定义变量
int s=0,n=0;void time(void) interrupt 1 //中断,产生1s
{TH0=(65536-50000)/256; //0.05s=50msTL0=(65536-50000)%256;n++;if(n==20) //设置频率,即倒计时速率{n=0;s++;}if(s==60) //设置交通灯循环一次的时间s=0;
}void ew_allow() //东西绿灯,南北红灯
{ew_red=1;ew_yellow=1;ew_green=0; //低电平亮sn_red=0;sn_yellow=1;sn_green=1;
}
void ew_wait() //东西黄灯,南北红灯
{ew_red=1;ew_yellow=0;ew_green=1;sn_red=0;sn_yellow=1;sn_green=1;
}
void sn_allow() //东西红灯,南北绿灯
{ew_red=0;ew_yellow=1;ew_green=1;sn_red=1;sn_yellow=1;sn_green=0;
}
void sn_wait() //东西红灯,南北黄灯
{ew_red=0; //低电平亮ew_yellow=1;ew_green=1;sn_red=1;sn_yellow=0;sn_green=1;
}void delay()
{ int i;int j;for(i=0;i<100;i++)for(j=0;j<10;j++);
}
void chushi() //P1初始化
{P1_0=0;P1_1=0;P1_2=0;P1_3=0;
}void jinzhi() //按下禁止按钮后四个方向都禁止(都为红灯),且时间显示为99
{chushi();P2=shuzi[9]; P1_0=1;P1_2=1; delay();chushi();P1_1=1; P1_3=1;ew_red=0;ew_yellow=1;ew_green=1;sn_red=0;sn_yellow=1;sn_green=1;delay();
}void display_led() //LED灯显示
{if(s<=27) //东西方向与南北方向时间间隔3s(即黄灯时间)ew_allow(); //东西绿灯,南北红灯else if(s<=30) ew_wait(); //东西黄灯,南北红灯else if(s<=57) //3ssn_allow(); //东西红灯,南北绿灯else if(s<=60) sn_wait();elsejinzhi();
}
void display_shuzi1() //绿灯以及黄灯的倒计时显示
{if(s<=27){chushi();P2=shuzi[(27-s)/10]; P1_1=0;P1_0=1;delay();chushi();P2=shuzi[(27-s)%10]; P1_1=1; //个位P1_0=0; //十位delay();}else if(s<=30){chushi();P2=shuzi[(30-s)/10];P1_1=0;P1_0=1;delay();chushi();P2=shuzi[(30-s)%10];P1_1=1;P1_0=0;delay();}else if(s<=57){chushi();P2=shuzi[(57-s)/10];P1_3=0;P1_2=1;delay();chushi();P2=shuzi[(57-s)%10];P1_3=1;P1_2=0;delay();}else if(s<=60){chushi();P2=shuzi[(60-s)/10];P1_3=0;P1_2=1;delay();chushi();P2=shuzi[(60-s)%10];P1_3=1;P1_2=0;delay();}elsejinzhi();
}void display_shuzi2() //红灯的倒计时显示
{ if(s<=30){chushi();P2=shuzi[(30-s)/10];P1_3=0; //个位P1_2=1; //十位chushi();P2=shuzi[(30-s)%10];P1_3=1;P1_2=0;delay();} else if(s<=60){chushi();P2=shuzi[(60-s)/10];P1_1=0;P1_0=1;delay();chushi();P2=shuzi[(60-s)%10];P1_1=1;P1_0=0;delay();}elsejinzhi();
}void display_shuzi3()
{if(s<=60){chushi();P2=0;delay();chushi();P2=0;delay();}if(s==61)jinzhi();
}void panduan() //按键的判断
{if(P3_3==0) //按下时切换到南北绿灯刚亮起的时间段s=31;if(P3_4==0) //按下时实现全部禁止(按下南北通行解除禁止)s=61;
}void main()
{TMOD=0x01;TH0=(65536-50000)/256; //高8位TL0=(65536-50000)%256; //低8位EA=1;ET0=1;TR0=1;while(1){ display_led(); display_shuzi1();display_shuzi2();display_shuzi3();panduan();}
}
六、实验结果及分析(程序仿真分析)
单片机交通灯控制系统相关推荐
- 基于51单片机交通灯控制系统
51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...
- 交通灯控制系统c语言编程,基于单片机的交通灯控制系统设计(本科)毕业论文设计.doc...
基于单片机的交通灯控制系统设计 摘 要 当你路过一个十字路口时,你是否注意到各个方向车辆和行人有有条不紊的通过十字路口.这样井然有序的情境靠什么来实现的呢?靠的是交通灯控制系统.在论文中我使用单片机S ...
- 基于51单片机的交通灯控制系统课程设计(含proteus仿真图及代码)
一.设计要求: 1,十字路口的交通控制系统指挥着人和各种车辆的安全运行,对交叉口实行科学的管理与控制是交通控制工程的重要研究课题,是保障交叉口的交通安全和充分发挥交叉口的通行能力的重要措施,是解决城市 ...
- 【proteus仿真】89C51单片机实现十字路口的交通灯控制系统代码
完成以下任务:运用89C51单片机十字路口的交通灯控制系统,四组灯(红黄绿)对应十字路口的四个方向,用两位的数码管显示剩余的时间. 仿真视频: https://www.bilibili.com/vid ...
- 基于AT89C51单片机的交通灯控制系统的设计
一.前言 本文中交通灯系统采用MSC-51单片机AT89C51核心来设计交通灯控制器,利用单片机的外围扩展,显示电路构成基本硬件,编程实现对定时.控制.显示电路的控制,调试仿真,完成设计.本系统实现了 ...
- 52单片机交通灯课程设计
单片机交通灯课程设计 1. 实验目的和器件 1.1实验目的 (1)通过单片机课程设计,熟练掌握C语言的编写方法,将理论联系到实际中去,提高我们的动手和动脑能力. (2)通过交通信号灯控制系统的设计,掌 ...
- 简易交通灯控制系统设计c语言,基于单片机交通灯控制系统设计毕业设计.doc
您所在位置:网站首页 > 海量文档  > 计算机 > Java 基于单片机交通灯控制系统设计毕业设计.doc30页 本 ...
- 单片机炫彩灯实训报告_单片机交通灯实训报告
- 1 - 第一章 设计目的及要求 1.1 设计目的 1. 通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理, 巩固和加深"单片机原理与应用"课程的基本知识,掌握电子设计知识 ...
- 微型计算机技术 论文,微型计算机技术课程设计论文报告微机交通灯控制系统_毕业论文.docx...
* * *计算机科学系 课程设计(综合实验)报告 (2014--2015 年度第一学期) 课程名称:微型计算机技术 题 目:微机交通灯控制系统 班 级: 学 号: 学生姓名: 指导教师: 设计周数: ...
最新文章
- F5 任命 Ben Gibson 担任首席营销官
- Linkis 编译文档
- MySQL5.6二进制软件包编译安装详解(三)
- 计算机硬件技术基础5章在线,《计算机硬件技术基础》试题(D)
- 大数据平台搭建_一文读懂数据平台、大数据平台、数据中台
- 一个农民父亲令人震撼的力量
- 001 基本的环境的安装
- STM32使用MCUISP下载程序教程
- LOIC低轨道离子拒绝服务攻击
- 换热站实际应用程序:西门子200smart PLC与威纶通触摸屏换热站程序、西门子1200plc与昆仑通态触摸屏换热站程序
- 黑苹果 惠普笔记本电池补丁_小米笔记本Pro 黑苹果 改装内置WIFI和蓝牙
- Java实战---搜搜移动业务大厅
- Flash停更!「偷菜」的快乐还记得吗?
- V831 修改启动默认文件
- 地中海文明卢浮宫特展全攻略(国家博物馆),通俗版
- 迁移TFS,批量将文档导入SharePoint 2013 文档库
- java日志框架详解
- 胜意差旅管理 | 从OA变革到费控系统的企业报销体验
- matlab cg steihaug,信赖域(一):Cauchy Point与Dogleg
- 双照电子受邀参加广州人工智能公共算力中心企业对接会
热门文章
- 论文的参考文献格式怎么弄呢?
- 如何找到本地区最新的中小学教材
- 桌面壁纸被计算机管理员禁用,电脑壁纸被管理员设置禁用了,怎么处理啊?
- 【Linux 驱动】第七章 时间 延迟及延缓操作
- linux boot引导修复工具,修复linux的grub2引导(单独/boot,lvm-root)
- html css齿轮滚动特效,CSS_纯CSS3实现滚动的齿轮动画效果,纯CSS写的齿轮效果。支持chrome - phpStudy...
- [luogu]P1600 天天爱跑步[LCA]
- 做一个有志青年,人生才有意义
- Sql Server数据库被置疑后解决方法
- 速卖通API获得aliexpress商品详情,按关键词搜索,分类详情等数据