DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 141|回复: 0
打印 上一主题 下一主题

基于8051单片机的双机通信设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:37:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、  系统功能要求:1. 设计任务在一十字路口设置交通灯,并用单片机对其进行合理的控制。时间方向 控制要求白天 东西 绿灯 黄灯 红灯 南北 红灯 绿灯 黄灯 晚上 东西 黄灯 南北 红灯2.总体设计方案现在流行的一种设计为两主干线相交的十字路。本设计采用一主干道(南北方向),一从干道(东西方向)的路口,即主干道的通行时间为从干道的2倍。在正常情况下,两干道的交通灯按图1进行转换,并以倒计数的方式将剩余时间显示在每个干道对应的两位LED上;另发挥部分为当出现紧急情况时,路口的交通灯全为红灯,紧急情况解除时,恢复到原来的状态。二、         总体设计方案提示:1.假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态。2.东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态。3.南北绿灯通车,东西红灯。过一段时间转状态。4.南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。三.硬件设计电路原理图如下:


  四、软件设计1、   流程图


2、程序设计        ORG 0000H        MOV P0,#00H                 ;确保P0为低电位        lJMP MAIN0        ORG 0030HMAIN0: MOV 30H,#08H        MOV R6,#00H        MOV R7,#00H        MOV DPTR,#TABLE             ;取数码管的译码        MOV TMOD,#01H               ;设计定时方式及时间        MOV TL0,#0CDH        MOV TH0,#0BH        SETB TR0        MOV IE,#00H MAIN: MOV P1,#0F3H                ;南北绿灯,东西红灯        MOV R6,#1EH                 ;红灯30s倒计时        MOV R7,#19H                 ;绿灯25s倒计时  MAIN1:CALL DELAY                  ;1S延时子程序        JB P0.1,REL1                ;判断是否有东西方向按钮按下        CJNE R7,#00H,MAIN1          ;判断绿灯25s是否倒计完        MOV P1,#0F5H                ;南北黄灯,东西红灯  MAIN2:CALL DELAY        MOV R7,#00H                 ;红灯继续倒计时,黄灯闪烁,保持0s        CPL P1.1                    ;黄灯闪烁        CJNE R6,#00H,MAIN2          ;判断红灯是否倒计时完        MOV P1,#0DEH                ;南北红灯,东西绿灯        MOV R7,#1EH        MOV R6,#19H  MAIN3:CALL DELAY        JB P0.0,REL2        CJNE R6,#00H,MAIN3        MOV P1,#0EEH  MAIN4:CALL DELAY        MOV R6,#00H        CPL P1.4        CJNE R7,#00H,MAIN4        JMP MAIN   REL1:MOV P1,#0F5H                ;东西方向按钮按下,南北方向强制由绿灯变成黄灯警告         MOV R6,#05H        MOV R7,#00H                         JMP MAIN2                      REL2:MOV P1,#0EEH                ;南北方向按钮按下,东西方向强制由绿灯变成黄灯警告        MOV R7,#05H        MOV R6,#00H        JMP MAIN4  ;1s延时子程序  DELAY:MOV A,R6                    ;进行南北方向倒计时时间的十进制调整        MOV B,#0AH        DIV AB        MOVC A,@A+DPTR              ;找寻相应的数码管代码        MOV P2,#01H        MOV P3,A                    ;输出个位        MOV R4,#4                   ;降低动态显示频率  LOOP2:MOV R3,#125  LOOP3JNZ R3,LOOP3        DJNZ R4,LOOP2        MOV A,B        MOVC A,@A+DPTR        MOV P2,#02H                 ;输出十位        MOV P3,A        MOV R4,#4  LOOP4:MOV R3,#125  LOOP5JNZ R3,LOOP5        DJNZ R4,LOOP4        MOV A,R7                    ;进行东西方向倒计时时间的十进制调整        MOV B,#0AH        DIV AB        MOVC A,@A+DPTR        MOV P2,#04H        MOV P3,A        MOV R4,#4  LOOP6:MOV R3,#125  LOOP7JNZ R3,LOOP7        DJNZ R4,LOOP6        MOV A,B        MOVC A,@A+DPTR        MOV P2,#08H        MOV P3,A        MOV R4,#4  LOOP8:MOV R3,#125  LOOP9JNZ R3,LOOP9        DJNZ R4,LOOP8        JBC TF0,LOOP                ;判断是否计满125ms        AJMP DELAY  LOOP:MOV TL0,#0CDH               ;计满125ms重新给定时器赋值        MOV TH0,#0BH        MOV A,30H        DEC A        MOV 30H,A        JNZ DELAY                   ;判断是否计满8次125ms,即1s        DEC R6                      ;计满1s,东西倒计时减1,南北倒计时减1        DEC R7        MOV 30H,#08H                ;重新1s次数,重新计时        RET  TABLEB 0C0H,0F9H,0A4H,0B0H,99H  ;相应数值的数码管代码        DB 92H,82H,0F8H,80H,90H             END
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-12-26 20:33 , 耗时 0.094173 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

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