- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04带串口控制的交通灯
4 带超驰控制的红绿灯
4.1 实现的功能
上一个实验完成了简单的十字路口的红绿灯,虽然简单,但是已经能够实现基本功能了。当然,在条件允许的情况下,人们总是期望实现更多的功能。(事实上,当你在公司里从事嵌入式开发的时候,你的无知而且可憎的上司,也总是让你在原本就已经十分复杂的系统里塞入一个又一个有用或者无用的功能。我们最好现在就开始面对这一点。)目前交通灯具有的一项重要的功能是“超驰控制”功能,即交通警察可以根据实际的交通情况,人为地改变红绿灯的状态,以便对某个方向放行或同时禁止双向通行。
这时交通警察使用一无线遥控器,可以人为改变红绿灯,我们用串行通信接口实现这一功能。用一台计算机模拟遥控器,使用串口调试软件,通过发送不同数据控制红绿灯的工作方式。有4种工作方式:0-正常工作方式,南北向东西向依次通行;1-南北向通行,东西向关闭;2-东西向通行,南北向关闭;3-东西向南北向均关闭。通过RS232口发送十六进制数:00h或01h或02h或03h,来控制工作方式。
4.2 电路设计
完成这个功能需要一台PC、一个ISP下载器、最小系统板、十字路口LED板、串口通信板。连接步骤是:(1)将十字路口LED板的5V接线端子同最小系统板的5V接线端子用杜邦线连接;(2)将十字路口LED板红、黄、绿12只LED按照同一条马路对应同样的灯的原则分为两组,共6路控制信号;(3)将6路控制信号分别接至最小系统板的P0.0-P0.5口上;(4)将串口通信板GND和5V分别同最小系统板的GND和5V相连接;(5)将串口通信板TXD和RXD分别同最小系统板的TXD和RXD相连接;(6)用串口线将串口板同计算机串口相连接;(7)将ISP下载器同最小系统板相连接;(8)将ISP下载器的USB端口同PC的USB口相连接。
3.3 软件设计
在WAVE6000环境下编写程序,然后将程序代码编译成机器代码文件,然后利用ISP软件将代码文件下载到单片机中。
上电后,系统默认进入工作方式0,即正常的红绿等;当用“串口调试助手”发送0x01时,系统进入工作方式1,并且“串口调试助手”显示刚才发送的数据。依次可实验所有状态。
模块1,文件名“mydefine.h”,文件如下:
;----------------------------------------
os_ms_b equ 7fh ;系统10ms计数器
os_dida_b equ 7eh ;系统dida计数器
os_dida_o_b equ 7dh ;系统dida跟随计数器
;----------------------------------------
sec_b equ 78h ;秒
min_b equ 77h ;分
hour_b equ 76h ;时
week_b equ 75h ;周
;----------------------------------------
lamp_sp_b equ 6fh ;红绿灯指针
lamp_bz_b equ 6eh ;红绿灯工作方式标志
;----------------------------------------
主文件,文件名“main.asm”,文件如下:
;------------------------------
include mydefine.h
;------------------------------
org 0000h
jmp main_start
org 000bh
jmp t0_zdzcx
org 0023h
jmp uart_zdzcx
;------------------------------
org 0040h
main_start:
mov SP,#02fh
call csh_zcx
main_loop:
mov a,os_dida_b
xrl
文档评论(0)