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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> proteus基于51单片机的红绿灯控制设计 -> 正文阅读

[嵌入式]proteus基于51单片机的红绿灯控制设计

proteus 基于51单片机的红绿灯项目

	用最简单的语句来实现一个小型51单片机项目的实现,适用于初学者。
	包含模块:数字显示和倒计时模块、红绿灯模块。

数字显示模块:

void delay_ms(uint x)
{
	uint i,j;
	for(i=x;i>0;i--)
	for(j=110;j>0;j--);
}
void displayns5()
{	
	int i,k;
	for(i=4;i>=0;i--)
		{	
			for(k=0;k<=5;k++)
			{
			LED1=0;
			P0=shuzi[0];
			LED1=1;
			delay_ms(50);
			LED1=0;
			LED2=0;
			P0=shuzi[i];
			LED2=1;
			delay_ms(50);
			LED2=0;
			delay_ms(1);	
			ns_yellow=0;
			delay_ms(500);
			ns_yellow=1;			
			}		
			}
}

void displayew5()
{	
	int i,k;
	for(i=4;i>=0;i--)
		{	
			for(k=0;k<=10;k++)
			{
			LED1=0;
			P0=shuzi[0];
			LED1=1;
			delay_ms(50);
			LED1=0;
			LED2=0;
			P0=shuzi[i];
			LED2=1;
			delay_ms(50);
			LED2=0;
			delay_ms(1);	
			ew_yellow=0;
			delay_ms(500);
			ew_yellow=1;
			}		
		}
}
void display25()
{
	int i,j,k;
	for(j=2;j>=0;j--)
	{	

		if(j==0){
			for(i=9;i>=5;i--)
			{	
				for(k=0;k<=10;k++)
				{
				
				P0=shuzi[j];
				LED1=1;
				delay_ms(50);
				LED1=0;
		
				P0=shuzi[i];
				LED2=1;
				delay_ms(50);
				LED2=0;
				delay_ms(1);	
				}		
			} 
			}	
		if(j>0)
		{
		for(i=9;i>=0;i--)
			{	
			for(k=0;k<=10;k++)
				{
			
				P0=shuzi[j];
				LED1=1;
				delay_ms(50);
				LED1=0;
			
				P0=shuzi[i];
				LED2=1;
				delay_ms(50);
				LED2=0;
	
				}		
			}
		}
	
}

红绿灯模块:

void alldown()//红黄绿灯全灭
{
ns_red=0;
ns_green=0;
ns_yellow=0;
ew_red=0;
ew_green=0;
ew_yellow=0;
}

proteus原理图:
总原理图
总代码图:

#include <reg51.h>
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#define uchar 	unsigned char
#define uint 	unsigned int
sbit  E=P1^0;	
sbit  W=P1^1;
sbit  S=P1^2;
sbit  N=P1^3;
sbit LED1=P1^6;
sbit LED2=P1^7;
sbit  ns_yellow=P2^0;
sbit  ns_red=P2^1;
sbit  ns_green=P2^2;
sbit  ew_yellow=P2^3;
sbit  ew_red=P2^4;
sbit  ew_green=P2^5;

uchar code shuzi[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint djs,js;

void delay_ms(uint x)
{
	uint i,j;
	for(i=x;i>0;i--)
	for(j=110;j>0;j--);
}
void displayns5()
{	
	int i,k;
	for(i=4;i>=0;i--){	
			for(k=0;k<=5;k++){
			LED1=0;
			P0=shuzi[0];
			LED1=1;
			delay_ms(50);
			LED1=0;
			LED2=0;
			P0=shuzi[i];
			LED2=1;
			delay_ms(50);
			LED2=0;
			delay_ms(1);	
			ns_yellow=0;
			delay_ms(500);
			ns_yellow=1;			
			}}
}
void displayew5()
{	
	int i,k;
	for(i=4;i>=0;i--){	
			for(k=0;k<=10;k++){
			LED1=0;
			P0=shuzi[0];
			LED1=1;
			delay_ms(50);
			LED1=0;
			LED2=0;
			P0=shuzi[i];
			LED2=1;
			delay_ms(50);
			LED2=0;
			delay_ms(1);	
			ew_yellow=0;
			delay_ms(500);
			ew_yellow=1;
			}}
}
void display25(){
	int i,j,k;
	for(j=2;j>=0;j--){	
		if(j==0){
			for(i=9;i>=5;i--){	
				for(k=0;k<=10;k++){
				P0=shuzi[j];
				LED1=1;
				delay_ms(50);
				LED1=0;
				P0=shuzi[i];
				LED2=1;
				delay_ms(50);
				LED2=0;
				delay_ms(1);	
				}}}	
		if(j>0){
		for(i=9;i>=0;i--){	
			for(k=0;k<=10;k++){
				P0=shuzi[j];
				LED1=1;
				delay_ms(50);
				LED1=0;
				P0=shuzi[i];
				LED2=1;
				delay_ms(50);
				LED2=0;}}}}
}
void alldown()
{ns_red=0;ns_green=0;ns_yellow=0;ew_red=0;ew_green=0;ew_yellow=0;
}

void main()
{
	while(1)
	{
	pthread_t tid;
	pthread_create(tid,NULL,display25,NULL);
	
	alldown();
	ew_green=1;
	ns_red=1;
	display25();
	
	alldown();
	ew_yellow=1;
	ns_red=1;
	displayew5();	
	
	alldown();	
	ew_red=1;
	ns_green=1;
	display25();
	
	alldown();	
	ew_red=1;
	ns_yellow=1;
	displayns5();
	}
}

转送请标明出处,否则禁止转送

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

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 22:22:17-

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