51单片机用C语言实现交通灯(红绿灯)源程序

交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改。

源程序如下:

/*

1、程序目的:使用定时器学习 倒计时 红绿灯原理 主要程序和倒计时一样

2、硬件要求:数码管、晶振12M

*/

#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%10]; //个位显示处理

}

}

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. 单片机交通灯灯c语言程序,51单片机用C语言实现交通灯(红绿灯)源程序

    51单片机用C语言实现交通灯(红绿灯)源程序 2009-10-29 23:00 交通灯,红黄绿灯交替亮,怎样实现呢?其实就是根据单片机定时器及倒计时的程序修改. 源程序如下: /* 1.程序目的:使用 ...

  5. 基于单片机的交通灯设计c语言程序,基于单片机AT89C51控制的十字路口交通灯系统设计...

    摘要:本文设计一个单片机AT89C51控制的十字路口交通灯,通过硬件电路设计.元器件使用.软件设计.仿真等环节,实现主干道和支干道的分时控制,保证正常的交通秩序. 关键词:单片机 系统设计 交通灯 1 ...

  6. 51单片机用c语言写音符代码,51单片机电子琴设计C语言程序实例

    51单片机C程序实例,电子琴设计 #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsi ...

  7. 单片机c语言的按键程序,51单片机按键扫描C程序

    原标题:51单片机按键扫描C程序 大二上学期做过80 的按键程序,当时项目要求实现按键控制 屏显示并且接收GPRS传来的数据.当时为了节省成本,就去大西电子市场买来8*8的LED块,然后自己一点一点的 ...

  8. 单灯闪烁c语言程序,51单片机,C语言编程,控制指示灯闪烁的频率

    c51单片机,c语言编程,关于指示灯定时闪烁的. P1.0 P1.1 P1.2 P1.3上面各接有一个指示灯,P2.0接一个外接按键. 要求: 按一下按键P1.0以1Hz的频率闪烁 半周期为500ms ...

  9. C语言花样霓虹灯程序,51单片机制作霓虹灯的程序+电路图

    霓虹灯的电路图: 霓虹灯的51单片机程序: #include #define uchar unsigned char #define uint unsigned int sbit  RED_LED  ...

最新文章

  1. 用PhpStorm IDE创建GG App Engine PHP应用教程
  2. 国家开放大学2021春1080工程数学(本)题目
  3. 计算一个人出生了多少天(炸窝)
  4. insert into 时间_值得花点时间背记的out of有关短语
  5. Windows2003四大必知版本
  6. 由于UPS故障,造成所有服务器断电。( 重启后,机器的IP也许会发生改变(包括服务器))
  7. 没想到,我能这么细心地看算法
  8. orb特征描述符 打开相机与图片物体匹配
  9. 西门子STEP7 OPC SERVER的组态
  10. 利用jspx解决jsp后缀被限制拿shell
  11. 如何获取网页logo与favicon图标使用
  12. mysql 8.0开启远程访问
  13. selenium自动化之PO模型
  14. 留着以后慢慢做的计算几何(题表)
  15. 计算机操作系统-文件管理 知识点归纳
  16. 被孙杨遮挡LOGO的安踏,到底做错了什么?
  17. SAP-ABAP-OOALV进阶-子屏幕;各种方法示例;
  18. C# 路径 目录 文件操作办法
  19. python_第一节课_python基础语法
  20. 视频教程-SharePoint 工作流实战教程-其他

热门文章

  1. JSD-2204-MVC-微博项目-Day15
  2. 程序员知识体系探索:点、线、面、体
  3. ‘在路上’问卷调查结果与分析
  4. 企业如何选择电信、双线、多线/三线、BGP线路?他们的区别是什么?
  5. 贼有趣:朱茵变杨幂,人工智能换脸让明星不再担心自己演技?
  6. 用c语言录入3组学生数据编程,学生信息管理系统C语言编程
  7. 塔米狗企业并购与投融资信息服务平台
  8. 云计算基础架构 (二)redis群集
  9. Linux多线程学习 - sched_yield() CPU让权
  10. picpick尺子像素大小精度不够准确_picpick尺子像素大小精度不够准确_相机的像素精度,物理定位精度,亚像素定位之间的关系和进行像素的固定误差累积......