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语言实现交通灯(红绿灯)源程相关推荐

  1. 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...

    51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...

  2. 51单片机数码管交通灯倒计时c语言,51单片机数码管倒计时模拟交通灯汇编程序...

    /********************************************************************** 51单片机数码管倒计时模拟交通灯汇编程序 LED数码管为 ...

  3. 【Proteus仿真】51单片机汇编数显大型交通灯控制

    [Proteus仿真]51单片机汇编数显大型交通灯控制 Proteus仿真 学汇编的人虽然 不多,但是还是有的,分享一个汇编的案例,给需要的人予以参考学习,有些时候我们还是需要懂一些汇编指令比较好. ...

  4. 51单片机点阵c语言程序,使用51单片机点亮我们的点阵灯

    通过前面我们都知道点亮我们的不管是点阵,数码管,还是LED灯,不仅要熟悉我们的代码还要会看我们的原理图和真值表,所以我们如果真的要写代码倒是其次的,首先我们得学会看我们的原理图和真值表,但是认识那个我 ...

  5. c语言红外解码程序,[转载]红外遥控和C语言51红外遥控解码程序设计实例

    什么是红外线?人的眼睛能看到的可见光按波长从长到短排列,依次为红.橙.黄.绿.青.蓝.紫.其中红光的波长范围为0.62-0.76μm:比红光波长还长的光叫红外线.红外遥控在生产和生活中应用越来越广泛, ...

  6. c语言 测转速程序,用51单片机实现风扇转速测量的源程序+电路图

    项目功能: 将被测风扇叶片(三叶风扇)置于红外光电传感器和其反光板之间,当光电传感器接收到对面的反光板反射回来的信号时(即叶片间的空隙通过时)输出低电平,当光电传感器没收到反光板反射回的信号时(即叶片 ...

  7. 读卡购票c语言程序,基于51单片机的c语言韦根卡读卡程序 门禁系统

    /******************************************************************************* * 文件名称:Wiegand.c * ...

  8. 51单片机c语言常用语句详解,51单片机之C语言-4.5基本语句之条件选择语句

    1. 条件选择语句之if 语句 前面我们讲了数据类型,运算符及表达式.C语言也是一种语言,既然是语言,一定有连接词.这些连接词可以用来表示假设,循环等等.我们先来看看假设if语句.这些连接词有一定的规 ...

  9. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

最新文章

  1. 如何在sqlite3连接中创建并调用自定义函数
  2. 张正友平面标定法的一些注意事项
  3. 网络分布式软件bonic清除
  4. Python爬虫之破解百度翻译--requests案例详解(二)
  5. C#复制、粘贴文本信息到剪贴板
  6. 2022-01-01
  7. “有三AI百人”专栏作者培养计划启动,爱写作的你还等什么呢?
  8. 推送改变世界!Push提高用户活跃度的三不原则
  9. python--numpy
  10. yum安装k8s集群(单master两个node、阿里云镜像源)
  11. PJzhang:互联网是有国界
  12. 剧本翻译之SHUFFLE 6月24日
  13. 图解分布式系统架构演进之路
  14. 【Azure Show】|第五期(下)当下最火热的Blazor与App Service, 嘉宾闫晓迪Alan Tsai...
  15. 调用支付jsapi缺少参数package_iOS微信支付(Swift)
  16. 网站解析 选择 主记录www 为主站 记录类型都选A 泛解析 选*就好了
  17. linux 日志优化,Linux —— 日志管理和优化方式
  18. drawio流程图软件_Win10 一般软件个人收集
  19. 北理计算机语言智能与社会计算,北京理工大学校长张军描绘智慧社会:人在思、云在算、端在造...
  20. java两个数组中不同的数字_【Java】 剑指offer(56-1) 数组中只出现一次的两个数字...

热门文章

  1. vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
  2. Xdebug中文文档-基础特性
  3. 程序员女朋友的相册是这样的
  4. SAP UI5 应用开发教程之四十九 - 如何在桌面电脑端调试运行在手机上的 SAP UI5 应用试读版
  5. 推荐系统深度学习篇-NFM 模型介绍(1)
  6. 智慧商圈支付宝小程序(ISV系统服务商开发模式)
  7. 还不懂PID控制?精华都在这了!
  8. IP 地址冲突检测程序源码(解决某种情况下检测无效的问题)
  9. JS学习日记--正则基础语法
  10. 简支梁模型振动位移matlab,不同移动载荷速度下简支桥梁的变形及振动响应研究...