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

2009-10-29 23:00

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

源程序如下:

/*

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

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

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

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

  4. 洗衣机洗涤部分c语言程序,51单片机洗衣机控制板及C语言程序

    51单片机洗衣机控制板及C语言程序,该控制板单片机采用AT89C51单片机,所设计全自动洗衣机功能有:标准洗衣.经济洗衣.单独洗衣以及排水四种洗衣等四种方式,有强洗.弱洗及运行/暂停.显示及报警功能, ...

  5. 计数显示器c语言程序,51单片机计数显示器Proteus仿真程序

    一.设计要求及目的 [实验目的] 熟悉51单片机的基本输入/输出应用,掌握Proteus ISIS模块的原理图绘图方法及单片机系统仿真运行方法. [实验内容] (1)观察Proteus ISIS模块的 ...

  6. 水下超声波测距c语言程序,51单片机超声波测距C程序

    51单片机超声波测距C程序 (2010-01-26 14:09:10) 电子工程师电子资料大学校园 超声波检测原理 超声波测距的程序流程图 程序如下: //超声波模块程序 #include #defi ...

  7. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...

    <51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...

  8. 单片机汉字点阵c语言程序,51单片机C语言多种点阵屏驱动程序(开发软件为keil C...

    51单片机C语言多种点阵屏驱动程序(开发软件为keil C 2016-08-23 1 0 0 暂无评分 其他 1 积分下载 如何获取积分? 51单片机C语言多种点阵屏驱动程序(开发软件为keil C ...

  9. 超声波c语言程序,51单片机超声波模块的C语言程序.doc

    51单片机超声波模块的C语言程序.doc 超声波模块程序 超声波模块程序 Trig P20 Echo P32 include define uchar unsigned char define uin ...

最新文章

  1. Oracle SQL高级编程——分析函数(窗口函数)全面讲解
  2. node开发环境(mac)和线上环境(linux)搭建
  3. 在linux系统中安装VSCode(Visual Studio Code)
  4. MySQL查询时构建自增ID
  5. php中的 server 2008,window_Windows Server 2008开发指南解析,  Windows Server 2008开发指南中 - phpStudy...
  6. RPN Calculator for mac(RPN计算器)
  7. 重磅干货!揭秘波士顿动力背后的专利技术
  8. 2022-07-12
  9. linux操作系统和ucos操作系统,嵌入式操作系统ucos与linux比较
  10. 淘宝API签名异常,如何正确计算SIGN参数?(error code:25 Invalid Signature)
  11. 烧写ARM板----MYS-6ULX
  12. webpack4.0 css压缩js压缩 css 样式添加前缀
  13. 值得关注的5款“企业级低代码开发平台”推荐
  14. php后台登录,简单的PHP数据后台实现用户登录,php后台用户登录
  15. docker(5、网络2) 1、容器间通信的三种方式 2、 容器如何访问外部 3、 外部如何访问容器
  16. 电压有效值电容和电感的电压电流相位关系以及电抗和容抗值推导
  17. JavaScript里面的“类”
  18. 从支付宝「蜻蜓」布局看线下支付场景的想象空间...
  19. MyEclipse个性设置
  20. 苹果平替笔哪个牌子好?苹果平替笔推荐

热门文章

  1. 机器学习LDA-基础Julia与Python的实现
  2. MFC win32 API串口同步模式代码示范
  3. Android Studio配置优化最全详解
  4. Axure旋转与移动效果
  5. 微信公众号开发__微信网页授权并获取用户基本信息(是否关注公众号、头像、昵称等)
  6. 正则表达式re库 python3
  7. java从入门到精通----mysql05
  8. hfds下的文件导入hive表格
  9. 【Linux】Linux input子系统之Input event codes
  10. 禅与摩托车维修艺术_摩托车与编程之禅