单片机课程设计——交通灯

VIP单片机课程设计——交通灯
单片机课程设计——交通灯一、课程设计主要内容1.1 题目1.2摘要1.3关键词二、设计要求三、设计方案四、参考电路设计4.1.1数码管的设计4.1.2对应程序4.2.1独立按键的设计4.2.2对应程序4.2.3 使用逻辑4.3.1LED模块的设置4.3.2 LED实物图4.3.3 LED显示程序五、调试要点5.1 单片机最小系统5.2 数码管模块5.3 LED模块5.4 独立按键六、总结七、成品图完整程序一、课程设计主要内容1.1 题目交通灯设计1.2摘要近年来,随着我国国民经济的快速发展,我国机
开通可读全文 ·3.4w 人阅读
最低0.47元/天 解锁文章

一、课程设计主要内容

1.1 题目

交通灯设计

1.2摘要

近年来,随着我国国民经济的快速发展,我国机动车辆发展迅速。而城镇道路建设由于历史等各方面因素相对滞后,交通拥挤和堵塞想想时常发生。如何利用当今计算机和自动控制技术,有效地疏导交通提高城镇交通路口的通行能力,减少交通事故是很值得的研究课题。目前,国内的交通灯一般设计在十字路口,在醒目位置用红绿黄三种颜色的指示灯再加上一个倒计时的显示计时器来控制行车。

1.3关键词

交通灯、51单片机、延时程序

二、设计要求

1、分析单片机实验板原理图,明确每个部件的用途。
2、学会单片机地址分配的方法及实现电路。
3、调试硬件电路系统。
3、要求编写一套软件,实现用4个按键设定交通灯显示、切换功能。
4、写出至少3000字的课程设计总结报告及提供程序清单。

三、设计方案

该交通灯是采用STC89C52RC芯片作为主控芯片,我们购买了普中的开发板。用到了开发板上面的数码管模块、用户定义按键模块、I/O口外接等几部分完成了交通灯的基本逻辑设计。按键可以设置交通灯的模式和数码管的倒计时时间。

在这里插入图片描述

四、参考电路设计

4.1.1数码管的设计

根据商家提供的原理图,可知P0口是数码管的段选,P22、P23、P24连接三八译码器来实现数码管的位选,再通过Keil5编写程序控制,就可以实践对每一个数码管显示数字的控制。

在这里插入图片描述

4.1.2对应程序



/*******************P0口控制段选信号*************************/

#define duan P0		

/*****************3-8译码器控制位选信号**********************/

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

/*****************通用共阳!!!!!!数码管0-F编码**********************/
u8 code wei1[]={
   
   0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};	
/***********************数码管显示函数,显示的是miao************************/
void display(u8 a,u8 b)
{
   
   
	
	duan=wei1[b];
	LSA=0;LSB=0;LSC=0;	//0-1
	Delay(30);
	LSA=0;LSB=0;LSC=0;
	
	duan=wei1[a];		//数组里面是编号的0-F数码管编码
    LSA=1;LSB=0;LSC=0;	//1-2
	Delay(30);
    LSA=1;LSB=0;LSC=0;//3--8译码器位选
	
	duan=wei1[b];
    LSA=0;LSB=1;LSC=0;	//2-3
	Delay(30);
    LSA=0;LSB=1;LSC=0;

	duan=wei1[a];
	LSA=1;LSB=1;LSC=0;	//3-4
	Delay(30);
	LSA=1;LSB=1;LSC=0;
	
	duan=wei1[b];
	LSA=0;LSB=0;LSC=1;//4-5
	Delay(30);
	LSA=0;LSB=0;LSC=1;
	
	duan=wei1[a];
	LSA=1;LSB=0;LSC=1;//5-6
	Delay(30);
	LSA=1;LSB=0;LSC=1;

	duan=wei1[b];
	LSA=0;LSB=1;LSC=1;	//6-7
	Delay(30);
	LSA=0;LSB=1;LSC=1;

	duan=wei1[a];
 LSA=1;LSB=1;LSC=1;	//7-8
	Delay(30);
    LSA=1;LSB=1;LSC=1;
}

在这里插入图片描述

4.2.1独立按键的设计

开发板上面有四个独立按键可以供用户自定义,我定义的是:

