


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄1. 課設(shè)題目12. 設(shè)計(jì)環(huán)境13. 設(shè)計(jì)要求14. 設(shè)計(jì)相關(guān)知識(shí) 14.1硬件設(shè)計(jì) 14.2軟件應(yīng)用25. 主程序設(shè)計(jì) 36. 系統(tǒng)實(shí)現(xiàn)14乙仿真運(yùn)行148. 設(shè)計(jì)心得.6 19. 參考文獻(xiàn)6 11. 設(shè)計(jì)題目:基于51單片機(jī)的交通燈設(shè)計(jì)2. 設(shè)計(jì)環(huán)境1. 裝有 Windows系統(tǒng)、keil C51v6.12中文完全版和 proteus7.5 仿真環(huán)境的PC機(jī)一臺(tái)。2. AT89C51單片機(jī)最小實(shí)現(xiàn)電路及配套發(fā)光二極管電路。3. 設(shè)計(jì)要求1. 編程要求:主程序利用C語(yǔ)言編寫(xiě)。2. 實(shí)現(xiàn)功能:使用AT89C5仲片機(jī)控制4個(gè)方向的交通燈 紅、黃、綠)并用數(shù) 碼管顯示其時(shí)間。3. 實(shí)驗(yàn)現(xiàn)象:狀
2、態(tài)一:主干道、支干道均亮紅燈 5秒;狀態(tài)二:主干道亮綠燈30秒、支干道亮紅燈;狀態(tài)三:主干道綠燈閃3次轉(zhuǎn)亮黃燈、支干道亮紅燈3秒;狀態(tài)四:主干道亮紅燈、支干道亮綠燈 25秒;狀態(tài)五:主干道亮紅燈、支干道綠燈閃 3次轉(zhuǎn)亮黃燈3秒;返回到第二個(gè)狀態(tài)4. 設(shè)計(jì)相關(guān)知識(shí)4.1硬件設(shè)計(jì)1.AT89C51 簡(jiǎn)介:AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性 能CMOS 8位微處理器。它是一種帶 2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的 單片機(jī)。AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈 活性高且價(jià)廉的方案。2. 2位8段數(shù)碼管工作原理:2位8段數(shù)碼管電路采用“
3、共陰”連接,陰極公共端 <COM由晶體管推動(dòng)。如圖4-3所示:段碼和位碼,段碼即段選信號(hào) SEG,它負(fù)責(zé)數(shù)碼管顯示 的內(nèi)容,圖中ag、dp組成的數(shù)據(jù)<a為最低位,dp為最高 位)就是段碼。位碼即位選信號(hào) DIG,它決定哪個(gè)數(shù)碼管工作,哪個(gè)數(shù)碼管不工作。當(dāng)需要某一位數(shù)碼管顯示數(shù)字時(shí),只需要先選中這位 數(shù)碼管的位信號(hào),再給顯示數(shù)字的段碼4.2軟件應(yīng)用 1.Proteus7.5 簡(jiǎn)介:Proteus軟件不僅具有EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍 器件Proteus從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切 換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了將電路仿真軟件、PCB設(shè)計(jì)軟件
4、和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持 8051、 HC11、 PIC10/12/16/18/24/30/DsPIC33、AVR ARM 8086 和 MSP430等。在編譯方面,它支持IAR、Keil和MPLA爵多種編譯器。2. Keil C51 開(kāi)發(fā)系統(tǒng)簡(jiǎn)介:Keil C51是51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言 在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。KeilC51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面,生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)其高級(jí)
5、語(yǔ)言的優(yōu)勢(shì)5. 主程序設(shè)計(jì)11.0952M晶振#include<reg51.h>/ 頭文件#include<intrins.h>/ 頭文件#define uchar unsigned char/ 宏定義#define uint unsigned int/ 宏定義sbit RED ZHU = P1A0。sbit YELLOW_ZHU = PM1 。sbit GREEN_ZHU = P1A2 。 sbit RED_ZHI = P1A3 。 sbit YELLOW_ZHI = P1A4 。 sbit GREEN_ZHI = P1A5 。uint aa, bai,shi,ge,
6、bb 。 / 定義變量/* 數(shù)碼管顯示 0-9*/uinttable=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f/* 子函數(shù)聲明 */void delay(uint z> 。void delay0(uint z>。/void init(uint a>。void display(uint ge,uint shi>。void xtimer0(> 。voidinit1(>。voidinit2(>。voidinit3(>。voidinit4(>。voidinit5(>。void xint
7、1(> 。code。主函數(shù) *void xint0(> 。 void LED_ON(> 。 void LED_OFF(> 。 /* void main(>P0=0XFF。P1=0xFF。P2=0xFF。EA=1。/ 打開(kāi)外部中斷EX1=1。/ 允許外部中斷 1 中斷IT仁0。/INTO為沿觸發(fā)方式init1(> 。while(1>init2(>。 / 第 2 個(gè)狀態(tài)init3(>。 /第 3 個(gè)狀態(tài)init4(>。 /第 4 個(gè)狀態(tài)init5(>。 /第 5 個(gè)狀態(tài)5Svoid init1(>/ 第一個(gè)狀態(tài):主干道、支干道
8、均亮紅燈 uint temp 。temp=6。 / 變量賦初值TMOD=0xOI定時(shí)器0工作于方式1TH0=0x4c。TL0=0x00。 / 定時(shí)器賦初值EA=1。 / 開(kāi)外部中斷ET0=1。/ 開(kāi)定時(shí)中斷TR0=1。/ 開(kāi)定時(shí)器 0 while(1>RED_ZHU=0/第一個(gè)狀態(tài)主干道、支干道均亮紅燈 5SRED_ZHI=0GREEN_ZHUMGREEN_ZHI=1YELLOW_ZHU=1YELLOW_ZHI=1 if(aa=20>/ 定時(shí) 20*50MS=1Saa=0。/ 定時(shí)完成一次后清 0 temp- 。/ 變量自增/delay(10> 。 if(temp>25
9、0>/ 定時(shí) 100Stemp=6。/ 變量清 0 break 。shi=temp%100/10。/ 顯示十位ge=temp%10。/ 顯示個(gè)位display(ge,shi> 。void init2(>第二個(gè)狀態(tài):主干道亮綠燈 30S支干道亮紅燈uint temp 。temp=31。/ 變量賦初值TMOD=0x0。/定時(shí)器0工作于方式1TH0=0x4c。TL0=0x00。 / 定時(shí)器賦初值EA=1。 / 開(kāi)外部中斷ET0=1。 / 開(kāi)定時(shí)中斷TR0=1。 / 開(kāi)定時(shí)器 0while(1>RED_ZHU=1RED_ZHI=0GREEN_ZHU=0GREEN_ZHI=1YE
10、LLOW_ZHU=1/第二個(gè)狀態(tài):主干道亮綠燈30S、支干道亮紅燈YELLOW_ZHI=1 if(aa=20>/ 定時(shí) 20*50MS=1Saa=0。/ 定時(shí)完成一次后清 0temp- 。/ 變量自增 if(temp=3>/ 定時(shí) 100Stemp=30。/ 變量清 0break 。shi=temp%100/10。/ 顯示十位 ge=temp%10。/ 顯示個(gè)位display(ge,shi>3Svoid init3(> / 第三個(gè)狀態(tài):主干道綠燈閃 3 次轉(zhuǎn)亮黃燈、支干道亮紅燈 uint temp 。temp=4。 / 變量賦初值TMOD=0x0。/定時(shí)器0工作于方式1
11、TH0=0x4c。TL0=0x00。 / 定時(shí)器賦初值EA=1。 / 開(kāi)外部中斷ET0=1。 / 開(kāi)定時(shí)中斷TR0=1。 / 開(kāi)定時(shí)器 0while(1>RED_ZHI=0GREEN_ZHU=1/YELLOW_ZHU=YELLOW_ZHUif(aa=20>/ 定時(shí) 20*50MS=1Saa=0。 / 定時(shí)完成一次后清 0 temp- 。 / 變量自增YELLOW_ZHU=YELLOW_ZHUif(temp>200>/ 定時(shí) 100Stemp=4_ / 變量清 0break _shi=temp%1 00/1 0 _ / 顯示十位ge=temp%10。/ 顯示個(gè)位displ
12、ay(ge,shi> 。void init4(>/ 第四個(gè)狀態(tài):主干道亮紅燈、支干道亮綠燈 25Suint temp 。temp=26。/ 變量賦初值TMOD=0x0。/定時(shí)器0工作于方式1TH0=0x4c。TL0=0x00。 / 定時(shí)器賦初值EA=1。 / 開(kāi)外部中斷ET0=1。 / 開(kāi)定時(shí)中斷TR0=1。 / 開(kāi)定時(shí)器 0while(1>RED_ZHU=0RED_ZHI=15SYELLOW_ZHU=1/ 第一個(gè)狀態(tài)主干道、支干道均亮紅燈GREEN_ZHI=0if(aa=20>/ 定時(shí) 20*50MS=1Saa=0。/ 定時(shí)完成一次后清 0temp- 。/ 變量自增
13、if(temp=3>/ 定時(shí) 100S temp=25。/ 變量清 0break 。shi=temp%100/10。/ 顯示十位 ge=temp%10。/ 顯示個(gè)位display(ge,shi> 。void init5(>/ 第五個(gè)狀態(tài):主干道亮紅燈、支干道綠燈閃 3 次轉(zhuǎn)亮黃燈 3Suint temp 。temp=4。 / 變量賦初值TMOD=0x0。/定時(shí)器0工作于方式1TH0=0x4c。TL0=0x00。 / 定時(shí)器賦初值EA=1。 / 開(kāi)外部中斷ET0=1。 / 開(kāi)定時(shí)中斷TR0=1。 / 開(kāi)定時(shí)器 0while(1>RED_ZHI=1RED_ZHU=0GREE
14、N_ZHU=1GREEN_ZHI=1/YELLOW_ZHI=YELLOW_ZHIif(aa=20>/ 定時(shí) 20*50MS=1Saa=0。/ 定時(shí)完成一次后清 0 temp- 。/ 變量自增YELLOW_ZHI=YELLOW_ZHIif(temp>200>/ 定時(shí) 100S temp=4。 / 變量清 0break 。shi=temp%100/10。/ 顯示十位ge=temp%10。/ 顯示個(gè)位display(ge,shi> 。/* 顯示子函數(shù) */void display(uint ge,uint shi>P0=0xfd。P2=tableshi 。/ 顯示十位d
15、elay0(5> 。P0=0xfe。P2=tablege 。/ 顯示個(gè)位delay0(5> 。void xint0(> interrupt 2 / 外部中斷 1, 這里用 2 是 INT1 的優(yōu)先級(jí)為 0LED_ON(>。void LED_ON(>/ 外部中斷 0 顯示子程序RED_ZHI=0RED_ZHU=OGREEN_ZHI=1GREEN_ZHU=1YELL0W_ZHI=1 YELLOW_ZHU=1 delay0(1000> 。return 。/* 定時(shí)中斷子函數(shù) */void xtimer0(> interrupt 1TH0=0x4c。TL0=0
16、x00。aa+。/* 延時(shí)子函數(shù) */void delay0(uint z>uint i,j 。for(i=0 。 i<z 。 i+>for(j=0 。 j<110。 j+>。/* 500ms 延時(shí)函數(shù) 晶振:11.0592MHz */void delay(unsigned char j>unsigned char k 。unsigned int i 。for( 。 j>0 。 j->for(i=1250i>0 。 i->k>0。k-> o.< 丨D6匚1$LED-G P!ITMy TECTaD1L£b-H
17、ED-TECT*for(k=1806. 系統(tǒng)實(shí)現(xiàn)1.使用keil C 51 編寫(xiě)程序;2將編好的程序“ .C ”文件用Keil C 51轉(zhuǎn)換成“ .hex ”文件;3. 畫(huà)出設(shè)計(jì)系統(tǒng)仿真圖;3. 打開(kāi)proteus7.5,將畫(huà)好的仿真圖載入,鼠標(biāo)右擊圖中的51單片機(jī)選擇“編輯屬性”,在Program File中載入之前的“ .hex ”文件,再點(diǎn)擊“調(diào)試”中的“開(kāi)始”或點(diǎn)擊軟件左下角的“卜”,即仿真開(kāi)始運(yùn)行;4. 觀(guān)察運(yùn)行現(xiàn)象是否與設(shè)計(jì)結(jié)果相符;5. 確定設(shè)計(jì)后,按圖焊接硬件電路;6. 測(cè)試硬件電路。7. 仿真運(yùn)行D6gjr ,卜*2 CM 盹網(wǎng) P73QM9 RW11 FIIAIJ FZ
18、187;I3 P2SAH P21SIH-FDOCa FD IMDIFD2AE>Z Hl JANH14ADdHJMT5XXT A Li亠2fI-aT©CT>A'raKvi TB«T-LED-yBllDM -sTBCih-占8 孟LCt-flCDV&T -eTitCD- -T -lTV> i>TEJ2-D1UED-HED 'iTEKD-LE&-Ht:. rT&T-LEIM7HEEflLEfr-YELUWI :-FT-D5D4Cl 邛 町既n06!込KM口 jm*:! n VTD PJ-BHTD F3131ITI KJTD W&TI f3£ Rl/fflT|£107?TiF|£IO7?TiFp-乂Z1LV "IDS l£D>HEI 打曬D11'LEHOKM 峠T師LflHSRE
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 規(guī)范用語(yǔ)用字培訓(xùn)
- 衡水市消防救援支隊(duì)招聘專(zhuān)職消防隊(duì)員筆試真題2024
- 治安合作協(xié)議書(shū)
- 輪滑鞋買(mǎi)賣(mài)合同協(xié)議
- 造紙廠(chǎng)改造合同協(xié)議
- 搞定2024年民用航空器維修人員執(zhí)照考試試題及答案
- 違法協(xié)議書(shū)范本
- 提高分?jǐn)?shù)的2025年入團(tuán)考試試題及答案
- 2025年入團(tuán)考試的高分備考試題及答案
- 消防技術(shù)支持的實(shí)際運(yùn)用試題及答案
- MOOC 國(guó)際交流英文寫(xiě)作中國(guó)大學(xué)慕課答案
- GB/T 43632-2024供應(yīng)鏈安全管理體系供應(yīng)鏈韌性的開(kāi)發(fā)要求及使用指南
- 《光伏發(fā)電工程預(yù)可行性研究報(bào)告編制規(guī)程》(NB/T32044-2018)中文版
- 自動(dòng)焊錫機(jī)安全操作規(guī)程培訓(xùn)
- 空管自動(dòng)化系統(tǒng)的基本組成與功能課件
- 2023年杭州市規(guī)劃局拱墅規(guī)劃分局編外人員招考考前自測(cè)高頻難、易考點(diǎn)模擬試題(共500題)含答案詳解
- 品牌國(guó)際化對(duì)企業(yè)出口競(jìng)爭(zhēng)力和品牌價(jià)值的影響研究
- 方特企業(yè)管理制度
- 醫(yī)用云膠片方案
- GB/T 5744-2023船用氣動(dòng)快關(guān)閥
- 煙花爆竹行業(yè)事故應(yīng)急救援處置培訓(xùn)
評(píng)論
0/150
提交評(píng)論