数电课程设计——交通灯.docx

上传人:王** 文档编号:653488 上传时间:2023-12-08 格式:DOCX 页数:10 大小:252.34KB
下载 相关 举报
数电课程设计——交通灯.docx_第1页
第1页 / 共10页
数电课程设计——交通灯.docx_第2页
第2页 / 共10页
数电课程设计——交通灯.docx_第3页
第3页 / 共10页
数电课程设计——交通灯.docx_第4页
第4页 / 共10页
数电课程设计——交通灯.docx_第5页
第5页 / 共10页
数电课程设计——交通灯.docx_第6页
第6页 / 共10页
数电课程设计——交通灯.docx_第7页
第7页 / 共10页
数电课程设计——交通灯.docx_第8页
第8页 / 共10页
数电课程设计——交通灯.docx_第9页
第9页 / 共10页
数电课程设计——交通灯.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
资源描述

《数电课程设计——交通灯.docx》由会员分享,可在线阅读,更多相关《数电课程设计——交通灯.docx(10页珍藏版)》请在优知文库上搜索。

1、数电课程设计课程名称:交通灯控制器姓名:车宣豪学号:1240308209专业:测控技术与仪器交通灯控制器设计-、设计任务和要求1设计一个交通灯控制器,由两条主干道汇合成十字路口,在每个入口处设置两相位信号灯;分别为直行一红、黄、绿等;左转一红、黄、绿灯,六盏信号灯。2 .每个路口信号灯亮灭次序和时间为直行一绿灯30秒,黄灯5秒,红灯85秒;左转一绿灯20秒,黄灯5秒,红灯95秒。3 .各路口有两个倒计时显示器,分别显示直行和左拐倒计时状态。4 .黄灯亮时,为闪烁点亮方式。二、方案论证1 .各变量含义Clk为单位脉冲信号,reset为清零信号,HSR.HSG、YI分别为东西直行红黄绿灯,HLR、

2、HLGY2分别为东西左拐红黄绿灯,SSR.SSG.Y3分别为南北直行红黄绿灯,SLR、SLG、Y4分别为南北左拐红黄绿灯;HS0,HL0,SS0,SLO分别为东西直行、东西左拐、南北直行、南北左拐倒计时。2.信号灯状态表及每个状态倒计时状态Sosis2s3s4s5s6s7东西直行绿30-1黄5-1红85-66红65-61红60-31红30-26红25-6红5-1东西左拐红35-6红5-1绿20-1黄5-1红60-31红30-26红25-6红5-1南北直行红60-31红30-26红25-6红5-1绿304黄5-1红25-6红5-1南北左拐红9566红6561红6041红4036红356红5/绿2

3、0-1黄513 .显示器倒计时的实现通过设计一个逐渐递增的数X(从1不断加1,一直加到120),然后用一个数减去X就得到一个递减的数来作为计时器上显示的数。例如:第一个状态为东西直行绿灯亮30秒,那么就用31-x(此时X从1一直加1到30)来表示绿灯的剩余倒计时时间;而到第二个状态则为东西左拐黄灯亮5秒,那么就用36-x(由于X是不断加1的数,那么此时X变为从31不断加1到35)来实现黄灯亮5秒的倒计时显示。其他状态及其他方向倒计时与这两个例子-样,都是通过一个数减去X来实现的倒计时。具体每个状态倒计时如下:case(z)8d1:beginHS=31-x;HL=36-x;SS=61-x;SL=

4、96-x;end8,d2beginHS=36-x;HL=36-x;SS=61-x;SL=96-x;end8,d3beginHS=121-x;HL=56-x;SS=61-x;SL=96-x;end8,d4:beginHS=121-x;HL=61-x;SS=6l-x;SL=96-x;end8,d5beginHS=121-x;HL=121-x;SS=91-x;SL=96-x;end8d6:beginHS=121-x;HL=121-x;SS=96-x;SL=96-x;end8d7:beginHS=121-x;HL=12l-x;SS=121-x;SL=116-x;end8,d8beginHS=121-x

5、;HL=121-x;SS=121-x;SL=l21-x;endZ的取值分别表示8个状态,HS表示东西直行倒计时显示,HL表示东西左拐倒计时显示,SS表示南北直行倒计时显示,SL表示南北左拐倒计时显示。4 .黄灯闪烁的实现通过把黄灯的输出信号与上Clk信号来实现黄灯的闪烁,例如Yl=Clk&HSY,HSY为东西直行黄灯信号,当它与上elk时则可实现黄灯的闪烁信号Ylo5 .状态转换。SOSlS2S3、rS7S6S5S4状态机分为8个状态,分别为SO、Sl、S2、S3、S4、S5、S6、S7,每个状态灯亮灭如下:s:HSR,HSG,HSY)=3,b010;HLR,HLGHLY)=3b100;(SS

6、R,SSG,SSYI=3b100;SLR,SLGfSLY)=3,b100;51: HSR,HSGHSY)=3,b001;HLR,HLG,HLYJ=3,b100;SSR,SSG,SSYI=3b100;SLR,SLGfSLY)=3,b100;52: (HSR.HSG,HSY)=3,b100;HLR,HLGHLY)=3,b010;(SSR,SSG,SSYI=3b100;SLR,SLGfSLY)=3,b100;53: HSR,HSG,HSY)=3,b100;HLR,HLG,HLY=3b001;SSR,SSG,SSYI=3b100;SLR,SLGfSLY)=3,b100;54: HSR,HSG,HSY)

