freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計(jì)[5篇范文]-文庫吧

2024-11-04 02:00 本頁面


【正文】 d delay(uchar t){uchar i。/*定義無符號字符常量*/ for(t。t0。t)/*執(zhí)行t次循環(huán)*/{ for(i=2000。i0。i)/*由于時(shí)鐘脈沖是12MHz,執(zhí)行2000次循環(huán)的時(shí)間為1ms*/{ } } } 通行時(shí)間設(shè)置程序本次設(shè)計(jì)通過外部中斷0設(shè)置各個(gè)干道的通行時(shí)間。外部中斷0的請求信號由P3^2引腳輸入,采用低電平有效的方式響應(yīng)中斷,即IT0=1。響應(yīng)中斷0期間,CPU禁止響應(yīng)其他中斷,按鍵K0,K1起調(diào)整時(shí)間的作用。采用加1的方式,每按一下K0,主干道通行時(shí)間加1,每按一下K1,支干道通行時(shí)間加1。通行時(shí)間可以直接在數(shù)碼管上顯示出來。按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點(diǎn)處,從下一個(gè)狀態(tài)開始執(zhí)行新設(shè)置的通行時(shí)間。CPU再開放總中斷。由于本次設(shè)計(jì)使用兩位一體的共陰極數(shù)碼管顯示時(shí)間,故設(shè)置各個(gè)干道的通行時(shí)間的范圍為0—100s??紤]道路通車的實(shí)際情況,時(shí)間太短無法通過交通路口,所以本設(shè)計(jì)中通行時(shí)間下限為6s(綠燈1s,黃燈5s)。在6—99s之間可以任意設(shè)置通行時(shí)間,更合理高效的指揮交通。 緊急情況處理程序本次設(shè)計(jì)通過外部中斷1實(shí)現(xiàn)對緊急情況的處理。與外部中斷0相仿。外部中斷1的請求信號有P3^3引腳輸入,采用低電平有效的方式相應(yīng)中斷,即IT0=1。響應(yīng)中斷1期間,CPU禁止響應(yīng)其他中斷,東南西北四個(gè)方向均亮紅燈,各個(gè)干道都禁止通行。由于不確定要持續(xù)多久,不采用倒計(jì)時(shí)的方式顯示時(shí)間,數(shù)碼管顯示00。緊急情況結(jié)束時(shí),按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點(diǎn)處,CPU再開放總中斷。 狀態(tài)調(diào)整程序在實(shí)際交通系統(tǒng)中,很有可能會不時(shí)的出現(xiàn)一道有車而另一道無車的情況,為了更合理高效的指揮交通,本次設(shè)計(jì)的交通燈控制系統(tǒng)能立即讓有車道放。由開關(guān) K0 和 K1 控制。采用查詢的方式不斷掃描K0、K1,看有沒有鍵按下。按一下K0鍵,可以實(shí)現(xiàn)主干道通行,按一下K1鍵,可以實(shí)現(xiàn)支干道通行。此時(shí)交通狀態(tài)的改變是因?yàn)榱硪宦窡o車,所以不需要設(shè)置返回,直接按主程序循環(huán)指揮。也有可能較長時(shí)間出現(xiàn)一道有車另一道無車的情況,只需多次按K0或K1鍵即可。Proteus仿真 正常工作狀態(tài)本次設(shè)計(jì)的交通燈控制系統(tǒng)共有四個(gè)工作狀態(tài),分別是狀態(tài)0、狀態(tài)狀態(tài)2和狀態(tài)3。開始時(shí)先執(zhí)行狀態(tài)0,南北方向綠燈亮,東西方向紅燈亮。歷時(shí)25秒。如圖10所示:圖10 狀態(tài)0 25秒后轉(zhuǎn)為狀態(tài)1,南北方向綠燈滅,黃燈每秒閃亮一次,東西方向還是紅燈亮。歷時(shí)5秒。如圖11所示:圖11 狀態(tài)1 5秒后再轉(zhuǎn)狀態(tài)2,南北方向紅燈亮,東西方向綠燈亮。歷時(shí)15秒。如圖12所示:圖12 狀態(tài)2 15秒后轉(zhuǎn)狀態(tài)3,南北方向還是紅燈亮,東西方向綠燈滅,黃燈每秒閃亮一次。歷時(shí)5秒。如圖13所示:圖13 狀態(tài)3此狀態(tài)結(jié)束后再回到狀態(tài)0,如此循環(huán)進(jìn)行。 時(shí)間調(diào)整按一下開關(guān)K4,系統(tǒng)響應(yīng)外部中斷0,進(jìn)入通行時(shí)間調(diào)整程序。各個(gè)干道的通行時(shí)間有數(shù)碼管顯示。如圖14所示:圖14 時(shí)間調(diào)整按鍵K0,K1起調(diào)整時(shí)間的作用,每按一下K0,主干道通行時(shí)間加1,每按一下K1,支干道通行時(shí)間加1。多次按鍵即可調(diào)整到合理的通行時(shí)間。如圖15所示:圖15 通行時(shí)間+1 按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點(diǎn)處,從下一個(gè)狀態(tài)開始執(zhí)行新設(shè)置的通行時(shí)間。如圖117所示:圖16 主干道按新設(shè)置的時(shí)間執(zhí)行圖17 支干道按新設(shè)置的時(shí)間執(zhí)行 緊急情況當(dāng)出現(xiàn)緊急情況時(shí),按一下開關(guān)K2,系統(tǒng)響應(yīng)外部中斷1,各個(gè)方向均亮紅燈禁止通行,數(shù)碼管均顯示0。按一下K3,可以使系統(tǒng)退出中斷,回到主程序斷點(diǎn)處。如圖18所示圖18 緊急情況 狀態(tài)調(diào)整為了更合理高效的指揮交通,當(dāng)南北方向有車而東西方向無車時(shí),按K0,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)0,實(shí)現(xiàn)南北方向通行。如圖19所示:圖19 南北方向有車而東西方向無車時(shí),南北放行當(dāng)東西方向有車而南北方向無車時(shí),按K1,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)2,實(shí)現(xiàn)東西方向通行。如圖20所示:圖20 東西方向有車而南北方向無車時(shí),東西放行 課程設(shè)計(jì)體會很榮幸有這次課程設(shè)計(jì)的機(jī)會,我可以把理論的學(xué)習(xí)與實(shí)踐有機(jī)的結(jié)合起來。在設(shè)計(jì)過程中,首先要分析課題,根據(jù)所學(xué)知識繪制出系統(tǒng)總體設(shè)計(jì)框圖。然后按照自己的設(shè)計(jì)思路,利用所給的元器件繪制出設(shè)計(jì)圖。在繪制設(shè)計(jì)圖連接各個(gè)元器件的時(shí)候,要盡量使布線合適,從而使所作設(shè)計(jì)圖清晰易看。繪制完設(shè)計(jì)圖后,接下來就是要根據(jù)設(shè)計(jì)所要求的功能和已完成的設(shè)計(jì)圖編寫程序,在編程時(shí),首先應(yīng)該繪制出主程序流程圖,然后采用模塊化程序設(shè)計(jì)的方式,編寫實(shí)現(xiàn)各個(gè)功能的子程序,再將各個(gè)子程序與主程序連接起來。在設(shè)計(jì)程序時(shí)要不斷對程序進(jìn)行修改,同時(shí)在設(shè)計(jì)程序的過程中要養(yǎng)成注釋程序的習(xí)慣,在對程序進(jìn)行修改的時(shí)候,可以通過注釋很容易的看出各句程序的功能,清晰明朗。當(dāng)程序設(shè)計(jì)出來之后,就可以通過仿真軟件對其進(jìn)行編譯,生成仿真所需要的HEX文件。將生成的文件加載到系統(tǒng)圖的單片機(jī)上,就可以進(jìn)行系統(tǒng)仿真。通過仿真,檢測所作設(shè)計(jì)是否能實(shí)現(xiàn)預(yù)期功能。本次課程設(shè)計(jì)使我對單片機(jī)的工作原理有了更深刻的認(rèn)識,掌握了許多在以前學(xué)習(xí)中混淆不清的知識點(diǎn)。在翻閱相關(guān)書籍和查詢相關(guān)資料過程中學(xué)到了豐富的單片機(jī)知識,開闊了眼界,增廣了知識面。在編輯程序中,對C語言又有了新的認(rèn)識和理解。實(shí)物焊接中不僅鍛煉了自己的動手能力,而且真正作到了理論聯(lián)系實(shí)際的重要性,收益匪淺。本次課程設(shè)計(jì)我參考的三本書。一本是余發(fā)山教授的《單片機(jī)原理及其應(yīng)用技術(shù)》,一本是在圖書館借的王為青老師編寫的《單片機(jī)Keil Cx51應(yīng)用開發(fā)技術(shù)》,還有一本就是賈宗璞老師的《C語言程序設(shè)計(jì)》。在此向編者表示誠摯的謝意。本次設(shè)計(jì)中,我曾多次在課堂上向譚興國老師請教各個(gè)模塊設(shè)計(jì)的細(xì)節(jié)問題,得到了譚老師的大力幫助,在此深表感謝!參考文獻(xiàn) [1] 余發(fā)山, 徐州:中國礦業(yè)大學(xué)出版社,2008 [2] 賈宗璞, 徐州:中國礦業(yè)大學(xué)出版社,2007 [3] 王為青, Cx51應(yīng)用開發(fā)技術(shù) 北京:人民郵電出版社,2007附1 源程序代碼include /*對單片機(jī)的口進(jìn)行了定義********/ define uchar unsigned char /*定義字符串類型為無符號型*/ uchar code a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}。/*段碼組合,P0口,高有效*/ uchar code b[4]={0x0D,0x0E,0x07,0x0B}。/****P2口,低有效*/ uchar code c[4]={0x6A,0x66,0x5C,0x3C}。/*****/ char SN=25,WE=30。/*SN表示南北方向——主干道,WE表示東西方向——支干道*/ char SN_G=25,WE_G=15,Y=5。/*SN_G表示南北方向的綠燈,WE_G表示東西方向的綠燈,Y表示黃燈*/uchar i,k=0,count=0。/*定義無符號字符串變量*/void delay(uchar t)。/*定義函數(shù)*/void light()。/*定義函數(shù)*/ void led()。/*定義函數(shù)*/ void ledthrough()。/*定義函數(shù)*/ void leddrive()。/*定義函數(shù)*/ sbit K0=P3^7。/*開關(guān)K0接P3^7管腳*/ sbit K1=P3^6。/*開關(guān)K1接P3^6管腳*/ sbit K2=P3^3。/*開關(guān)K2接P3^3管腳*/ sbit K3=P3^5。/*開關(guān)K3接P3^5管腳*/ sbit K4=P3^2。/*開關(guān)K4接P3^2管腳*//*程序初始化*/ void init(void){ /*12MHz */ TMOD=0x01。/**計(jì)數(shù)器用模式1,為16位計(jì)數(shù)器*****/TH1=(6553650000)/256。/*0x3C*/ TL1=(6553650000)%256。/*0xB0*//*計(jì)50000個(gè)數(shù),用時(shí)50ms*/IT0=1。/*外部中斷為低電平觸發(fā)方式*/ET0=1。/*允許T0中斷*/ TR0=1。/*啟動計(jì)數(shù)器*/ EA=1。/*CPU開放總中斷*/ EX0=1。/*允許外部中斷0中斷,即允許響應(yīng)端口P3^2(K4)中斷*/ EX1=1。/*允許外部中斷1中斷,即允許響應(yīng)端口P3^3(K2)中斷*/}/*中斷0處理程序*/ void int0(void)interrupt 0{EA=0。/*CPU禁止響應(yīng)一切中斷*/ P1=0x6C。/*東西南北方向均紅燈亮*/TR0=!TR0。/*計(jì)數(shù)器停止工作*/for(。)/*無條件循環(huán)*/{ledthrough()。/*調(diào)用通行時(shí)間顯示函數(shù)*//*設(shè)置南北方向通行時(shí)間*/ if(K0==0)/*P3^7=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K0==0){ while(!K0)/*當(dāng)松開K0開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough()。/*調(diào)用通行時(shí)間顯示函數(shù)*/}SN_G++。/*南北方向綠燈時(shí)間+1*/ if((SN_G+Y)==100)/*南北方向通行時(shí)間(綠燈加黃燈時(shí)間)為100s*/ SN_G=1。/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向通行時(shí)間加到100后綠燈時(shí)間歸1*/}}/*設(shè)置東西方向通行時(shí)間*/ if(K1==0)/*P3^6=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K1==0){ while(!K1)/*當(dāng)松開K1開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ ledthrough()。/*調(diào)用通行時(shí)間顯示函數(shù)*/}WE_G++。/*東西方向綠燈時(shí)間+1*/ if((WE_G+Y)==100)/*東西方向通行時(shí)間(綠燈加黃燈時(shí)間)為100s*/ WE_G=1。/*由于使用的是兩位數(shù)碼管,當(dāng)東西方向通行時(shí)間加到100后綠燈時(shí)間歸1*/} } /*返回*/if(K3==0)/*P3^5=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K3==0){ while(!K3)/*當(dāng)松開K3開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{ledthrough()。/*調(diào)用通行時(shí)間顯示函數(shù)*/}TR0=!TR0。/*啟動計(jì)數(shù)器*/ EA=1。/*CPU開放總中斷*/break。/*跳出*/}} } }/*中斷1處理程序*/ void int1(void)interrupt 2{ P1=0x6C,P0=a[0]。/*東西南北方向均紅燈亮,P0口輸出0*/EA=0。/*CPU禁止響應(yīng)一切中斷*/ TR0=!TR0。/*計(jì)數(shù)器停止工作*/for(。)/*無條件循環(huán)*/{leddrive()。/*數(shù)碼管驅(qū)動程序*//*返回*/if(K3==0)/*P3^5=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K3==0){ while(!K3)/*當(dāng)松開K3開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{leddrive()。/*數(shù)碼管驅(qū)動程序*/}EA=1。/*CPU開放總中斷*/ TR0=!TR0。/*啟動計(jì)數(shù)器*/ break。/*跳出*/ }} }} /*鍵盤程序*/ void key(){/*南北有車而東西無車*/ if(K0==0)/*K0=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K0==0){ while(!K0)/*當(dāng)松開K0開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light()。/*調(diào)用交通燈函數(shù)*/led()。/*調(diào)用數(shù)碼管函數(shù)*/} count=0。/*清零*/k=0。/*南北方向通車,東西方向不通車*/ SN=SN_G,WE=SN_G+Y。/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/} }/*南北無車而東西有車*/ if(K1==0)/*K1=0*/{delay(10)。/*延時(shí),把抖動的時(shí)間拋掉*/if(K1==0){ while(!K1)/*當(dāng)松開K1開關(guān)時(shí),跳出循環(huán),執(zhí)行后面的程序*/{light()。/*調(diào)用交通燈函數(shù)*/led()。/*調(diào)用數(shù)碼管函數(shù)*/} count=0。/*清零*/k=2。/*南北方向不通車,東西方向通車*/ SN=WE_G+Y,WE=WE_G。/*南北方向顯示時(shí)間為東西方向綠燈通行時(shí)間加黃燈閃亮?xí)r間,東西方向顯示時(shí)間為東西方向綠燈通行時(shí)間*/} } } /*定時(shí)函數(shù)*/void time1(void)interrupt 1{ TH0=0x3c。TL0=0xb0。/*計(jì)50000個(gè)數(shù),用時(shí)50ms*/count++。/*自增運(yùn)算*/if(count=20)/*當(dāng)count大于或等于20時(shí),歷時(shí)1s,執(zhí)行程序*/{SN。/*自減運(yùn)算*/ WE。/*自減運(yùn)算*/ count=0。/*清零*/ if(SN==0||WE==0)/*當(dāng)SN=0或者WE=0時(shí),執(zhí)行程序*/{k++。/*自增運(yùn)算*/ if(k3)/*當(dāng)k3時(shí),執(zhí)行程序*/k=0。/*清零*/ switch(k)/*switch 語句*/{ case 0:SN=SN_G,WE=SN_G+Y。break。/*南北方向顯示時(shí)間為南北方向綠燈通行時(shí)間,東西方向顯示時(shí)間為南北方向綠燈通行時(shí)間加黃燈閃亮?xí)r間*/ case 1:SN=Y,WE=Y。break。/*東西南北方向顯示時(shí)間均為黃燈閃亮?xí)r間*/ case 2:SN=WE_G+Y,WE=WE_G。break。/*南北方向顯示時(shí)間為東西方向綠燈通行時(shí)間加黃燈閃亮?xí)r間,東西方向顯示時(shí)間為東西方向綠燈通行時(shí)間*/ case 3:SN=Y,WE=Y。break。/*東西南北方向顯示時(shí)間均為黃燈閃亮?xí)r間*/} } } } /*延時(shí)t毫
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1