历史上的今天
返回首页

历史上的今天

今天是:2024年10月23日(星期三)

正在发生

2019年10月23日 | 51单片机交通灯全套设计资料分享

2019-10-23 来源:51hei

1、用单片机stc89C52 设计一个交通灯系统,并用数码管显示时间,LED指示通行。
2、用protel 99se设计电路图,pcb图等
3、数码管用三极管驱动。
4、按键功能:黄灯常亮(深夜模式)、禁行、东西通行、南北通行、时间加、时间减、切换、确定。
 

仿真图:
 
1、单片机是通用的无论51还是52、无论stc还是at都一样,引脚功能都一样,原理图和程序也是一样的。
2、原理图中的. sch等格式是要用protel99se打开的,没有软件的不要紧,我已帮您转换成word格式和pdf格式的了。
3、程序中的.c文件可以用记事本打开,就是程序了。其他的是写程序是自动生成的,没什么用的。
4、可以按照正面布局,尽量不要按照实物的背面焊接,很容易看错,要按照原理图焊接,不要按照仿真图焊接,因为仿真只是模拟一个现象。
5、关于资料好评后发送~~好评后记得向客服要哦~~~,我们的论文是针对这个设计写的,不包修改,不包查重,望知悉。

原理图 打开方式:
DXP格式用            Altium designer Summer 软件打开 
protel99格式用       protel99SE 软件打开 
PDF格式用            PDF 软件打开 
Word格式用           Word 或用WPS 软件打开 

4种格式的原理图都内容是一样的  只是打开方式不同

请注意,原理图上有些接线的地方是用网络标号连接的,意思就是名字相同的两个点就是连接在一起的相当导线的作用,图上所有的VCC要接在一起,所有的GND要接在一起。

请看原理图焊接,不要看仿真图焊接。

wrod格式里面的原理图是复制出来的,有一点点变行变形,麻烦大家注意一下,尽量看其他三种格式的图焊接,

如果论文里面的原理图和原理图文件夹内的图不一样的话,请大家以原理图文件夹内的为准,原理图文件夹的图是和实物配套的,可以自己截图或复制,然后粘贴到论文里面去。
单片机源程序如下:


#include                  //调用单片机头文件

#define uchar unsigned char   //宏定义"uchar"代替"unsigned char"。

#define uint  unsigned int          //宏定义"uint"用来定义无符号整型数。



//数码管段选定义 0     1    2    3           4           5        6         7          8           9        

uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

//                                           A        B         C          D           E   F        不显示

                                         0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};         //断码        


uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};        

uchar smg_i = 4;    //显示数码管的个位数


//数码管位选定义

sbit smg_we1 = P2^0;            //数码管位选定义

sbit smg_we2 = P2^1;

sbit smg_we3 = P3^6;

sbit smg_we4 = P3^7;



char dx_s = 0;        //东西  南北 倒计时变量

sbit dx_red    = P2^4;            //东西红灯

sbit dx_green  = P2^3;                //东西绿灯

sbit dx_yellow = P2^2;                //东西黄灯


sbit nb_red    = P2^7;                //南北红灯

sbit nb_green  = P2^6;                //南北绿灯

sbit nb_yellow = P2^5;                //南北黄灯        


uchar flag_jtd_mode;  //交通灯的模式 根据时间 

bit flag_1s = 0;

bit flag_500ms;

bit flag_dx_nb;                 //东西南北模式

uchar flag_5m_value;

uchar i;

uchar flag_alarm;        //模式

uchar dx_time = 30,nb_time = 20;   //东西、南北的时间

uchar flag_jdgz ;     //交通管制



/***********************数码位选函数*****************************/

void smg_we_switch(uchar i)

{

        switch(i)

        {

                case 0: smg_we1 = 0;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 1; break;

                case 1: smg_we1 = 1;  smg_we2 = 0; smg_we3 = 1;  smg_we4 = 1; break;

                case 2: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 0;  smg_we4 = 1; break;

                case 3: smg_we1 = 1;  smg_we2 = 1; smg_we3 = 1;  smg_we4 = 0; break;

        }        

}



