课程设计之智能交通灯控制器_第1页
课程设计之智能交通灯控制器_第2页
课程设计之智能交通灯控制器_第3页
课程设计之智能交通灯控制器_第4页
课程设计之智能交通灯控制器_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能交通灯控制器设计者:蒋晓婷班级:电气工程及其自动化9班学号:20080711304指导老师:苏娟N设计内容功能设计:EW1、交通灯分南北方向和东西方向红绿灯安排,SN为主干道,EW为支干道。此交通灯分为正常模式和紧急S模式,在正常模式下分为白天模式和夜间模式。2、交通灯可以根据时钟的时间自动从白天模式转为黑夜模式,交通灯紧急模式和正常模式之间的转换通过开关控制,且当从紧急模式回复到正常模式时,数码管显示回到最初状态。3、白天模式:主干道工作时:SN(南北直走)绿灯40秒,黄灯5秒;SWNE(南拐西、北拐东)绿灯20秒,黄灯5秒。支干道工作时:EW(东西直走)绿灯20秒,黄灯5秒,WNES(

2、西拐北、东拐南)绿灯20秒,黄灯5秒。4、黑夜模式:主干道工作时:SN(南北直走)绿灯20秒,黄灯5秒;SWNE(南拐西、北拐东)绿灯10秒,黄灯5秒。支干道工作时:EW(东西直走)绿灯15秒,黄灯5秒,WNES(西拐北、东拐南)绿灯10秒,黄灯5秒。5、紧急模式:主干道与支干道全亮红灯且显示为00。6、设计直走与左拐的功能是为了防止左拐与对面直走的车辆相撞。程序模块:开关模块:O0、控制板上灯的打开,O2控制正常模式和黑夜模式的选择,O4、控制键盘的复位。键盘模块:1、控制JTD模块、时钟模块和JTDLCD模块的复位。JTD模块:此模块为主控模块,主要实现将20MHZ分频到2.6HZ后,由此

3、脉冲通过计数得到交通灯的状态与分秒信号,并将此信号送给JTDLCD模块。时钟模块:将20MHZ分频到2.6HZ,由此脉冲进行计数器的计数。输出信号给主控模块,实现白天与黑夜模式的自动转换。JTDLCD模块:显示交通灯状态及其时间。原理图:一、开关模块功能介绍:O0、控制下载JTDLCD上灯的显示,O2、控制主控模块上CM的选择,CM为0时为正常模式,CM为1时为紧急模式。O4、控制键盘模块的复位R,键盘只有在复位后才能正常使用,R为1有效。二、键盘模块功能介绍:将板上键盘变为16个按键,从左上到右下,按键按下时,对应输出为1,松开为0。支持多个按键(必须是同一行)同时按下,带防抖,与NANOB

4、OARD库中器件KEYPAD直接相连。管脚说明: ICOL3.0、OROW3.0连接KEYPAD器件,输入:CPIN 时钟脉冲输入 按20MHz设计,链接脉冲发生器。 复位R链接开关O4。输出:Y15.0 16个按键输出。当按下Y1时,JTD模块、时钟模块和JTDLCD模块复位,Y1链接JTD模块R、时钟模块R、R1和JTDLCD模块R。模块程序VHDL语言如下:LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLentityPADTOKEYisportCPINRINYOUTDOWNTOICOLINDOWNTOOROWO

5、UTDOWNTOENDENTITYarchitectureJGTofPADTOKEYisTYPESTATESISSIGNALSSTATESSIGNALSROWDOWNTOSIGNALCPCTRANGETOSIGNALCTDELAYRANGETOSIGNALCPBEGINPROCESSCPINBEGINIFCPINCPINTHENIFCPCTTHENCPCTCPCPELSECPCTCPCTENDIFENDIFENDPROCESSPROCESSCPRVARIABLENRANGETOBEGINIFRTHENSY"0000000000000000"SROW"1110&qu

