我買的一個很詳細的交通燈設計資料分享給大家(實物 仿真 原理圖 pcb 開題報告 論文一應俱全,該有的都有了,看下面的目錄列表就知道了):
交通燈 (5).jpg (1.52 MB, 下載次數: 171)
下載附件
2017-5-9 18:00 上傳
1、單片機是通用的無論51還是52、無論stc還是at都一樣,引腳功能都一樣,原理圖和程序也是一樣的。 2、原理圖中的. sch等格式是要用protel99se打開的,沒有軟件的不要緊,我已幫您轉換成word格式和pdf格式的了。 3、程序中的.c文件可以用記事本打開,就是程序了。其他的是寫程序是自動生成的,沒什么用的。 4、可以按照正面布局,盡量不要按照實物的背面焊接,很容易看錯,要按照原理圖焊接,不要按照仿真圖焊接,因為仿真只是模擬一個現象。 5、關于資料好評后發送~~好評后記得向客服要哦~~~,我們的論文是針對這個設計寫的,不包修改,不包查重,望知悉。
0.png (84.85 KB, 下載次數: 112)
下載附件
2017-5-9 17:58 上傳
全部資料包含以下目錄(在本帖附件都都可下載):
Altium Designer Sunner畫圖軟件學習視頻
Altium Designer Sunner畫圖軟件安裝視頻
AltiumDesignerSummer9 畫圖軟件安裝包
C語言視頻教程
KEIL 軟件安裝視頻
keil4軟件安裝包 開發工具地址
MCU 單片機芯片資料
PCB圖
Protel 99 軟件安裝包
Protel 99 軟件安裝視頻
Protel 99畫圖軟件學習視頻
Proteus ISIS 仿真軟件學習視頻
Proteus 軟件安裝包
PROTEUS仿真軟件的安裝方法
交通燈開題報告
仿真圖(使用PROTEUS軟件打開文件里面后綴為DSN的文件)
元件清單
制作過程
單片機初學者視頻教程 郭天祥老師
單片機初學者視頻教程 霖鋒老師
單片機初學者視頻程序講解教程
單片機程序下載軟件 STC-ISP-V4.83
原理圖
參考論文
實物照片
工程新建 程序下載 視頻教程
開發工具地址 keil4軟件安裝包
操作視頻地址
畢設答辯技巧
焊接注意事項和調試講解
程序
程序講解視頻
答辯常見問題解答
設計資料
使用前必讀.doc
原理圖 打開方式.txt
程序打開方法.txt
交通燈 (2).jpg (232.03 KB, 下載次數: 116)
下載附件
2017-5-9 18:00 上傳
交通燈 (1).jpg (300.07 KB, 下載次數: 121)
下載附件
2017-5-9 18:00 上傳
交通燈 (3).jpg (1.6 MB, 下載次數: 130)
下載附件
2017-5-9 18:00 上傳
交通燈 (4).jpg (1.76 MB, 下載次數: 133)
下載附件
2017-5-9 18:00 上傳
交通燈 照片.jpg (746.78 KB, 下載次數: 127)
下載附件
2017-5-9 18:00 上傳
PCB圖.jpg (693.32 KB, 下載次數: 141)
下載附件
2017-5-9 18:01 上傳
仿真截圖 (1).jpg (317.85 KB, 下載次數: 120)
下載附件
2017-5-9 18:01 上傳
仿真截圖 (2).jpg (1.31 MB, 下載次數: 115)
下載附件
2017-5-9 18:01 上傳
仿真截圖 (3).jpg (306.85 KB, 下載次數: 135)
下載附件
2017-5-9 18:01 上傳
仿真截圖 (4).jpg (341.15 KB, 下載次數: 114)
下載附件
2017-5-9 18:01 上傳
交通燈.jpg (1009.89 KB, 下載次數: 126)
下載附件
2017-5-9 18:01 上傳
- #include <reg52.h> //調用單片機頭文件
- #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<q;i++)
- for(j=0;j<110;j++);
- }
- /********************************************************************
- * 名稱 : display()
- * 功能 : 數碼管顯示
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void display()
- {
- uchar i;
- for(i=0;i<smg_i;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; //亮
- nb_green = 1; //滅
- nb_yellow = 1; //滅
- if(flag_500ms == 0)
- {
- dx_yellow = 0;//亮
- }
- else
- {
- dx_yellow = 1;//滅
- }
- }
- }
- /***********************東西時間*********************************/
- if(flag_dx_nb == 1)
- {
- if(dx_s > 5)
- {
- dx_red = 0; //亮
- dx_green = 1; //滅
- dx_yellow = 1; //滅
- nb_red = 1; //滅
- nb_green = 0; //亮
- nb_yellow = 1; //滅
- flag_5m_value = 0;
- }else if(dx_s <= 5) //當小于5秒時 黃燈要閃了
- {
- dx_red = 0; //滅
- dx_green = 1; //滅
- dx_yellow = 1; //滅
- nb_red = 1; //滅
- nb_green = 1; //滅
- if(flag_500ms == 0) //黃燈閃爍
- {
- nb_yellow = 0; //亮
- }
- else
- {
- nb_yellow = 1; //滅
- }
- }
- }
- }
- /********************獨立按鍵程序*****************/
- uchar key_can; //按鍵值
- void key() //獨立按鍵程序
- {
- static uchar key_new;
- key_can = 20; //按鍵值還原
- P1 |= 0x1f;
- if((P1 & 0x1f) != 0x1f) //按鍵按下
- {
- delay_1ms(1); //按鍵消抖動
- if(((P1 & 0x1f) != 0x1f) && (key_new == 1))
- { //確認是按鍵按下
- key_new = 0;
- switch(P1 & 0x1f)
- {
- case 0x1e: key_can = 1; break; //得到按鍵值
- case 0x1d: key_can = 2; break; //得到按鍵值
- case 0x1b: key_can = 3; break; //得到按鍵值
- case 0x17: key_can = 4; break; //得到按鍵值
- }
- }
- }
- else
- key_new = 1;
- }
- uchar menu_1,flag_s;
- /********************設置函數*****************/
- void key_with()
- {
- if(key_can == 4) //交通管制按鍵
- {
- flag_jdgz ++;
- if(flag_jdgz > 5)
- flag_jdgz = 0;
- if(flag_jdgz == 1) // 全部亮紅燈
- {
- dx_red = 0; //亮
- dx_green = 1; //滅
- dx_yellow = 1; //滅
- nb_red = 0; //亮
- nb_green = 1; //滅
- nb_yellow = 1; //滅
- }
- if(flag_jdgz == 2) // 東西紅燈 南北綠燈
- {
- dx_red = 0; //亮
- dx_green = 1; //滅
- dx_yellow = 1; //滅
- nb_red = 1; //滅
- nb_green = 0; //亮
- nb_yellow = 1; //滅
- }
- if(flag_jdgz == 3) // 南北紅燈 東西綠燈
- {
- dx_red = 1; //滅
- dx_green = 0; //亮
- dx_yellow = 1; //滅
- nb_red = 0; //亮
- nb_green = 1; //滅
- nb_yellow = 1; //滅
- }
- if(flag_jdgz == 4) // 南北綠燈 東西綠燈
- {
- dx_red = 1; //滅
- dx_green = 0; //亮
- dx_yellow = 1; //滅
- nb_red = 1; //滅
- nb_green = 0; //亮
- nb_yellow = 1; //滅
- }
- if(flag_jdgz == 5) // 南北黃燈 東西黃燈
- {
- dx_red = 1; //滅
- dx_green = 1; //滅
- dx_yellow = 0; //亮
- nb_red = 1; //滅
- nb_green = 1; //滅
- nb_yellow = 0; //亮
- }
- }
- if(key_can == 1) //設置鍵
- {
- menu_1 ++;
- if(menu_1 >= 3)
- {
- menu_1 = 0;
- }
- }
- if(menu_1 == 1) //設置東西的時間
- {
- if(key_can == 2)
- {
- dx_time ++ ; //加1
- if(dx_time > 99)
- dx_time = 99;
- }
- if(key_can == 3)
- {
- dx_time -- ; //減1
- if(dx_time <= 10)
- dx_time = 10;
- }
- dis_smg[0] = smg_du[10] ; //顯示為A
- dis_smg[1] = smg_du[10] ; //顯示為A
- dis_smg[2] = smg_du[dx_time % 10] ; //顯示東西設置的時候
- dis_smg[3] = smg_du[dx_time / 10] ;
- }
- if(menu_1 == 2) //設置南北的時間
- {
- if(key_can == 2)
- {
- nb_time ++ ; //加1
- if(nb_time > 99)
- nb_time = 99;
- }
- if(key_can == 3)
- {
- nb_time -- ; //減1
- if(nb_time <= 10)
- nb_time = 10;
- }
- dis_smg[0] = smg_du[11] ; //顯示為B
- dis_smg[1] = smg_du[11] ; //顯示為B
- dis_smg[2] = smg_du[nb_time % 10] ; //顯示東西設置的時候
- dis_smg[3] = smg_du[nb_time / 10] ;
- }
- }
- /********************************************************************
- * 名稱 : main()
- * 功能 : 實現燈的閃爍
- * 輸入 : 無
- * 輸出 : 無
- ***********************************************************************/
- void main()
- {
- time0_init();
- dx_s = nb_time; //東西時間
- while(1)
- {
- key();
- if(key_can < 20)
- key_with();
- // menu_dis();
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
全部資料打包下載(非常詳細):
##單片機交通燈 4個數碼管.rar
(14.67 MB, 下載次數: 996)
2017-5-9 16:40 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|