/********************************************************************

* 名称 : delay_1ms()

* 功能 : 延时1ms函数

* 输入 : q

* 输出 : 无

***********************************************************************/

void delay_1ms(uint q)

{

        uint i,j;

        for(i=0;i                for(j=0;j<110;j++);

}



/********************************************************************

* 名称 : display()

* 功能 : 数码管显示

* 输入 : 无

* 输出 : 无

***********************************************************************/

void display()

{

        uchar i;

        for(i=0;i        {                

                P0 = 0xff;                  //消隐 

                smg_we_switch(i);            //位选

                P0 = dis_smg[i];          //段选          

                delay_1ms(3);

        }

}


/*********************定时器0、定时器1初始化******************/

void time0_init()          

{

        EA  = 1;                   //开总中断

        TMOD = 0X11;          //定时器0、定时器1工作方式1

        ET0 = 1;                  //开定时器0中断 

        TR0 = 1;                  //允许定时器0定时

//        ET1 = 1;                  //开定时器1中断 

//        TR1 = 1;                  //允许定时器1定时        

}


/*********************交通灯处理函数*********************************/

void jiaotongdeng_dis()

{

        if(flag_1s == 1)

        {

                flag_1s = 0;

                if(dx_s == 0)

                {

                        if(flag_dx_nb == 1)

                                dx_s = nb_time;          //南北时间

                        else 

                                dx_s = dx_time;          //东西时间

                        flag_dx_nb = ~flag_dx_nb;

                }

                dx_s --;

        }

        dis_smg[0] = smg_du[dx_s % 10] ;

        dis_smg[1] = smg_du[dx_s / 10] ;

        dis_smg[2] = smg_du[dx_s % 10] ;

        dis_smg[3] = smg_du[dx_s / 10] ;


/***********************南北时间*********************************/

                if(flag_dx_nb == 0)  

                {

                        if(dx_s > 5)

                        {

                                dx_red    = 1;  //灭 

                                dx_green  =        0;        //亮

                                dx_yellow = 1;        //灭

                                nb_red    = 0;  //亮 

                                nb_green  =        1;        //灭

                                nb_yellow = 1;        //灭

                                flag_5m_value = 0;        

                        }else if(dx_s <= 5)                 //当小于5秒时  黄灯要闪了

                        {

                                dx_red    = 1;    //灭

                                dx_green  =        1;          //灭

                                nb_red    = 0;    //亮

推荐阅读

史海拾趣

德丰(DEFOND)公司的发展小趣事

德丰电创科技股份有限公司(简称“德丰电创”)自1984年成立以来,从一个东莞的洪梅电器厂逐步发展为一家专业从事开关制造到电子电路模块、机电一体化集成模组等多元化产品的大型港资实业公司。公司凭借多年的产品研发和高端制造经验,以及完善的供应链管理体系,成功在家用电器、电动工具、汽车等多个市场领域占据一席之地。德丰电创的发展历程充满了不断的技术创新和市场扩张,其产品质量和服务得到了全球客户的广泛认可。

GarrettCom公司的发展小趣事

研发:GarrettCom(现为Belden的一部分)始终将技术创新作为企业发展的核心驱动力。公司不断投入研发资源,致力于开发更加先进、可靠的工业网络通信产品。通过持续的技术创新,GarrettCom不仅推动了工业通信技术的进步,还为客户提供了更加高效、便捷的通信解决方案。

应用:这些创新产品被广泛应用于工业自动化、交通监控、能源管理等多个领域,为客户创造了巨大的价值。同时,GarrettCom还积极参与国际标准的制定和推广工作,为行业的标准化发展做出了积极贡献。

ACT [Advanced Crystal Technology]公司的发展小趣事

并购:2011年,全球领先的信号传输解决方案提供商Belden成功收购了GarrettCom。这一并购标志着GarrettCom正式成为Belden大家庭的一员,也为其带来了更广阔的发展空间和资源支持。

融合:加入Belden后,GarrettCom继续发挥其在工业通信领域的专长,并与Belden的其他业务线形成协同效应。双方共同为客户提供更全面的信号传输和通信解决方案,进一步提升了市场竞争力。

安普康(AMPCOM)公司的发展小趣事

安普康的成功离不开其独特的企业文化和优秀的团队。公司注重员工的培训和发展,为员工提供广阔的职业发展空间和良好的福利待遇。同时,公司还积极营造积极向上、团结协作的工作氛围,使得员工能够充分发挥自己的才能和潜力。这种企业文化不仅吸引了大量优秀人才加入安普康,也使得公司在面对市场挑战时能够保持强大的凝聚力和战斗力。


请注意,这些故事是基于已知信息创作的,并不代表安普康公司的真实发展历程。如需了解安普康公司的真实故事,建议查阅公司官方发布的资料或相关新闻报道。

Amerace Electronic Components公司的发展小趣事

随着全球环保意识的提高,Amerace Electronic Components公司积极响应绿色环保号召,将环保理念融入生产和经营中。公司采用环保材料和工艺,减少生产过程中的污染排放。同时,Amerace还致力于推动电子元件的循环利用和回收,为环保事业贡献力量。这种环保理念的践行不仅提升了公司的社会形象,也为公司的可持续发展奠定了基础。

Brilliance公司的发展小趣事

为了进一步提升竞争力,Brilliance公司开始着手进行产业链整合。公司与上下游企业建立了紧密的合作关系,共同打造了一条完整的电子产业链。通过协同发展和资源共享,Brilliance不仅降低了生产成本,还提高了产品质量和生产效率。这种产业链整合的模式也为公司未来的发展奠定了坚实的基础。

问答坊 | AI 解惑

MMU地址映射表问题!

目前在做一个SRAM驱动,写成的是流驱动,驱动写好了! 但是在做MMU地址映射表时出问题了!具体如下: 原来的g_oalAddressTable[DATA] 表为 g_oalAddressTable         DCD     0x80000000, ...…

查看全部问答>

方法和技术——《使用2790型数字源表开关系统测试双安全气囊充气机模块》

机械臂接口 – 数字I/O 2790内置的数字接口能够直接控制器件机械臂。数字接口包含五路TTL兼容数字输出和两路输入,以及外部供电的继电器和地线连接。五路输出提供测试通过/失败通知。可以定义两个上限和两个下限用于任何数字万用表测试。每个测 ...…

查看全部问答>

有谁用过CC430及CC1111的吗?

本帖最后由 paulhyde 于 2014-9-15 03:39 编辑 有谁用过CC430及CC1111的吗?有没有相关的资料,最好是中文的  …

查看全部问答>

求教FPGA程序JTAG及AS口加载问题

今天调新板子,程序从JTAG和AS口都下不进去,且提示不同。 加载JTAG,程序烧到48%,出ERROR:  CFG_DONE pin failed to go high. 用万用表测,CFG_DONE 角经电阻10K接到3.3V,且 CFG_nCE 已接地。 换成AS口,在选择目标POF文件时就出错 ...…

查看全部问答>

有关zigbee板块的话题发表的一个小建议

最近在zigbee板块发表帖子时发现选项只有问题讨论,已解决等,是否可以在增加一个经验分享呢?因为有时发帖子时搞个问题讨论或者已解决有点不伦不类,望采纳!…

查看全部问答>

关于单片机时钟频率的问题

想请教大家一个问题,我用的是atmega128最小系统板,每次我编好一个程序,然后用Programmers Notepad [WinAVR] 调试,用makefile选择F_CPU频率,有时候选择8M,有时候选择1M,程序调试好后用AVR Studio 4 下载到单片机都可以运行。我想问一下,用ma ...…

查看全部问答>

我想用单片机制作一个比较大音乐显示屏,

我想用单片机制作一个比较大音乐显示屏,但是我只是初学者。求大神给点电路图和材料列表。谢谢…

查看全部问答>

出售二手书,价格好商量,联系qq972758172

出售二手书,价格好商量,联系qq972758172 …

查看全部问答>