6、ot;NELSIFCPCPTHENCASESISWHENSWHENOROWSROWSWHENSCASENISWHENYDOWNTOICOLWHENYDOWNTOICOLWHENYDOWNTOICOLWHENYDOWNTOICOLWHENOTHERSNULLENDCASEWHENIFNTHENNSCTDELAYSROW"1110"ELSENNSSROWSROWDOWNTOSROWENDIFWHENIFCTDELAYTHENSCTDELAYELSECTDELAYCTDELAYENDIFENDCASEENDIFENDPROCESSENDJGT三、JTD模块功能介绍:此为主控模块,

7、在此模块中将20MHZ的脉冲分频为2.6HZ的脉冲,实现交通灯红黄绿的变换,实现红黄绿灯分秒的计数,实现正常模式与紧急模式的转换,接收来自时钟的脉冲,实现白天模式与黑夜模式的自动转换。管脚说明:输入:CM:为0时选择正常模式,为1时选择紧急模式,连接开关O2。 CPIN:脉冲输入,连接脉冲端口。 SWITCH:为1时选择白天模式,为0时选择黑夜模式,连接时钟模块的MICOUT1。 R:复位,连接键盘模块KEY0。输出:EW7.0:输出东西直走方向分秒信号。 EWRYG2.0:输出东西直走方红黄绿灯状态信号。 SN7.0: 输出南北直走方向分秒信号。 SNRYG2.0: 输出南北直走方红黄绿灯状

8、态信号 SWNE7.0: 输出南拐西、北拐东方向分秒信号。 SWNERYG2.0: 输出南拐西、北拐东红黄绿灯状态信号 WNES7.0:输出西拐北、东拐南方向分秒信号。 WNESRYG2.0: 输出西拐北、东拐南方红黄绿灯状态信号。程序VHDL语言如下:LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLUSEIEEESTD_LOGIC_ARITHALLentityJTDisportCPINRSWITCHCMINSNSWNEEWWNESOUTDOWNTOEWRYGSNRYGSWNERYGWNESRYGOUTDOWNTOe

9、ndentityarchitectureJGTofJTDisSIGNALCTEWCTSNCTSWNECTWNESDOWNTOSIGNALCTFPRANGETOSIGNALCPTYPESTATESISSIGNALSSTATESBEGINPROCESSCPINBEGINIFCPINCPINTHENIFCTFPTHENCTFPCPCPELSECTFPCTFPENDIFENDIFENDPROCESSPROCESSSWITCHCMCPRBEGINIFCMTHENIFSWITCHTHEN- SN SWNE EW WNES-S0:G40 R70 00-S1:Y05 R30-S2: 00 G20 R25-S3

10、: Y05 R05-S4:R50 00 G20-S5:R30 Y05-S6:R25 00 G20-S7:R05 Y05IFRTHEN-复位 SCTSN"28"CTEW"46"CTWNES"00"SNRYG"001"EWRYG"100"ELSIFCPCPTHENCASESISWHENIFCTSN"01"THENSCTSN"05"CTEW"1E"SNRYG"010"EWRYG"100"ELSECTSN

11、CTSNCTEWCTEWENDIFWHENIFCTSN"01"THENSCTEW"19"CTSN"00"CTSWNE"14"SWNERYG"001"EWRYG"001"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTSWNE"01"THENSCTSWNE"05"CTEW"05"SWNERYG"010"EWRYG"100"ELSECTSWNECTSWNECTEW

12、CTEWENDIFWHENIFCTSWNE"01"THENSCTSN"32"CTSWNE"00"CTEW"14"SNRYG"100"EWRYG"001"ELSECTSWNECTSWNECTEWCTEWENDIFWHENIFCTEW"01"THENSCTSN"1E"CTEW"05"SNRYG"100"EWRYG"010"ELSECTSNCTSNCTEWCTEWENDIFWHENI

13、FCTEW"01"THENSCTSN"19"CTWNES"14"CTEW"00"SNRYG"100"WNESRYG"001"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTWNES"01"THENSCTSN"05"CTWNES"05"SNRYG"100"EWRYG"010"ELSECTSNCTSNCTWNESCTWNESENDIFWHENIFCTWNES&qu

