久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7221|回復: 2
打印 上一主題 下一主題
收起左側

單片機心形流水燈與交通燈代碼+Proteus仿真實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:861525 發表于 2020-12-18 15:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機交通燈,流水燈設計,源代碼
共分為兩部分,一份是交通燈,一份是心形流水燈。
1.背景
1.1交通燈
現在交通燈已經在我們社會上普遍使用,它在當今社會發揮著很大的作用。交通燈的出現直接或者間接挽救了無數人的生命,并且使得社會更加有秩序。并且我國是一個人口大國,汽車工業的發展處于快速增長的階段,城市現代化程度不斷提升,汽車需求與交通量也迅速增長,但交通運輸帶來的交通擁堵、交通事故和環境污染等負面影響也日益突出,交通問題已經成為全球性的難題。為了解決汽車和道路的矛盾,又不影響經濟的發展,最有力的方法便是健全道路交通,采用交通燈控制系統。
交通燈控制系統最早可以追溯到19世紀,1895年以燃氣為光源用以指揮車馬流通的交通燈就已經出現在倫敦的主要街頭了,它是紅藍兩色機械扳手式交通燈,這是世界上最早出現的交通信號燈。隨后又在英國出現了以煤氣為光源的紅綠燈,但不久后由于煤氣爆炸的緣故,這種紅綠燈便被取消了,但它以紅綠為交通燈的顏色,并規定紅色代表“停止”,綠色代表“注意”,所以這能夠算上世界上最早出現的紅綠燈。而最早出現的電氣啟動交通燈是在美國,這種紅綠燈有紅黃綠三色圓形投光器組成,這個時候才有了現在所熟知的紅燈亮代表停止,綠燈亮代表通行。
1.2心形流水燈
大街上隨處可見的流水霓虹燈都是處于單片機的控制,這說明單片機在生活中的應用也是隨處可見的。我所設計的這個心形流水燈閃爍起來先是如星星般閃爍,然后是按照紅綠交替流水。流水燈可用于酒店,KTV等娛樂場所。
2.兩個軟件介紹
交通燈控制系統的設計中,在仿真方面我主要用到Keil uVision4和Proteus兩個仿真軟件,先采用Keil 對C語言進行編譯調試,調試成功之后生成HEX文件,再在Proteus中繪制出交通燈仿真實驗圖,將生成的HEX文件燒寫進實驗圖的單片機中,之后進行仿真測試,在此之前我們先了解一下Keil uVision4和Proteus這兩個仿真軟件。
2.1Keil uVision4簡介
隨著單片機技術的不斷發展,單片機的開發應用也越來越多,相對應的出現了很多單片機語言的開發軟件,KEIL軟件是目前最通用的MCS-51系列單片機的編程開發軟件,KEIL是一個集C編譯器、宏匯編、連接器、庫管理和仿真調試器在內的系統開發軟件。本次設計使用的是Keil uVision4,其操作界面如圖4-1所示。它具有靈活的窗口管理系統,方便了開發人員的使用。能夠完全控制窗口位置的任何地方。有效地利用屏幕空間組織多個窗口,提供一個高效的開發環境
2.2   Proteus簡介
Proteus是目前較好用的仿真單片機和外圍器件的工具軟件,受到大多數單片機開發應用的愛好者的青睞,它能將電路仿真、PCB設計及虛擬模型仿真軟件三合一的仿真平臺。Proteus的功能非常強大,它支持各種系列的處理器模型,這對于硬件設計者來說是一個福音,若是直接做成硬件不提前進行仿真的話,非常浪費材料,而且浪費時間,但有了仿真,就可以提高制作硬件的效率,不需要在硬件做出之后才來驗證正誤。Proteus的操作方式相對來說沒有那么的難,其操作界面如圖
3.仿真實現
設計選擇在keil中進行軟件編程,在Proteus中繪制電路圖,現在簡單的介紹keil和Proteus相結合的仿真步驟:
(1) 安裝好Keil和Proteus軟件。
(2) 進入keil的開發界面,創建一個新工程Project,并為該項目選擇合適的單片機元件,本次設計選擇的是AT89C51,新建文件,將程序編寫進此文件,并將文件加入工程中。
(3) 程序編寫成功之后,進行工程編譯,檢查的結果會出現在操作界面的Build Output窗口中,根據提示的錯誤修改程序,直至程序無錯誤,單擊Options for Target選項,在彈出的窗口選項欄中選擇Output這一欄,在create HEX file前打上勾表示創建,創建成功后結果會在Build Output窗口中顯示。
(4) 進入Proteus的ISIS操作界面。
(5) 在Pick devices中選擇電路所需的元件,將其端口連接起來,組成完整的仿真電路圖。
(6) 確保電路圖無誤之后,將HEX文件燒寫進單片機中。
(7) 運行仿真圖,檢查是否達到要求。
4.交通燈的設計思路
要設計并制作一個交通燈控制系統,就必須了解到城市的交通規則以及道路口中交通燈是如何設計并運作的。交通路口模型如圖1-1所示。

                 圖4-1交通路口模型

