找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2344|回复: 5
打印 上一主题 下一主题
收起左侧

求大佬们给一个简单的80c51交通灯的代码(单行道的就行)

[复制链接]
跳转到指定楼层
楼主
ID:254795 发表于 2017-11-28 17:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
江湖救急,谢谢大佬们
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:162360 发表于 2017-11-28 19:04 | 只看该作者
/*
*Ä£Äa½»í¨μÆ*
*/
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;

void delay(uint16 x)
{
        uint16 i,j;
        for(i = x; i > 0; i --)
                for(j = 114; j > 0; j --);               
}

#define    RED_EW_ON()        P0 &= ~0x01                        //¶«Î÷·½ÏòÖ¸ê¾μÆ¿a
#define YELLOW_EW_ON()        P0 &= ~0x02
#define  GREEN_EW_ON()        P0 &= ~0x04

#define    RED_EW_OFF()        P0 |=  0x01                        //¶«Î÷·½ÏòÖ¸ê¾μÆ1Ø
#define YELLOW_EW_OFF()        P0 |=  0x02
#define  GREEN_EW_OFF()        P0 |=  0x04

#define  RED_SN_ON()        P0 &= ~0x08                        //Äϱ±·½ÏòÖ¸ê¾μÆ¿a  0000100 1111011
#define YELLOW_SN_ON()        P0 &= ~0x10
#define GREEN_SN_ON()        P0 &= ~0x20

#define  RED_SN_OFF()        P0 |=  0x08                        //Äϱ±·½ÏòÖ¸ê¾μÆ1Ø
#define YELLOW_SN_OFF()        P0 |=  0x10
#define GREEN_SN_OFF()        P0 |=  0x20               

#define YELLOW_EW_BLINK() P0 ^= 0x02                        //¶«Î÷·½Ïò»ÆμÆéá˸
#define YELLOW_SN_BLINK() P0 ^= 0x10                        //Äϱ±·½Ïò»ÆμÆéá˸

uint8 Flash_Count = 0, Operation_Type = 1;                        //éá˸′Îêy£¬2ù×÷ààDí±äá¿

void Traffic_Light()                                                                //½»í¨μÆÇD»»×ó3ìDò
{
        switch (Operation_Type)
        {
                case 1://¶«Î÷·½ÏòÂìμÆóëÄϱ±·½ÏòoìμÆáá
                                RED_EW_OFF(); YELLOW_EW_OFF(); GREEN_EW_ON();
                            RED_SN_ON(); YELLOW_SN_OFF(); GREEN_SN_OFF();
                                delay(2000);                                                                //Ñóê±
                                Operation_Type = 2;                                                        //ÏÂò»¸ö2ù×÷
                                break;

                case 2://¶«Î÷·½Ïò»ÆμÆ¿aê¼éá˸£¬ÂìμÆ1رÕ
                                delay(120);
                                YELLOW_EW_BLINK();
                                GREEN_EW_OFF();
                                //éá˸5′Î
                                if( ++Flash_Count != 10) return;
                                Flash_Count = 0;
                                Operation_Type = 3;                                                        //ÏÂò»¸ö2ù×÷
                                break;

                case 3://¶«Î÷·½ÏòoìμÆóëÄϱ±·½ÏòÂìμÆáá
                                RED_EW_ON();  YELLOW_EW_OFF(); GREEN_EW_OFF();
                                RED_SN_OFF(); YELLOW_SN_OFF(); GREEN_SN_ON();
                           //Äϱ±·½ÏòÂìμÆááèô¸éÃëoóÇD»»
                           delay(2000);
                           Operation_Type = 4;                                                        //ÏÂò»¸ö2ù×÷
                           break;

                case 4://Äϱ±·½ÏòoìμÆ¿aê¼éá˸
                           delay(120);
                           YELLOW_SN_BLINK();
                           GREEN_SN_OFF();
                           //éá˸5′Î
                           if( ++ Flash_Count != 10) return;
                           Flash_Count = 0;
                           Operation_Type = 1;                                                        //»Øμ½μúò»ÖÖ2ù×÷
        }                  
}

//Ö÷3ìDò
int main()
{
        while(1) Traffic_Light();
}
回复

使用道具 举报

板凳
ID:254795 发表于 2017-11-29 13:33 | 只看该作者
天才鱼yhx 发表于 2017-11-28 19:04
/*
*Ä£Äa½»í¨μÆ*
*/

有不用c语言的不,就像这种的 ,急用 ,谢谢大佬ORG 0000H
AJMP MAIN
ORG 0023H
AJMP A1
ORG 0030H
MAIN: MOV SCON,#40H
MOV TMOD,#20H
MOV TH1,#0EEH
MOV TL1,#0EEH
SETB TR1
MOV PCON,#00H

SETB ES
SETB EA
MOV A,#00001111B
d1:
MOV SBUF,A
MOV P1,A


LJMP $

A1:
PUSH ACC
PUSH PSW
CLR TI
MOV SBUF,A
LCALL DE

POP PSW
POP ACC
RETI

DE:
MOV R4,#0FFH
AA1:MOV R5,#0FFH
AA:NOP
NOP
DJNZ R5,AA
DJNZ R4,AA1
RET
END
回复

使用道具 举报

地板
ID:254795 发表于 2017-11-29 13:35 | 只看该作者
汇编语言的有嘛?
回复

使用道具 举报

5#
ID:107559 发表于 2017-11-29 22:30 | 只看该作者
你可以先把上述程序变异,然后通过OD反汇编就好。不过库貌似不通用。
回复

使用道具 举报

6#
ID:254795 发表于 2018-1-6 08:46 | 只看该作者
jblbin2008 发表于 2017-11-29 22:30
你可以先把上述程序变异,然后通过OD反汇编就好。不过库貌似不通用。

能帮我编一下嘛,真的急用 ,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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