14、ot;01"THENSCTSN"28"CTEW"46"CTWNES"00"SNRYG"001"EWRYG"100"ELSECTSNCTSNCTWNESCTWNESENDIFWHENOTHERSNULLENDCASEENDIFELSIFSWITCHTHEN-黑夜- SN SWNE EW WNES-S0:G20 R40 00-S1:Y05 R20-S2:00 G10 R15-S3: Y05 R05-S4:R35 00 G15-S5:R20 Y05-S6:R15 00 G10-S7:R05

15、Y05IFRTHEN-复位 SCTSN"14"CTEW"28"CTWNES"00"SNRYG"001"EWRYG"100"ELSIFCPCPTHENCASESISWHENIFCTSN"01"THENSCTSN"05"CTEW"14"SNRYG"010"EWRYG"100"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTSN"01"THENSCTEW"

16、05"CTSN"00"CTSWNE"0F"SWNERYG"001"EWRYG"001"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTSWNE"01"THENSCTSWNE"05"CTEW"05"SWNERYG"010"EWRYG"100"ELSECTSWNECTSWNECTEWCTEWENDIFWHENIFCTSWNE"01"THENSCTSN"23&quo

17、t;CTSWNE"00"CTEW"0F"SNRYG"100"EWRYG"001"ELSECTSWNECTSWNECTEWCTEWENDIFWHENIFCTEW"01"THENSCTSN"14"CTEW"05"SNRYG"100"EWRYG"010"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTEW"01"THENSCTSN"0F"CTEW"00&q

18、uot;CTWNES"0A"SNRYG"100"WNESRYG"001"ELSECTSNCTSNCTEWCTEWENDIFWHENIFCTWNES"01"THENSCTSN"05"CTWNES"05"SNRYG"100"EWRYG"010"ELSECTSNCTSNCTWNESCTWNESENDIFWHENIFCTWNES"01"THENSCTSN"14"CTEW"28"CTWN

19、ES"00"SNRYG"001"EWRYG"100"ELSECTSNCTSNCTWNESCTWNESENDIFWHENOTHERSNULLENDCASEENDIFENDIFELSIFCMTHENCTSN"00"CTEW"00"CTSWNE"00"CTWNES"00"EWRYG"100"SNRYG"100"WNESRYG"100"SWNERYG"100"ENDIFENDPROCE

20、SSPROCESSCTEWCTSNCTSWNECTWNES-将16进制转换为BCD码BEGINIFCTEW"0A"THENEWCTEWELSIFCTEW"14"THENEWCTEWELSIFCTEW"1E"THENEWCTEWELSIFCTEW"28"THENEWCTEWELSIFCTEW"32"THENEWCTEWELSIFCTEW"3C"THENEWCTEWELSIFCTEW"46"THENEWCTEWELSEEWCTEWENDIFIFCTSN&quo

21、t;0A"THENSNCTSNELSIFCTSN"14"THENSNCTSNELSIFCTSN"1E"THENSNCTSNELSIFCTSN"28"THENSNCTSNELSIFCTSN"32"THENSNCTSNELSIFCTSN"3C"THENSNCTSNELSIFCTSN"46"THENSNCTSNELSESNCTSNENDIFIFCTSWNE"0A"THENSWNECTSWNEELSIFCTSWNE"14"THENSW

22、NECTSWNEELSIFCTSWNE"1E"THENSWNECTSWNEELSIFCTSWNE"28"THENSWNECTSWNEELSIFCTSWNE"32"THENSWNECTSWNEELSIFCTSWNE"3C"THENSWNECTSWNEELSESWNECTSWNEENDIFIFCTWNES"0A"THENWNESCTWNESELSIFCTWNES"14"THENWNESCTWNESELSIFCTWNES"1E"THENWNESCTWNESELS

23、IFCTWNES"28"THENWNESCTWNESELSIFCTWNES"32"THENWNESCTWNESELSIFCTWNES"3C"THENWNESCTWNESELSEWNESCTWNESENDIFENDPROCESSENDJGT四、时钟模块功能介绍:将20MHZ的脉冲分频为2.6HZ,由此脉冲作为分秒的计数,秒计数为60进制,分计数为5进制。当分秒从00计数到20时,MICOUT1输出为1;当分秒从20计数到40时,MICOUT1输出为0。管脚说明:输入:CPIN:连接脉冲端口。 R、R1:复位,连接键盘模块KEY0,为1有

