交通燈系統(tǒng)的設(shè)計(jì)的模板_第1頁(yè)
交通燈系統(tǒng)的設(shè)計(jì)的模板_第2頁(yè)
交通燈系統(tǒng)的設(shè)計(jì)的模板_第3頁(yè)
交通燈系統(tǒng)的設(shè)計(jì)的模板_第4頁(yè)
交通燈系統(tǒng)的設(shè)計(jì)的模板_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 畢 業(yè) 設(shè) 計(jì)課題名稱 基于單片機(jī)的方波信號(hào)發(fā)生器 姓 名 學(xué) 號(hào) 所在系 電子系 專業(yè)年級(jí) 指導(dǎo)教師_樊曉克_職 稱_副教授_二O一O 年 月 日 目 錄 HYPERLINK 論文模板3.doc TOC o 1-4 u 摘 要 PAGEREF _Toc231655564 h IIIABSTRACT PAGEREF _Toc231655565 h IV第1章 引言 PAGEREF _Toc231655566 h 1第2章 單片機(jī)概述 PAGEREF _Toc231655567 h 1第3章 芯片簡(jiǎn)介 PAGEREF _Toc231655568 h 13.1 MSC-52芯片簡(jiǎn)介 PAGERE

2、F _Toc231655569 h 13.2 8255芯片簡(jiǎn)介 PAGEREF _Toc231655570 h 53.3 74LS373簡(jiǎn)介 PAGEREF _Toc231655571 h 6第4章. 系統(tǒng)硬件設(shè)計(jì) PAGEREF _Toc231655572 h 6方波發(fā)生器設(shè)計(jì)方案 PAGEREF _Toc231655574 h 7421 系統(tǒng)總框圖如下: PAGEREF _Toc231655575 h 7422 交通燈硬件線路圖 PAGEREF _Toc231655576 h 8423 系統(tǒng)工作原理 PAGEREF _Toc231655577 h 10第5章控制器的軟件設(shè)計(jì) PAGEREF

3、 _Toc231655578 h 10每秒鐘的設(shè)定 PAGEREF _Toc231655579 h 10計(jì)數(shù)器硬件延時(shí) PAGEREF _Toc231655580 h 105.2.1 計(jì)數(shù)器初值計(jì)算 PAGEREF _Toc231655581 h 105.2.2 計(jì)算公式 PAGEREF _Toc231655582 h 105.2.3 秒的方法 PAGEREF _Toc231655583 h 11相應(yīng)程序代碼 PAGEREF _Toc231655584 h 115.3 軟件延時(shí) PAGEREF _Toc231655585 h 125.4 時(shí)間及信號(hào)燈的顯示 PAGEREF _Toc231655

4、586 h 125.4.1 8051并行口的擴(kuò)展 PAGEREF _Toc231655587 h 125.4.3 8255PA口輸出信號(hào)接信號(hào)燈: PAGEREF _Toc231655588 h 135.4.4 8255輸出信號(hào)與數(shù)碼管的連接: PAGEREF _Toc231655589 h 135.4.5 8255與8051的連接: PAGEREF _Toc231655590 h 135.5 程序設(shè)計(jì) PAGEREF _Toc231655591 h 14流程圖如圖所示 PAGEREF _Toc231655592 h 145.5.2 程序源代碼 PAGEREF _Toc231655593 h

5、15結(jié) 束 語(yǔ) PAGEREF _Toc231655594 h 20參考文獻(xiàn) PAGEREF _Toc231655595 h 20致 謝 PAGEREF _Toc231655596 h 21摘 要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。本文首先對(duì)智能交通燈的研究意義和智能交通燈的研究現(xiàn)狀進(jìn)行了分析,指出了現(xiàn)狀交通燈存在的缺點(diǎn),并提出了改進(jìn)方法。智能交通燈控制系統(tǒng)通常要實(shí)現(xiàn)自動(dòng)控制。本文還對(duì)AT89S51單片機(jī)

6、的結(jié)構(gòu)特點(diǎn)和重要引腳功能進(jìn)行了介紹,同時(shí)對(duì)智能交通燈控制系統(tǒng)的設(shè)計(jì)進(jìn)行了詳細(xì)的分析。關(guān)鍵詞:;微處理器模塊AT89S52;程序設(shè)計(jì)ABSTRACTAlong with science and technology is updating in recent years , the application of MCU is going deeper. In the application of the automatic control and detection of real time, the MCU is used to use as a key parts. But if you w