sbit key_j=P3^0;		//紧急模式按键定义----板子上第二个按键
sbit key_set=P3^1;		//设置按键----板子上第一个按键
sbit key_jia=P3^2;		//加值按键
sbit key_jian=P3^3;		//减值按键

在这里插入图片描述

图2 独立按键模块

4.2.2对应程序


/*********************按键检测处理**************************/

void scan()
{
   
   	
	//紧急按键按键
	if(key_j==0)		   
	{
   
   
		delayms(7);	//延时等待
		   if(key_j==0)	    //再次判断按键按下
		{
   
   
			set_f=0;	 //设置标记变量set_f=0;	防止和其他显示情况有冲突set_f=1/2 
			j_f=~j_f;	 //切换紧急模式和正常模式0-1取反,定义变量时j_f=0
			c++;
			miao=miao1+miao2;	    //关系到设置按键模式1,如果倒计时到40时按下按键,倒计时会程序变成60
		}
		while(!key_j);
		delayms(7);	//延时等待
		while(!key_j);
	}		 //等待按键松开

	//设置按键按下
	if(key_set==0)			 
	{
   
   
		delayms(7);				//延时消抖
		if(key_set==0)	     //再次判断按键按下
		{
   
                       //退出紧急模式显示的0000 0000j_f=0;		
			j_f=0;			//如果在紧急模式,退出紧急模式,免得显示冲突
			if(set_f==0)	 //进入设置,紧急按键按下set_f=0,定义变量时set_f=0,设置按键会清set_f=0
				{
   
   TR0=0;}	 //关闭定时器,定时器停止定时,数码管停在那里,显示的数字不变,但是我们看不见,因为set_f很快会切换显示模式
			set_f++;			  //只要按下设置按键,设置变量+1
			c++;		 
			if(set_f==3)     //设置完成,退出设置,定时器重新开倒计时,数码管开始动
			{
   
   
				set_f=0;	 //返回模式1,显示miao的情况
				             //if(y_f==0&&j_f==0) 如果非紧急y_f==0是恒成立的!!!
				//if(j_f==0)	
					TR0=1;   //开启定时器,数码管继续停止前的数计时,28停止了就从28开始
			}	
		}
		while(!key_set);	 //等待按键松开
		delayms(7);		
		while(!key_set);
	}
	//加值键
	if(key_jia==0&&set_f!=0)	//必须显示miao1或者miao2
	{
   
   
		delayms(7);
		if(key_jia==0)
		{
   
   
			if(set_f==1)     //设置东西通行时间,miao1++
			{
   
   
			led1=0;	 //南北直行绿灯,所有的灯都点亮
            led2=0;	 //南北黄灯
            led3=0;	 //南北转弯绿灯
            led4=0;	 //南北红灯
            led5=0;	 //东西直行绿灯
            led6=0;	 //东西黄灯
            led7=0;	 //东西转弯绿灯
            led8=0;	 //东西红灯
				if(miao1<99) //最大值可设置15S
				{
   
   miao1++; }//东西通行时间+1S,数码管变化,miao1=20
					miao=miao1+miao2;		//miao=60,miao1=20,miao2=40
				if(num21<569)//LED交通灯闪烁也要变化
				{
   
   num21=num21+20;}
			       num2=num21;			
			}
			if(set_f==2)     //设置东西通行时间,miao2++
			{
   
   
				led1=0;	 //南北直行绿灯
				led2=0;	 //南北黄灯
				led3=0;	 //南北转弯绿灯
				led4=0;	 //南北红灯
				led5=0;	 //东西直行绿灯
				led6=0;	 //东西黄灯
				led7=0;	 //东西转弯绿灯
				led8=0;	 //东西红灯
					if(miao1<99) //最大可设置15S
					{
   
   miao2++;} //东西通行时间+1S,miao2=40
					miao=miao1+miao2;	//数码管显示miao,miao=60,miao1=20,miao2=40
					if(num41<968)
					{
   
   num41=num41+20;}
					num4=num41;		
			}
		}	
		while(!key_jia);
		delayms(7);
		while(!key_jia);//消抖
	}

	//减值键
	if(key_jian==0&&set_f!=0)
	{
   
   
		delayms(7);
		if
VIP 基于单片机控制的交通灯系统设计 本设计是交通灯的控制实验,必须要先了解实际交通灯的变化规律。假设一个路口为东西南北走向,即十字路口,初始状态零为东西南北灯都熄灭。然后转状态一东西绿灯通车,南北为红灯。过段时间转状态二,东西绿灯闪几次转黄灯,延时几秒,南北仍为红灯。再转状态三南北绿灯通车,东西红灯。过段时间转状态四南北绿灯闪几次转黄灯,延时几秒,东西仍为红灯。最后循环至状态一。交通信号灯模拟控制系统设计利用单片机的定时器定时,控制十字路口红绿灯交替电亮和熄灭,并且用LED数码管显示时间,但由于时间及水平的不足,在此实验中不显示。 开通可读全文·1.1w 阅读·27 点赞·120 收藏 阅读全文

相关推荐

单片机交通灯设计实例

一、初步设计 在Profession中设计一个交通灯的仿真图,结合Keil编写c语言代码实现十字路口的交通灯变化。设计的交通灯主要变化有如下五种情况:(可根据自身的交通灯变化情况进行相应的代码修改) 第一种情况:东西红灯,南北绿灯,南北转向灯绿亮,等待10秒(即数码管显示10秒倒计时); 第二种情况:东西红灯,南北闪黄灯,南北转向灯绿亮,等待5秒; 第三种情况:东西绿灯,南北红灯,东西转向灯绿亮,等待10秒; 第四种情况:东西黄灯,南北红灯,东西转向灯绿亮,等待5秒。 第五种情况:即紧急情况,利...

h716615的博客 1万+

52单片机交通灯课程设计

单片机交通灯课程设计 1. 实验目的和器件 1.1实验目的 (1)通过单片机课程设计,熟练掌握C语言的编写方法,将理论联系到实际中去,提高我们的动手和动脑能力。 (2)通过交通信号灯控制系统的设计,掌握定时器/计数器及中断的使用方法,和简单的程序编写,最总提高我们的逻辑抽象能力。 2.2实验器件 AT89C52、电源、红绿灯、导线若干 2.设计任务和性能指标 2.1设计任务 东西、南北干道交与一个十字路口,各干道有一组红、黄、绿三色的指示灯,指示车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示

yiyilu116的博客 7468

采用51单片机设计的交通灯课程设计指导

** 采用51单片机设计的交通灯课程设计指导 本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 2、数码管倒计时显示时间。 3、东西和南北方向各有两个数码管,分别显示时间,东西和南北的时间是不一样的哦,要相差黄灯的时间才是正确的。 4、可以分别设置主干道和支干道的通行时间。 5、有紧急模式,可以特种车辆优先通行或交通事故应急处理。 操作说明: 按...

Zero233333的博客 5934

全面掌握单片机:交通灯系统课程设计与实践

htmltable {th, td {th {pre {简介:交通灯控制系统是单片机学习的经典项目,综合应用硬件设计与软件编程。课程设计涵盖单片机基础知识、数码管显示、LED灯控制、按键输入等核心内容,并通过Proteus仿真、PCB设计到实物制作的全过程,帮助学生深入理解单片机技术,并提升实际操作能力。

weixin_36487018的博客 1128

交通灯控制系统:单片机课程设计与仿真实践

单片机(Microcontroller Unit, MCU)是一种将CPU、内存、输入/输出接口集成在一个芯片上的微型计算机系统。与传统的计算机不同,单片机更关注于特定的控制任务,通常用于嵌入式系统中。电子技术的核心在于元件的使用,理解这些基本元件的功能及其在电路中的作用对于任何工程师来说都是至关重要的。在嵌入式系统开发中,资源往往有限,因此对数据类型的选用需要特别考虑其占用的内存大小和运算性能。C语言提供了多种数据类型,包括基本数据类型、构造数据类型、枚举类型和void类型。

weixin_42476987的博客 1094

51单片机交通灯课程设计:定时器中断与Protues仿真详解

定时器中断是单片机实现多任务调度的基础技术,通过硬件定时器产生周期性中断,使CPU能够高效处理实时任务。其原理是利用定时器溢出触发中断服务程序,在中断中完成精确计时,从而解放主循环处理其他逻辑。在嵌入式开发中,定时器中断广泛应用于需要精确时间控制的场景,如交通灯状态机、数码管动态扫描和按键消抖等。本文以51单片机交通灯项目为例,深入剖析定时器中断驱动状态机的实现,结合Protues仿真与Keil C51开发环境,展示从代码编写到仿真验证的完整工程实践,帮助初学者掌握定时器中断的核心应用。

weixin_28729205的博客 83

51单片机课程设计.zip

51单片机课程设计.zip

基于单片机的十字路口交通灯课程设计.zip

里面包含了protues2.7版本仿真和单片机程序。 课设要求: 设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。

Raid5损坏两块盘

  以下为浪潮Inspur NF5460M4型号服务器故障处理过程: 设备raid5组损坏两块硬,并raid组处理离线状态,情况如图:     由于硬盘数据比较重要,面对此情况不要慌我们尽量做到安全保守的保证数据尽可能完整,以下为处理方法,(遇raid5两块盘出现问题处理方法)   以下截图均为遇相同问题的解决图案,并非现场截图。 Ctrl+H 进WebBios界面,发现两...

chen_lipeng的博客 2万+

利用python-docx提取word的高亮部分

利用python-docx提取word的高亮部分 没有找到分享的文档,于是就自己研究了一下。 可以通过python里的python-docx去提取word内的高亮文本。 file=docx.Document(filepath) for para in file.paragraphs: for i in para.runs: #i.font.highlight_color设置了高亮颜色 if i.font.highlight_color is not None:

double_0221的博客 1805

深入傅里叶级数与傅里叶变换:从基础到应用

傅里叶分析为我们提供了一种理解信号频率结构的强大工具。从傅里叶级数到傅里叶变换,再到快速傅里叶变换(FFT),其理论与应用紧密结合,对现代科学技术的发展意义非凡。如果你对信号处理、数据分析或工程计算感兴趣,傅里叶分析是必须掌握的基础工具。希望本文能帮助你对傅里叶分析有更深入的理解!如果有问题或想法,欢迎在评论区讨论!

qq_56683019的博客 3481

华三模拟器实战:3分钟搞定路由器DHCP地址池配置(附常见错误排查)

本文提供华三模拟器中路由器DHCP地址池的实战配置指南。通过分步详解,帮助用户在3分钟内完成基础设置,并深入讲解多地址池、中继配置等进阶应用。文章重点剖析了DHCP服务无法工作的常见原因,提供从客户端到服务器的系统性排错方法,助力快速定位并解决地址分配失败、获取参数错误等典型问题。

w1x2y3的博客 350

军品研制过程-转阶段

介绍军品转阶段评审

Abel的博客 2万+

纯C语言实现的Luhn算法(信用卡校验位):详解与示例

在本文中,我们详细介绍了如何使用纯C语言实现Luhn算法,并提供了一些示例代码。用于检查任意长度的数字字符串的有效性,用于计算给定数字字符串的校验位字符。我们还提供了一个简单的“main”C程序,用于在命令行上接受一个或多个数字字符串,并计算它们的校验位字符。通过阅读本文和理解示例代码,我们希望读者能够更好地理解Luhn算法的工作原理,并能够在自己的项目中应用这种算法。

qq_38334677的博客 1217

LVGL misc timer 定时器(lv_timer.c)

定时器机制是LVGL中非常重要的一项功能,它承载了LVGL的延时任务执行,周期任务执行,时序任务执行等,可以说理解定时器的设计就一定程度上理解发LVGL的任务调度机制。

Bigan(安)的博客 4727

C#单例模式在工控上位机的实战应用:一台设备只连一次,稳定运行7×24小时

在工控行业,稳定性比功能更重要。一台上位机需要7×24小时运行,任何一次因资源冲突导致的停机,都可能给工厂带来巨大损失。单例模式的核心价值,就是通过保证资源唯一性,避免PLC连接冲突、串口占用、日志写入错乱等问题,为工控上位机的稳定运行保驾护航。按需使用:不是所有类都要单例,只有资源唯一性的类才用;线程安全:多线程场景下,必须用双重检查锁定或静态内部类写法;手动释放:单例类中的硬件资源(PLC、串口),程序退出时必须手动释放,避免资源泄漏。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 542

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 焊接自己打板的心形LED出现的问题
下一篇: 弱电怎么控制强电/怎么用单片机来控制交流电220V通断

双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —
间接上电的皮卡
博客等级 码龄6年 3233粉丝 95原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值