如圖1-1所示,一個十字路口分為東南西北四個方向,在任一時刻只有其中一個方向可以通行,如果南北方向紅燈亮即禁止通行時,東西方向上表示能夠通行的綠燈便亮了,為了給在紅燈滅、綠燈亮的那一瞬間還在道路中間行駛的汽車一個緩沖的時間,避免交通事故的發生,我國學者胡汝鼎提出在紅燈與綠燈之間加一個表警示作用的黃燈。于是,便出現了紅燈停,綠燈行,黃燈等一等這種說法。從一個方向通行至另一個方向通行,中間需要經過短暫的緩沖時間,所以需要把交通狀態分為4種:
(1) 東西方向紅燈滅,同時綠燈亮;南北方向黃燈滅,同時紅燈亮,倒計時25秒。此時東西方向允許通行,南北方向禁止通行。
(2) 南北方向紅燈滅,同時綠燈亮;東西方向黃燈滅,同時紅燈亮,倒計時30秒。此時南北方向允許通信,東西方向禁止通行。
(3) 東西方向綠燈滅,同時黃燈亮,倒計時5秒;此時南北方向依舊是紅燈亮,倒計時5秒。此時東西方向除了駛出停車線的車輛均處于等待狀態。
(4) 南北方向綠燈滅,同時黃燈亮,倒計時5秒;東西方向依舊是紅燈亮,倒計時5秒。此時南北方向除了已經駛出停車線的車輛均處于等待狀態。
表1-1表示燈狀態和行止狀態的關系:
表4-1 交通狀態及紅綠燈狀態

狀態1
狀態2
狀態3
狀態4
東西向紅燈
東西向黃燈
東西向綠燈
東西方向狀態
通行
等待
禁止
等待
南北向紅燈
南北向黃燈
南北向綠燈
南北方向狀態
禁止
禁止
通行
禁止
4.1 交通系統的功能要求
本設計是以AT89C51單片機為控制核心的交通燈控制系統,能夠模擬一般的交通道路口通行情況,分別用紅燈表示禁止,黃燈表示等待,綠燈表示通行,用數碼顯示管進行倒計時顯示,同時還能模仿交通中的一些緊急情況,如:黃燈常亮的夜間模式,緊急車輛通行模式,當有緊急的車輛需要通行時,交通員按下緊急通行的按鍵,東西南北方向上皆亮紅燈,讓緊急車輛先通過。東西南北方向上的顯示倒計時也是不一樣的,比如,東西方向上紅燈的倒計時要比南北方向上綠燈的倒計時多5秒,正好空出黃燈的計數時間。
4.2 單片機的功能要求
本設計共有四個二位陰極數碼管,用來顯示東西南北四個方向上的時間,單片機P0口接上拉電阻,同時接74HC245以起到驅動放大的作用,四個共陰極數碼管的陽極接到74HC245的另一端,即單片機通過74HC245對數碼管進行控制。數碼管的陰極接到51單片機的P1口上。一共有12個LED發光二極管,紅黃綠三種顏色各4個。每個路口分別接紅,黃,綠三種顏色的燈各一個,再將它們接到單片機的P2口上,表示控制的按鍵接在單片機的P3口。這樣就構成了交通燈控制系統的基本構架。

4.3 顯示模塊功能
本設計的顯示模塊分為數碼管顯示和LED發光二極管顯示兩種,數碼顯示管主要用來顯示數字倒計時,因為若只有紅綠燈顯示,駕駛員沒有辦法知道此時還有多久交通燈的狀態會切換,結合數碼管倒計時顯示,方便駕駛員判斷是否通過馬路或者是等待直到下次可通行時。大量的數據顯示,數碼管和LED發光二極管相結合的方式更受駕駛員和行人的歡迎,所以現在普遍的交通燈控制系統都是采用兩者相結合的方式,這樣增加了道路的安全系數,便于駕駛員和行人面對的情況作出判斷,而僅僅通過LED顯示是沒辦法達到這種效果的,目前的交通燈控制系統采用兩種顯示結合的方式,使道路通行更安全可靠。