7、ant to design a system , only learn the knowledge of MCU is insufficient . You should perfect the system on the basis of the structure of the hardware and it is link to the characteristic of the application object of the software.First, in this paper, we discuss the studying significance and studyin

8、g situation of the Intelligent Transportation System(ITS) ,then point out the drawback of the current situation and give the improve method. Automatic Control is the most important function of the ITS. This paper describe the character of structure and the function of pin of AT89S51 SCM.It also give

9、 detailed analysis of ITS design .Keywords: AT8951 MCU; ITS; program design 圖1程序存儲(chǔ)器(ROM):8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用

10、。中斷系統(tǒng):8052具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。時(shí)鐘電路:8052內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8052單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。下圖是MCS-51系

11、列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2。 圖2MCS-51的引腳說(shuō)明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:MCS-51的引腳說(shuō)明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以

12、說(shuō)明:如圖3 圖3Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。

13、圖4Pin30:ALE/當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)

14、器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。3.2 8255芯片簡(jiǎn)介8255可編程并行接口芯片簡(jiǎn)介: 8255可編程并行接口芯片有三個(gè)輸入輸出端口,即A口、B口和C口,對(duì)應(yīng)于引腳PA7PA0、PB7PB0和PC7PC0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個(gè)端口包

15、含一個(gè)4位鎖存器。它們分別與端口A配合使用,可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入。8255可編程并行接口芯片方式控制字格式說(shuō)明:8255有兩種控制命令字;一個(gè)是方式選擇控制字;另一個(gè)是C口按位置位復(fù)位控制字。其中C口按位置位復(fù)位控制字方式使用較為繁難,說(shuō)明也較冗長(zhǎng),故在此不作敘述,需要時(shí)用戶可自行查找有關(guān)資料。方式控制字格式說(shuō)明如表1: 表1D7D6D5D4D3D2D1D0 D7:設(shè)定工作方式標(biāo)志,1有效。 D6、D5:A口方式選擇 0 0 方式0 0 1 方式1 1 方式2 D4:A口功能 (1=輸入,0=輸出) D3:C口高4位功能 (1=輸入,0=輸出) D2:B口方式選擇 (0=方式

16、0,1=方式1) D1:B口功能 (1=輸入,0=輸出)D0:C口低4位功能 (1=輸入,0=輸出) 8255可編程并行接口芯片工作方式說(shuō)明: 方式0:基本輸入輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。 方式1:選通輸入輸出方式。這時(shí)A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。 方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用作輸入或輸出,此時(shí)C口的5條線用作通訊聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。3.3 74LS373簡(jiǎn)介74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖如下示:

17、423 系統(tǒng)工作原理(1)開(kāi)關(guān)鍵盤輸入交通燈初始時(shí)間,通過(guò)8051單片機(jī)P1輸入到系統(tǒng) (2) 由8051單片機(jī)的定時(shí)器每秒鐘通過(guò)P0口向8255的數(shù)據(jù)口送信息,由8255的PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個(gè)燈的燃亮?xí)r間。 (3)8051通過(guò) 設(shè)置 各個(gè)信號(hào)等的燃亮?xí)r間、通過(guò)8031設(shè)置,綠、紅時(shí)間分別為60秒、80秒循環(huán)由8051的 P0口向8255的數(shù)據(jù)口輸出。(4) 通過(guò)8051單片機(jī)的P3.0位來(lái)控制系統(tǒng)是工作或設(shè)置初值,當(dāng).牌位0就對(duì)系統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開(kāi)始工作。(5)紅燈倒計(jì)時(shí)時(shí)間,當(dāng)有車輛闖紅燈時(shí),啟動(dòng)蜂鳴器進(jìn)行報(bào)警,3S后然后恢復(fù)正常。(6)增

18、加每次綠燈時(shí)間車流量檢測(cè)的功能,并且通過(guò)查詢P2.0端口的電平是否為低,開(kāi)關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時(shí)間重新記入。(7)綠燈時(shí)間倒計(jì)時(shí)完畢,重新循環(huán)。第5章控制器的軟件設(shè)計(jì) 延時(shí)方法可以有兩種一中是利用MCS-51內(nèi)部定時(shí)器才生溢出中斷來(lái)確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。 計(jì)數(shù)器初值計(jì)算 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式: TC=M-C式中,M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)

