微控制器控制紅綠燈系統

2022-10-11 18:18:05 字數 5348 閱讀 6212

關鍵詞:at89c51; 7448,led

2方案論證

2.1 設計任務

設計基於微控制器的智慧型交通紅綠燈控制系統,要求能通過按鍵或遙控器設定系統引數,系統執行時,「倒計時等資訊」能通過數碼管或點陣發光管顯示,設計時應考慮交通紅綠燈控制的易操作性及智慧型性。以微控制器的最小系統為基礎設計硬體,用組合語言、或c語言設計軟體。通過本設計可以培養學生分析問題和解決問題的能力,掌握mcs51微控制器的硬體與軟體設計方法,從而將學到的理論知識應用於實踐中,為將來走向社會奠定良好的基礎。

東西(a)、南北(b)兩幹道交於乙個十字路口,各幹道有一組紅、黃、綠三個指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行,黃燈亮時車輛及行人小心通過。紅燈的設計時間為45秒,綠燈為40秒,黃燈為5秒。

2.2 方案介紹

方案1設計思想:

採用分模組設計的思想,程式設計實現的基本思想是乙個計數器 , 選擇乙個微控制器,其內部為乙個計數,是十六進製制計數器,模組化後,通過設定或程式清除來實現狀態的轉換, 由於每乙個模組的計數多不是相同, 這裡的各模組是以預置數和計數器計數共同來實現的,所以要考慮增加乙個置數模組,其主要功能細分為,對不同的狀態輸入要產生相應狀態的下乙個狀態的預置數, 如圖中a道和b道,分別為次幹道的置數選擇和主幹道的置數選擇。

方案2 設計思想:

由兩個感測器監視南北方向即a道與東西方向即b道的車輛來往情況,設開關k=1為有車通過,k=0為沒有車通過。則有以下四種情況:

ka=1時:kb=0,表示a有車b沒有車,則僅通行b道:

kb=1,表示a有車b有車,則優先通行a道;

ka=0時:kb=0表示a沒有車b也沒有車,同樣優先通行a道;

kb=1表示a沒有車b有車,則僅通行b道。

方案比較:

方案1用了模組設計,而方案2採用邏輯設計,相比之下1有較強的可讀性和較強的可修改性,而2則在設計上顯得較簡單,設計純樸,便於測試,它的優勢則在於提供了一條較為便捷的解決方案。2首先將許多邏輯關係簡化到極點,而後將其一起整合用較少的晶元去完成所需功能。

我們最終的設計應該盡量使用模組化設計。對工程設計人員來說,將來的產品無論從修改還是公升級考慮對有好處,但另外我們又需將設計簡單化,因此我覺得在設計初期盡可能的簡單化設計,而一旦設計的各項測試通過了,在有可能的條件下將設計模組化,所以本設計以第一方案為主進行。

我們最終的設計應該盡量使用模組化設計。對工程設計人員來說,將來的產品無論從修改還是公升級考慮對有好處,但另外我們又需將設計簡單化,因此我覺得在設計初期盡可能的簡單化設計,而一旦設計的各項測試通過了,在有可能的條件下將設計模組化,所以本設計以第一方案為主進行。

3 交通燈系統硬體設計

3.1 微控制器概述

微控制器是由運算器、控制器、儲存器、輸入裝置以及輸出裝置共五個基本部分組成的。微控制器是把包括運算器、控制器、少量的儲存器、最基本的輸入輸出口電路、序列口電路、中斷和定時電路等都整合在乙個尺寸有限的晶元上。

通常,微控制器由單個積體電路晶元構成,內部包含有計算機的基本功能部件:**處理器、儲存器和i/o介面電路等。因此,微控制器只需要和適當的軟體及外部裝置相結合,便可成為乙個微控制器控制系統。

3.2 系統構成

電路板一塊,at89s51微控制器一片,7448晶元2片,七段數碼管八個。發光二極體20個(8個綠的,8個紅的,4個黃的用於交通控制),100歐姆電阻20個,2個按鍵,2個開關,51k歐姆電阻2個,5v穩定電源1個,3個電容2個單刀單擲開關等。

系統結構框圖:

圖3-1 系統結構框圖

系統工作流程:

(1)程式初始,通過兩個感測器來判斷南北與東西方向車輛通**況。

(2) 情況判定後由at89s51微控制器p1口及部分p2口輸出二進位制訊號控制紅綠黃燈亮的情況。

(3) 確定那些燈亮後,由對應的七段數碼管來進行到計時顯示。由p0口輸出來控制七段數碼管的顯示,而p2口的高四位則用來控制數碼管顯示時的個位和十位

(4)系統是否需要緊急工作狀態,而此任務由外部中斷來實現。

(5)led採用5v的直流電來驅動,低電平。

3.3晶元選擇與介紹

3.3.1 at89s51晶元

選用的at89s51與同系列的at89c51在功能上有明顯的提高,最突出是的可以實現**的程式設計。用於實現系統的總的控制。其主要功能列舉如下:

1) 為一般控制應用的 8 位微控制器

2) 晶元內部具有時鐘振盪器(傳統最高工作頻率可至 33mhz)

3) 內部程式儲存器(rom)為 4kb

4) 內部資料儲存器(ram)為 128b

5) 外部程式儲存器可擴充至 64kb

6) 外部資料儲存器可擴充至 64kb

7) 32條雙向輸入輸出線,且每條均可以單獨做 i/o 的控制

8) 6 個中斷向量源

