//交通灯
#include <reg51.h>
#include <intrins.h>
typedef unsigned char Uchar;
typedef unsigned int Uint;
#define ledport P0
#define north_south_time P1
#define east_west_time P2
sbit test = P3^4;
sbit north_south_red=ledport^0;
sbit north_south_yellow=ledport^1;
sbit north_south_green=ledport^2;
sbit east_west_red=ledport^3;
sbit east_west_yellow=ledport^4;
sbit east_west_green=ledport^5;
//共阳数码管的显示码
Uchar discode[]={ 0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E};
//函数声明
void Delay_nms(Uint nms);
void seg7_dis(Uchar Ntime);
//主函数
void main()
{ ledport=0xff; //初始化,所有显示关闭
north_south_time=0xff;
east_west_time=0xff;
//南北绿,东西红,9秒,黄3秒,南北绿,东西红,9秒,黄3秒
while(1)
{ north_south_green=0;east_west_red=0;
seg7_dis(9);
north_south_green=1;east_west_red=1;
north_south_yellow=0;east_west_yellow=0;
seg7_dis(3);
north_south_yellow=1;east_west_yellow=1;
north_south_red=0;east_west_green=0;
seg7_dis(9);
north_south_yellow=0;east_west_yellow=0;
north_south_red=1;east_west_green=1;
seg7_dis(3);
north_south_yellow=1;east_west_yellow=1;
}
}
void Delay_nms(Uint nms) //@11.0592MHz ,1ms*N
{
Uchar i, j;
do{
_nop_();
i = 2;
j = 219;
do
{
while (--j);
} while (--i);
}
while(--nms);
}
//共阳数码管显示
void seg7_dis(Uchar Ntime)
{ Uchar tmp;
do{
tmp=discode[Ntime];
north_south_time=tmp;
east_west_time=tmp;
Delay_nms(1000);
}while(--Ntime);
}
基于51单片机的简易交通灯(原理图+PCB+C程序代码+Protues仿真文件)
需积分: 0 98 浏览量
2023-11-02
23:15:49
上传
评论 2
收藏 776KB ZIP 举报
平凡工匠
- 粉丝: 15
- 资源: 4
最新资源
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