機械與能源工程學院 單片機控制與接口技術課程設計性實驗報告 | | | | | | | | | | | | 一、實驗目的 1、會使用單片機4個并行I/O端口連接外部設備并構建單片機最小應用系統。 2、能使用工具軟件繪制單片機硬件原理圖、能編寫簡單的匯編程序。 3、會編寫常見的順序程序、循環程序、延時子程序和查表程序。 | 二、實驗主要儀器設備和材料 Kile軟件 Proteus軟件 | 三、任務設計要求 采用STC89C52單片機構建最小系統,在P1口外接發光二極管,編程實現汽車轉向燈控制。
| | 五、硬件電路設計 
| | 七、軟硬件仿真調試分析 
打開Keil軟件將上面程序輸入,調試無誤后編譯輸出“hex”文件,打開Proteus軟件,將之前編譯好的“hex”文件加入到芯片中,開始運行仿真。結果發現LED燈只亮不閃,經過老師檢查指導后得知在寫C程序時沒有考慮到燈滅的狀態,改過之后把程序重新寫入,發現硬件電路只能呈現第一種(即:S1=1&&S2=1)的狀態。經檢查發現沒有用括號將幾種狀態語句括起來,所以只能執行第一種狀態,改過之后將程序重新寫入可以得到理想的效果。 | 八、項目總結 楊光華: 通過本次實驗對延時函數有了更深的了解,可以通過延時來控制led燈的明滅,在老師的幫助下明白了程序中每個語句的含義。
孫俊杰: 在實驗時,我對于實驗的編寫程序有些薄弱,在編寫時有些困難,對程序的理解還不夠深刻,在經過此次試驗后我的程序編寫能力得到了提高。
| |
單片機源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit S1=P1^0;
- sbit S2=P1^1;
- sbit L1=P1^4;
- sbit L2=P1^5;
- sbit R1=P1^6;
- sbit R2=P1^7;
- void delay(uint x)
- {
- intt;while(x--)for(t=0;t<125;t++) ;
- }
- void main()
- {
- P1=0X03;
- while(1)
- {{if (S1==1&&S2==1)
- delay(10);
- if (S1==1&&S2==1)
- { L1=1,L2=1,R1=1,R2=1;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50); }
- }
- {if (S1==1&&S2==0)
- delay(10);
- if (S1==1&&S2==0)
- {L1=1,L2=1,R1=0,R2=0;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50);}
- }
- {if (S1==0&&S2==1)
- delay(10);
- if (S1==0&&S2==1)
- {L1=0,L2=0,R1=1,R2=1;
- delay(50);
- L1=0,L2=0,R1=0,R2=0;
- delay(50);}
- }
- {if (S1==0&&S2==0)
- delay(10);
- if (S1==0&&S2==0)
- {L1=0,L2=0,R1=0,R2=0;
- }}
- }
- }
復制代碼
所有資料51hei提供下載:
汽車轉向燈.doc
(254.5 KB, 下載次數: 46)
2018-6-5 17:07 上傳
點擊文件名下載附件
|