7、=3,b100;HLR,HLGHLY)=3b100;(SSR,SSG,SSYI=3b010;SLR,SLGfSLY)=3,b100;55: HSR,HSGHSY)=3,b100;HLR,HLG,HLYJ=3,b100;SSR,SSG,SSYI=3b001;SLR,SLQSLY)=3,b100;56: HSR,HSGHSY)=3,b100;HLR,HLG,HLY)=3b100;(SSR,SSG,SSY=3,b100;SLR,SLGSLY)=3,b010;57: (HSR.HSG,HSY)=3,b100;HLR,HLGHLY)=3,b100;(SSR,SSG,SSYI=3b100;SLR,SLGf

8、SLY)=3,bOOI;HSR,HSGHSY分别表示东西直行红、黄、绿、灯;HLR,HLGHLY分别表示东西左拐红、黄、绿、灯;SSR,SSGSSY分别表示南北直行红、黄、绿、灯;SLR,SLGSLY分别表示南北左拐红、黄、绿、灯。0表示灯灭,1表示灯亮。6、进制转换的实现把计时器输出的数转化成可在2个7段显示器上显示的两位数,利用/和可把倒计时输出转化为十位和个位。例如:assignHSO7:41=HS/4blOIO;assignHS03:0=HS%4bl010;把东西直行倒计时信号HS转化为HSO的十位和个位,这样即可在显示器上显示倒计时的两位数。7.倒计时随8个状态变化而变化的实现当X为

9、1,31,36,56,61,91,96,116时y为1,其他情况y都为0,这样当y为1时都会产生一个上升沿,设Z的初始值为0,当每遇到一个y的上升沿时Z就会加1,Z为8时当遇到下一个y的上升沿时Z为1,依次循环,这样就会产生1、2、3、4、5、6、7、8这8个数,这8个数刚好可以根据8个状态的转换而同时转换,这样就能实现在不同的z时倒计时时间的转换。三、源程序代码及文字说明moduleJTD(clk,reset,HSR,HSG,HLR,HLG,SSR,SSQSLR,SLG,Y1,Y2,Y3,Y4,HS0,HL0,SS0,SL0);模块声明inputelk,reset;/定义输入信号output

10、HSR,HSGHLR,HLGSSR,SSGSLR,SLGY1,Y2,Y3,Y4;/定义输出信号output7:0|HSO,HL0,SSO,SLO;定义为8位宽的输出信号regHSR,HSQHSY,HLR,HLGHLY,SSR,SSGSSY,SLR,SLGSLY;/定义为reg类型reg2:0CS,NS;定义为3位宽的reg型reg7:01HS,HL,SS,SL;定义为8位宽的reg型reg7:01x;定义为8位宽的reg型regy;定义为reg型reg3:0z;定义为4位宽的reg型assignYl=clk&HSY;/赋值语句,令CIk与上HSY等于Yl,实现黄灯的闪烁assignY2=clk

11、(fcHLY;赋值语句,令CIk与上HLY等于Y2,实现黄灯的闪烁assignY3=clk&SSY;赋值语句,令CIk与上SSY等于Y3,实现黄灯的闪烁assignY4=clk&SLY;赋值语句,令CIk与上SLY等于Y4,实现黄灯的闪烁parametersO=3,b(X)O,sl=3b001,s2=3b11,s3=3b10,s4=3b110,s5=3,blll,s6=3,b101,s7=3,b100;定义符号状态值aiways(posedgeelkornegedgereset)边沿敏感beginif(!reset)x=8,d;若resei为0,则X为0elseif(x=8d120)若rese

12、t为1,且X为120x=8dl;那么X为1elsex=x+8b00000001;否则X力口1赋给Xendalways(x)敏感变量为Xbegincase(x)/case语句,X为敏感变量8,dky=l;若X=IJMy=I8d3ky=l;若x=l,则y=l8d36:y=l;若x=l,则y=l8d56:y=l;若x=l,则y=l8d6ky=l;若x=l,则y=l8,d9ky=l;若X=IJVJy=I8d96:y=l;若x=l,则y=l8dll6:y=l;若x=l,则y=ldefaulcy=;/除此之外,y=Oendcaseendalways(posedgeyornegedgereset)边沿敏感b

13、eginif(!reset)如果reset=。z=4b(X)00;那么z=0elseif(z=4b1000)若reset=1,且z=4b1000z=4b(X)01;那么Z为1elsez=z+4,b0001;/否则Z加Iendalways(posedgeelkornegedgereset)边沿敏感beginif(!reset)若reset为0CS=sO;/那么现态为SOelseCS=NS;否则现态到次态翻转endalways(CSorreset)/敏感变量为CS和resetbegincase(CS)s:begin当前为SO状态NS=(3O-x=O)?sl:sO;若30-x为0,则转换到si,否则

14、仍为SoendSkbegin当前为si状态NS=(35-x=O)?s2:sl;若35-x为0,则转换到s2,否则仍为Slend52: begin当前为s2状态NS=(55-x=O)?s3:s2;若55-x为0,则转换到s3,否则仍为s2end53: begin当前为s3状态NS=(60-x=0)?s4:s3;若60-x为0,则转换到s4,否则仍为s3end54: begin当前为s4状态NS=(90-x=0)?s5:s4;若90-x为0,则转换到s5,否则仍为s4ends5:begin当前为s5状态NS=(95-x=0)?s6:s5;若95-x为0,则转换到s6,否则仍为s5ends6:begin当前为s6状态NS=(U5-x=0)?s7:s6;若115-x为0,则转换到s7,否则仍为s6end57: begin/当前为s7状态NS=(120-x=0)?s0:s7;若120-X为0,则转换到s,否则仍为s7endendcaseendalways(posedgeelkornegedgereset)边沿敏感begincase(z)/case语句8,d1:beginHS=31-x;HL=36-x;SS=61-x;SL=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!