在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 6350|回复: 18

真心跪求!!!!交通灯设计

[复制链接]
发表于 2005-3-13 11:49:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
[这个贴子最后由gyc123456在 2005/03/14 01:59pm 第 2 次编辑]

    真心跪求懂的和有的朋友帮我一下,我在此谢谢了。
    我的毕业设计是用数字电路设计交通灯系统,主干40秒通行,子干20秒,黄灯5秒,并对闯红灯的车辆进行报警和记录车牌号码!
    我的QQ:65172372
    谢谢!!!
   
 楼主| 发表于 2005-3-22 01:06:19 | 显示全部楼层

真心跪求!!!!交通灯设计

有人回个贴吗?
发表于 2005-3-22 07:36:42 | 显示全部楼层

真心跪求!!!!交通灯设计

你用什么CPU啊?
还是纯数字电路?
 楼主| 发表于 2005-3-22 07:52:17 | 显示全部楼层

真心跪求!!!!交通灯设计

是的,我要用CMOS电路做.
发表于 2005-3-22 14:54:03 | 显示全部楼层

真心跪求!!!!交通灯设计

闯红灯的车辆进行报警和记录车牌号码
这用什么方式做啊!摄像头吗?
发表于 2005-3-22 14:55:23 | 显示全部楼层

真心跪求!!!!交通灯设计

从时序上分析是完全可以实现的!
发表于 2005-3-22 14:57:18 | 显示全部楼层

真心跪求!!!!交通灯设计

你还是跟老师商量一下用单片机吧!
不用控制器做起来很麻烦啊!
除非有人做过,否则很难帮你
发表于 2005-3-22 16:40:50 | 显示全部楼层

真心跪求!!!!交通灯设计

我认为可以用纯数字电路实现的!
发表于 2005-3-23 07:26:35 | 显示全部楼层

真心跪求!!!!交通灯设计

是啊!不过好麻烦!
发表于 2005-3-24 23:25:26 | 显示全部楼层

真心跪求!!!!交通灯设计

我自己写的红绿黄带左转四色交通灯verilog程序
给你吧。

module jtd(clk,en,reset,showa,showb,statea,stateb);//clk 时钟,en控制端,showa为A方向时间显示,showb为B方向时间显示,
                                  //statea,stateb为控制端,控制AB方向的红绿灯
    input clk,en,reset;
     output showa,showb;      
     output statea,stateb;
     reg[7:0] showa,showb;      
     reg[3:0] statea,stateb;      
     reg[0:2] state,next_state;      
      //state,next_state为当前状态和下一状态
        //独热编码
     parameter A_Green=4'b0001,
            A_Left=4'b0010,
            A_Yellow=4'b0100,
                  A_Red=4'b1000,
                  
                  B_Green=4'b0001,      
                  B_Left=4'b0010,
            B_Yellow=4'b0100,
                  B_Red=4'b1000;
                 
                 
                          
     always @(posedge reset)
           begin
                 if(reset)      ///如果reset==1给初始状态
                       begin
                       state<=3'd0;//初始状态为0
          statea<=A_Green; //A初始状态为绿灯
                       stateb<=B_Red;      //B初始状态为红灯
                 
                 showa<=8'd20;//A方向的初始时间为20个周期
                 showb<=8'd35;//B方向的初始时间为35个周期
                       next_state=3'd1;//初始状态的下一状态为1                        
                       end      
                 
           end      
     always @(state)
           begin
           case(state)
                 3'd0: begin statea<=A_Green;
                       stateb<=B_Red;      
                        
                 showa<=8'd20;
                 showb<=8'd35;
                       next_state=3'd1;
                 
                 end      
                 3'd1:begin statea<=A_Left;
                       stateb<=B_Red;
                       next_state=3'd2;
                       showa<=8'd10;      
                       end
                 3'd2: begin statea<=A_Yellow;
                       stateb<=B_Red;      
                       
                       next_state=3'd3;
                       showa<=8'd5;
                       end
                 3'd3:      
                    begin statea<=A_Red;
                       stateb<=B_Green;
                 
                    showa<=8'd35;
                    showb<=8'd20;
                        next_state=3'd4;
           
                    end         
                 3'd4:
                     begin statea<=A_Red;
                        stateb<=B_Left;
                        showb<=8'd10;      
                        next_state=3'd5;
                        
                        end
                 3'd5:      begin statea<=A_Red;
                       stateb<=B_Yellow;
                       next_state=3'd0;
                              showb<=8'd5;
                      end      
                 default: //state总共3位,共只有6个状态,没有全部使用了
                    begin statea<=A_Green;
                       stateb<=B_Red;      
                        
                    showa<=8'd20;
                    showb<=8'd35;
                       next_state=3'd1;
                 
                    end      
                  endcase
            end
                 
     always @(posedge clk)
           begin
                 if(en) if((showa==0)||(showb==0))//当A方向和B方向的时间有一个为0的话,就要切换状态
                          begin
                          state<=next_state;
                          end      
                 end      
     always @(posedge clk)//时间计数
                       begin
                             if(en)
                                   begin
                              showa<=showa-1;
                        showb<=showb-1;
                              end
                       end
                                         
           endmodule
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 15:43 , Processed in 0.061445 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表