找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3919|回复: 0
收起左侧

交通灯单片机制作资料下载

[复制链接]
ID:166873 发表于 2017-5-11 20:26 | 显示全部楼层 |阅读模式
交通灯单片机制作,分享给大家
0.png
0.png

说明:此电路图为交通焊接套件原理表示所用,元件内容大小请根据元件清单进行焊接。在焊接完成后请仔细观察焊接电路板是否有虚焊、假焊、短路等情况。有的话必须先进行修正再进行通电实验。
DC
为电池盒电源接入处,在焊接电池盒连线时,请注意电池极性。并良好连接。


  
常见问题
  
  
解决方法
  
  1:接通电源后,无任何反应
  
  1:查看电源是否正确连接、电源是压是否过高或过低、电源极性是否正确、主芯片是否正确烧录程序、电源开关是否打开等
  
  2:接通电源后芯片发热快
  
  2:查看电源极性是否正确、电源电压是否过高、芯片引脚安装是否正确、芯片端口处是否有短路现象等
  
  3:无法正确下载程序
  
  3:下载程序时需要先关闭电源,等提示时再打开电源、ISP程序端口及芯片选择是否正确、USB转COM线驱动是否正确安装端口是否正确设置、USB转COM线传输数据是否完好,质量是否可靠、电压过低等
  



  
交通灯焊接套件元件清单
  
  位号
  
  元件
  
  备注
  
  位号
  
  元件
  
  备注
  
  R1
  
  560
  
  电阻
  
  R2
  
  560
  
  电阻
  
  R3
  
  560
  
  电阻
  
  R4
  
  560
  
  电阻
  
  R5
  
  560
  
  电阻
  
  R6
  
  560
  
  电阻
  
  R7
  
  560
  
  电阻
  
  R8
  
  560
  
  电阻
  
  R9
  
  560
  
  电阻
  
  R10
  
  560
  
  电阻
  
  R11
  
  560
  
  电阻
  
  R12
  
  560
  
  电阻
  
  R13
  
  560
  
  电阻
  
  R14
  
  560
  
  电阻
  
  R15
  
  560
  
  电阻
  
  R16
  
  560
  
  电阻
  
  R17
  
  560
  
  电阻
  
  R18
  
  560
  
  电阻
  
  R19
  
  560
  
  电阻
  
  R20
  
  560
  
  电阻
  
  R21
  
  10K
  
  电阻
  
  R10K
  
  560
  
  电阻
  
  R23
  
  10
  
  电阻
  
  R24
  
  560
  
  电阻
  
  R25
  
  560
  
  电阻
  
  R26
  
  10K
  
  电阻
  
  R27
  
  10K
  
  电阻
  
  R28
  
  10K
  
  电阻
  
  R29
  
  10K
  
  电阻
  
  R30
  
  10K
  
  电阻
  
  RX1
  
  10K排阻
  
  注意焊接方向,第一脚有位处有点。103字样对着RX1字体
  
  D1、D4、D7、D10
  
  红色发光二极管
  
  注意极性
  
  D2、D5、D8、D11
  
  黄色发光二极管
  
  注意极性
  
  D3、D6、D9、D12
  
  绿色发光二极管
  
  注意极性
  
  S1
  
  直拔开关
  
  注意电路板距
  
  S2
  
  四脚开关
  
  注意方向
  
  S3
  
  四脚开关
  
  注意方向
  
  S4
  
  四脚开关
  
  注意方向
  
  S5
  
  四脚开关
  
  注意方向
  
  S6
  
  四脚开关
  
  注意方向
  
  S7
  
  四脚开关
  
  注意方向
  
  RST
  
  四脚开关
  
  注意方向
  
  C1
  
  104P
  
  瓷片电容
  
  C2
  
  104P
  
  瓷片电容
  
  C3
  
  104P
  
  瓷片电容
  
  C4
  
  104P
  
  瓷片电容
  
  C5
  
  104P
  
  瓷片电容
  
  C6
  
  30P
  
  瓷片电容
  
  C7
  
  30P
  
  瓷片电容
  
  C8
  
  10uF
  
  电解电容
  
  SB1
  
  5V蜂鸣器
  
  注意极性
  
  IR1
  
  红外接收头
  
  注意极性
  
  IC1
  
  Max232
  
  注意方向
  
  IC2
  
  STC89C52
  
  注意方向
  
  V1
  
  S8550
  
  三极管
  
  V2
  
  S8550
  
  三极管
  
  V3
  
  S8550
  
  三极管
  
  COM1
  
  COM口座
  
  端口座
  
  DV1
  
  电源接头
  
  电源接头
  
  DC
  
  电源即插件
  
  注意方向
  
  LCM
  
  2位共阳0.4
  
  注意方向
  
  X1
  
  即插件
  
  外扩展
  
  Z1
  
  11.0592
  
  晶振
  
   
  
   
  
   
  
    说明: 在焊接时,请根据电路“备注”信息,仔细焊接。需要注意电容、按键、芯片、即插件、开关、红外接收头、三极管、数码管、二极管都有极性且不能焊反。
  焊接完成后,请先仔细检测电路板,看是否有虚焊、假焊、短路等现象,焊接完好的情况再通过试机。出现过热、冒烟等情况后应立即关闭电源并检修。
  