4.4按鍵模塊功能
按鍵模塊是用來設置交通燈控制系統的運行狀態的,按鍵依次功能為:深夜模式的黃燈閃爍;禁行模式的紅燈常亮;東西通行;南北通行;確定按鍵是配合時間加減按鍵使用的,當調到了所需要的時間按下確認按鍵系統就可以運行了;時間加鍵按鍵,默認的狀態下時間加減都指的是東西方向上的時間加減,此時東西方向是綠燈亮,將時間調節好之后南北方向紅燈時間會比東西方向綠燈時間多出5秒的黃燈時間;切換調試方向,默認狀態下時間加減按鍵指的是東西方向上時間加減,但若是想調節南北方向上時間加減,必須按下切換調試方向按鍵,這時候南北方向亮綠燈,東西方向上紅燈亮的時間比南北方向上綠燈亮的時間多5秒,作為黃燈閃爍的時間;復位鍵可以將整個系統復位到初始的默認狀態。
5.單片機引腳的介紹
單片機分為51和52兩個系列。它們的基本結構大致相同,區別僅在存儲器、計數器、中斷源的配置方面。本次設計中,我采用的是AT89C51單片機,它的內部資源主要包括:
一個8位的CPU。
一個片內振蕩器及時鐘電路。
4K字節的ROM程序存儲器。
128字節的RAM數據存儲器。
兩個16位定時/計數器。            
64K的可尋址外部數據存儲器和64K外部程序存儲器。
32個可編程的I/O端口。
一個可編程全雙工串行端口。
五個中斷源、兩個優先級嵌套中斷結構。
AT89C51的單片機有40個引腳,電源和振蕩引腳占4位,表示控制的引腳占4個,剩下的便是輸入輸出接口引腳,4個并行I/O口,一共占用32個引腳。單片機的引腳圖如圖2-1所示。

5.1單片機的最小系統
單片機的最小系統是指讓單片機能夠正常運行所需的最基本的硬件配置,包括電源,晶體振蕩電路和復位電路。如果單片機內部程序的大小不超過4KB,那么單片機內部的程序存儲器足夠存儲,這個時候單片機不需要外擴程序存儲器,單片機的最小系統就能夠使它運行。單片機的最小系統如圖2-2所示。
        圖5-1AT89C51單片機引腳圖
5.2晶體振蕩電路
單片機的內部時鐘信號便是通過芯片的內部振蕩電路來實現的。由于51單片機的晶體振蕩頻率大致在6MHz~40MHz之間,所以通常選用6MHz或12MHz的石英晶體。晶體振蕩頻率越高,單片機的時鐘頻率也越高,單片機的運行速度也就越快。所以把振蕩電路比作單片機的心臟。
復位電路
在此次交通燈控制系統的設計中,專門有一個復位按鍵,用來將交通燈系統的顯示值復位到默認狀態。通常的單片機的仿真中是不需要將復位電路畫出來的,但本此設計用到了復位按鍵,所以就將其表示出來了。在單片機通電之后,其內部的各種寄存器都處在隨機狀態,只有當單片機的復位信號持續兩個以上的機器周期時,它才能夠完成復位的初始化操作。復位一邊有兩種形式,第一是上電復位;第二是上電與按鍵均有效的復位。本此設計選擇的是第二種復位方式,即上電與按鍵均有效的復位方式。
                                               圖5-2 單片機的最小系統
5.3 顯示裝置

