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

正文內(nèi)容

基于stc單片機(jī)的交通燈畢業(yè)設(shè)計(jì)-資料下載頁(yè)

2025-02-26 10:24本頁(yè)面

【導(dǎo)讀】用單片機(jī)自動(dòng)控制交通燈及時(shí)間顯示的方法。同時(shí)給出了軟硬件設(shè)計(jì)方法,設(shè)計(jì)。設(shè)計(jì)問(wèn)題都有涉足。本文對(duì)十字路口狀態(tài)預(yù)設(shè)為三種,一種是正常狀態(tài),一種是。增設(shè)路段遇忙調(diào)整時(shí)方程式控制狀態(tài)和緊急情。方程式控制間來(lái)回切換,進(jìn)一步完善了交通燈控制系統(tǒng)。并分別用紅、黃、綠燈。交通安全的同時(shí)最大限度的提高交通能順暢交替運(yùn)行。本文介紹了控制基本原理

  

【正文】 33=status[2]。 if(p33amp。0x40) { NLR = 1。 //北向左轉(zhuǎn)紅燈 } else { NLR = 0。 } if(p33amp。0x80) { NLG = 1。 //北向左轉(zhuǎn)綠燈 } else { NLG = 0。 } dissmg()。 //如果用此句,可以增強(qiáng)顯示 } } 27 LED 倒計(jì)時(shí)顯示子程序 LED 數(shù)碼管原理 本系統(tǒng)采用 8 位的動(dòng)態(tài)數(shù)碼顯示??刂茢?shù)碼顯示的數(shù)據(jù)由兩部分組成,一部分為筆段亮滅控制的信號(hào)輸入由 “A、 B、 C、 D、 E、 F、 G、 DP”端口輸 入,而控制位顯示的控制信號(hào)由 “CS CS CS3”端口輸入,同時(shí)該動(dòng)態(tài)數(shù)碼顯示采用共陰型數(shù)碼管,單片機(jī)芯片的 P0 口和 P4 口引腳構(gòu)成了 8 位 LED 數(shù)碼管驅(qū)動(dòng)電路,P0 口控制數(shù)碼管的筆段顯示, P4 口控制數(shù)碼管的位顯示;共陰型數(shù)碼管的筆段引腳是二極管的正極,所有二極管的負(fù)極連在一起,構(gòu)成了公共端,即片選端,對(duì)于這種數(shù)碼管的驅(qū)動(dòng),要求在片選端提供電流,為此,使用了 PNP 型三極管作為片選端的驅(qū)動(dòng),共使用 8 只三極管,所有三極管的發(fā)射機(jī)連在一起,接到負(fù)電源端,他們的基極則分別連到 和 。 這樣,當(dāng) 和 中某引腳輸出是高電平時(shí),三極管不導(dǎo)通,不能給相應(yīng)位的數(shù)碼管供電,該位數(shù)碼管的所有筆段都不亮,反之,如果某引腳是低電平時(shí),三極管導(dǎo)通,可以給相應(yīng)的數(shù)碼管供電,該位數(shù)碼管是否點(diǎn)亮,點(diǎn)亮哪些筆段,取決于這些筆段引腳是高或低電平。 所有 8 位數(shù)碼管的筆段連在一起,通過(guò)先留電阻后接到 P0 口,因此,究竟哪些筆段亮,取決于 P0 口的 8 根線是輸出高電平還是低電平。 原理理圖中把所有數(shù)碼管的 8 個(gè)筆劃段 ADP 同名端連在一起,而每一個(gè)顯示器的公共極 COM是各自獨(dú)立地受 I/O 線控制。 CPU向字段輸出口送出字形碼時(shí),所有顯示器接收到相同的字形碼,由 8 個(gè) NPN 的三極管,來(lái)控制這 8 位哪一位工作。 具體的 數(shù)碼管 電路原理圖如下圖 圖 數(shù)碼管電路原理圖 28 LED 數(shù)碼管引腳連接 這里我們利用 STC10F04 單片機(jī)制作一個(gè)三位倒計(jì)時(shí)器作為一個(gè)路口的時(shí)間顯示器, P0、 P4 口通過(guò)三極管接數(shù)碼管 其各引腳接法如下表 。其余三個(gè)路口可照樣設(shè)計(jì),只用稍微修改程序即可。 表 數(shù)碼管 引腳連接 6 5 4 3 2 1 9 10 (單片機(jī) 29 腳 ) (單片機(jī) 30 腳 ) (單片機(jī) 31 腳 ) 7 8 11 數(shù)碼管是怎樣來(lái)顯示 1, 2, 3, 4 呢?數(shù)碼管實(shí)際上是由 7 個(gè)發(fā)光管組成 8字形構(gòu)成的,加上小數(shù)點(diǎn)就是 8 個(gè)。我們分別把他命名為 A, B, C, D, E, F,G, DP。 由于接法為共陰接法,那么為 1(高電平)是亮,為 0(低電平)是滅。從高到低排列 ,( )寫(xiě)成二進(jìn)制,再轉(zhuǎn)為 16 進(jìn)制。我們可以根據(jù)硬件的接線把數(shù)碼管顯示數(shù)字編制成一個(gè)表格,如下表 , 以后直接調(diào)用就行了。 表 共陰極字型編碼表 顯示 A F E D DP C G B 共陰筆段碼 0 1 1 1 1 0 1 0 1 0xf5 1 0 0 0 0 0 1 0 1 0x05 2 1 0 1 1 0 0 1 1 0xb3 3 1 0 0 1 0 1 1 1 0x97 4 0 1 0 0 0 1 1 1 0x47 5 1 1 0 1 0 1 1 0 0xd6 6 1 1 1 1 0 1 1 0 0xf6 7 1 0 0 0 0 1 0 1 0x85 8 1 1 1 1 0 1 1 1 0xf7 9 1 1 0 1 0 1 1 1 0xd7 A 1 1 1 0 0 1 1 1 0xe7 B 0 1 1 1 0 1 1 0 0x76 C 1 1 1 1 0 0 0 0 0xf0 D 0 0 1 1 0 1 1 1 0x37 E 1 1 1 1 0 0 1 0 0xf2 F 1 1 1 0 0 0 1 0 0xe2 段碼位 D7 D6 D5 D4 D3 D2 D1 D0 顯示段 A F E D DP C G B 29 動(dòng)態(tài)掃描 在本電路中,使用的是動(dòng)態(tài)掃描顯示方法。在動(dòng)態(tài) LED 顯示程序中,需要不停地掃描字位口,從而實(shí)現(xiàn)不同字位的數(shù)據(jù)的動(dòng)態(tài)顯示效果。 動(dòng)態(tài)借口采用各數(shù)碼管循環(huán)輪流顯示的方法,由于一次只能讓一個(gè)數(shù)碼管顯示,因此,要顯示 8 位的數(shù)據(jù),必須經(jīng)過(guò)讓數(shù)碼管一個(gè)一個(gè)輪流顯示才可以,同時(shí)每個(gè)數(shù)碼管顯示的時(shí)間大約在 1ms 到 4ms 之間,所以為了保證正確顯示,我們必須每隔 1ms,就得 刷新一個(gè)數(shù)碼管。而這刷新時(shí)間我們采用單片機(jī)的定時(shí) /計(jì)數(shù)器 0 來(lái)控制,每定時(shí) 1ms 對(duì)數(shù)碼管刷新一次, T0 采用方式 2。 在進(jìn)行數(shù)碼顯示的時(shí)候,要對(duì)顯示單元開(kāi)辟 8 個(gè)顯示緩沖區(qū),每個(gè)顯示緩沖區(qū)裝有顯示的不同數(shù)據(jù)即可。 對(duì)于現(xiàn)實(shí)的字形碼數(shù)據(jù)我們采用查表方法來(lái)完成。 數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的 8 個(gè)顯示筆劃 a,b,c,d,e,f,g,dp的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極 COM 增加位選通控制電路,位選通由各自獨(dú)立的 I/O 線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有 數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通 COM 端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的 COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為 1~ 2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能 夠節(jié)省大量的 I/O 端口,而且功耗更低。 數(shù)碼管顯示程序的功能 (1)定義共陰極字型編碼表 即確定發(fā)光數(shù)碼管的字型對(duì)應(yīng)在單片機(jī)中的變量和參數(shù)。 系統(tǒng)程序中對(duì)共陰極字型編碼表的定義如下: Unsigned char code md[]={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0xa185,0xf7,0xd7,0xe7,0x76,0xf0,0x37,0xf2,0xe2,0x00}。 //0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 30 LED 數(shù)碼管顯示某個(gè)數(shù)字時(shí),就需要調(diào)用 md[]函數(shù)中相應(yīng)的數(shù)字來(lái)驅(qū)動(dòng)數(shù)碼管。 (2)顯示 得到字型和字位的地址后,向不同的字位送數(shù)據(jù),進(jìn)行數(shù)據(jù)的顯示,顯示的內(nèi)容包括各位和十位,用取模和取余來(lái)確定。結(jié)果分別用兩個(gè) 6 位的數(shù)碼管顯示(即東南西北四個(gè)路口各三個(gè))。 程序中對(duì) LED 數(shù)碼管個(gè)位和十位的定義如下: shu0=35%10。 shu1=35/10。 由于本程序采用的是三位 LED 數(shù)碼管,所以程序中必須對(duì) LED 數(shù)碼管位的選擇進(jìn)行判斷并顯示。系統(tǒng)中位的判斷及顯示程序如下: unsigned char shu0,shu1,shu2,tc=0。 void dissmg() { if(tc==0) { smdis=md[shu0]。 weishuang0 = 0。 weishuang1 = 1。 weishuang2 = 1。 } else if(tc==1) { smdis=md[shu1]。 weishuang0 = 1。 weishuang1 = 0。 weishuang2 = 1。 } else if(tc==2) { smdis=md[shu2]。 weishuang0 = 1。 weishuang1 = 1。 weishuang2 = 0。 } } 判斷 tc 的值是為 0 還是為 1,還是為 2,進(jìn)而根據(jù) tc 的值執(zhí)行相應(yīng)的 if 語(yǔ)氣或 else if 語(yǔ)氣。假如 tc==0,則執(zhí)行第一條 if 語(yǔ)氣,從 md[]數(shù)組中選與 shu0 相對(duì)應(yīng)的值賦給 smdis,并判斷出 LED 數(shù)碼管位的選擇,其他兩個(gè) else if 語(yǔ)氣類(lèi)似。 鍵盤(pán)掃描模塊 中斷的概念:中斷時(shí)指中央處理器 CPU 正在執(zhí)行程序,處理某件事情的時(shí)候,外部發(fā)生了某一件事情,請(qǐng)求 CPU馬上處理, CPU 暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事情,處理完了以后,再返回到原來(lái)被中斷的地方,繼續(xù)原來(lái)的工作。 中斷系統(tǒng)一般應(yīng)有的功能: ( 1) 實(shí)現(xiàn)中斷及返回 當(dāng)某一個(gè)中斷源發(fā)出中斷申請(qǐng)時(shí),若允許響應(yīng)這個(gè)中斷請(qǐng)求 , CPU必須在現(xiàn)有的指令執(zhí)行完以后,把斷點(diǎn)處的 31 PC 值(即下一條應(yīng)執(zhí)行的指令地址)壓入堆棧保存起來(lái),稱(chēng)為保護(hù)斷點(diǎn),這是由硬件自動(dòng)完成的。 ( 2)保護(hù)現(xiàn)場(chǎng) 響應(yīng)中斷請(qǐng)求后,將有關(guān)的寄存器內(nèi)容和標(biāo)志位壓入堆棧保存起來(lái),這稱(chēng)為保護(hù)現(xiàn)場(chǎng)。 ( 3)恢復(fù)現(xiàn)場(chǎng) 執(zhí)行中斷服務(wù)程序后,恢復(fù)原保留的寄存器的內(nèi)容和標(biāo)志位的狀態(tài),稱(chēng)為恢復(fù)現(xiàn)場(chǎng),并執(zhí)行返回指令。 中斷系統(tǒng)介紹: 51 系列單片機(jī)的中斷系統(tǒng)是 8 位單片機(jī)中功能較強(qiáng)的,可以提供 5 個(gè)中斷源( 52 子系列 是 6 個(gè)),具有兩個(gè)中斷優(yōu)先級(jí),可實(shí)現(xiàn)兩級(jí)中斷嵌套。 ( 1) 基本概念 5 個(gè)中斷源 外部中斷源為: INT0、 :定時(shí)器 /計(jì)數(shù)器 0、 1 溢出中斷,串口中斷( T、 R)。使用定時(shí)器時(shí)溢出會(huì)產(chǎn)生中斷,使用計(jì)數(shù)器方式時(shí)溢出時(shí)也會(huì)引起中斷。 中斷允許部分 源允許中斷和總允許中斷,只有當(dāng)二者同時(shí) “允許 ”(接通)時(shí)才可能產(chǎn)生中斷(由中斷允許寄存器 IE 控制)。 中斷優(yōu)先級(jí)部分 由中斷優(yōu)先級(jí)寄存器 IP 控制,可設(shè)置成高、低優(yōu)先級(jí)。 查詢硬件、中斷源標(biāo)識(shí)符、中斷矢(向)量 查詢哪些 中斷申請(qǐng)了中斷,排好中斷響應(yīng)的次序,設(shè)置相應(yīng)的中斷源標(biāo)識(shí)符,向 CPU申請(qǐng)中斷; CPU響應(yīng)中斷時(shí)從中斷矢量單元中取出中斷服務(wù)程序的入口地址,程序轉(zhuǎn)向中斷服務(wù)程序。 ( 2) 中斷允許寄存器 IE 中斷允許寄存器既可按字節(jié)尋址,也可按位尋址,控制字如下所示。 EA X ET2 ES ET1 EX1 ET0 EX0 IE7 IE6 IEO EA:中斷總允許位。 EA=0 時(shí),關(guān)閉總開(kāi)關(guān),禁止一切中斷; EA=1 時(shí),接通總開(kāi)關(guān),才可能使各個(gè)中斷源 的請(qǐng)求傳到 CPU。 IE6:保留位。 ET2:定時(shí)器 /計(jì)數(shù)器 2 溢出中斷允許位。為 0 時(shí)禁止該類(lèi)中斷,為 1 時(shí)允許該類(lèi)中斷。 ES:串行口收、發(fā)中斷允許位。為 0 時(shí)禁止該類(lèi)中斷,為 1 時(shí)允許該類(lèi)中32 斷。 ET1:定時(shí)器 /計(jì)數(shù)器 1 溢出中斷允許位。為 0 時(shí)禁止該類(lèi)中斷,為 1 時(shí)允許該類(lèi)中斷。 EX1:外部中斷 0( INT0 或 )允許位。為 0 時(shí)禁止該類(lèi)中斷,為 1 時(shí)允許該類(lèi)中斷。 ET0:定時(shí)器 /計(jì)數(shù)器 0 溢出中斷允許位。為 0 時(shí)禁止該類(lèi)中斷,為 1 時(shí)允許該類(lèi)中斷。 EX0:外部中斷 0( INT0 或 )允許位。為 0 時(shí)禁止該類(lèi)中斷 ,為 1 時(shí)允許該類(lèi)中斷。 需要注意的是,要使某個(gè)中斷源的中斷申請(qǐng)得到響應(yīng),必須保證 EA=1 和相應(yīng)的允許位為 ,要使定時(shí)器 0 與外部中斷 0 的中斷得到響應(yīng),必須保證EA、 ET0、 EX0 為 1. 通過(guò)上面對(duì)中斷允許寄存器的解釋?zhuān)Y(jié)合設(shè)計(jì)程序?qū)χ袛嗟某跏蓟? EA = 1。 ET0 = 1。 EX0=1。 EX1=0。 可知,由允許中斷的條件:總允許中斷和源允許中斷都接通才能產(chǎn)生中斷 。由 EA= ET0= EX0=1 得出初始化程序設(shè)定定時(shí)器 T0 和外部中斷 INT0 中斷。 由 EA= EX1=0 得出初始化程序設(shè)定禁 止外部中斷 INT1 中斷。 ( 3) 中斷優(yōu)先級(jí)控制寄存器 IP PS PT1 PX1 PT0 PX0 PX0:外部中斷 0
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1