单片机源程序如下:
  1. //=======================================================================================//
  2. //                      交通灯演示程序----TXJTD V10专用                                  //
  3. //  程序说明:此程序以南北为主通道,东西为次通道。在程序运行时,主通道通行45秒,次通道通行//
  4. // 30秒,黄灯亮为3秒。                                                                   //
  5. //  程序运行效果: 打开电源后,可以主次通道的红绿灯变化及数码管倒计时显示。               //
  6. //  声明: 此电路板所使用的电源电压为5V,请使用相匹配的电源                               //
  7. //=======================================================================================//
  8. //  作者: 郭军                     开发商:上海腾芯实业有限公司                           //
  9. //  日期: 20               邮箱:guoguoExkj@126.com                               //
  10. //=======================================================================================//

  11. #include <reg52.h>                                       //包含头文件

  12. void LCD_Delay();                                        //声明LCD延时显示函数
  13. void LCD_ShowData(unsigned char ShowData);               //声明数码管显示函数
  14. void GL_Delay(unsigned char TimeCount);                  //声明倒计时函数

  15. sbit LCDSec1=P3^5;                                       //定义数码管位1驱动引脚
  16. sbit LCDSec2=P3^4;                                       //定义数码管位2驱动引脚

  17. #define LCDSec1_Open()        LCDSec1=0                  //宏定义数码管位1开
  18. #define LCDSec1_Close()       LCDSec1=1                  //宏定义数码管位1关

  19. #define LCDSec2_Open()        LCDSec2=0                  //宏定义数码管位2开
  20. #define LCDSec2_Close()       LCDSec2=1                  //宏定义数码管位2关

  21. #define LCDPort  P0                                      //定义数码管显示端口
  22. code unsigned char LCDData[]={0x18,0x7E,0x94,0x54,0x72,0x51,0x13,0x7C,0x10,0x70};   
  23.                                                          //定义数码管显示字符0,1,2,3...9

  24. sbit Beep=P3^6;                                          //定义蜂鸣器引脚
  25. #define  Beep_Speek()  Beep=0                            //蜂鸣器开启
  26. #define  Beep_Close()  Beep=1                            //蜂鸣器关闭

  27. sbit Led1=P2^5;                                          //定义序号1LED灯
  28. sbit Led2=P2^0;                                          //定义序号2LED灯
  29. sbit Led3=P2^1;                                          //定义序号3LED灯

  30. sbit Led4=P2^2;                                          //定义序号4LED灯
  31. sbit Led5=P2^3;                                          //定义序号5LED灯
  32. sbit Led6=P2^4;                                          //定义序号6LED灯

  33. sbit Led7=P2^7;                                          //定义序号7LED灯
  34. sbit Led8=P2^6;                                          //定义序号8LED灯
  35. sbit Led9=P1^7;                                          //定义序号9LED灯

  36. sbit Led10=P1^6;                                         //定义序号10LED灯
  37. sbit Led11=P1^5;                                         //定义序号11LED灯
  38. sbit Led12=P1^4;                                         //定义序号12LED灯

  39. #define LeftRight_Red()     Led1=0;Led2=1;Led3=1;Led7=0;Led8=1;Led9=1
  40.                                                          //左右亮红灯
  41. #define LeftRight_Yellow()  Led1=1;Led2=0;Led3=1;Led7=1;Led8=0;Led9=1
  42.                                                          //左右亮黄灯
  43. #define LeftRight_Green()   Led1=1;Led2=1;Led3=0;Led7=1;Led8=1;Led9=0
  44.                                                          //左右亮绿灯
  45. #define UpDown_Red()        Led4=0;Led5=1;Led6=1;Led10=0;Led11=1;Led12=1
  46.                                                          //上下亮红灯
  47. #define UpDown_Yellow()     Led4=1;Led5=0;Led6=1;Led10=1;Led11=0;Led12=1
  48.                                                          //上下亮黄灯
  49. #define UpDown_Green()      Led4=1;Led5=1;Led6=0;Led10=1;Led11=1;Led12=0
  50.                                                          //上下亮绿灯

  51. sbit IR1=P3^2;                                           //定义红外接收引脚

  52. sbit Button2=P3^3;                                       //定义按键2引脚
  53. sbit Button3=P3^7;                                       //定义按键3引脚
  54. sbit Button4=P1^1;                                       //定义按键4引脚
  55. sbit Button5=P1^3;                                       //定义按键5引脚
  56. sbit Button6=P1^2;                                       //定义接键6引脚
  57. sbit Button7=P1^0;                                       //定义按键7引脚

  58. void LCD_Delay()                                         //数码管延时函数
  59. {
  60.    unsigned int DelayTime=1000;                          //延时变量
  61.    while(DelayTime--);                                   //延时循环
  62. }

  63. void LCD_ShowData(unsigned char ShowData)                //数码管显示函数
  64. {
  65.     unsigned char TempChar=0;                            //定义临时字符变量
  66.         
  67.         if(ShowData>99) ShowData=00;                         //判断输出值是否在范围之内

  68.         TempChar=ShowData/10;                                //求出十位数
  69.         LCDSec2_Close();                                     //关闭数码管位2
  70.         LCDSec1_Open();                                      //开数码管位1
  71.         LCDPort=LCDData[TempChar];                           //显示位1
  72.         LCD_Delay();                                         //数码管延时
  73.         TempChar=ShowData%10;                                //求出个位数
  74.         LCDSec1_Close();                                     //关闭数码管位1
  75.         LCDSec2_Open();                                      //开数码管位2
  76.         LCDPort=LCDData[TempChar];                           //显示位2
  77.         LCD_Delay();                                         //数码管延时
  78. }


  79. #define  GL_DelayTime 30                                 //延时时间计算30(大约为1秒)--改变此参数的值,可以调整计时时间
  80. void GL_Delay(unsigned char TimeCount)                   //全局延时函数
  81. {
  82.     unsigned char DelayCount;                            //定义延时时间变量
  83.     while(TimeCount)                                     //循环函数
  84.         {  
  85.            DelayCount=GL_DelayTime;                          //对延时变量赋值
  86.            while(DelayCount--)                               //循环延时
  87.            {
  88.            LCD_ShowData(TimeCount);                      //调用数码管显示函数
  89.              }
  90.        TimeCount--;                                      //计数器减1
  91.         }
  92. }

  93. void main()                                              //主程序入口
  94. {  
  95.    unsigned int TempInt=40000;                           //定义临时变量
  96.    Beep_Speek();                                         //蜂鸣器响
  97.    while(TempInt--);                                     //延时
  98.    Beep_Close();                                         //蜂鸣器关
  99.    
  100.    while(1)                                              //主程序循环
  101.    UpDown_Green();                                     //上下亮绿灯
  102.          LeftRight_Red();                                    //左右亮红灯
  103.      GL_Delay(45);                                       //倒计时45秒
  104. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
交通灯套件.zip (1.05 MB, 下载次数: 23)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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