19、。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為28 計(jì)算公式 T=(MTC)T計(jì)數(shù) 或T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期的倍;為定時(shí)初值如單片機(jī)的主脈沖頻率為,經(jīng)過(guò)分頻方式213微秒毫秒方式216微秒毫秒顯然秒鐘已經(jīng)超過(guò)了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問(wèn)題5.2.3 秒的方法我們采用在主程序中設(shè)定一個(gè)初值為的軟件計(jì)數(shù)器和使定時(shí)毫秒這樣每當(dāng)?shù)胶撩霑r(shí)就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時(shí)間顯示程序。相應(yīng)程序代碼()主程序定時(shí)器需定時(shí)毫秒,故工作于

20、方式。初值: T計(jì)數(shù)ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令為定時(shí)器方式 MOV TH0, #3CH ;裝入定時(shí)器初值 MOV TL0, #BOH; MOV IE,#82H ;開(kāi)中斷 SEBT TO;啟動(dòng)計(jì)數(shù)器 MOV RO,#14H;軟件計(jì)數(shù)器賦初值LOOP:SJMP $;等待中斷()中斷服務(wù)子程序 :DJNZ ,AJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序 DJNZ:,;恢復(fù)值 MOV TH0, #3CH ;重裝入定時(shí)器初值 MOV TL0, #BOH; MOV IE,#82H 5.3 軟件延時(shí) MCS-51的工作

21、頻率為2-12MHZ,我們選用的8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過(guò)指令的執(zhí)行條數(shù)來(lái)確定1秒的時(shí)間。 具體的延時(shí)程序分析: DELAY:MOV R4,#08H 延時(shí)1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RETDELAY1:MOV R6,#0 延時(shí)125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RET MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 機(jī)器周期數(shù)為1所以此指令的執(zhí)行時(shí)間

22、為2ms DELAY1 為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。5.4 時(shí)間及信號(hào)燈的顯示5.4.1 8051并行口的擴(kuò)展 3 驅(qū)動(dòng)代碼表5.4.5 8255與8051的連接:用8051的P0 口的 p0.7 連接8255的片選信號(hào)cs 我們用8031的地址采用全譯碼方式,當(dāng)p0.7 =0 時(shí)片選有效, 其他無(wú)效, p0.1 p0.1 用于選擇8255端口A7 A6 A5 A4 A3

23、 A2 A1 A01 X X X X X 0 0 00H為8255 的PA口1 X X X X X 0 1 01H 為8255的PB口1 X X X X X 1 0 02H 為8255的PC口1 X X X X X 1 1 03H 為8255的控制口由于8051是分時(shí)對(duì)8255和儲(chǔ)存器進(jìn)行訪問(wèn)所以8051的P0口不會(huì)發(fā)生沖突5.5 程序設(shè)計(jì)方波信號(hào)發(fā)生器設(shè)計(jì)一、概述單片機(jī)集成度高、功能強(qiáng)、可靠性高、體積小、功耗地、使用方便、價(jià)格低廉等一系列優(yōu)點(diǎn),目前已經(jīng)滲入到人們工作和生活的方方面面,幾乎“無(wú)處不在,無(wú)所不為”。單片機(jī)的應(yīng)用領(lǐng)域已從面向工業(yè)控制、通訊、交通、智能儀表等迅速發(fā)展到家用消費(fèi)產(chǎn)品、辦

24、公自動(dòng)化、汽車電子、PC機(jī)外圍以及網(wǎng)絡(luò)通訊等廣大領(lǐng)域。 單片機(jī)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計(jì)算機(jī)中廣泛采用的,將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器合用一個(gè)存儲(chǔ)器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi),分別尋址的結(jié)構(gòu),一般需要較大的程序存儲(chǔ)器,目前的單片機(jī)以采用程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器截然分開(kāi)的結(jié)構(gòu)為多。 本課題討論的方波發(fā)生器的核心是目前應(yīng)用極為廣泛的 51系列單片機(jī)。1.1、設(shè)計(jì)內(nèi)容本課程設(shè)計(jì)是設(shè)計(jì)一個(gè)方波發(fā)生器,用4位數(shù)碼管顯示方波的頻率。1.2、設(shè)計(jì)的基本要求頻率可調(diào),用一個(gè)變阻器來(lái)調(diào)整波形的頻率,頻率調(diào)節(jié)范圍為20Hz2000Hz;占空比可調(diào),采用兩個(gè)按鍵來(lái)實(shí)

