找回密码
 加入后院

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 1754|回复: 50

跪求会单片机的仁兄帮忙啊

[复制链接]
发表于 2007-5-22 10:01 | 显示全部楼层 |阅读模式
如题,本人将要交毕业论文了。
但是关于单片机的汇编的一个简单的“红绿灯”程序,老师帮我修改了一些,但他故意留下一点瑕疵,他说剩下的要我自己修改。
唉,我选择单片机做毕业论文,就是没得选,被迫选的。
我都不是学单片机的,怎么做得出来啊?
所以,想问一下,哪位仁兄有空的话,能帮帮忙吗?

1、程序我已经有了,而且能够运行。
2、只需要修改的就是红绿灯的闪动问题(对于会单片机的朋友来说,应该很容易吧)。
3、电路图也有了。

如果哪位仁兄能够帮忙,就请加我QQ287738065吧,我会把源程序给你,不胜感激啊。
这两天就要交初稿了,请帮帮忙吧。

1、车道亮绿灯,人道亮红灯
(共延时30 s
2、车道闪黄灯,人道亮绿灯-----与事实不符,会有意外。
    (共延时5 s
3、车道亮红灯,人道亮绿灯
   (共延时30 s
4、车道亮绿灯,人道闪黄灯
     (共延时5 s)----跳会1。

所以,请大家帮忙修改一个与事实相符的程序,再次跪谢啊啊啊啊啊啊。


程序如下:
        S0 EQU 0C0H              ;0的字段码
        S1 EQU 0F9H              ;1的字段码
        S2 EQU 0A4H              ;2的字段码
        S3 EQU 0B0H              ;3的字段码
        S4 EQU 99H               ;4的字段码
        S5 EQU 92H               ;5的字段码
        S6 EQU 82H               ;6的字段码
        S7 EQU 0F8H              ;7的字段码
        S8 EQU 80H               ;8的字段码
        S9 EQU 90H               ;9的字段码      
        ORG    0000H
        LJMP   MAIN1
        ORG    0030H           ;主程序
MAIN1: MOV    P2,#0F3H        ;状态1(车道绿灯,人道红灯)
        MOV    P3,#0F3H
        LCALL  DELAY30         ;调用延时30秒子程序
MAIN2: MOV    P2,#0EEH        ;状态2(车道黄灯闪5s,人道绿灯,)     {此处与现实不符,容易出现交通事故。}。
        MOV    P3,#0EEH
        LCALL  DELAY1
        MOV    P2,#0FEH        ;黄灯灭0.5s
        MOV    P3,#0FEH
        LCALL  DELAY1
        MOV    P2,#0EEH        ;黄灯亮0.5s
        MOV    P3,#0EEH
        LCALL  DELAY1
        MOV    P2,#0FEH        ;黄灯灭0.5s
        MOV    P3,#0FEH
        LCALL  DELAY1
        MOV    P2,#0EEH        ;黄灯亮0.5s
        MOV    P3,#0EEH
        LCALL  DELAY1
        MOV    P2,#0FEH        ;黄灯灭0.5s
        MOV    P3,#0FEH
        LCALL  DELAY1
        MOV    P2,#0EEH        ;黄灯亮0.5s
        MOV    P3,#0EEH
        LCALL  DELAY1
        MOV    P2,#0FEH        ;黄灯灭0.5s
        MOV    P3,#0FEH
        LCALL  DELAY1
        MOV    P2,#0EEH        ;黄灯亮0.5s
        MOV    P3,#0EEH
        LCALL  DELAY1          ;状态2共延时5s
MAIN3: MOV    P2,#0DEH        ;状态3(车道红灯,人道绿灯)
        MOV    P3,#0DEH
        LCALL  DELAY30
MAIN4: MOV    P2,#0F5H        ;状态4(车道绿灯,人道黄灯闪5s)
        MOV    P3,#0F5H
        LCALL  DELAY1
        MOV    P2,#0F7H
        MOV    P3,#0F7H
        LCALL  DELAY1
        MOV    P2,#0F5H
        MOV    P3,#0F5H
        LCALL  DELAY1
        MOV    P2,#0F7H
        MOV    P3,#0F7H
        LCALL  DELAY1
        MOV    P2,#0F5H
        MOV    P3,#0F5H
        LCALL  DELAY1
        MOV    P2,#0F7H
        MOV    P3,#0F7H
        LCALL  DELAY1
        MOV    P2,#0F5H
        MOV    P3,#0F5H
        LCALL  DELAY1
        MOV    P2,#0F7H
        MOV    P3,#0F7H
        LCALL  DELAY1
        MOV    P2,#0F5H
        MOV    P3,#0F5H
        LCALL  DELAY1            ;状态4共延时5s
        AJMP   MAIN1             ;返回主程序

        ;ORG    0F00H            ;延时子程序
DELAY30:MOV    P0,#S0            ;延时30秒子程序,30秒倒计时
        MOV    P1,#S3            ;显示30
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S9            ;显示29
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH         
        MOV    P0,#S8            ;显示28
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S7            ;显示27
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH   
        MOV    P0,#S6            ;显示26
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH   
        MOV    P0,#S5            ;显示25
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S4            ;显示24
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH   
        MOV    P0,#S3            ;显示23
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S2            ;显示22
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S1            ;显示21
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S0            ;显示20
        MOV    P1,#S2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S9            ;显示19
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S8            ;显示18
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S7            ;显示17
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S6            ;显示16
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S5            ;显示15
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S4            ;显示14
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S3            ;显示13
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S2            ;显示12
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S1            ;显示11
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S0            ;显示10
        MOV    P1,#S1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S9            ;显示9
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S8            ;显示8
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S7            ;显示7         
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S6            ;显示6
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S5            ;显示5
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S4            ;显示4
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S3            ;显示3  
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S2            ;显示2
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        MOV    P0,#S1            ;显示1
        LCALL  DELAY
        MOV    P0,#0FFH
        MOV    P1,#0FFH
        RET

DELAY: LCALL DELAY1              ;延时1秒子程序
       LCALL DELAY1
       RET

DELAY1:MOV 22H,#05H             ;延时0.5秒子程序
   L3: MOV 23H,#64H             ;64H=100
   L2: MOV 24H,#0C8H            ;C8H=200
   L1: NOP                      ;1个机器周期
       NOP
       NOP
       DJNZ 24H,L1              ;2个机器周期
       DJNZ 23H,L2
       DJNZ 22H,L3
       RET                      ;2个机器周期
   
       END
特别鸣谢:32楼的littleboy帮忙下,搞了个用C语言编写的程序,运行成功。

          但可惜是C语言的,不知道老师放不放行。
         
          所以,还在期待着汇编的程序出来,谢谢了。
          期待ING啊。
          用的是ATMEL  AT89S52  24PI.0423的仪器,调试用的软件是KEIL的UV2.exe。
         
          如果哪位仁兄有汇编的程序,麻烦联系本人QQ或者发到邮箱longhaohong@163.com


[ 本帖最后由 左手戒烟 于 2007-5-22 14:39 编辑 ]
发表于 2007-5-22 10:04 | 显示全部楼层
完全不会:time:
回复

使用道具 举报

 楼主| 发表于 2007-5-22 10:09 | 显示全部楼层
真想碰到一位热心的校友,能够帮个忙就好了。

程序我能看懂,但是我不会修改啊。
烦啊啊

[ 本帖最后由 左手戒烟 于 2007-5-22 11:03 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-5-22 10:25 | 显示全部楼层
顶上去先。
出去看书了,迟点要工作,时间到现在才发觉少啊。
回复

使用道具 举报

发表于 2007-5-22 10:36 | 显示全部楼层
完全5懂~~~
回复

使用道具 举报

发表于 2007-5-22 10:40 | 显示全部楼层
这不是程序的问题,是交通灯规则的问题,lz去查下交通法规好了……
回复

使用道具 举报

发表于 2007-5-22 10:57 | 显示全部楼层
这里不是很多信工的吗,所以说平时在学校认识多D自己专业的师兄师姐

是有好处滴,到毕业的时候你就知道他们对你有多大的帮助了
回复

使用道具 举报

发表于 2007-5-22 10:58 | 显示全部楼层
LS教坏人
回复

使用道具 举报

 楼主| 发表于 2007-5-22 10:59 | 显示全部楼层
原帖由 Leon001 于 2007-5-22 10:40 发表
这不是程序的问题,是交通灯规则的问题,lz去查下交通法规好了……


对,是交通规则有问题。
但是老师也太鸟了,他就是按照这个错误的交通规则编的程序。--真的服了他。
然后他叫我自己按照正确的交通规则编程序,我哪里会啊?根本就没有学过单片机。
所以想找找哪位仁兄能够帮个忙。
回复

使用道具 举报

发表于 2007-5-22 11:02 | 显示全部楼层
原帖由 gdut_stu 于 2007-5-22 10:58 发表
LS教坏人




你是说你教坏人吗,到毕业的时候你就很多问题想问师兄师姐咯,
我知道你已经毕业了,你不用说话
回复

使用道具 举报

发表于 2007-5-22 11:03 | 显示全部楼层
网上搜索,应该有,我记得我搜过
回复

使用道具 举报

发表于 2007-5-22 11:03 | 显示全部楼层
教坏人还狡辩
回复

使用道具 举报

发表于 2007-5-22 11:06 | 显示全部楼层
原帖由 左手戒烟 于 2007-5-22 10:59 发表


对,是交通规则有问题。
但是老师也太鸟了,他就是按照这个错误的交通规则编的程序。--真的服了他。
然后他叫我自己按照正确的交通规则编程序,我哪里会啊?根本就没有学过单片机。
所以想找找哪位仁兄 ...




我看现在是你有问题,那些交通灯的程序也是要编的,现在看的不是规则的问题,
是看你有没有能力问题,其实这些看一下书,或者叫老师指导一下就可以了,发
现信工的毕业设计很多人都不是做回自己所学的,但那些人还是熬过去了,LZ自
己应该想想办法了
回复

使用道具 举报

发表于 2007-5-22 11:07 | 显示全部楼层
楼主,你不急的话两天后帮你搞定...其实你用循环程序就不会那么长了,按你的规则来说真的很简单,真正的交通灯比这个要复杂些...
回复

使用道具 举报

发表于 2007-5-22 11:09 | 显示全部楼层
原帖由 littleboy 于 2007-5-22 11:07 发表
楼主,你不急的话两天后帮你搞定...其实你用循环程序就不会那么长了,按你的规则来说真的很简单,真正的交通灯比这个要复杂些...





LZ说这两天要交初稿
回复

使用道具 举报

发表于 2007-5-22 11:11 | 显示全部楼层
PLC的可以不?刚做完这个实验
单片机有已经忘得差不多了
回复

使用道具 举报

 楼主| 发表于 2007-5-22 11:12 | 显示全部楼层
回13楼:
对,我是有点问题,但是我这个将来做数据库或者JAVA的,现在为了毕业,半个月前才开始看《单片机》,我只能看懂,但不能编啊。
我选单片机,是因为没有课题选了,才被迫选的。
一个做软件的,一个月内做单片机,太难了吧。
我只能答辩,但是不能做啊。

回14楼:
好的,谢谢,六月初才开始答辩,过2天初稿,最好这两天兄弟能够帮忙做出来吧。
非常感谢。
等你的好消息。

[ 本帖最后由 左手戒烟 于 2007-5-22 11:18 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2007-5-22 11:14 | 显示全部楼层
原帖由 sufei 于 2007-5-22 11:11 发表
PLC的可以不?刚做完这个实验  
单片机有已经忘得差不多了


不行啊。
是MCS51,用的是ATMEL  AT89S52  24PI.0423的机器。
回复

使用道具 举报

发表于 2007-5-22 11:17 | 显示全部楼层
楼主,我说一下我的编程思想吧...
汇编:长时间定时最好启用定时器,6M晶振最长延时130ms左右,用几个RAM单元作为计数器,计算灯的亮时间,几种灯就用几个计数单元,定时器循环扫描,直至30S后切换状态,再计数5S后切换状态...如此循环...
c语言:跟汇编类似,c不需要对RAM操作,直接用变量计数,也是用定时器计数方式跟汇编类似,就不作详述了...
这样比用大循环可读性更好...
回复

使用道具 举报

发表于 2007-5-22 11:18 | 显示全部楼层
原帖由 左手戒烟 于 2007-5-22 11:12 发表
回13楼:
对,我是有点问题,但是我这个将来做数据库或者JAVA的,现在为了毕业,半个月前才开始看《单片机》,我只能看懂,但不能编啊。
我选单片机,是因为没有课题选了,才被迫选的。
一个做软件的,一个月 ...




8好意思,看来LZ误会我的语气重了 我只是说出我的自己的感受而已,
不要见怪,因为我认识的都是上届的信工,我也看到他们当时毕业是怎么熬过
来的,做的毕业设计都不是自己专业的,但他们很认真的去图书馆借书,自己
回宿舍研究,经常一做就是通宵啊,不会的就找老师帮一下,都是靠自己一步
一步走过来的,我只是想明确不是老师的问题,因为你们学院的规定是这样,
谁也不能怨谁 希望LZ努力,加油吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入后院

本版积分规则

QQ|Archiver|手机版|小黑屋|广告业务Q|工大后院 ( 粤ICP备10013660号 )

GMT+8, 2025-11-30 05:34

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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