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

正文內(nèi)容

基于單片機控制的交通燈畢業(yè)論文(參考版)

2025-03-02 11:25本頁面
  

【正文】 } //外部中斷 1 void int1(void) in。 sec_dx=00。 //東西方向置綠燈 Red_nb=1。 //關(guān)定時器 P2=0x00。 //重賦東西方向的起始值 sec_nb=set_timedx+5。 shanruo=0。 Red_nb=1。sec_dx==0) //當(dāng)黃燈閃爍時間到 { P2=0X00。 //重賦東西方向的起始值 } if(dx_nb==1amp。 sec_nb=set_timenb。 dx_nb=!dx_nb。 //重置東西南背方向的紅綠燈 Green_nb=1。sec_nb==0) //當(dāng)黃燈閃爍時間倒計時到 0時, { Buzz=1。 } if(dx_nb==0amp。sec_dx==5) //當(dāng)南北倒計時到 0時,重置 5秒,用于黃燈閃爍時間 { sec_nb=5。 } if(sec_nb==0amp。sec_nb==5) //當(dāng)東西倒計時到 0時,重置 5秒,用于黃燈閃爍時間 { sec_dx=5。 } if(sec_dx==0amp。 Yellow_nb=1。amp。amp。 Buzz=1。(shanruo==1)) //東西黃燈閃 { Green_dx=0。(dx_nb==0)amp。 //南北時間減 1 if((sec_nb=5)amp。 //清零計數(shù)器 sec_dx。 Buzz=0。(shanruo==1)) //南北黃燈閃 { Green_nb=0。(dx_nb==1)amp。 } 25 if((sec_dx=5)amp。 Yellow_dx=0。amp。amp。 //重新啟動定時器 countt0++。 //重賦初值 TL0=0XB0。 //片選 LED4 delay(1)。 P1=0Xf7。 P1=0xff。 //片選 LED3 P0=table[buf[3]]。 P0=0x00。 delay(1)。 P1=0xfd。 //延時 P1=0xff。 //片選 LED1 P0=table[buf[1]]。 // 初始燈為滅的 P0=0x00。 //第 3位 南北秒十位 buf[0]=sec_dx%10。 //第 1位 東西秒十位 buf[2]=sec_nb%10。 } while(k6!=1)。 Buzzer_Indicate=1。 //全部置黃燈 sec_dx=00。 Yellow_dx=1。 //調(diào)用顯示,用于延時消抖 if(k6!=1) { TR0=0。 } while(k5!=1)。 Buzzer_Indicate=1。 //全部置紅燈 sec_dx=00。 Red_dx=1。 //調(diào)用顯示,用于延時消抖 if(k5!=1) { TR0=0。 23 } while(k4!=1)。 //取反 set 標(biāo)志位,以切換調(diào)節(jié)方向 dx_nb=set。 //調(diào)用顯示,用于延時消抖 if(k4!=1) { TR0=0。 sec_dx=sec_nb+5。 //南北綠燈,東西紅燈 Green_nb=1。 sec_nb=sec_dx+5。 //東西綠燈,南北紅燈 Green_dx=1。 //從中斷回復(fù),仍顯示設(shè)置過的數(shù)值 sec_dx=set_timedx。 //啟動定時器 Buzzer_Indicate=0。 } } if(k3!=1) //當(dāng) K3(確認)鍵按下時 { display()。 do { 22 display()。 //減到 1 重置 99 sec_nb=set_timenb 。 //東西減 1S if(set_timenb==0) set_timenb=99。 if(set==0) set_timedx。 //關(guān)定時器 shanruo=0。 } } if(k2!=1) //當(dāng) K2(時間減 )按鍵按下時 { display()。 // do { display()。 //加到 100 置 1 sec_nb=set_timenb 。 //東西加 1S if(set_timenb==100) set_timenb=1。 if(set==0) set_timedx++。 //關(guān)定時器 shanruo=0。 } } //函數(shù)的定義部分 void key(void) //按鍵掃描子程序 { if(k1!=1) //當(dāng) K1(時間加 )按下時 { 21 display()。 //調(diào)用按鍵掃描程序 display()。 // 開始默認狀態(tài),東西綠燈,南北黃燈 sec_nb=sec_dx+5。 //開外部中斷 1 logo()。 //啟動定 時 0 EX0=1。 //開總中斷 ET0=1。 //定時器 0置初值 TL0=0XB0。 //主程序 void main() { TMOD=0X11。 //顯示子程序 void logo()。 void key_to3()。 //按鍵掃描子程序 void key_to1()。 //函數(shù)的聲明部分 void delay(int ms)。 //東西南北控制位 bit shanruo=0。 bit set=0。 //東西綠燈標(biāo)志 sbit Buzz=P3^0。 //東西紅燈標(biāo)志 sbit Yellow_dx=P2^2。 //南北黃燈標(biāo)志 sbit Green_nb=P2^4。 //夜間模式 // P3^2 //只允許東西方向通行 ,中斷 0 // P3^3 //只允許南北方向通行,中斷 1 sbit Red_nb=P2^6。 //確認 sbit k5=P3^1。 //時間加 sbit k2=P3^6。//定時器 0中斷次數(shù) //定義 5 組開關(guān) sbit k4=P3^7。 //設(shè)置南北方向的時間 int n。 //南北默認值 uchar data set_timedx=20。 uchar data sec_dx=20。中國電力出版社 ATMEL89 系列單片機的原理與開發(fā)實踐北京航空航天大學(xué)出版社單片機應(yīng)用文集清華大學(xué)出版社單片機應(yīng)用系統(tǒng)開發(fā)綜合實例為零表示1秒已到可以返回到輸出時間顯示程序。 } 我們由在主程序中設(shè)定的初值可知T 0定時5毫秒.這樣每當(dāng)T 0到 5毫秒時 CPU 就響應(yīng)它的溢出中斷請求,進入他的中斷服務(wù)子程序。 } //if(tc=3) {tc=0。 weishuang1 = 1。 } 啟動定時器中斷 初始化定時器 0 設(shè)置字型碼和字位碼,完成數(shù)碼管倒計時顯示 關(guān)閉定時器 0 計數(shù)變量自加 1 16 else if(tc==2) { smdis=md[shu2]。 weishuang1 = 0。 } else if(tc==1) { smdis=md[shu1]。 weishuang1 = 1。 if(tc==0) { smdis=md[shu0]。 } TH0 = 0xee。 shu0=sec%10。 sec。} if(time==100) { waittime。 tc++。 定時器 0初始 化 調(diào)用 dissmg()函數(shù) INT0 保護現(xiàn)場 紅燈全亮維持10S 恢復(fù)現(xiàn)場 中斷返回 INT1 保護現(xiàn)場 方程式控制顯示 恢復(fù)現(xiàn)場 中斷返回 定時中斷入口 定義 1s 15 圖 43 定時中斷流程圖 定時中斷服務(wù)程序在系統(tǒng)中的函數(shù)如下: void int_t0( ) interrupt 1 using 1 { TR0 = 0。中斷子程序包括數(shù)碼管輸出數(shù)據(jù)刷新程序和各狀態(tài)處理程序。我們所要做的就是在程序中查尋此 I/O 口的電平狀態(tài)就可以了解我們是否有按鍵動作了。當(dāng)有鍵按下時,此 I/O 口與地短路迫使 I/O 口為低電平。 宏定義 I/O 初始化 定義共陰極字型編碼表 定義函數(shù)變量并初始化 定義狀態(tài)數(shù)組 定義字位碼函數(shù) 進入主函數(shù)main() 初始化外部中斷 進入 while(1)循環(huán) 調(diào)用顯示控制函數(shù)statusdis() 設(shè)置字型碼和字位碼,完成顯示 返回 while(1)函數(shù) 14 圖 41系統(tǒng)總的流程圖 子程序模塊設(shè)計 按鍵模塊的控制是調(diào)用中斷來實現(xiàn)控制的, 獨立式鍵盤的實現(xiàn)方法是利用單片機 I/O 口讀取口的電平高低來判斷是否有鍵按下。 整個軟件程序方面主要分兩大部分:按鍵 處理程序和 50ms 掃描程序。當(dāng)讀出的值是 0 時則表示有按鍵按下,調(diào)用相應(yīng)的處理程序。硬件去抖動就是用部分電路對抖動部分加之處理,軟件去抖動不是去掉抖動,而是避抖動部分的時間,等鍵盤穩(wěn)定了再對其處理。這里說的抖動是機械的抖動,是當(dāng)鍵盤在未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正常現(xiàn)象,并不是我們在按鍵時通過注意可以避免的。我們所要做的就是在程序中查尋此 I/O 口的電平狀態(tài)就可以了解我們是否有按鍵動作了。當(dāng)有鍵按下時,此 I/O 口與地短路迫使 I/O 口為低電平。 獨立式鍵盤的實現(xiàn)方法是利用單片機 I/O 口讀取口的電平高低來判斷是否有鍵按下。 鍵盤輸入電路 單片機鍵盤有獨立鍵盤和矩陣式鍵盤兩種:獨立鍵盤每一個 I/O 口上只接一個按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡單且系統(tǒng)更加穩(wěn)定;而矩陣式鍵盤式接法程序比較復(fù)雜 ,但是占用的 I/O 少。如果集電極電流 Ic是流過一個電阻 R的,那么根據(jù)電壓計算公式 U=R*I 可以算得,這電阻上電壓就會發(fā)生很大的變化。三極管的放大作用就是:集電極電流受基極電流的控制(假設(shè)電源能夠提供給集電極足夠大的電流的話),并且基極電流很小的變化,會引起集電極電流很大的變化,且變化滿足一定的比例關(guān)系:集電極電流的變化量是基極電流變化量的β倍,即電流變化被放大了β倍,所以我們把β叫做三極管的放大倍數(shù)(β一般遠大于 1, 例如幾十,幾百)。如上圖 36 所示,我們把從基極 B 流至發(fā)射極 E的電流叫做基極電流 Ib;把從集電極 C 流至發(fā)射極 E 的電流叫做集電極電流 Ic。我們僅以 NPN三極管的共發(fā)射極放大電路為例來說明一下三極管放大電路的基本原理。三極管是電流放大器件,有三個極,分別叫做集電極 C,基極 B,發(fā)射極E。而每一種又有 NPN和 PNP 兩種結(jié)構(gòu)形式,使用最多的是硅 NPN 和
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1