25、現(xiàn)增加、減小波形的占空比作用,占空比調(diào)節(jié)步長(zhǎng)為1%,即每按鍵一次,占空比增加或減少1%。占空比用另外兩位數(shù)碼管顯示。系統(tǒng)上電時(shí)頻率依變阻器的阻值設(shè)定,占空比設(shè)定為50%。而我們?cè)诖嗽O(shè)計(jì)的方波發(fā)生器與要求要設(shè)計(jì)的有點(diǎn)區(qū)別,所設(shè)計(jì)的頻率調(diào)節(jié)范圍為1Hz15000Hz,以調(diào)節(jié)變阻器的阻值來(lái)實(shí)現(xiàn)頻率的調(diào)節(jié)相對(duì)來(lái)說(shuō)要麻煩些。因此,頻率也使用按鍵來(lái)進(jìn)行調(diào)節(jié),不同的頻率及占空比可以使用不同的按鍵來(lái)實(shí)現(xiàn),而以鍵盤掃描來(lái)實(shí)現(xiàn)各鍵的不同功能;顯示部分可以使用ZLG7290芯片及數(shù)碼管來(lái)實(shí)現(xiàn)。由此即可構(gòu)成一個(gè)最小單片機(jī)應(yīng)用系統(tǒng)。 二、方波發(fā)生器設(shè)計(jì)方案在電子技術(shù)領(lǐng)域中,實(shí)現(xiàn)方波發(fā)生器的方法有很多種,可以采用不同的原

26、理及器件構(gòu)成不同的電路,但可以實(shí)現(xiàn)相同的功能。在此次設(shè)計(jì)中,有些地方與課題原本的具體要求有點(diǎn)不同。如實(shí)現(xiàn)頻率調(diào)節(jié)時(shí),不是按要求利用調(diào)整變阻器的阻值來(lái)完成的,而是用按鍵來(lái)實(shí)現(xiàn)的。2.1、方案介紹微處理器模塊AT89S52,頻率與占空比信息顯示模塊,24矩陣鍵盤模塊,74LS164移位寄存器顯示驅(qū)動(dòng)模塊。本設(shè)計(jì)中用到兩個(gè)定時(shí)器,定時(shí)器0和定時(shí)器1,其中定時(shí)器0工作在定時(shí)方式下,決定方波的頻率;定時(shí)器1同樣工作在定時(shí)方式下,用于設(shè)定占空比。用LED顯示器來(lái)顯示頻率與占空比,鍵盤的操作是通過(guò)外中斷與單片機(jī)共同來(lái)控制的,鍵盤操作來(lái)完成按要求對(duì)頻率與占空比進(jìn)行調(diào)節(jié)。.2、設(shè)計(jì)的基本要求頻率可調(diào),用一個(gè)變阻

27、器來(lái)調(diào)整波形的頻率,頻率調(diào)節(jié)范圍為20Hz2000Hz;占空比可調(diào),采用兩個(gè)按鍵來(lái)實(shí)現(xiàn)增加、減小波形的占空比作用,占空比調(diào)節(jié)步長(zhǎng)為1%,即每按鍵一次,占空比增加或減少1%。占空比用另外兩位數(shù)碼管顯示。系統(tǒng)上電時(shí)頻率依變阻器的阻值設(shè)定,占空比設(shè)定為50%。而我們?cè)诖嗽O(shè)計(jì)的方波發(fā)生器與要求要設(shè)計(jì)的有點(diǎn)區(qū)別,所設(shè)計(jì)的頻率調(diào)節(jié)范圍為1Hz15000Hz,以調(diào)節(jié)變阻器的阻值來(lái)實(shí)現(xiàn)頻率的調(diào)節(jié)相對(duì)來(lái)說(shuō)要麻煩些。因此,頻率也使用按鍵來(lái)進(jìn)行調(diào)節(jié),不同的頻率及占空比可以使用不同的按鍵來(lái)實(shí)現(xiàn),而以鍵盤掃描來(lái)實(shí)現(xiàn)各鍵的不同功能;顯示部分可以使用ZLG7290芯片及數(shù)碼管來(lái)實(shí)現(xiàn)。由此即可構(gòu)成一個(gè)最小單片機(jī)應(yīng)用系統(tǒng)。 2