9) 2 組獨立的 16 位定時器

10) 1 個全雙工序列通訊埠

11) 8751 及 8752 單晶元具有資料保密的功能

12) 單晶元提供位邏輯運算指令

圖3-1 at89c51晶元

3.3.2 7448晶元介紹

7448七段顯示解碼器輸出高電平有效,用以驅動共陰極顯示器。該整合顯示解碼器設有多個輔助控制端,以增強器件的功能,可將微控制器輸出的四位二進位制數轉換成10進製數與七段數碼管顯示對應,用於顯示0—9的數字。

圖3-2 7448晶元

其中lt 為測試輸入。

3.3.3 紅綠led訊號顯示燈及七段數碼顯示管

led 燈的顯示原理:通過同名管腳上所加電平的高低來控制發光二極體是否點亮。如下圖:

圖3-3紅綠led訊號顯示燈

而七段數碼管的顯示不同的字形如 sp,g,f,e,d,c,b,a 管角上加上ofeh所以sp上為0伏,不亮其餘為ttl高電平,全亮則顯示為8。

採用共陰極連線:

表3-4 七段數碼管的顯示

3.3.4 交通燈控制線路圖

圖3-5 原理圖

4 交通燈軟體設計

4.1 程式設計流程圖

程式設計框圖

圖4-1 程式設計框圖

4.2延時的設定

延時方法可以有兩種一種是利用at89s51內部定時器的溢位中斷來確定1秒的時間,另一種是採用軟體延時的方法.

實現1ms秒的方法:

我們採用在主程式中設定乙個初值為0的軟體計數器和使t1定時1毫秒

相應程式**:

d1ms: mov r7,#250 ;1ms延時程式

djnz r7,$

ret4.3子程式的實現

a道通車情況:

start1: mov temp, #25

mov p1, #0f3h

loop1: acall delay

dec temp

mov a,temp

mov p0, temp

jnb p1.6,start3

jnb p1.7,start11

cjne a,#0, next1

ljmp start2

next1: ljmp loop1

start11: mov temp, #65

mov p1, #0f3h

loop11: acall delay

dec temp

mov a,temp

mov p0, temp

jnb p1.6,start33

jnb p1.7,start1

cjne a,#0, next11

ljmp start11

next11: ljmp loop11

start2: mov p1, #0f5h

mov temn,#05

loop2: acall delay1

dec temn

mov a,temn

cjne a, #0,next2

ljmp start3

next2: ljmp loop2

b道通車情況:

start3: mov temp, #25

mov p1,#0deh

loop3: acall delay

dec temp

mov a,temp

mov p0, temp

jnb p1.6,start1

jnb p1.7,start33

cjne a, #0,next3

ljmp start4

next3: ljmp loop3

start33: mov temp, #65

mov p1,#0deh

loop33: acall delay

dec temp

mov a,temp

mov p0, temp

jnb p1.6,start11

jnb p1.7,start3

cjne a, #0,next33

ljmp start4

next33: ljmp loop33

start4: mov p1, #0eeh

mov temn,#05

loop4: acall delay1

中斷情況即緊急情況:

org 0000h

temp equ 24h

temn equ 25h

ljmp main

org 0003h

ljmp t0_int

org 0013h

ljmp ti_int

t0_int: mov a, p1

push acc

mov p1, #0ffh

mov p1, #0f3h

mov p0, #00h

jnb p3.2,$

pop acc

mov p1, acc

reti

ti_int: mov a, p1

push acc

mov p1, #0ffh

mov p1, #0deh

mov p0,#00h

jnb p3.3,$

pop acc

mov p1, a

reti

5實驗**

5.1**圖

根據對稱性選用部分對稱元件**,

圖5-1 **圖

5.2 實驗步驟

5.2.1 編寫程式**

程式**分為幾個模組:中斷模組,迴圈模組,延時模組。

原程式實現:

org 0000h

temp equ 24h

temn equ 25h

ljmp main

org 0003h

ljmp t0_int

org 0013h

ljmp ti_int

t0_int: mov a, p1

push acc

mov p1, #0ffh

微控制器溫度控制系統設計

中北大學 課程設計說明書 學院 資訊與通訊工程學院 專業 電子資訊工程 學生姓名學號 課程設計題目 可程式設計溫控系統設計 起迄日期 12月29日 1月 11日 課程設計地點 學院樓201實驗室 指導教師楊錄 學科部主任張丕壯 下達任務書日期 2015 年 12 月28 日 課程設計任務書 1 設計...

微控制器控制工業洗滌機控制系統改造

一 專案背景 我司一台electrolux w4350x工業洗衣機,執行多年後控制系統的故障越來越多。最後一次故障時,滾筒驅動器一直報故障,檢查馬達和馬達驅動器 變頻器 都正常,判定是洗衣機控制主機板出現異常。因為主機板 較高,且控制系統中其它故障發生率也高,決定放棄採購原控制板進行維修。但是此機的...

德立達詳解停車場單通道紅綠燈控制系統功能

前面我們分享了停車場單通道紅綠燈控制系統的工作原理,接下裡我們要分享的是停車場單通道紅綠燈控制系統到底有哪些功能?有以下5個功能 1 當有車b從出口出來,出口綠燈亮,進口紅燈亮,當車b通過進口地感1後出口綠燈亮,進口綠燈亮 2 當有車連續從進口進來,進口綠燈,出口紅燈,啟動車輛計數器計數,當所有車通...