用c语言设计红绿灯程序,[转载]51单片机用C语言实现交通灯(红绿灯)源程
51单片机用C语言实现交通灯(红绿灯)源程序
交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。
源程序如下:
#include
bit red,green,yellow,turnred; //定义红、黄、绿及转红标志
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
unsigned char Dis_Shiwei;//定义十位
unsigned char Dis_Gewei; //定义个位
void delay(unsigned int cnt) //用于动态扫描数码管的延时程序
{
while(--cnt);
}
main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal定时器0,工作方式1,16位定时器
TH0=0xd8; //65535-10000=55535=D8F0(十六进制)
TL0=0xf0;
IE= 0x82; //中断控制,EA=1开总中断,ET0=1:定时器0中断允许
TR0=1; //开定时器0中断
P1=0xfc;//红灯亮,根据红黄绿接灯的顺序。
red =1;
while(1)
{
P0=Dis_Shiwei;//显示十位,这里实现用8位数码管,即左1位
P2=0;
delay(300);//短暂延时
P0=Dis_Gewei; //显示个位,左数,2位
P2=1;
delay(300);
}
}
void tim(void) interrupt 1 using 1
{
static unsigned char second=60,count; //初值60
TH0=0xd8;//重新赋值,10毫秒定时
TL0=0xf0;
count++;
if (count==100)
{
count=0;
second--;//秒减1
if(second==0)
{ //这里添加定时到0的代码 ,可以是灯电路,继电器吸合等,或者执行一个程序
if(red) //红灭,先转黄
{
red=0;yellow=1;
second=4;
P1=0xF3;//黄灯亮4秒,黄灯为过渡灯,再根据情况转绿或转红
}
else if(yellow && !turnred)
{
yellow=0;green=1;
second=25;
P1=0xCF;//绿灯亮25秒,
}
else if(green)
{
yellow=1;green=0;
second=4;
P1=0xF3;//黄灯亮4秒
turnred=1;
}
else if(yellow && turnred)
//绿灯灭,转黄灯,后红灯,turnred=1时
{
red=1;yellow=0;
P1=0xFC;//红灯亮60秒
second=60;
turnred=0; //接下来是转黄,绿。
}
}
Dis_Shiwei=tab[second/10];//十位显示值处理
Dis_Gewei=tab[second]; //个位显示处理
}
}
电子小制作:http://www.5imcu.net/
用c语言设计红绿灯程序,[转载]51单片机用C语言实现交通灯(红绿灯)源程相关推荐
- 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...
51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...
- 51单片机数码管交通灯倒计时c语言,51单片机数码管倒计时模拟交通灯汇编程序...
/********************************************************************** 51单片机数码管倒计时模拟交通灯汇编程序 LED数码管为 ...
- 【Proteus仿真】51单片机汇编数显大型交通灯控制
[Proteus仿真]51单片机汇编数显大型交通灯控制 Proteus仿真 学汇编的人虽然 不多,但是还是有的,分享一个汇编的案例,给需要的人予以参考学习,有些时候我们还是需要懂一些汇编指令比较好. ...
- 51单片机点阵c语言程序,使用51单片机点亮我们的点阵灯
通过前面我们都知道点亮我们的不管是点阵,数码管,还是LED灯,不仅要熟悉我们的代码还要会看我们的原理图和真值表,所以我们如果真的要写代码倒是其次的,首先我们得学会看我们的原理图和真值表,但是认识那个我 ...
- c语言红外解码程序,[转载]红外遥控和C语言51红外遥控解码程序设计实例
什么是红外线?人的眼睛能看到的可见光按波长从长到短排列,依次为红.橙.黄.绿.青.蓝.紫.其中红光的波长范围为0.62-0.76μm:比红光波长还长的光叫红外线.红外遥控在生产和生活中应用越来越广泛, ...
- c语言 测转速程序,用51单片机实现风扇转速测量的源程序+电路图
项目功能: 将被测风扇叶片(三叶风扇)置于红外光电传感器和其反光板之间,当光电传感器接收到对面的反光板反射回来的信号时(即叶片间的空隙通过时)输出低电平,当光电传感器没收到反光板反射回的信号时(即叶片 ...
- 读卡购票c语言程序,基于51单片机的c语言韦根卡读卡程序 门禁系统
/******************************************************************************* * 文件名称:Wiegand.c * ...
- 51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句
1. 条件选择语句之if 语句 前面我们讲了数据类型,运算符及表达式.C语言也是一种语言,既然是语言,一定有连接词.这些连接词可以用来表示假设,循环等等.我们先来看看假设if语句.这些连接词有一定的规 ...
- 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...
最新文章
- 如何在sqlite3连接中创建并调用自定义函数
- 张正友平面标定法的一些注意事项
- 网络分布式软件bonic清除
- Python爬虫之破解百度翻译--requests案例详解(二)
- C#复制、粘贴文本信息到剪贴板
- 2022-01-01
- “有三AI百人”专栏作者培养计划启动,爱写作的你还等什么呢?
- 推送改变世界!Push提高用户活跃度的三不原则
- python--numpy
- yum安装k8s集群(单master两个node、阿里云镜像源)
- PJzhang:互联网是有国界
- 剧本翻译之SHUFFLE 6月24日
- 图解分布式系统架构演进之路
- 【Azure Show】|第五期(下)当下最火热的Blazor与App Service, 嘉宾闫晓迪Alan Tsai...
- 调用支付jsapi缺少参数package_iOS微信支付(Swift)
- 网站解析 选择 主记录www 为主站 记录类型都选A 泛解析 选*就好了
- linux 日志优化,Linux —— 日志管理和优化方式
- drawio流程图软件_Win10 一般软件个人收集
- 北理计算机语言智能与社会计算,北京理工大学校长张军描绘智慧社会:人在思、云在算、端在造...
- java两个数组中不同的数字_【Java】 剑指offer(56-1) 数组中只出现一次的两个数字...
热门文章
- vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
- Xdebug中文文档-基础特性
- 程序员女朋友的相册是这样的
- SAP UI5 应用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 应用试读版
- 推荐系统深度学习篇-NFM 模型介绍(1)
- 智慧商圈支付宝小程序(ISV系统服务商开发模式)
- 还不懂PID控制?精华都在这了!
- IP 地址冲突检测程序源码(解决某种情况下检测无效的问题)
- JS学习日记--正则基础语法
- 简支梁模型振动位移matlab,不同移动载荷速度下简支桥梁的变形及振动响应研究...