发 帖  
原厂入驻New
[经验]

【proteus练一练2.29】定时器控制交通指示灯

2012-2-29 09:57:32  8471 定时器 指示灯
分享
0
本帖最后由 zhihuizhou 于 2012-2-29 09:58 编辑

/*  名称:定时器控制交通指示灯
  说明:东西向绿灯亮 5s后,黄灯闪烁,闪烁 5次亮红灯,
     红灯亮后,南北向由红灯变成绿灯,5s 后南北向黄灯闪烁,
     闪烁5 次后亮红灯,东西向绿灯亮,如此往复。
*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit RED_A=P0^0; //东西向指示灯
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3; //南北向指示灯
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;
//延时倍数,闪烁次数,操作类型
变量
uchar time_Count=0,Flash_Count=0,Operation_Type=1;
//定时器0 中断函数
void T0_INT() interrupt 1
{
TL0=-50000/256;
TH0=-50000%256;
switch(Operation_Type)
{
  case 1: //东西向绿灯与南北向红灯亮 5s
    RED_A=0;YELLOW_A=0;GREEN_A=1;
    RED_B=1;YELLOW_B=0;GREEN_B=0;
    if(++Time_Count!=100) return; //5s(100*50ms)切换
    Time_Count=0;
    Operation_Type=2;
    break;
  case 2: //东西向黄灯开始闪烁,绿灯关闭
    if(++Time_Count!=8) return;
    Time_Count=0;
    YELLOW_A=~YELLOW_A;GREEN_A=0;
    if(++Flash_Count!=10) return; //闪烁
    Flash_Count=0;
    Operation_Type=3;
    break;  
  case 3: //东西向红灯与南北向绿灯亮 5s
    RED_A=1;YELLOW_A=0;GREEN_A=0;
    RED_B=0;YELLOW_B=0;GREEN_B=1;
    if(++Time_Count!=100) return; //5s(100*50ms)切换
    Time_Count=0;
    Operation_Type=4;
       break;   case 4: //南北向黄灯开始闪烁,绿灯关闭
    if(++Time_Count!=8) return;
    Time_Count=0;
    YELLOW_B=~YELLOW_B;GREEN_A=0;
    if(++Flash_Count!=10) return; //闪烁
    Flash_Count=0;
    Operation_Type=1;
    break;
}   
}
//主程序
void main()
{
TMOD=0x01;    //T0 方式 1
IE=0x82;
TR0=1;
while(1);
}
proteus仿真图:
游客,如果您要查看本帖隐藏内容请回复


张晖 2012-3-1 09:44:36
表表了
回复

举报

财源广进 2012-3-4 18:11:40
我用汇编弄过一个交通灯。
回复

举报

767479675 2012-3-13 22:40:04
看看
回复

举报

myttl1136 2012-3-29 14:54:23
回复

举报

myrokre6 2012-6-7 20:35:25
好,顶!
回复

举报

心宇(语) 2012-9-21 08:26:58

回复

举报

646886114 2012-12-20 08:39:56
额  我们老师现在也让我们做
回复

举报

313533048 2013-4-7 21:20:12
回复

举报

weipeng6999 2013-10-11 09:24:42
回复学习当中
回复

举报

若诺侬 2013-10-11 10:13:53
学习一下!!
回复

举报

包伟 2013-11-10 14:17:55
谢谢分享。。。。。
回复

举报

唐礼清 2013-11-14 18:02:10
看看看看好像很强大的样子
回复

举报

gauss2013 2013-11-14 19:58:53
{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}
{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}{:23:}
回复

举报

midmirror 2013-11-14 22:33:14
学习了,多谢楼主分享。。。。。。。。。。。。。。。。。
回复

举报

ximengke92 2013-12-30 20:34:26
让不让看啊,回复还要求字数???我服了!!!
回复

举报

朱洪武 2013-12-31 12:44:14
学习学习........
回复

举报

l14171216 2014-4-22 19:23:25
谢谢楼主分享~~~
回复

举报

iuo132 2014-4-22 19:53:50
谢谢分享                              
回复

举报

亡命JK 2014-6-23 09:42:12
回复了。。
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
12345下一页
发经验
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表