<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于可編程控制的交通紅綠燈模擬系統設計

基于可編程控制的交通紅綠燈模擬系統設計

作者: 時(shí)間:2009-11-20 來(lái)源:網(wǎng)絡(luò ) 收藏

1. 需求分析

本文引用地址:http://dyxdggzs.com/article/163472.htm

  本首先必須了解路燈的亮滅規律。設有一個(gè)十字路口,1、3 為南,北方向, 2、4 為東,西方向,初始態(tài)為4 個(gè)路口的紅燈全亮。之后, 1、3 路口的綠燈亮,2、4 路口的紅燈亮, 1、3 路口方向通車(chē)。延遲一段時(shí)間后, 1、3 路口的綠燈熄滅,而1、3 路口的黃燈開(kāi)始閃爍。閃爍若干次后, 1、3 路口的紅燈亮, 同時(shí) 2、4 路口的綠燈亮, 2、4 路口方向開(kāi)始通車(chē)。延遲一段時(shí)間后, 2、4 路口的綠燈熄滅,而黃燈開(kāi)始閃爍。閃爍若干次后,再切換到1、3 路口方向。之后,重復上述過(guò)程。對于各組燈的亮滅,我們運用的是8255A 的輸入輸出功能。

  2. 對于各組燈亮滅的時(shí)間方案

  A 利用軟件 C程序來(lái)完成對時(shí)間延時(shí)的。

  此方案特點(diǎn):軟件定時(shí)是最簡(jiǎn)單的定時(shí)方法,它不需要硬件支持,只要讓機器循環(huán)執行某一條或一系列指令,這些指令本身并沒(méi)有具體的執行目的,但由于執行每條指令都需要一定的時(shí)間,重復執行這些指令就會(huì )占用一段固定的時(shí)間。因此,習慣上將這種延時(shí)方法稱(chēng)為軟件延時(shí)。通過(guò)正確的選取指令和改變定時(shí)時(shí)間,靈活方便,而且節省費用。這種方法的缺點(diǎn)明顯就是CPU 的利用律太低,在指定的循環(huán)期,CPU 不能去做任何其他有用的工作,而僅僅是在反復的循環(huán),等待預定的定時(shí)時(shí)間到來(lái),在許多情況下這樣是不允許的[1]。比如,對動(dòng)態(tài)存儲器的定時(shí)刷新操作,只要處于開(kāi)機狀態(tài),就需要一直不停地進(jìn)行下去,顯然不能采用軟件延時(shí)。

  B.利用芯片8253 芯片定時(shí)的亮滅時(shí)間。

  此方案特點(diǎn):定時(shí)器/計數器利用硬件電路和中斷的方法控制定時(shí),定時(shí)時(shí)間和范圍完全有軟件來(lái)確定和改變,并有微處理器的時(shí)鐘信號提供時(shí)間基準,因這種時(shí)鐘信號由晶體震蕩器產(chǎn)生,故計時(shí)精確穩定。但該時(shí)鐘信號頻率太高,所以要把它送到專(zhuān)門(mén)的計數器/定時(shí)器芯片進(jìn)行分頻后,才能產(chǎn)生個(gè)中所需要的定時(shí)信號。用定時(shí)器/計數器電路進(jìn)行定時(shí)時(shí),先要根據預定的定時(shí)時(shí)間,用指令對計數器/定時(shí)器芯片設定計算初值,然后啟動(dòng)芯片進(jìn)行工作。計數器一旦開(kāi)使工作后,CPU 就可以去做別的工作了,等計數器到了預定的時(shí)間,變自動(dòng)形成一個(gè)輸出信號,該信號可以向CPU 提出中斷請求,通CPU 定時(shí)時(shí)間已到,使CPU 做相應的處理[2]?;蛘咧苯虞敵鲂盘枂?dòng)設備去工作。這種方法不但顯著(zhù)提高了CPU 的利用率,而且定時(shí)時(shí)間由軟件來(lái)設置,使用起來(lái)十分的靈活方便,加上定時(shí)時(shí)間又很精確,所以獲得了廣泛的應用。

  由上可知,該的目的是控制車(chē)輛的有序流動(dòng),CPU 在程序執行過(guò)程中并沒(méi)有其他的工作要做只是單一的使程序正常運行,所以也就不用考慮其利用率的問(wèn)題的,在從節省資金的方面考慮第一種方案比第二種少用一個(gè)8253,而且第一種方案只用一個(gè)芯片在維修方面也比第二種方案方便。綜合這些因素,我們最終選擇第一種方案作為我們的方案。

  3. 電路設計及功能

  3.1 8255 原理及接線(xiàn)圖

  8255 是一種通用并行輸入輸出接口芯片,通過(guò)對它進(jìn)行編程,芯片可工作于不同的工作方式,用8255 作接口時(shí),通常不需要附加外部邏輯電路就可直接為CPU 與外設之間提供數據通道,8255 內部包含3 個(gè)8 位輸入輸出端口A(yíng),B,C,通過(guò)外部24 根輸入輸出線(xiàn)與外設交換數據或進(jìn)行通信聯(lián)絡(luò )。端口A(yíng) 和端口B 都可以用作一個(gè)8 位的輸入口或8 位的輸出口,出口既可作8 位輸入輸出口又可分為兩個(gè)4 位輸入輸出口,還常常用來(lái)配合A口和B 口工作,用來(lái)產(chǎn)生A 口和B 口的端口狀態(tài)信號,8255A 有兩類(lèi)控制字,一類(lèi)控制字用來(lái)定義各端口的工作方式,稱(chēng)為方式選擇控制字,另一類(lèi)控制字用于對C 端口的任一位置進(jìn)行置位或者復位操作,稱(chēng)為置位復位控制字對8255A 進(jìn)行編程時(shí)這兩種控制字都要寫(xiě)入控制字寄存器中,但方式選擇控制字的D7 位總是1,而置位復位控制字的D7 位總是0[3]。

  3.2 設計應注意的問(wèn)題

  A .程序中應設定好8255A 的工作模式,使三個(gè)端口均工作于方式0,并處于輸出態(tài)[4]。

  B. 8255A 的A 端口地址為:300H, B 端口地址為: 301H, C 端口地址為: 302H, 控制口地址為:303H

  C.8255A 可編程并行接口芯片的特性和編程命令: 8255A 具有兩個(gè)人8 位(A 口和B 口)和兩個(gè)4 位(C 口高/低4 位)并行I/O 端口。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>