|
交通燈單片機制作,分享給大家
說明:此電路圖為交通焊接套件原理表示所用,元件內容大小請根據元件清單進行焊接。在焊接完成后請仔細觀察焊接電路板是否有虛焊、假焊、短路等情況。有的話必須先進行修正再進行通電實驗。
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)
2017-5-11 20:24 上傳
點擊文件名下載附件
含程序、清單
|
|