搜索
bottom↓
回复: 11

我正在做交通灯设计,大家给点建议

[复制链接]

出0入0汤圆

发表于 2012-12-6 10:17:16 | 显示全部楼层 |阅读模式
        这板子行吗?好象没有那种效果

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-12-6 14:42:36 | 显示全部楼层
//程序:ex4_4.c
//功能:交通灯控制程序
#include<reg51.h>
unsigned char t0,t1;       //定义全局变量,用来保存延时时间循环次数
//函数名:delay0_5s1
//函数功能:用T1的工作方式1编制0.5s延时程序,假定系统采用12MHz晶振,定时器1、工作方式1定时50ms,再循环10次即可定时到0.5s
//形式参数:无
//返回值:无
void delay0_5s1()
{
  for(t0=0;t0<0x0a;t0++)    //采用全局变量t0作为循环控制变量
  {            
   TH1=0x3c;                //设置定时器初值               
   TL1=0xb0;
   TR1=1;                   //启动T1
   while(!TF1);             //查询计数是否溢出,即50ms定时时间到,TF1=1
   TF1=0;                   //50ms定时时间到,将定时器溢出标志位TF1清零
  }
}
//函数名:delay_t1
//函数功能:实现0.5sxt延时
//形式参数:unsigned char t;延时时间为0.5sxt
//返回值:无
void delay_t1(unsigned char t)
{
  for(t1=0;t1<t;t1++)        //采用全局变量t1作为循环控制变量
  delay0_5s1();
}
//函数名:int_0
//函数功能:外部中断0中断函数,紧急情况处理,当CPU响应外部中断0的中断请求时,自动执行函数,实现两个方向红灯同时亮10s
//形式参数:无
//返回值:无
void   int_0() interrupt 0   //紧急情况中断
{  
   unsigned char i,j,k,l,m;
   i=P1;                     //保护现场,暂存P1口、t0、t1、TH1、TL0
   j=t0;
   k=t1;
   l=TH1;
   m=TL1;
   P1=0xdb;                  //两个方向都是红灯
   delay_t1(20);             //延时10s
   P1=i;                     //恢复现场,恢复进入中断前P1口、t0、t1、TH1、TL0
   t0=j;
   t1=k;
   TH1=l;
   TL1=m;
}
//函数名:int_1
//函数功能:
//形式参数:无
//返回值:无
void   int_1() interrupt 2
{  
   unsigned char i,j,k,l,m;
   EA=0;
   EA=0;
   i=P1;
   j=t0;
   k=t1;
   l=TH1;
   m=TL1;
   EA=1;
   P1=0xdb;
   delay_t1(10);
   EA=0;
   P1=i;
   t0=j;
   t1=k;
   TH1=l;
   TL1=m;
   EA=1;
}
void main()
{
  unsigned char k;
  TMOD=0x10;
  EA=1;
  EX0=1;
  IT0=1;
  EX1=1;
  IT1=1;
  while(1)
  {
    P1=0xf3;
    delay_t1(110);
   for(k=0;k<3;k++)
    {
     P1=0xf3;
     delay0_5s1();
     P1=0xfb;
     delay0_5s1();
    }
   P1=0xeb;
   delay_t1(4);
   P1=0xde;
   delay_t1(110);
   for(k=0;k<3;k++)
     {
      P1=0xde;
      delay0_5s1();
      P1=0xdf;
      delay0_5s1();
     }
     P1=0xdd;
     delay_t1(4);
  }
}

后面的没有定义

出0入0汤圆

 楼主| 发表于 2012-12-6 14:43:16 | 显示全部楼层
怎么把程序打包???谢谢啦

出0入0汤圆

发表于 2012-12-6 16:06:43 | 显示全部楼层
本帖最后由 HeP028 于 2012-12-6 16:08 编辑

这个是我以前做的哈哈,像不?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-12-6 20:13:34 | 显示全部楼层
不错不错有点意思

出0入0汤圆

 楼主| 发表于 2012-12-7 09:17:39 | 显示全部楼层
HeP028 发表于 2012-12-6 16:06
这个是我以前做的哈哈,像不?

不错  我还不知道怎么去走线呢

出0入0汤圆

发表于 2012-12-7 09:29:27 | 显示全部楼层
走线不是问题,关键是原理图啊,网上搞张原理图或自己画吧

出0入0汤圆

 楼主| 发表于 2012-12-7 09:56:27 | 显示全部楼层
中断函数怎么改改????我那个程序太繁琐了

出0入0汤圆

 楼主| 发表于 2012-12-7 09:57:13 | 显示全部楼层
uli123 发表于 2012-12-7 09:29
走线不是问题,关键是原理图啊,网上搞张原理图或自己画吧

原理图我已经找到了  就是剩下调试和走线了

出0入0汤圆

发表于 2012-12-7 11:43:01 | 显示全部楼层
如果水平高地话,可以照着原理图直接连线,我是用AD软件连完线转印后腐蚀得到的,中断函数的话,主要就是定时喽,你可以定义一个标志变量,到一定时间的时候,改变标志变量,主函数根据这个标志变量来确定执行其中的一段程序

出0入0汤圆

发表于 2012-12-7 14:28:48 | 显示全部楼层
直接用 PROTEUS模拟, 不用这么麻烦搞板子。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-16 23:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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