28、.2、方波發(fā)生器的原理與功能方波發(fā)生器的原理方框圖如圖1所示鍵盤單片機(jī)89S52LED 顯 示頻率與占空比數(shù)據(jù)頻率與占空比數(shù)據(jù)圖1 方波發(fā)生器原理框圖 由于系統(tǒng)的要求不高,比較單一的,再加上我們是通過(guò)定時(shí)器來(lái)調(diào)節(jié)頻率的,而非電阻,因此實(shí)現(xiàn)起來(lái)就相對(duì)簡(jiǎn)化了。僅用鍵盤、AT89S52及串行顯示便可完成設(shè)計(jì),達(dá)到所要求實(shí)現(xiàn)的功能。方波發(fā)生器工作原理與功能:簡(jiǎn)單的流程為:主程序掃描鍵盤,將設(shè)置信息輸入,處理后,輸出到LED顯示器顯示。單片機(jī)的晶振為11.0592MHz,用到了兩個(gè)定時(shí)器,即定時(shí)器0與定時(shí)器1,分別進(jìn)行頻率與占空比的定時(shí),兩個(gè)定時(shí)器都是工作在方式1。根據(jù)計(jì)算定時(shí)器初值的公式: 計(jì)算出定時(shí)

29、器0與定時(shí)器1所要裝入的初值。頻率及占空比的顯示電路由74LS164構(gòu)成的驅(qū)動(dòng)電路和LED數(shù)碼顯示管組成,利用八個(gè)數(shù)碼管來(lái)顯示,有五位是用來(lái)顯示頻率的,有兩位是顯示占空比的,在頻率與占空比顯示管中間有一個(gè)LED數(shù)碼管是用來(lái)顯示“”的,用以區(qū)分頻率顯示與占空比顯示的。此電路的鍵盤是由一個(gè)狀態(tài)鍵,四個(gè)功能鍵(調(diào)節(jié)頻率與占空比的增減)組成,其特殊之處在于利用外部中斷實(shí)現(xiàn)鍵盤掃描。狀態(tài)鍵有三種狀態(tài),當(dāng)其處于狀態(tài)0時(shí),則其它的鍵會(huì)處于無(wú)用狀態(tài),當(dāng)其處于狀態(tài)1時(shí),可通過(guò)按四個(gè)調(diào)節(jié)鍵來(lái)調(diào)節(jié)頻率,處于第三種狀態(tài)時(shí),按四個(gè)調(diào)節(jié)鍵中的前兩個(gè)便可對(duì)占空比進(jìn)行調(diào)節(jié)了。三、系統(tǒng)的硬件設(shè)計(jì)3.1、單片機(jī)最小系統(tǒng)單片機(jī)各功

30、能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn)的,有條不紊地進(jìn)行工作。因而時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路方式有兩種:一種是內(nèi)部時(shí)鐘方式,一種是外部時(shí)鐘方式,這里采用的是內(nèi)部時(shí)鐘方式,外接晶振。時(shí)鐘電路由片外晶體、微調(diào)電容和單片機(jī)的內(nèi)部電路組成。選取頻率為11.0592MHz的晶振,微調(diào)電容是瓷片電容。89S52單片機(jī)的P0.7口作為波形輸出口,若接示波器,則可通過(guò)示波器來(lái)觀察波形,是一個(gè)矩形波。圖2 單片機(jī)最小系統(tǒng)此單元電路包括時(shí)鐘電路、復(fù)位電路,具體電路如圖2所示:3.2、小鍵盤接口電路小鍵盤如圖3所示。它包括8個(gè)鍵,系統(tǒng)中用到的鍵只有5個(gè),分別為

31、0號(hào)、1號(hào)、2號(hào)、3號(hào)、4號(hào)鍵。其中0號(hào)鍵是狀態(tài)鍵,采用外部中斷控制,用它來(lái)確定其它幾個(gè)鍵的按鍵功能,具體作用在前述的系統(tǒng)功能中已做介紹了;另外4個(gè)鍵為功能鍵,調(diào)節(jié)頻率與占空比的。小鍵盤中引出的6根線依次分別接單片機(jī)的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5口。.3、LED顯示電路采用靜態(tài)顯示來(lái)實(shí)現(xiàn)顯示功能,如圖4所示。移位寄存器74LS164,實(shí)現(xiàn)串行輸入,并行輸出。串行數(shù)據(jù)由RXD輸出,從74LS164的A、B端口輸入寄存器,移位時(shí)鐘由TXD提供。在移位時(shí)鐘作用下,存放顯示器段碼的串行發(fā)送緩沖器數(shù)據(jù)逐位由A、B端移入到74LS164中,再由Q0到Q7并行輸出到顯示數(shù)碼管相

