IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于单片机的十字路口交通灯课程设计 -> 正文阅读

[嵌入式]基于单片机的十字路口交通灯课程设计

1、设计要求:

? ? ? ?设计一个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s。

2、设计思路:

? ? ? ? 通过设计要求计算交通路口的总时间,得到一个时间指针。通过这个指针来控制程序的执行顺序。特别注意红灯时间=绿灯通行时间+缓冲时间。首先是南北红灯接通83秒,东西绿灯接通80秒,之后东西黄灯接通3秒。后面东西红灯接通63秒,南北红灯接通60秒,之后南北黄灯接通3秒。第一周期循环结束。后面按着这个周期循环往复。

3、Protues原理图

?4、仿真效果图

?5、单片机代码

#include<reg51.h>
#define u8 unsigned char
#define u16 unsigned int


sbit start = P1^4;		                    //开始按钮
sbit northred=P2^0;			                //北面路口红灯
sbit northyellow=P2^1;			            //北面路口黄灯
sbit northgreen=P2^2;			            //北面路口绿灯
sbit southgreen=P2^3;			            //南面路口绿灯
sbit southyellow=P2^4;			            //南面路口黄灯
sbit southred=P2^5;			                //南面路口红灯
sbit westred=P2^6;			                //西面路口红灯
sbit westyellow=P2^7;			            //西面路口黄灯
sbit westgreen=P1^0;			            //西面路口绿灯
sbit eastgreen=P1^1;			            //东面路口绿灯
sbit eastyellow=P1^2;			            //东面路口黄灯
sbit eastred=P1^3;							//东面路口红灯
sbit highone = P3^0;	                    //选择数码管接通标志位
sbit lowone = P3^1;		                    //选择数码管接通标志位
sbit hightwo = P3^2;	                    //选择数码管接通标志位
sbit lowtwo = P3^3;		                    //选择数码管接通标志位

u8 code number[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴极
u8 xianshi[]={0x3f,0x3f,0x3f,0x3f};
u8 Tpointer=146;			                //时间指针。
u8 done = 0;			                    //开始标志
u16 i;

 void delay(u16 h)		                    //延时函数
{
	while(h--);
}


void xuanze()			                    //选择函数函数
{											//选择标志位接通对应的数码管
	u8 k;									
	for(k=0;k<4;k++)
	{
		switch(k)
		{
			case(0):						
					lowone=1;hightwo=1;lowtwo=1;highone=0;break;        
			case(1):						
					highone=1;hightwo=1;lowtwo=1;lowone=0;break;	
			case(2):						
					highone=1;lowone=1;lowtwo=1;hightwo=0;break;	
			case(3):						
					highone=1;lowone=1;hightwo=1;lowtwo=0;break;	
		}
		P0=xianshi[k];
		delay(500);	              
	}
}


void checkstartkey()	                    //检测开始按钮函数
{
	if(start==0)		  
	{	
		delay(1000);   	                    //消抖
		if(start==0)	 
		{	
			done=1;				
		}					  
		while(!start)
		{
			xuanze();	 
		}	 
	}		
}

void InitTimer0()		  	       			//定时器函数
{
    TMOD = 0x01;		                    //定时器T0为模式1
    TH0 = 0xd8;			                    //设置定时器初值
    TL0 = 0xef;
    EA = 1;				                    //总中断允许
    ET0 = 1;
}

由于篇幅有限相应的代码和仿真图已经上传(包括程序和课程设计报告),有需要的自取:
https://download.csdn.net/download/weixin_47675608/76102894

?由于篇幅有限相应的代码和仿真图已经上传(包括程序和课程设计报告),压缩包内容包括(Protues仿真,单片机程序)有需要的自取:基于单片机的十字路口交通灯课程设计.zip-C/C++文档类资源-CSDN文库

对您有帮助的话,请点赞评论收藏转发关注您的鼓励才是作者创作的动力,求打赏

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:38:55  更:2022-01-17 11:40:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:40:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码