24、效。输出:MICOUT:输出信号,连接SWITCH。程序WHDL语言如下:LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLUSEIEEESTD_LOGIC_ARITHALLENTITYCLOCK1ISPORTCPINRR1INMICOUT1OUTENDCLOCK1ARCHITECTUREJGTOFCLOCK1ISTYPESTATESIS-3个状态:分秒:00 20 40SIGNALSSTATESSIGNALMICCDOWNTOSIGNALSCEDOWNTOSIGNALCTFPRANGETOSIGNALCPBEGINP

25、ROCESSCPIN-分频到2.6HZ, T=0.38S BEGINIFCPINCPINTHENIFCTFPTHENCTFPCPCPELSECTFPCTFPENDIFENDIFENDPROCESSPROCESSCPRBEGINIFRTHEN-复位到00MICOUT1S- 分秒 输出ELSIFCPTHEN-S0 00 1CASESIS-S1 20 0WHENMICOUT1-S2 40 1SWHENIFMICC"0010"THENMICOUT1SENDIFWHENIFMICC"0100"THENSENDIFENDCASEENDIFENDPROCESSPROC

26、ESSCPR1BEGINIFR1THEN-复位SCE"00000000"MICC"0000"ELSIFCPTHEN-若秒为*9则变*0,在此情况下: IFSCEDOWNTO"1001"THEN-若*=5则秒为00,在此情况下:SCEDOWNTO"0000"-若分为4则分0;否则分+ IFSCEDOWNTO"0101"THENSCE"00000000"IFMICC"0100"THENMICC"0000"ELSEMICCMICCENDIFE

27、LSESCEDOWNTOSCEDOWNTO-若*!=5则*+ ENDIFELSESCEDOWNTOSCEDOWNTO-若秒个位不为9,则个位+ ENDIFENDIFENDPROCESSENDJGTEW7.0:输入东西直走方向分秒信号,连接主控模块。 EWRYG2.0:输入东西直走方红黄绿灯状态信号,连接主控模 块。 SN7.0: 输入南北直走方向分秒信号,连接主控模块。 SNRYG2.0: 输入南北直走方红黄绿灯状态信号,连接主控模块。 SWNE7.0: 输入南拐西、北拐东方向分秒信号,连接主控模块。 SWNERYG2.0: 输入南拐西、北拐东红黄绿灯状态信号,连接主控模块。 WNES7.0:

28、输入西拐北、东拐南方向分秒信号,连接主控模块。 WNESRYG2.0: 输入西拐北、东拐南方红黄绿灯状态信号,连接主控模块。 BUSY:连接显示端口BUSY,判断数码管是否忙碌。输出:CLK:给显示端口脉冲。 REST:给显示端口复位信号。 DATA7.0:输出显示端口可识别的分秒计数。 ADDR3.0:给显示端口可识别的交通灯状态显示。 OUTLINE: STORBE:输出显示端口的数据输入信号,1有效。程序VHDL语言如下:LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_UNSIGNEDALLentityJTDLCDisportCPI

29、NRBUSYINEWSWNEWNESSNINDOWNTOEWRYGSWNERYGWNESRYGSNRYGINDOWNTOCLKRSTSTROBEOUTLINEOUTDATAOUTDOWNTOADDROUTDOWNTOendentityarchitectureJGTofJTDLCDisTYPESTATESISSIGNALSSTATESSIGNALLCDPTRANGETOSIGNALCPCTRANGETOSIGNALCPSIGNALASCEWASCSWNEASCWNESASCSNDOWNTObeginPROCESSCPINRBEGINCLKCPINIFRTHENCPCTELSIFCPINCPINT