32、應(yīng)的LED上。8片74LS164首尾相串,而時(shí)鐘端則接在一起。這部分的最終功能是顯示頻率與占空比。顯示部分具體電路如圖4所示:3.3、LED顯示電路采用靜態(tài)顯示來(lái)實(shí)現(xiàn)顯示功能,如圖4所示。移位寄存器74LS164,實(shí)現(xiàn)串行輸入,并行輸出。串行數(shù)據(jù)由RXD輸出,從74LS164的A、B端口輸入寄存器,移位時(shí)鐘由TXD提供。在移位時(shí)鐘作用下,存放顯示器段碼的串行發(fā)送緩沖器數(shù)據(jù)逐位由A、B端移入到74LS164中,再由Q0到Q7并行輸出到顯示數(shù)碼管相應(yīng)的LED上。8片74LS164首尾相串,而時(shí)鐘端則接在一起。這部分的最終功能是顯示頻率與占空比。顯示部分具體電路如圖4所示:四、系統(tǒng)的軟件設(shè)計(jì)顯示子程

33、序入口分離頻率和占空比的各位數(shù)字高位滅零處理查表,串口發(fā)送各位數(shù)字字型碼軟件延時(shí)結(jié)束圖6 顯示子程序流程圖方波發(fā)生器的軟件設(shè)計(jì)包括主程序、延時(shí)子程序、系統(tǒng)初始化程序、顯示子程序、鍵盤掃描程序、定時(shí)器中斷子程序。其中主程序用來(lái)控制整個(gè)程序的執(zhí)行,它與各子程序緊密相聯(lián),共同實(shí)現(xiàn)方波發(fā)生器各種功能的執(zhí)行。4.1、主程序開(kāi)始系統(tǒng)初始化顯示圖5 主程序流程圖主程序包括系統(tǒng)初始化及顯示程序,是一個(gè)死循環(huán)系統(tǒng)。其流程圖如圖5所示: 4.2、系統(tǒng)初始化子程序在此程序中,給所有變量賦初值,有鍵盤掃描口、選擇串行口工作方式SCON、狀態(tài)標(biāo)志位flag、初始頻率與占空比及其定時(shí)、定時(shí)器0與定時(shí)器1的工作方式等。初始

34、化時(shí)啟動(dòng)了定時(shí)器0與定時(shí)器1。4.3、顯示子程序 利用分離頻率的各位數(shù)值,將各位數(shù)值分別顯示出來(lái)。在程序中利用了頻率顯示的高位滅零的方法以致最高位為0時(shí)就不顯示,以致顯示效果美觀化。一共有五位是顯示頻率的,若頻率小于10000時(shí),則萬(wàn)位不顯示;若頻率小于1000時(shí),則萬(wàn)位與千位都不顯示,依次類推。占空比的顯示規(guī)律與頻率的一樣。顯示子程序流程圖如圖6所示:顯示子程序入口分離頻率和占空比的各位數(shù)字高位滅零處理查表,串口發(fā)送各位數(shù)字字型碼軟件延時(shí)結(jié)束圖6 顯示子程序流程圖 程序源代碼 void delay1ms(uchar n) /延時(shí)n ms uchar j; while(n-) for(j=0;

35、j122;j+) ; /* 系統(tǒng)初始化*/void system_init(void ) KEY_PORT=0 x0f; SCON=0 x00; flag=0; PL=1000; ZKB=50; TL0=0 x66; /初始頻率1KHz定時(shí)1ms TH0=0 xfc; TH1=0 xfe; TMOD=0 x11; /定時(shí)器1和定時(shí)器0工作在方式1,的定時(shí)模式 IT0=0; /選擇INT0為低電平觸發(fā)方式 EX0=1; /外部中斷0允許 ET0=1; /定時(shí)器1和定時(shí)器0中斷允許 ET1=1; EA=1; /系統(tǒng)中斷允許 TR0=1; /定時(shí)器1和定時(shí)器0開(kāi)始定時(shí) TR1=1;/* 發(fā)送數(shù)據(jù)*/

