8086 按开关灯亮 c语言程序,基于MCS-51的交通灯程序设计(c语言控制直行左转)...
#include #define uintunsigned int
#define ucharunsigned char
#defineOFF 0//定义灯泡开关
#defineON1
sbitew_zx_red = P1^0; //东西直行红黄绿
sbitew_zx_yellow = P1^1;
sbitew_zx_green = P1^2;
sbitew_zz_red = P1^3; //东西左转红黄绿
sbitew_zz_yellow = P1^4;
sbitew_zz_green = P1^5;
sbitsn_zx_red = P2^0; //南北直行红黄绿
sbitsn_zx_yellow = P2^1;
sbitsn_zx_green = P2^2;
sbitsn_zz_red = P2^3; //南北左转红黄绿
sbitsn_zz_yellow = P2^4;
sbitsn_zz_green = P2^5;
sbitseg_1 = P1^6; //东西数码管位选开关
sbit seg_2 = P1^7;
sbitseg_3 = P2^6; //南北数码管位选开关
sbit seg_4 = P2^7;
int time = 0; //计时器
int count = 0;
unsigned char SEG_CA[10] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
unsigned char SEG_CC[10] = {0x3f, 0x06, 0x5b, 0x1f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
void delay()
{
int i;
for(i = 0; i < 10; i++);
}
void display_ew(unsigned int num) //东西数字显示
{
P0 = SEG_CA[num/10]; //点亮数字高位
seg_1 = ON;
delay();
seg_1 = OFF;
P0 = SEG_CA[num%10]; //点亮数字低位
seg_2 = ON;
delay();
seg_2 = OFF;
}
void display_sn(unsigned int num) //南北数字显示
{
P0 = SEG_CA[num/10]; //点亮数字高位
seg_3 = ON;
delay();
seg_3 = OFF;
P0 = SEG_CA[num%10]; //点亮数字低位
seg_4 = ON;
delay();
seg_4 = OFF;
}
void display_ew_shan(unsigned int num) //东西3s 倒计时闪烁显示
{
if(count < 2000)
display_ew(num);
else
{
seg_1 = OFF;
seg_2 = OFF;
}
}
void display_sn_shan(unsigned int num) //南北3s倒计时闪烁显示
{
if(count < 2000)
display_sn(num);
else
{
seg_3 = OFF;
seg_4 = OFF;
}
}
void init()
{
P0 = 0x00;
P1 = 0x00;
P2 = 0x00;
EA = 0;//关总中断
ET0 = 1;//开定时器0中断
TMOD = 0x02;//定时器0工作方式2
TL0 = 6;//定时250us
TH0 = 6;
EA = 1; //开总中断
TR0 = 1; //开始定时
}
void main()
{
init();
while(1)
{
/*************************************************************
开始东西直行绿灯亮,东西左转红灯亮27s,显示绿灯倒计时30s
南北直行、左转红灯亮50s,显示红灯倒计时50s
*************************************************************/
while(time%100 < 27)
{
ew_zx_green = ON; //东西直行绿灯亮,显示27s
ew_zx_yellow = OFF;
ew_zx_red = OFF;
display_ew(30 - time);
ew_zz_red = ON; //东西左转红灯亮
ew_zz_green = OFF;
ew_zz_yellow = OFF;
sn_zx_red = ON; //南北直行红灯亮,显示时间50s
sn_zx_yellow = OFF;
sn_zx_green = OFF;
display_sn(50 - time);
sn_zz_red = ON; //南北左转红灯亮,显示时间50s
sn_zz_yellow = OFF;
sn_zx_green = OFF;
}
/*************************************************************
东西直行黄灯亮3s, 倒计时开始闪烁
东西左转,南北方向不变
*************************************************************/
while(time%100 >= 27 && time%100 < 30)
{
ew_zx_yellow = ON; //东西直行黄灯亮 ,显示时间3s
ew_zx_red = OFF;
ew_zx_green = OFF;
display_ew_shan(30 - time);
display_sn(50 - time);
}
/*************************************************************
东西左转绿灯亮17s,直行红灯亮 ,显示绿灯倒计时20s
南北方向不变
*************************************************************/
while(time%100 >= 30 && time%100 < 47)
{
ew_zz_green = ON;//东西左转绿灯亮,显示时间17s
ew_zz_red = OFF;
ew_zz_yellow = OFF;
display_ew(50-time);
ew_zx_red = ON; //东西直行红灯亮
ew_zx_yellow =OFF;
ew_zx_green = OFF;
display_sn(50-time); //南北继续显示倒计时
}
/*************************************************************
东西左转黄灯亮3s, 倒计时开始闪烁 3s
东西直行,南北方向不变
*************************************************************/
while(time%100 >= 47 && time%100 < 50)
{
ew_zz_yellow = ON;//东西左转黄灯亮,显示时间3s
ew_zz_red = OFF;
ew_zz_green = OFF;
display_ew_shan(50-time);
display_sn(50-time); //南北继续显示倒计时
}
/*************************************************************
东西左转红灯亮50s,直行不变,显示倒计时50s
南北直行绿灯亮27,左转不变,显示绿灯倒计时30s
*************************************************************/
while(time%100 >=50 && time%100 < 77)
{
sn_zx_green = ON;//南北直行绿灯亮,显示时间27s
sn_zx_yellow = OFF;
sn_zx_red = OFF;
display_sn(80 - time);
ew_zz_red = ON; //东西左转红灯亮,显示时间50s
ew_zz_yellow = OFF;
ew_zz_green = OFF;
display_ew(100 - time);
}
/*************************************************************
南北直行黄灯亮3s,左转不变,显示黄灯闪烁倒计时3s
东西不变
*************************************************************/
while(time%100 >= 77 && time%100 < 80)
{
sn_zx_yellow = ON; //南北直行黄灯亮,显示时间3s
sn_zx_red = OFF;
sn_zx_green = OFF;
display_sn_shan(80 - time);
display_ew(100 - time);
}
/*************************************************************
南北左转绿灯亮17s,直行不变,显示绿灯倒计时20s
东西不变
*************************************************************/
while(time%100 >=80 && time%100 <97)
{
sn_zz_green = ON; //南北左转绿灯亮, 显示17s
sn_zz_red = OFF;
sn_zz_yellow = OFF;
display_sn(100-time);
sn_zx_red = ON; //南北直行红灯亮
sn_zx_yellow = OFF;
sn_zx_green = OFF;
display_ew(100 - time);//东西继续倒计时
}
/*************************************************************
南北左转黄灯亮17s,直行不变,显示黄灯闪烁倒计时3s
东西不变
*************************************************************/
while(time%100 >= 97 && time<=100)
{
sn_zz_yellow = ON;//南北左转黄灯亮, 显示时间3s
sn_zz_red = OFF;
sn_zz_green = OFF;
display_sn_shan(100 - time);
display_ew(100 - time);//东西继续倒计时
}
}
}
void timer0() interrupt 1
{
count++;
if(count == 4000)
{
time++;
count = 0;
}
if(time > 100)
time = 0;
}
8086 按开关灯亮 c语言程序,基于MCS-51的交通灯程序设计(c语言控制直行左转)...相关推荐
- 交通灯程序设计C语言,基于MCS-51的交通灯程序设计(c语言控制直行左转,包含程序)...
#include #include #define uint unsigned int #define uchar unsigned char #define ...
- msp430流水灯c语言程序,基于MSP-EXP430F5529开发板流水灯程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 RT,全部使用到了板载的8个可编程LED组成的流水灯程序,以及液晶的背光,达到了使能亮的东西全都又闪又亮了. //******************** ...
- 电子时钟单片机c语言程序,一款51单片机电子钟制作(C语言)
//主程序/ void main()//主程序开始 { chushi();//初始化 while(1)//大循环 { if(g!=1)//如果g不等于1,就执行下一句,否则跳过下一句 disy(fen ...
- 单片机交通灯灯c语言程序,关于LED模拟交通灯单片机C语言程序设计 - 全文
本文为大家带来三个关于LED模拟交通灯单片机C语言程序设计. 关于LED模拟交通灯单片机C语言程序设计一 功能说明 东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南 ...
- 51单片机C语言程序100例分析(1)IO+C语言+头文件
51单片机C语言程序100例分析(1)IO+C语言+头文件 \\\插播一条:文章末尾有惊喜哟~/// P1=0xfe;//P1=11111110B,即P1.0输出低电平} 分析:通过这短短的几行代码 ...
- 单片机c语言交通灯源程序,基于80C51单片机的交通灯C语言源程序
<基于80C51单片机的交通灯C语言源程序>由会员分享,可在线阅读,更多相关<基于80C51单片机的交通灯C语言源程序(5页珍藏版)>请在人人文库网上搜索. 1.include ...
- c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...
- 奇数魔方阵c语言程序设计,《C语言程序》课程设计报告书魔方阵程序设计
<<C语言程序>课程设计报告书魔方阵程序设计>由会员分享,可在线阅读,更多相关<<C语言程序>课程设计报告书魔方阵程序设计(17页珍藏版)>请在人人文库 ...
- J015基于AT89C51的十字路口交通灯紧急+夜间
基于AT89C51的十字路口交通灯紧急+夜间 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J015 目录标题 基于AT89C51的十字路口交通灯紧急+夜 ...
- 基于51单片机交通灯控制系统
51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...
最新文章
- 深度分析define预处理指令
- mongodb 备份和恢复
- python3 文件 复制、重命名、移动、删除
- 用BFS(广度优先搜索queuelist)算法解决农夫过河问题
- 在Browser Application中使用XNA
- cocos creator基础-创建WX开放域遇到的问题
- 什么时候用不到索引?
- java利用数组随机抽取幸运观众_java利用数组随机抽取幸运观众
- Win-MASM64汇编语言-MOV/MOVSB/MOVSW/MOVSD/REP/REPZ/REPE/REPNZ/REPNE
- 暗黑启示录bt版java下载,Transmission搭建BT下载服务器
- 金融发展在经济结构调整中的重要作用
- c语言调用树莓派usb摄像头,树莓派接多个USB摄像头,使用opencv打开指定的某一个摄像头...
- 施努卡:机器视觉公司排名(机器人视觉系统)
- 非线性规划模型、0-1整数规划模型
- ASP.NET MVC --- 身份认证与授权
- 淘宝推荐最靠谱的补单平台排行榜
- ubuntu14.04下安装图片编辑软件pinta
- 获取当前目录下的所有文件夹
- 操作系统进程状态和状态转换详解
- .net2.0注册到IIS ,重新注册IIS ,iis注册
热门文章
- python-opencv实现简单的车牌定位
- 11.28.cookie
- Java动态代理简述
- 工作那些事(三十一)怎样带好一个项目团队
- |Vijos|图论最短路|P1082 丛林冒险
- THD 变量存入threads中
- 实现图片大小的自动控制( 图片大小控制CSS代码)
- NGUI_2.6.3_系列教程三
- AndroidStudio_你的主机中的软件中止了一个已建立的连接---Android原生开发工作笔记123
- 大数据之-Hadoop完全分布式_SCP案例_同时在1000台服务器上安装JDK_配置环境变量---大数据之hadoop工作笔记0031