python控制51单片机的红绿灯_基于51单片机的交通灯控制设计
课程设计任务书及成绩
课程名称
单片机课程设计
题目
交通灯控制设计
课程设计目标与任务、计划与进度安排:
实践教学要求与任务:
1、了解交通灯的基本工作原理;
2、用Proteus模拟实现交通灯控制;
3、用Keil C51编程实现上述功能;
4、用Keil与Proteus联调。
工作计划与进度安排:
17周查找相关资料。
18周详细设计。
19周程序测试,书写论文,进行答辩。
1 引言
交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用STC89c51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。本文介绍了控制基本原理以及控制的表现,同时也介绍了城市交通信息系统的设计目标, 开发途径及其系统结构与功能和数据地理编码、建库, 同时, 论述了系统中交通现状、交通管理、交通规划及背景信息查询模块的建造及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研制方案,对其电源供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构,大幅度地提高了产品可靠性并降低了制造成本。
2 应用软件介绍
2.1 C语言介绍
C语言是于1972年由贝尔实验室的Dennis Ritchie在B语言的基础上开发出来的。最初的C语言是作为UNIX操作系统的开发语言而被人们所认识。此后,贝尔实验室对C语言进行了多次改进和版本的公布,C语言的优点才引起人们的普遍注意。随着UNIX操作系统在各种机器上的广范使用,使C语言得到了迅速推广。1978年由Brian W. Kernighan和Dennis M. Ritchit合著了《The C Programming Language》一书,该书对C语言作了详细的描述,这本书对C语言发展影响深远,并成为了后来C语言版本的基础,称之为标准C。随后C语言在各种计算机上快速得以推广,并导致了许多C语言版本的出现。
2.2 Keil C51
Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行 Keil软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。
2.3 Proteus
Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件。它不仅具有其它EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus 是英国著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MATLAB 等多种编译器。
3 硬件资源介绍
3.1单片机简介
单片机(MCU)又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
3.2 89C51 简介
89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微控制器,89C2051 是它的一种精简版本。
3.3 89C51 单片机的片内逻辑结构
3.4 89C51 硬件资源
(1)微处理器(CPU):一个 8 位 CPU。
(2)数据存储器(RAM):片内为 128B,片外最多可外扩 64KB。
(3)程序存储器(4KB Flash ROM):片内为 4KB,片外最多可外扩程序存储器至 64KB。
(4)4 个 8 位可编程并行 I/O 口(P0、P1、P2、P3),1 个全双工的串行口。
(5)定时器/计数器:片内有 2 个 16 位的定时器/计数器,具有 4 种工作方式。
(6)中断系统:具有 5 个中断源,2 级中断优先级。
(7)特殊功能寄存器(SFR): 共有 21 个特殊功能寄存器,用于 CPU 对片内各功能部件进行管理、控制和监视。
(8)1 个看门狗定时器(WDT)。
3.5 89C51 的引脚图
(1)P0 口:8 位,漏极开路的双向 I/O 口。
(2) P1 口:8 位,准双向 I/O 口,具有内部上拉电阻。
(3)P2 口:8 位,专为用户使用的准双向 I/O 口,具有内部上拉电阻。
(4)P3 口:8 位,准双向 I/O 口,具有内部上拉电阻。也可作为普通的 I/O 口使用。除此之外,P3 口还有第二功能的定义。
4 设计课题
交通灯控制设计:
1.了解一个十字路口交通灯基本工作原理,要求分主次干道,并加入倒计时功能
2.用Keil C51编程实现上述功能
3.用Proteus模拟实现十字路口交通灯控制电路。
4.用Keil与Proteus联调
5.方案设计
5.1交通灯四种通行模式及行车方向指示
按照简单的交通路口规则,有四种模式
南北绿灯亮 东西红灯亮
南北黄灯闪 东西红灯亮
南北红灯亮 东西绿灯亮
南北红灯亮 东西黄灯闪
5.2 交通灯控制系统
实用交通灯控制系统主要CPU控制模块为了、信号灯显示模块、倒计时显示模块等组成,如下图所示:
其中控制模块是最核心的部分,控制核心采用AT89C51单片机,利用AT89C51单片机内部定时器实现交通指示灯控制的计时功能,在正常情况下产生相应的控制信息控制倒计时显示电路,信号灯显示电路的正常运行。
信号灯显示模块采用四个集成交通指示灯来模拟红、黄、绿交通指示灯,用单片机的P1口控制发光二极管的亮灭状态。
倒计时显示模块的接口电路有静态显示和动态显示两种方式,由于动态显示方式在仿真软件中不易于查看,所以本次采用静态显示方式,这种方式优点是易于操作,缺点是浪费单片机接口资源。
为了倒计时更加准确,采用外加晶振电路方法实现其功能。
6硬件系统设计
6.1 信号灯显示模块
由于南北方向的信号灯始终是同一种状态,所以南北信号灯为一组,只需将对应的信号灯并联即可,东西方向同理。
6.2 倒计时显示模块
选取8个7段数码管分别模拟显示四个方向的倒计时,数码管采用共阴极接法。
为了提高P0、P2端口的电流输出能力,保证数码管亮度,保护端口引脚,在P0端口与数码管之间增加了74LS245芯片。
6.3 复位模块
此系统可以通过复位按键实现从新工作,电路图如图所示:
7软件系统设计
7.1 中断服务程序框图
7.2 主程序框图
7.3 程序代码
#include
sbit g1=P1^0; //位定义
sbit r1=P1^1;
sbit y1=P1^2;
sbit g2=P1^3;
sbit r2=P1^4;
sbit y2=P1^5;
unsigned char f=0;
unsigned char nanbei_time=15; //定义南北的时间长度
unsigned char dongxi_time=11; //定义东西的时间长度
unsigned char m;
unsigned char code t[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};
void init_timer0(void) //中断初始化函数
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
}
void display(unsigned char x)
{
unsigned char m,n;
m=x/10;
n=x%10;
P0=t[m];
P2=t[n];
}
void timer(void) interrupt 1 using 1 //中断服务函数
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
f++;
if(f==20)
{
f=0;
m--;
}
}
void main()
{
m=nanbei_time;
P1=0x00;
init_timer0();
while(1) {
do {
display(m);
g1=1;
r1=0;
g2=0;
r2=1;
}
while(m!=3);
do
{
if(m<=3)
{
y1=~y1;
r1=0;
g1=0;
r2=1;
g2=0;
}
display(m);
r1=0;
g2=0;
r2=1;
}
while(m!=3);
do
{
if(m<=3)
{
y1=~y1;r1=0;g1=0;
r2=1;g2=0;
}
display(m);
}
while(m!=0);
if(m==0)
{ m = dongxi_time;
y1 = 0;
y2 = 0;
}
do{
display(m);
g1 = 0;
r1 = 1;
g2 = 1;
r2 = 0;
}
while(m!=3);
do{
if(m<=3)
{
r1=1,g1=0;
y2=~y2,r2=0,g2=0;
}
display(m);
}while(m!=0);
if(m==0)
{
m=nanbei_time;
y1=0;
y2=0;
}
}
}
8 电路仿真
开始仿真:
9设计总结
通过这次单片机课设,我不仅学到了许多新的知识,而且加深了我对以前学习的理论知识的掌握。以前我们学的东西仅限于课本,对实实在在的应用还比较模糊,这次课程设计有利于同学们学习目的的明确性和主动性。通过这次课程设计,我们知道了哪些东西是应该确实掌握的,在实践中填充我理论知识的不足,可以将理论很好地应用到实际当中去。
10参考文献
1.《单片机原理及接口技术》 张毅刚 人民邮电出版社
2.《单片机课程设计指导书》 皮大能 北京理工大学出版社
python控制51单片机的红绿灯_基于51单片机的交通灯控制设计相关推荐
- python控制51单片机的红绿灯_基于51单片机的红绿灯实现(使用普中科技开发板)...
C语言基础比较薄弱,红绿灯的倒计时和切换上,用了三个if()嵌套,总感觉应该有更好的方案,如果你恰巧知道,请教教我,在此谢过.以下是程序部分: //红绿灯设计:利用定时器实现LED灯亮灭,数码管倒计时 ...
- 【毕业设计】基于PLC的十字路口交通灯控制系统设计【仿真+源码+论文】
摘 要 本次设计的课题是基于PLC的十字路口交通灯控制系统设计,传统的十字路口交通灯多采用单片机集成电路作为控制系统,单片机系统虽然在功能上能够实现十字路口交通灯的各种控制需求,但是单片机控制系统在设 ...
- 基于Verilog的十字路口交通灯控制电路设计
基于Verilog的十字路口交通灯控制电路设计 一.设计要求 二.设计方案 三.电路原理图 四.代码实现 1. Verilog代码: 2. Testbench代码 五.仿真结果 一.设计要求 设计并实 ...
- ewb交通灯报告和文件_基于ewb平台的交通灯电路设计.doc
基于ewb平台的交通灯电路设计.doc 电子技术课程设计题目基于EWB平台的交通灯电路设计指导教师班级电子082姓名学号2008成绩时间第十八周一.课程设计的目的1掌握交通灯控制电路的设计.组装与调试 ...
- stc89c51单片机音乐盒系统设计_基于51单片机音乐盒课程设计1.doc
基于51单片机音乐盒课程设计1 课程名称: 微机原理课程设计 题 目: 基于单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉.听觉方面的享受提出了越来越高的要求.小小的音乐盒可以给人们带来美好 ...
- 51单片机 外部时钟_基于51单片机的LCD12864显示模拟时钟
今天要分享的仿真和程序是基于51单片机的LCD12864显示模拟时钟.公众号之前也分享过数字时钟,但是那些时钟都是采用数字显示的形式来显示时间,而今天分享一个采用LCD12864显示的模拟指针式时钟. ...
- stc89c51单片机音乐盒系统设计_基于STC89C52单片机的七彩迷你音乐盒
基于STC89C52单片机的七彩迷你音乐盒.在单片机最小系统的基础上,对其他两个I/O口连接硬件电路.P1.0接一个七彩快闪LED灯.P1.5口接一个NPN型三极管的放大电路,再连接一个无源蜂鸣器(用 ...
- 基于python网上订餐系统哪家好_基于web的网上订餐系统的设计与实现-毕业论文...
基于 web 的网上订餐系统的设计与实现 摘要 : 由于因特网技术的高速发展, 人们生活与网络的脚步也随之越来越紧密. 同时也随着市场化和经济全球化越来越多的普及, 众多国内外企业都深刻地认识 到想要 ...
- 单片机ch2o程序_基于51单片机的室内甲醛测试系统
1.2 5G14433A/D转换器 5G14433A/D转换器是国产的广为流行的最典型的双积分3位半A/D转换器它具有抗干扰性能好,转换精度高(相当于11位二进制数),自动校零,自动极性输出,自动量程 ...
- stc89c51单片机音乐盒系统设计_基于STC89C51单片机的电子琴设计
0 引言 随着计算机在社会各领域的渗透,单片机的应用正在不断地走向深入,同时带动着工业.农业.商业.家电以及玩具的日新月异更新,极大地提高了电子电路及系统设计质量和效率.本设计是以主控芯片 1 系统硬 ...
最新文章
- 统计学中的协方差矩阵(阵列信号基础)
- 转:乐视秒杀:每秒十万笔交易的数据架构解读
- Windows10,Maven配置 电脑重启失效
- SQL Server 与 SQL Express 的异同
- Caffe: Vs13添加CUDA支持
- lightgbm 数据不平衡_不平衡数据下的机器学习(下)
- C语言字符串、字符数组
- 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
- SpringMvc之参数绑定注解详解之一
- 继承(父类为虚方法以及子类的重写)
- ETL开发工具Kettle下载安装环境搭建及使用教程
- kali2021安装sougou输入法
- 把PYTHON文件转换成exe的方法
- Kindle 3---原系统下的字典的使用
- Cisco Packet Tracer 实验
- Paper 已经过时——计算机时代科学传播方式的变革
- 【Python蓝桥杯】印章 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
- 安卓Android修改车机版系统的导航栏和状态栏高度
- java中的Cookie 和 sessions
- Rosalind Java|Inferring mRNA from Protein