36、void send(uchar d) SBUF=d; while(!TI); TI=0; /* 顯示子程序*/void display(uint PL,uchar ZKB) uchar a,b,c,d,e,m,n; a=PL/10000; /分離頻率的各位數(shù)值 b=PL/1000; b=b%10; c=PL/100; c=c%10; d=PL%100; d=d/10; e=PL%10; if(a=0) /頻率顯示的高位滅零 a=10; if(b=0) b=10;if(c=0) c=10; if(d=0) d=10; if(e=0)e=10; m=ZKB/10; /分離占空比各位數(shù)值 n=ZKB

37、%10; if(m=0) m=10; /占空比顯示的高位滅零 if(n=0)n=10; send(tabla); send(tablb); send(tablc); send(tabld); send(table); send(0 x02); /頻率和占空比中間加一橫線“-”以示區(qū)別 send(tablm); send(tabln); delay1ms(200); delay1ms(200);/延時(shí)開(kāi)鍵盤中斷,處理好(避免又利用)連擊問(wèn)題/* 鍵盤掃描(線反法)*/void Key_Scan() interrupt 0 /鍵盤掃描用外中斷0 uchar scancode,keycode,i;

38、float TC0,TC1; EX0=0; /關(guān)中斷 delay1ms(5); scancode=0 xef; /鍵盤掃描碼,采用逐行掃描的方法 while(scancode!=0 xff) keycode=KEY_PORT; /讀出數(shù)據(jù),看是否在此行上的某列鍵盤被按下 if(keycode&0 x0f)!=0 x0f) break; /掃描到按下的鍵,則退出 scancode=(keycode1)|0 x0f; /否則,更新掃描碼繼續(xù)掃描 keycode=keycode; for(i=0;i15000) PL=15; if(i=2) /按鍵為2號(hào),頻率減1 PL-; if(PL15000)

39、PL=15; if(i=4) /按鍵為4號(hào),頻率減100 PL=PL-100; if(PL99) ZKB=1; if(i=2) /按鍵為2號(hào),占空比減1 ZKB-; if(ZKB1) ZKB=99; if(flag=3) /狀態(tài)返回,正常工作 flag=0; /清狀態(tài)標(biāo)志TC0=(length-fosc/(12*PL)+0.5); /頻率定時(shí)初值TC1=(length-(fosc*ZKB)/(12*100*PL)+0.5); /占空比定時(shí)初值TIMER0_L=(uint)TC0/256; /計(jì)算定時(shí)器0和定時(shí)器1的初值TIMER0_H=(uint)TC0%256; TIMER1_L=(uint

40、)TC1/256;TIMER1_H=(uint)TC1%256; display(PL,ZKB); KEY_PORT=0 x0f;/給鍵盤掃描口賦初值,以便下次按鍵正確讀入 EX0=1; /開(kāi)中斷/* 定時(shí)器中斷子程序*/void Timer0_PL() interrupt 1 /頻率定時(shí)器0中斷 TR1=1;/啟動(dòng)定時(shí)器1,占空比定時(shí) TL0=TIMER0_L; TH0=TIMER0_H; OutPut=1; /輸出高電平void Timer1_PL() interrupt 3 /占空比定時(shí)器1中斷 TR1=0;/定時(shí)器1停止 TL1=TIMER1_L; TH1=TIMER1_H; OutP

41、ut=0; /輸出高電平/* 主函數(shù)*/void main() uint PL0=0; uchar ZKB0=0; system_init(); /系統(tǒng)初始化 while(1)/死循環(huán),顯示頻率和占空比 if(flag=0) /狀態(tài)0時(shí),正常顯示頻率和占空比 display(PL,ZKB); if(flag=1) /狀態(tài)1時(shí),頻率調(diào)整狀態(tài),頻率閃爍 display(PL0,ZKB); display(PL,ZKB); if(flag=2) /狀態(tài)2時(shí),占空比調(diào)整狀態(tài),占空比閃爍 display(PL,ZKB0); display(PL,ZKB); 結(jié) 束 語(yǔ)本系統(tǒng)就是充分利用了8051和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)Intel8051

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論