在此次交通燈控制系統的設計中,采用了三種顏色的LED發光二極管模仿紅、黃、綠三種顏色的交通燈,用LED數碼顯示管模仿交通燈的倒計時裝置。發光二極管是一種能夠將電能轉化為光能的半導體元件,與普通的半導體二極管一樣它具有單向導電性,在發光二極管的負向加上電壓,它不會發光。同時它還具有環保節能,低耗壽命長等特點。
LED數碼顯示管是由發光二極管組成,常見的LED數碼管是“8”字形的,本此設計也是在各個方向上采用兩位8字形的二極管作為信號燈的倒計時顯示裝置,8字形的數碼管共分為8段,每一段都由一個發光二極管組成。數碼管有共陰極和共陽極之分,顧名思義共陰極就是把各段發光二極管的陰極連在一起,當數碼顯示管公共的陰極接地時,如果將發光二極管的陽極接在高電平上,那么發光二極管就會發光。共陽極就是把各段發光二極管的陽極連接起來接上高電平,此時若時二極管的陰極接上低電平,它便發光顯示相應的段。數碼管就是通過發光二極管不同的暗亮組合來顯示不同的數字。八段發光二極管中有一個圓點型發光二極管,用于顯示小數點,用DP表示。8段LED數碼管的結構及外形如圖2-3所示。
其中,共陰極和共陽極的段碼相加為FFH,所以我們只要記住共陰極的段碼,對其段碼進行按位取反就能得到共陽極段碼。為了方便,本此設計我選擇的是共陰極的數碼管。
圖5-3 八段數碼管的結構示意圖

6.系統的軟件設計

