|
交通灯单片机制作,分享给大家
说明:此电路图为交通焊接套件原理表示所用,元件内容大小请根据元件清单进行焊接。在焊接完成后请仔细观察焊接电路板是否有虚焊、假焊、短路等情况。有的话必须先进行修正再进行通电实验。
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
| 晶振
|
|
|
| 说明: 在焊接时,请根据电路“备注”信息,仔细焊接。需要注意电容、按键、芯片、即插件、开关、红外接收头、三极管、数码管、二极管都有极性且不能焊反。
焊接完成后,请先仔细检测电路板,看是否有虚焊、假焊、短路等现象,焊接完好的情况再通过试机。出现过热、冒烟等情况后应立即关闭电源并检修。
|
单片机源程序如下:
- //=======================================================================================//
- // 交通灯演示程序----TXJTD V10专用 //
- // 程序说明:此程序以南北为主通道,东西为次通道。在程序运行时,主通道通行45秒,次通道通行//
- // 30秒,黄灯亮为3秒。 //
- // 程序运行效果: 打开电源后,可以主次通道的红绿灯变化及数码管倒计时显示。 //
- // 声明: 此电路板所使用的电源电压为5V,请使用相匹配的电源 //
- //=======================================================================================//
- // 作者: 郭军 开发商:上海腾芯实业有限公司 //
- // 日期: 20 邮箱:guoguoExkj@126.com //
- //=======================================================================================//
- #include <reg52.h> //包含头文件
- void LCD_Delay(); //声明LCD延时显示函数
- void LCD_ShowData(unsigned char ShowData); //声明数码管显示函数
- void GL_Delay(unsigned char TimeCount); //声明倒计时函数
- sbit LCDSec1=P3^5; //定义数码管位1驱动引脚
- sbit LCDSec2=P3^4; //定义数码管位2驱动引脚
- #define LCDSec1_Open() LCDSec1=0 //宏定义数码管位1开
- #define LCDSec1_Close() LCDSec1=1 //宏定义数码管位1关
- #define LCDSec2_Open() LCDSec2=0 //宏定义数码管位2开
- #define LCDSec2_Close() LCDSec2=1 //宏定义数码管位2关
- #define LCDPort P0 //定义数码管显示端口
- code unsigned char LCDData[]={0x18,0x7E,0x94,0x54,0x72,0x51,0x13,0x7C,0x10,0x70};
- //定义数码管显示字符0,1,2,3...9
- sbit Beep=P3^6; //定义蜂鸣器引脚
- #define Beep_Speek() Beep=0 //蜂鸣器开启
- #define Beep_Close() Beep=1 //蜂鸣器关闭
- sbit Led1=P2^5; //定义序号1LED灯
- sbit Led2=P2^0; //定义序号2LED灯
- sbit Led3=P2^1; //定义序号3LED灯
- sbit Led4=P2^2; //定义序号4LED灯
- sbit Led5=P2^3; //定义序号5LED灯
- sbit Led6=P2^4; //定义序号6LED灯
- sbit Led7=P2^7; //定义序号7LED灯
- sbit Led8=P2^6; //定义序号8LED灯
- sbit Led9=P1^7; //定义序号9LED灯
- sbit Led10=P1^6; //定义序号10LED灯
- sbit Led11=P1^5; //定义序号11LED灯
- sbit Led12=P1^4; //定义序号12LED灯
- #define LeftRight_Red() Led1=0;Led2=1;Led3=1;Led7=0;Led8=1;Led9=1
- //左右亮红灯
- #define LeftRight_Yellow() Led1=1;Led2=0;Led3=1;Led7=1;Led8=0;Led9=1
- //左右亮黄灯
- #define LeftRight_Green() Led1=1;Led2=1;Led3=0;Led7=1;Led8=1;Led9=0
- //左右亮绿灯
- #define UpDown_Red() Led4=0;Led5=1;Led6=1;Led10=0;Led11=1;Led12=1
- //上下亮红灯
- #define UpDown_Yellow() Led4=1;Led5=0;Led6=1;Led10=1;Led11=0;Led12=1
- //上下亮黄灯
- #define UpDown_Green() Led4=1;Led5=1;Led6=0;Led10=1;Led11=1;Led12=0
- //上下亮绿灯
- sbit IR1=P3^2; //定义红外接收引脚
- sbit Button2=P3^3; //定义按键2引脚
- sbit Button3=P3^7; //定义按键3引脚
- sbit Button4=P1^1; //定义按键4引脚
- sbit Button5=P1^3; //定义按键5引脚
- sbit Button6=P1^2; //定义接键6引脚
- sbit Button7=P1^0; //定义按键7引脚
- void LCD_Delay() //数码管延时函数
- {
- unsigned int DelayTime=1000; //延时变量
- while(DelayTime--); //延时循环
- }
- void LCD_ShowData(unsigned char ShowData) //数码管显示函数
- {
- unsigned char TempChar=0; //定义临时字符变量
-
- if(ShowData>99) ShowData=00; //判断输出值是否在范围之内
- TempChar=ShowData/10; //求出十位数
- LCDSec2_Close(); //关闭数码管位2
- LCDSec1_Open(); //开数码管位1
- LCDPort=LCDData[TempChar]; //显示位1
- LCD_Delay(); //数码管延时
- TempChar=ShowData%10; //求出个位数
- LCDSec1_Close(); //关闭数码管位1
- LCDSec2_Open(); //开数码管位2
- LCDPort=LCDData[TempChar]; //显示位2
- LCD_Delay(); //数码管延时
- }
- #define GL_DelayTime 30 //延时时间计算30(大约为1秒)--改变此参数的值,可以调整计时时间
- void GL_Delay(unsigned char TimeCount) //全局延时函数
- {
- unsigned char DelayCount; //定义延时时间变量
- while(TimeCount) //循环函数
- {
- DelayCount=GL_DelayTime; //对延时变量赋值
- while(DelayCount--) //循环延时
- {
- LCD_ShowData(TimeCount); //调用数码管显示函数
- }
- TimeCount--; //计数器减1
- }
- }
- void main() //主程序入口
- {
- unsigned int TempInt=40000; //定义临时变量
- Beep_Speek(); //蜂鸣器响
- while(TempInt--); //延时
- Beep_Close(); //蜂鸣器关
-
- while(1) //主程序循环
- UpDown_Green(); //上下亮绿灯
- LeftRight_Red(); //左右亮红灯
- GL_Delay(45); //倒计时45秒
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
交通灯套件.zip
(1.05 MB, 下载次数: 23)
|
|