30、HENIFCPCTTHENCPCTCPCPELSECPCTCPCTENDIFENDIFENDPROCESSPROCESSCPR-主进程:拟采用500us时钟,即在500us后完成状态转换,修改LCDPT指针BEGIN-S1,S2完成初始化固定显示的功能IFRTHENSLCDPTRSTELSIFCPCPTHEN-S0:初始状态,在R=1时,处于S0状态,LCDPT=0CASESISWHENSLCDPTRST-输出rst=1, 转S1 WHENRSTSTROBE-S1:输出RST=0;LCD数据输入无效IFBUSYTHEN-判断BUSY=0?LCDPTLCDPT-Y: LCDPT+1; IFLCD

31、PTTHEN-LCDPT到固定最后? ¿S-是:到最后就到动态扫描S3 ELSE-否: ->S2SENDIFENDIF-N; NULLWHENSSTROBE-S2:给出STROBE信号。转S1 -S3S4完成扫描显示功能 WHENSTROBE-S3:BUSY=0? :Y: LCDPT循环+1 ,转S4 IFBUSYTHENIFLCDPTTHENLCDPTELSELCDPTLCDPTENDIFSENDIFWHENSTROBES-S4:给出STROBE信号,输入数据,转S3 WHENOTHERSNULLENDCASEENDIFENDPROCESSPROCESSLCDPTBEGINC

32、ASELCDPTIS-选择输出进程(LCDPT)WHENNULL-LCDPT=0,NULL-LCDPT=112 显示SN SWNE EW WNES WHENDATA"01010011"ADDR"0001"OUTLINEWHENDATA"01001110"ADDR"0010"OUTLINE-NWHENDATA"01010011"ADDR"0100"OUTLINE-SWHENDATA"01010111"ADDR"0101"OUTLINE-W

33、WHENDATA"01001110"ADDR"0110"OUTLINE-NWHENDATA"01000101"ADDR"0111"OUTLINE-EWHENDATA"01000101"ADDR"1000"OUTLINE-EWHENDATA"01010111"ADDR"1001"OUTLINE-WWHENDATA"01010111"ADDR"1011"OUTLINE-WWHENDATA"0

34、1001110"ADDR"1100"OUTLINE-NWHENDATA"01000101"ADDR"1101"OUTLINE-EWHENDATA"01010011"ADDR"1110"OUTLINE-SWHENDATAASCSNADDR"0001"OUTLINE-SN:GYR 计数 WHENDATA"0011"SNDOWNTOADDR"0010"OUTLINEWHENDATA"0011"SNDOWNTOAD

35、DR"0011"OUTLINEWHENDATAASCSWNEADDR"0100"OUTLINE-SWNE:GYR 计数 WHENDATA"0011"SWNEDOWNTOADDR"0101"OUTLINEWHENDATA"0011"SWNEDOWNTOADDR"0110"OUTLINEWHENDATAASCEWADDR"1000"OUTLINE- EW: GYR 计数 WHENDATA"0011"EWDOWNTOADDR"100

36、1"OUTLINEWHENDATA"0011"EWDOWNTOADDR"1010"OUTLINEWHENDATAASCWNESADDR"1011"OUTLINE- WNES: GYR 计数 WHENDATA"0011"WNESDOWNTOADDR"1100"OUTLINEWHENDATA"0011"WNESDOWNTOADDR"1101"OUTLINEWHENOTHERSNULLENDCASEENDPROCESSPROCESSEWRYGBEGIN

37、CASEEWRYGISWHEN"100"ASCEW"01010010"WHEN"010"ASCEW"01011001"WHEN"001"ASCEW"01000111"WHENOTHERSNULLENDCASEENDPROCESSPROCESSSNRYG-SN: RYG 显示BEGINCASESNRYGISWHEN"100"ASCSN"01010010"WHEN"010"ASCSN"01011001"WHEN"001"ASCSN"01000111"WHENOTHERSNULLENDCASEENDPROCESSPROCESSSWNERYGBEGIN-SWNE:RYG 显示CASESWNERYGISWHEN"100"ASCSWNE"01010010"WHEN"010"ASCSWNE"01011001"WHEN"001"ASCSWNE"01000111"WHENOT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论