6.1整體程序設計
交通燈控制系統除了硬件設計部分,還需要軟件編程來控制單片機運行,目前最常用的單片機編程語言主要有匯編語言和C語言,本此設計采用了C語言來編寫程序,能夠直接訪問物理地址,可以進行位操作。編寫程序時我把整個程序分為了幾個模塊,然后用主函數調用的形式將他們聯系成一個整體,這樣是程序寫起來稍微簡單一點,全部控制程序實際上分這幾個模塊:消抖動延時程序,中斷服務子程序,狀態燈控制程序,LED顯示程序,鍵盤設置處理程序,緊;蜻`規判斷程序,紅綠燈時間調整程序等。整體程序的框圖如圖3-1所示:


圖6-1 整體程序框圖
6.2 子程序模塊設計

6.2.1 按鍵掃描子程序
交通燈控制系統需要處理多變的狀況,這些都是操作者通過按鍵來實現的,那么交通等控制系統是如何判斷現在應該運行那種情況呢,這時候按鍵掃描子程序是非常重要的,首先判斷按鍵是否按下,此時我們調用顯示來消除抖動,確定按鍵按下才會進行下一步程序,按鍵的一端接在單片機的P3口,另一端接地。初始狀態是單片機的P3端口是置1的,即為高電平,無按鍵按下時也是高電平,在這樣的情況下,它們其中一個按鍵被按下后,對應的I/O接口就成了低電平。若按鍵釋放對應的I/O口還是恢復成高電平,那么在程序編寫中,只需要查詢電平的狀態就可以知道是否有按鍵按下,是哪個按鍵按下,對應的便知道需要執行那個程序。程序框圖如圖3-2所示。


圖6-2 按鍵掃描子程序框圖
6.2.2顯示子程序
此次設計采用了共陰極數碼管,在開始編程時便對數碼管的字型碼進行了賦值,兩位共陰極數碼管除了有段位碼之外還有兩位位選線,數碼管的共陰極連接在一起引出位選,為了使數碼管能夠正常工作,需要給選位線接低電平。初始的時候P1口置高電平,P0口為低電平,數碼管無顯示。將東西南北時間分別除以10取商,取模得到東西秒十位、東西秒個位、南北秒十位、南北秒個位,再將它們賦值給P0口的字型碼中,此時P1口賦不同的值來控制片選,便可以將東西南北個位和十位的時間送到數碼管中。
6.2.3 外部中斷子程序
此次設計中,使用了外部中斷0與外部中斷1,外部中斷0只允許東西通行,外部中斷1只允許南北通行。其程序框圖如圖3-4所示:

6.2.4定時器中斷子程序

此次設計采用了2個16位的定時器T0、T1,定時方式采用方式1。單片機定時器是通過對機器周期脈沖進行計數,每個機器周期定時器加1,而一個機器周期等于12個振蕩脈沖周期,那么定時器的計算公式為:
定時時間=計數值*機器周期
計數值=216-初值
其中,時間單位為us,本次單片機選用的是12MHz的晶體振蕩頻率,所以機器周期為1us。
在初值為零的情況下,計數器的最大計數時間是65.536ms,而程序需要的定時時間為50ms,所以需要對計數器賦初值。初值為15.536ms,即令THn=0x3C;TRn=0xB0。此時定時器在此基礎上計數器再記50000個數后,脈沖計數器溢出,單片機向CPU申請中斷。我們只需要讓定時器中斷的次數為20次得到的時間就是1秒。這樣就可以精確的控制數碼管顯示時間,也可以切換處理各個狀態。中斷程序的流程圖如圖3-3所示。



圖3-3 中斷程序流程圖
6.2.5 顯示子程序
此次設計采用了共陰極數碼管,在開始編程時便對數碼管的字型碼進行了賦值,兩位共陰極數碼管除了有段位碼之外還有兩位位選線,數碼管的共陰極連接在一起引出位選,為了使數碼管能夠正常工作,需要給選位線接低電平。初始的時候P1口置高電平,P0口為低電平,數碼管無顯示。將東西南北時間分別除以10取商,取模得到東西秒十位、東西秒個位、南北秒十位、南北秒個位,再將它們賦值給P0口的字型碼中,此時P1口賦不同的值來控制片選,便可以將東西南北個位和十位的時間送到數碼管中。

6.2.6 外部中斷子程序
此次設計中,使用了外部中斷0與外部中斷1,外部中斷0只允許東西通行,外部中斷1只允許南北通行。其程序框圖如圖3-4所示:

7.交通燈結果展示
7.1交通燈部分代碼展示

圖7-1部分代碼1

                 圖7-2部分代碼展示2

7.2交通燈部分結果展示
                   圖7-3夜間模式




              圖7-4禁止模式

                      圖7-5東西可行,南北禁止



8.心形流水燈8.1心形流水燈的設計思路
大街上隨處可見的流水霓虹燈都是處于單片機的控制,這說明單片機在生活中的應用也是隨處可見的。我所設計的這個心形流水燈閃爍起來先是如星星般閃爍,然后是按照紅綠交替流水。
8.2部分代碼展示
                    圖8-1流水燈部分代碼展示1
                         圖8-2流水燈部分代碼展示2
8.3心形流水燈結果展示

                                圖8-3流水燈閃爍展示





                     圖8-4流水燈左邊漸變展示

8.4 心形流水燈測試圖

8.5結果分析
根據仿真結果可知,本次設計能夠準確并徹底的完成設計要求,完成了心形流水燈的設計,實現了LED燈的循環點亮、依次熄滅等基本功能,并且還實現了對角閃亮、間隔閃亮、順時針閃亮,逆時針閃亮等多種功能。
9總結
通過這次設計,使得我更加了解了實驗所使用的兩個軟件,并且了解了仿真過程中的一些問題。
首先是軟件仿真時的一些馬虎問題,如引腳標錯等等。
其次是對自己所學習過的內容更加了解了。如中斷,包括那些中斷,在什么情況下會用到什么中斷。還學會了一些簡單的代碼。因為之前仿真過很多的實驗,所以兩個軟件用起來算是得心應手。

全部資料51hei下載地址:
51hei設計.rar (1.06 MB, 下載次數: 100)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:863705 發表于 2020-12-20 13:36 | 只看該作者
你好,我有問題想要咨詢你,方便回帖嗎?
回復

使用道具 舉報

板凳
ID:729845 發表于 2021-4-22 14:10 | 只看該作者
沒有工程,就只有截圖
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 性色综合 | 亚洲欧美日韩精品久久亚洲区 | 高清国产一区二区 | 亚洲欧美日韩精品久久亚洲区 | 日韩欧美国产一区二区三区 | 国产精品爱久久久久久久 | 黄色小视频入口 | 国产精品久久久久久久久久久新郎 | 毛片综合 | 午夜精品一区二区三区三上悠亚 | 国产伦精品一区二区三区高清 | 999免费视频| 日韩在线欧美 | 国产亚洲一区二区三区在线 | 免费观看成人鲁鲁鲁鲁鲁视频 | 成人影音| 高清不卡毛片 | 久久伊人影院 | 国产高清在线精品 | 日本在线免费 | 婷婷久久网 | 91精品国产综合久久久密闭 | 成年视频在线观看 | 毛片网站在线观看 | 欧美精品综合在线 | 精品国产欧美一区二区三区不卡 | 国产精品无码久久久久 | 久草在线在线精品观看 | 亚洲成人网在线播放 | 日韩成人免费在线视频 | 国产精品久久久久久久久久久新郎 | 日韩中出 | 国产成人综合av | 日本免费一区二区三区四区 | 国产亚洲精品美女久久久久久久久久 | 色婷婷av99xx | 日韩a级片 | 国产一区二区中文字幕 | xx视频在线 | 欧美日韩国产一区二区三区 | 国产亚洲成av人片在线观看桃 |