基于51單片機(jī)的語(yǔ)音計(jì)算器設(shè)計(jì)說(shuō)明_第1頁(yè)
基于51單片機(jī)的語(yǔ)音計(jì)算器設(shè)計(jì)說(shuō)明_第2頁(yè)
基于51單片機(jī)的語(yǔ)音計(jì)算器設(shè)計(jì)說(shuō)明_第3頁(yè)
基于51單片機(jī)的語(yǔ)音計(jì)算器設(shè)計(jì)說(shuō)明_第4頁(yè)
基于51單片機(jī)的語(yǔ)音計(jì)算器設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩48頁(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ī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)姓 名:學(xué) 號(hào):學(xué) 院: 信息學(xué)院 專 業(yè): 電子信息工程 指 導(dǎo) 教 師:協(xié)助指導(dǎo)教師:2011年 5月 23日48 / 53摘要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,但僅單片機(jī)方面的知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)、軟硬件結(jié)合,來(lái)加以完善。計(jì)算器在人們的日常生活中是比較常見(jiàn)的電子產(chǎn)品之一,并且語(yǔ)音技術(shù)的進(jìn)展給這種應(yīng)用需要提供了一種有力的技術(shù)支持,逐漸被廣大用戶所接受,并廣泛用于各種需要語(yǔ)音響應(yīng)的場(chǎng)合。基于這

2、樣的理念,本次設(shè)計(jì)是用AT89C51單片機(jī)、LCD顯示器、控制按鍵、語(yǔ)音芯片ISD2560為元件來(lái)設(shè)計(jì)的具有語(yǔ)音播報(bào)功能的簡(jiǎn)易計(jì)算器。利用此設(shè)計(jì)熟悉單片機(jī)微控制器與C語(yǔ)言編程,對(duì)其片資源與各個(gè)I/O端口的功能和基本用途的了解。掌握Microsoft Visual C+ 6.0應(yīng)用程序開(kāi)發(fā)環(huán)境,常用的LCD顯示器的使用方法和一般鍵盤(pán)的使用方法。關(guān)鍵字:AT89C51、ISD2560、LCD、控制按鍵AbstractWith the rapid development of science and technology in recent years, the application of SCM

3、 is a growing, while driving more traditional control detection technology updates. In real-time detection and automatic control of microcomputer application system, the microcontroller is often used as a core component, but only SCM knowledge is not enough, the structure should be based on specific

4、 hardware, software and hardware combination to be improved.Calculator in people's daily lives is one of the more common electronic products, and progress in speech technology to such applications need to provide a strong technical support, have been gradually accepted by the majority of users,

5、and is widely used for various needs Voice response applications. Based on this concept, this design is AT89C51 microcontroller, LCD display, control buttons, voice chip ISD2560 devices designed for the voice broadcast function with a simple calculator. Familiar with using this microcontroller desig

6、n and C language programming microcontrollers, resources and all of its chip I / O port functions and basic use of the understanding. Master the Microsoft Visual C + + 6.0 application development environment, the common use of LCD displays and general use of the keyboard.Keywords: AT89C51、ISD2560 、L

7、CD control buttons朗讀顯示對(duì)應(yīng)的拉丁字符的拼音 字典目錄摘要IAbstractII引言11 緒論21.1 系統(tǒng)開(kāi)發(fā)背景21.2 系統(tǒng)開(kāi)發(fā)意義21.3 設(shè)計(jì)容和章節(jié)分配22 系統(tǒng)方案設(shè)計(jì)32.1 功能介紹32.1.1 基本功能32.1.2 擴(kuò)展功能32.2 方案論證與比較32.2.1 控制部分的設(shè)計(jì)方案論證與選擇32.2.2 顯示電路的設(shè)計(jì)方案論證與選擇42.2.3 鍵盤(pán)設(shè)計(jì)方案與選擇52.3 系統(tǒng)組成62.4 總體設(shè)計(jì)思想73 主要芯片介紹83.1 AT89C51選擇與介紹:83.2 ISD2560選擇與介紹:103.3 開(kāi)發(fā)工具的選擇與介紹:124 硬件電路設(shè)計(jì)1

8、44.1 復(fù)位電路144.2 時(shí)鐘電路144.3 顯示電路154.4 語(yǔ)音電路154.5 按鍵電路175 軟件設(shè)計(jì)205.1 AT89C51單片機(jī)中斷允許控制205.2 LCD1602控制205.2.1 LCD1602字符發(fā)生存儲(chǔ)器(CGROM)205.2.2 LCD1602顯示數(shù)據(jù)寄存器(DDRAM)215.3 計(jì)算器軟件設(shè)計(jì)235.3.1 系統(tǒng)總流程圖235.3.2 算術(shù)運(yùn)算程序設(shè)計(jì)245.3.3 按鍵程序設(shè)計(jì)255.3.4 顯示程序設(shè)計(jì)255.3.5錯(cuò)誤處理與提示程序設(shè)計(jì)255.4 語(yǔ)音播報(bào)軟件設(shè)計(jì)265.4.1 分段錄放音275.4.2 程序流程圖275.5 仿真與調(diào)試305.5.1

9、KEIL uVision調(diào)試305.5.2 Proteus 對(duì)于本設(shè)計(jì)的仿真33結(jié)論35致36參考文獻(xiàn)37附錄38附錄A38附錄B39附錄C40附錄D41附錄E50引言當(dāng)今社會(huì),隨著人們物質(zhì)生活的不斷提高,電子產(chǎn)品已經(jīng)走進(jìn)了家家戶戶,無(wú)論是生活或?qū)W習(xí),還是娛樂(lè)和消遣幾乎樣樣都離不開(kāi)電子產(chǎn)品,大型復(fù)雜的計(jì)算能力是人腦所不能勝任的,而且比較容易出錯(cuò)。計(jì)算器作為一種快速通用的計(jì)算工具方便了用戶的使用。計(jì)算器可謂是我們最親密的電子伙伴之一。隨著人類社會(huì)的不斷進(jìn)步,隨著語(yǔ)音芯片的普與,語(yǔ)音報(bào)播被廣泛應(yīng)用于車(chē)站報(bào)站器,語(yǔ)音型數(shù)字萬(wàn)用表,出租車(chē)語(yǔ)音報(bào)站器,排隊(duì)機(jī)等,并且面向家庭個(gè)人使用的方向發(fā)展,更加人性化

10、。自動(dòng)語(yǔ)音提示技術(shù)是計(jì)算機(jī)語(yǔ)音處理技術(shù)的一種應(yīng)用,屬于語(yǔ)音再生合成技術(shù)疇。錄放系統(tǒng)具有電路簡(jiǎn)明、應(yīng)用方便、單片錄放、不怕掉電、音色純正、性價(jià)比高等特性,與此相關(guān)的語(yǔ)音系統(tǒng)已廣泛地用于通信、工控 、醫(yī)療、報(bào)警示訊等領(lǐng)域。本設(shè)計(jì)著重在于計(jì)算器的設(shè)計(jì)和開(kāi)發(fā),并從實(shí)際意義出發(fā)對(duì)計(jì)算器設(shè)計(jì)做了進(jìn)一步的擴(kuò)充,將語(yǔ)音播報(bào)錄放技術(shù)融入其中,更好的發(fā)揮了電子產(chǎn)品的作用,為人們的生活帶來(lái)便利。1 緒論1.1 系統(tǒng)開(kāi)發(fā)背景隨著社會(huì)的法陣發(fā)展,科學(xué)的進(jìn)步,人們的生活水平在逐步的提高,尤其是微電子技的術(shù)的發(fā)展,猶如雨后春筍的變化。計(jì)算器在人們的日常中視比較常見(jiàn)的電子產(chǎn)品之一,如何將常見(jiàn)的計(jì)算器技術(shù)更加成熟,充分利用已有

11、的軟件和硬件條件,設(shè)計(jì)出更加出色的計(jì)算器,使其更好的為各行業(yè)服務(wù),成了如今電子領(lǐng)域重要的研究課題。1.2 系統(tǒng)開(kāi)發(fā)意義人們的日程生活中已經(jīng)離不開(kāi)計(jì)算器了,社會(huì)的各個(gè)角落都有它的身影,比如商店,辦公室,學(xué)校。因此設(shè)計(jì)一款簡(jiǎn)單實(shí)用的計(jì)算器會(huì)有很大的實(shí)際意義。普通的計(jì)算器只能完成計(jì)算功能,并不能根據(jù)用戶自身需要進(jìn)行錄音,而本設(shè)計(jì)設(shè)計(jì)的計(jì)算器不僅僅能完成計(jì)算這項(xiàng)功能,并能將語(yǔ)音系統(tǒng)融到計(jì)算器中,可以自定義一段錄音,然后播放出來(lái),很有意思。這種根據(jù)自己喜好錄放音的計(jì)算器將會(huì)受到大家的喜歡。1.3 設(shè)計(jì)容和章節(jié)分配隨著嵌入式的快速發(fā)展,單片機(jī)本著它簡(jiǎn)單,功能強(qiáng)大,易于設(shè)計(jì)等優(yōu)點(diǎn)被設(shè)計(jì)者使用。因此,本設(shè)計(jì)使

12、用單片機(jī)做為控制器件,將計(jì)算系統(tǒng)與語(yǔ)音系統(tǒng)結(jié)合。通過(guò)此次設(shè)計(jì)的完成,對(duì)字符液晶顯示模塊的工作原理,如初始化、清屏、顯示、調(diào)用與外特性有較清楚的認(rèn)識(shí),并會(huì)使用LCD實(shí)現(xiàn)計(jì)算結(jié)果的顯示,在充分分析部邏輯的概念的同時(shí),進(jìn)行軟件編譯和調(diào)試。第一章為設(shè)計(jì)的背景、意義介紹,簡(jiǎn)明扼要的闡述設(shè)計(jì)的目的和成果;第二章為系統(tǒng)方案設(shè)計(jì)介紹,主要從設(shè)計(jì)的功能,方案的確定與選擇原因和系統(tǒng)組成來(lái)介紹。第三章為主要芯片介紹,詳細(xì)介紹了芯片的部結(jié)構(gòu)和引腳分布。第四章為設(shè)計(jì)的核心,即硬件電路設(shè)計(jì),此章將硬件電路分為若干模塊,分別介紹了模塊的硬件設(shè)計(jì)電路。第五章為軟件設(shè)計(jì),從語(yǔ)言的選擇,控制字的確定,流程圖的介紹到最后的仿真與調(diào)

13、試。通過(guò)這幾章的介紹,完成簡(jiǎn)易計(jì)算器的設(shè)計(jì)。2 系統(tǒng)方案設(shè)計(jì)2.1 功能介紹2.1.1 基本功能根據(jù)所學(xué)知識(shí),自行設(shè)計(jì)一個(gè)計(jì)算器,要求自行設(shè)計(jì)供電電源,該計(jì)算器能夠?qū)崿F(xiàn)加減乘除四則混合運(yùn)算,能夠?qū)崿F(xiàn)連續(xù)計(jì)算。2.1.2 擴(kuò)展功能(1)該計(jì)算器能夠?qū)崿F(xiàn)精確到小數(shù)點(diǎn)三位的運(yùn)算。(2)該計(jì)算器可顯示負(fù)數(shù)。(3)該計(jì)算器帶有DIY語(yǔ)音系統(tǒng),可自定義錄/放音。2.2 方案論證與比較2.2.1 控制部分的設(shè)計(jì)方案論證與選擇根據(jù)設(shè)計(jì)要求,控制器主要用于紅外信號(hào)的接收和辨認(rèn)、控制步進(jìn)電機(jī)的動(dòng)作,控制顯示步進(jìn)電機(jī)的轉(zhuǎn)速等。控制器主要用于數(shù)據(jù)的接收和發(fā)送、數(shù)據(jù)的運(yùn)算,控制顯示液晶屏等,針對(duì)這些要求,對(duì)于控制器的選

14、擇有以下三種方案。方案一:采用計(jì)算器專用芯片實(shí)現(xiàn)。用計(jì)算器專用芯片進(jìn)行設(shè)計(jì)并編程實(shí)現(xiàn)。這種設(shè)計(jì)方案計(jì)算效率高、速度快、而且成本也相對(duì)較低,是廠家做計(jì)算器的最佳方案。但是本人對(duì)計(jì)算器專用芯片掌握的不夠,還不足以實(shí)現(xiàn)設(shè)計(jì)計(jì)算器,所以這個(gè)方案不可去可取。方案二:采用FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)作為系統(tǒng)的控制器。FPGA將所有器件集成到一塊芯片上,體積小,節(jié)省空間,提高了穩(wěn)定性;直接面向用戶,具有極大的靈活性和通用性,使用方便,硬件測(cè)試和實(shí)現(xiàn)快捷,開(kāi)發(fā)效率高,工作可靠性好。可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密度高,采用并行的輸入輸出方式,系統(tǒng)處理速度高,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。由FPGA部

15、編程實(shí)現(xiàn)計(jì)算器功能,本設(shè)計(jì)對(duì)數(shù)據(jù)處理速度的要求不是很高,F(xiàn)PGA的高速處理的優(yōu)勢(shì)得不到充分的體現(xiàn),由于其集成度高,使其成本偏高,同時(shí)由于芯片的引腳較多,實(shí)物電路板布線復(fù)雜,加重了電路設(shè)計(jì)和實(shí)際焊接的工作。并且FPGA的價(jià)格相對(duì)較高,性價(jià)比太低,所以這個(gè)方案不考慮。方案三、用單片機(jī)實(shí)現(xiàn)。由于單片機(jī)集成了運(yùn)算器電路、控制電路、存儲(chǔ)器、中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器以與輸入/輸出口電路等,所以用單片機(jī)設(shè)計(jì)控制電路省去了很多分立元器件。由于單片機(jī)是可編程芯片,并且它可以運(yùn)用C語(yǔ)言編寫(xiě),對(duì)于一些復(fù)雜的計(jì)算功能,可以調(diào)用C語(yǔ)言庫(kù)函數(shù)。使編寫(xiě)程序變得非常簡(jiǎn)單。所以該課題用單片機(jī)實(shí)現(xiàn),不僅功能易于實(shí)現(xiàn),而且精確度高

16、,穩(wěn)定性好,抗干擾能力強(qiáng)。并且由于其成本低、體積小、技術(shù)成熟和功耗小等優(yōu)點(diǎn),且技術(shù)比較成熟。性價(jià)比也相當(dāng)高。更重要的是本人經(jīng)過(guò)幾年的學(xué)習(xí),對(duì)單片機(jī)已有深刻的理解,并且可以靈活運(yùn)用。綜上所述,并通過(guò)各個(gè)方面綜合比較為達(dá)到最佳效果。我們采用方案三利用單片機(jī)控制器。2.2.2 顯示電路的設(shè)計(jì)方案論證與選擇方案一:數(shù)碼管顯示方案。數(shù)碼管顯示使用兩個(gè)四位一體動(dòng)態(tài)數(shù)碼管顯示方案,采用動(dòng)態(tài)數(shù)碼管顯示,具有程序簡(jiǎn)單,對(duì)外界環(huán)境要求低,易于維護(hù),同時(shí)其精度比較高,精確可靠,操作簡(jiǎn)單。顯示直觀的特點(diǎn)。但只能顯示數(shù)字和一些代碼,不能顯示漢字與一些常用的符號(hào),且硬件設(shè)計(jì)比較復(fù)雜。方案二:采用AT1602型液晶顯示。(

17、一)基本特性顯示特性1、+5V電壓,對(duì)比可調(diào)度;2、含復(fù)位電路;3、提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;4、有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM;5、建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM;6、8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。(二)接口定義AT1602接口定義如圖2.1所示:圖2.1接口定義圖綜上所敘,AT1602的顯示效果好、功能齊全,所以我們選用AT1602液晶顯示。該液晶有16個(gè)引腳,它能顯示32個(gè)字符,并且硬件電路設(shè)計(jì)簡(jiǎn)單,顯示美觀。2.2.3 鍵盤(pán)設(shè)計(jì)方案與選擇方案一:獨(dú)立鍵盤(pán)。獨(dú)立鍵盤(pán)為一端接地,另一端接I/O口,并且要接

18、上拉電阻。這種鍵盤(pán)的硬件都很容易實(shí)現(xiàn),但每一個(gè)按鍵就要用一個(gè)I/O口,非常的浪費(fèi)單片機(jī)的I/O口資源,不適合本次設(shè)計(jì)。方案二:自制編碼鍵盤(pán)。編碼鍵盤(pán)編程簡(jiǎn)單,占用資源少,但其硬件比較復(fù)雜,要用很多的二極管,不是很理想。方案三:4*4矩陣式鍵盤(pán)。這種鍵盤(pán)的硬件簡(jiǎn)單,使用的I/O口比獨(dú)立鍵盤(pán)減少一半,而且這種鍵盤(pán)的編程方法已很成熟。所以本次設(shè)計(jì)采用這種矩陣式鍵盤(pán)。2.3 系統(tǒng)組成本設(shè)計(jì)采用MCS-51系列單片機(jī)AT89C51來(lái)設(shè)計(jì)計(jì)算器。通過(guò)擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對(duì)計(jì)算器的設(shè)計(jì)。由鍵盤(pán)輸入數(shù)值,再通過(guò)8051單片機(jī)輸入到系統(tǒng),并由I/O口輸出送到LCD顯示屏;最后由1602LCD顯示輸入數(shù)值

19、和輸出結(jié)果,還可以通過(guò)語(yǔ)音模塊可以達(dá)到語(yǔ)音播報(bào)實(shí)現(xiàn)錄放音的功能效果。其中,設(shè)計(jì)以單片機(jī)為核心,包括開(kāi)關(guān)模塊、擴(kuò)展模塊、運(yùn)算模塊、語(yǔ)音模塊和顯示模塊。系統(tǒng)框圖如下圖所示:擴(kuò)展模塊顯示模塊開(kāi)關(guān)模塊語(yǔ)音模塊運(yùn)算模塊AT89C51主控器圖2.2系統(tǒng)框圖硬件電路是采用結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法,該方法保證設(shè)計(jì)電路的標(biāo)準(zhǔn)化、模塊化。硬件電路的設(shè)計(jì)最重要的選擇用于控制的單片機(jī),并確定與之配套的外圍芯片,使所設(shè)計(jì)的系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單。軟件設(shè)計(jì)的方法與開(kāi)發(fā)環(huán)境的選取有著直接的關(guān)系,本系統(tǒng)由于是采用51系列單片機(jī),因此使用Keil C語(yǔ)言進(jìn)行開(kāi)發(fā),Proteus仿真軟件進(jìn)行仿真。此編程工具相比匯編語(yǔ)言具有結(jié)構(gòu)化、適用

20、圍大、可移植性好等特點(diǎn)。本系統(tǒng)軟件設(shè)計(jì)采用模塊化系統(tǒng)設(shè)計(jì)方法,先編寫(xiě)各個(gè)功能模塊子程序,然后進(jìn)行組合與調(diào)整,經(jīng)過(guò)Keil調(diào)試后,達(dá)到設(shè)計(jì)功能要求,并在Proteus中仿真。在設(shè)計(jì)中采用AT89C51單片機(jī)作為微處理器,低電壓、高性能CMOS 8位單片機(jī),片含4K bytes的可反復(fù)擦寫(xiě)的Flash只讀程序存儲(chǔ)器和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片置通用8位中央處理器(CPU)和Flash 存儲(chǔ)單元。硬件方面完成包括鍵盤(pán)控制,LCD屏顯示控制,運(yùn)算控制、語(yǔ)音控制等設(shè)計(jì)。除外,還有各部件之間的連接、引腳間的連接等工作;軟件方面完成各功能的程序編寫(xiě),在

21、程序編寫(xiě)完成后,進(jìn)行程序調(diào)試。2.4 總體設(shè)計(jì)思想1、可以進(jìn)行四則運(yùn)算,采用LCD顯示數(shù)據(jù)和結(jié)果。2、鍵盤(pán)包括數(shù)字鍵(0-9)、符號(hào)鍵(+、-、*、/)、清除鍵和等號(hào)鍵,設(shè)計(jì)中采用4*4鍵盤(pán)。3、執(zhí)行程序:鍵入數(shù)字,通過(guò)LCD顯示出來(lái),當(dāng)鍵入+、-、*、/運(yùn)算符,計(jì)算器在部執(zhí)行數(shù)值轉(zhuǎn)換和存儲(chǔ),并等待再次鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號(hào)就會(huì)在LCD上輸出運(yùn)算結(jié)果。4、錯(cuò)誤提示:當(dāng)單片機(jī)執(zhí)行程序中有錯(cuò)誤時(shí),會(huì)在LCD上顯示相應(yīng)的提示,如:當(dāng)除數(shù)為0、數(shù)值超出圍時(shí),計(jì)算器會(huì)在LCD上錯(cuò)誤提示。5、可進(jìn)行聲音的錄音和放音。3 主要芯片介紹3.1 AT89C51選擇與介紹:隨著集成電路工藝的發(fā)展,出現(xiàn)

22、了單片機(jī)、DSP,、ARM等多種單片機(jī)。DSP:它從16位32位,部采用哈佛結(jié)構(gòu),特別適合數(shù)據(jù)處理。16位DSP適合中高級(jí)工控到簡(jiǎn)單語(yǔ)音/圖片(不含視頻)處理;32位DSP適合復(fù)雜語(yǔ)音/圖片/視頻處理。ARM:是32位單片機(jī),由于結(jié)構(gòu)和計(jì)算速度的原因,目前適合做事務(wù)處理或者中低端應(yīng)用,從中高級(jí)工控到簡(jiǎn)單語(yǔ)音/圖片(不含視頻)處理 。而AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)

23、制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。51單片機(jī)雖然和DSP,ARM相比處理速度和運(yùn)算速度上都比較慢,但它的體積小、質(zhì)量輕、價(jià)格便宜,它的速度可以滿足本次實(shí)驗(yàn)的要求,所以我們采用AT89C51這款單片機(jī)。AT89C51部原理圖如圖3.1所示:圖3.1AT89C51單片機(jī)部原理圖引腳圖如圖3.2所示:圖3.2 AT89C51單片機(jī)引腳圖AT89C51的主要特性:(1) 與MCS-51兼容(2) 4K字節(jié)可編程閃爍存儲(chǔ)器(3) 數(shù)據(jù)保

24、留時(shí)間:10年(4) 全靜態(tài)工作:0Hz-24Hz(5) 128*8位部RAM(6) 32可編程I/O線(7) 兩個(gè)16位定時(shí)器/計(jì)數(shù)器(8) 5個(gè)中斷源(9) 可編程串行通道(10) 片振蕩器和時(shí)鐘電路中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲(chǔ)器(RAM):C51部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只

25、有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。程序存儲(chǔ)器(ROM):C51共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器:C51有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷,用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:C51共有4組8位I/O口(P0、P1、P2和P3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:C51置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):C51具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,

26、并具有2級(jí)的優(yōu)先級(jí)別選擇。時(shí)鐘電路:C51置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但C51單片機(jī)需外置振蕩電容。3.2 ISD2560選擇與介紹:目前市場(chǎng)流行的語(yǔ)音芯片有很多,從性價(jià)比的角度來(lái)考慮,美國(guó)ISD公司的ISD系列語(yǔ)音芯片可謂是一只獨(dú)秀。ISD系列語(yǔ)音芯片具有以下優(yōu)點(diǎn):(1)采用模擬量數(shù)據(jù)存儲(chǔ)在半導(dǎo)體存儲(chǔ)器直接存儲(chǔ)的專利技術(shù),即將模擬量數(shù)據(jù)直接寫(xiě)入單個(gè)存儲(chǔ)單元,不需要經(jīng)過(guò)A/D,D/A轉(zhuǎn)換。(2)部集成了大容量的的EEPROM,不再需要擴(kuò)展存儲(chǔ)器。(3)控制簡(jiǎn)單,控制引腳與TTL電平兼容。(4)集成度高,使用方便。(5)能較好的真時(shí)再現(xiàn)語(yǔ)音的自然效果,避免

27、了一搬固體語(yǔ)音電路的因?yàn)榱炕蛪嚎s所造成的量化噪聲和失真現(xiàn)象。 因此本例選用ISD公司的語(yǔ)音芯片ISD2560。ISD2560是ISD公司生產(chǎn)的語(yǔ)音錄入和重放芯片ISD2500系列之一,ISD2500系列芯片包括ISD2560,ISD2575,ISD2590和ISD25120四種,他們的主要區(qū)別在于存儲(chǔ)語(yǔ)音的時(shí)間長(zhǎng)度,ISD2560的錄音時(shí)間為60秒,ISD2575的錄音時(shí)間為75秒,ISD2590的錄音時(shí)間為90秒,而ISD25120的錄音時(shí)間為120秒。 ISD2560采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣值可直接存儲(chǔ)在片單個(gè)EEPROM單元中,因此能夠非常真實(shí),自然得再現(xiàn)語(yǔ)音,音樂(lè),

28、音調(diào)和效果聲,從而避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。 ISD2560的采樣頻率為8kHZ,同一系列的產(chǎn)品采樣頻率越低,錄音/放音時(shí)間越長(zhǎng),但同頻帶和音質(zhì)會(huì)有所降低。ISD2560可重復(fù)錄放10萬(wàn)多次,它是一種永久記憶型語(yǔ)音錄音/放音電路,它具有音質(zhì)自然,使用方便,單片存放,反復(fù)錄音,功耗低,抗斷電等許多優(yōu)點(diǎn),因此在許多領(lǐng)域獲得了廣泛的應(yīng)用。ISD2560省去了A/D和D/A轉(zhuǎn)換器,集成度較高,部包括前置放大器,部時(shí)鐘,定時(shí)器,采樣時(shí)鐘,濾波器,自動(dòng)增益控制,邏輯控制,模擬收發(fā)器,解碼器和480k字節(jié)的EEPROM。ISD2560部的EEPROM存儲(chǔ)單元均勻分為600

29、行,有600個(gè)地址單元,每個(gè)地址單元指向其中一行,每一個(gè)地址單元的地址分辨率為100ms。此外,ISD2560還具備微控制器所需的控制接口。通過(guò)操縱地址和控制線可完成不同的任務(wù),以便實(shí)現(xiàn)復(fù)雜的信息處理功能,如信息的組合,連接,設(shè)定固定的信息段和信息管理等。ISD2560可不分段,也可按最小段長(zhǎng)為單位來(lái)任意組合分段。ISD2560部原理圖如圖3.3所示: 圖 3.3 ISD2560部原理圖由部框圖可知其部集成了高精度的時(shí)鐘電路,無(wú)需外部配置晶振, ISD2560可進(jìn)行錄、放兩種操作。錄入時(shí),語(yǔ)音信號(hào)經(jīng)過(guò)換能器MIC轉(zhuǎn)變?yōu)殡娦盘?hào),該信號(hào)經(jīng)過(guò)隔直電容去除直流分量后送入前置放大器,微弱的電信號(hào)經(jīng)過(guò)前置

30、放大后由ANAOUT腳輸出,經(jīng)過(guò)隔直電容后送入ANAIN腳,既而信號(hào)進(jìn)入自動(dòng)增益AGC放大器,信號(hào)電平得到調(diào)理,使其符合存儲(chǔ)電路的動(dòng)態(tài)圍。為使得采樣信號(hào)不產(chǎn)生失真,采樣系統(tǒng)必須滿足奈奎斯特采樣定律。ISD2560的采樣頻率8K, 故實(shí)際應(yīng)用中,為存儲(chǔ)不失真音頻信息,放大后的信號(hào)必須經(jīng)過(guò)一個(gè)低通濾波器后方可送入存儲(chǔ)單元,該濾波器為一五極點(diǎn)抗干擾濾波器,高頻頻限為3.4K,完全滿足奈奎斯特定律,該器件典型帶寬為3.4K。調(diào)理完畢的信號(hào)在部時(shí)鐘的作用下以閉環(huán)控制形式送入模擬存儲(chǔ)陣列。如3.4圖所示:圖 3.4 閉環(huán)存儲(chǔ)電路被采樣信號(hào)經(jīng)采樣電路取樣保持,同時(shí)電子被泵入模擬存儲(chǔ)單元,此時(shí)兩者被送入比較器

31、的比較端,當(dāng)兩者電平相等時(shí)則停止向EPROM中寫(xiě)入數(shù)據(jù),這樣模擬信息得到了存儲(chǔ)。在器件的放音模式下,錄入的模擬電壓在取樣脈沖的作用下,順序的從模擬矩陣中讀出并恢復(fù)為原始波形,經(jīng)五極點(diǎn)平滑濾波器后入混合器,以便與外界其他信號(hào)混合,而后送入功率放大器,并由SP+,SP-端輸出,可直接驅(qū)動(dòng)揚(yáng)聲器。ISD2560應(yīng)用電壓:?jiǎn)? V供電錄/放時(shí)間:60S尋址空間:1024位最多語(yǔ)音分段:600支持OVF溢出支持節(jié)電模式:錄放操作周期外電流僅為0.5uAISD2560引腳圖如圖2.4所示:圖3.5 ISD2560引腳圖3.3 開(kāi)發(fā)工具的選擇與介紹:本設(shè)計(jì)原理圖繪制采用的是Protel99SE。Protel

32、99SE是Protel公司近10年來(lái)致力于Windows平臺(tái)開(kāi)發(fā)的最新結(jié)晶,能實(shí)現(xiàn)從電學(xué)概念設(shè)計(jì)到輸出物理生產(chǎn)數(shù)據(jù),以與這之間的所有分析、驗(yàn)證和設(shè)計(jì)數(shù)據(jù)管理。因而今天的Protel最新產(chǎn)品已不是單純的PCB(印制電路板)設(shè)計(jì)工具,而是一個(gè)系統(tǒng)工具,覆蓋了以PCB為核心的整個(gè)物理設(shè)計(jì)。 利用protel進(jìn)行電路設(shè)計(jì)需要三個(gè)步驟:一繪制原理圖二產(chǎn)生網(wǎng)絡(luò)表三完成PCB(印刷電路板)繪制圖3.6 protel設(shè)計(jì)電路步驟圖本設(shè)計(jì)利用protel軟件畫(huà)的硬件電路圖主要有單片機(jī)AT89C51的最小系統(tǒng)和語(yǔ)音芯片ISD2560電路與它們的接口電路,并對(duì)其進(jìn)行PCB版圖繪制。本設(shè)計(jì)的計(jì)算器語(yǔ)音播報(bào)系統(tǒng)是以AT

33、89C51為核心建立的系統(tǒng),在軟件編輯方面,需要對(duì)計(jì)算器、語(yǔ)音錄/放音兩部分分別構(gòu)成的子函數(shù)進(jìn)行編輯。在編輯中需要用keil C51軟件。計(jì)算器的仿真由軟件Proteus完成,他能很好的模擬計(jì)算環(huán)境,達(dá)到硬件的仿真效果。4 硬件電路設(shè)計(jì)硬件電路主要包括單片機(jī)為核心的復(fù)位電路、時(shí)鐘電路,外圍電路有顯示電路、語(yǔ)音電路和按鍵電路。通過(guò)各電路,詳細(xì)的介紹了電路組成。4.1 復(fù)位電路AT89C51單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,使CPU與系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片部的斯密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如RST引腳上

34、有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期),則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。如圖4.1所示,其為手動(dòng)復(fù)位電路,通過(guò)接通一按鈕開(kāi)關(guān),使單片機(jī)進(jìn)入復(fù)位狀態(tài)。圖4.1 復(fù)位電路4.2 時(shí)鐘電路AT89C51芯片部有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體與兩個(gè)電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容器C1和C2通常取22pf左右,可穩(wěn)定頻率并對(duì)振蕩頻率有微調(diào)作用。振蕩脈沖頻率圍為024MHz。 時(shí)鐘接口電路如圖4.2所示:圖4.2 時(shí)鐘電路4.3 顯示電路本設(shè)計(jì)采用LCD1602液晶顯示器來(lái)顯示輸出數(shù)據(jù),即可以顯示兩行,每行16個(gè)字

35、符。本設(shè)計(jì)通過(guò)D0-D7引腳向LCD寫(xiě)指令字或?qū)憯?shù)據(jù)以使LCD實(shí)現(xiàn)不同的功能或顯示相應(yīng)的數(shù)據(jù)。其接口電路如圖4.3所示。圖4.3 顯示電路4.4 語(yǔ)音電路A0-A9引腳提供語(yǔ)音芯片ISD2560的地址/模式輸入,通過(guò)A8、A9引腳可以配置ISD2560操作模式。P/R引腳控制語(yǔ)音芯片ISD2560的錄音/放音模式的選擇,P/R引腳為低,ISD2560為錄音狀態(tài),為高ISD2560為放音狀態(tài)。PD引腳和ISD2560的節(jié)電控制輸入相連,通過(guò)此引腳可以控制芯片的開(kāi)關(guān)。CE引腳用于控制語(yǔ)音芯片的片選,低電平時(shí)選中芯片。單片機(jī)的P3.3(INT1)引腳、P2.5引腳和ISD2560DE的EOM標(biāo)志輸出

36、相連,EOM標(biāo)志在錄音時(shí)由芯片自動(dòng)插入到錄音信息的結(jié)尾處,放音遇到EOM時(shí),會(huì)產(chǎn)生低電平脈沖(約12.5ms)觸發(fā)單片機(jī)中斷,單片機(jī)在檢測(cè)到此輸出的上升沿后播放新的錄音。語(yǔ)音接口電路如圖4.4所示:圖4.4 語(yǔ)音電路以下為芯片ISD2560的主要引腳說(shuō)明:·AO0/MO-A6/M6,A7-A9(1-10引腳):地址線/模式輸入。共有1024種組合狀態(tài)。最前面的600個(gè)狀態(tài)作為狀態(tài)部存儲(chǔ)器的尋址用,最后256個(gè)狀態(tài)作為操作模式。當(dāng)A8或A9有一個(gè)為零時(shí),作為地址線,作為當(dāng)前錄音/放音操作的起始地址,地址端一直用作輸入,不輸出操作過(guò)程中的部地址信息,地址輸入在CE的下降沿被鎖存。當(dāng)A8和

37、A9均為1時(shí),為模式輸入。·AUX IN(11引腳):輔助輸入。當(dāng)CE和P/R為高,放音不進(jìn)行或處于放音溢出狀態(tài)時(shí),該引腳的輸入信號(hào)通過(guò)部輸出放大器驅(qū)動(dòng)揚(yáng)聲器輸出端。·SP+,SP-(14,15引腳):揚(yáng)聲器輸出??沈?qū)動(dòng)16歐以上的揚(yáng)聲器(存放音時(shí)功率為12.2mW,AUXIN放音是功率為50mW)。ISD2500系列的所有的器件在芯片上都有一個(gè)差分揚(yáng)聲器驅(qū)動(dòng)器。·MIC IN(17引腳):話筒輸入引腳。麥克的輸入通過(guò)此引腳將信號(hào)送至片的前置放大器,片自動(dòng)增益控制電路(AGC)將此前置放大器的增益控制在-1524dB。外接話筒應(yīng)該通過(guò)一系列電容交流耦合進(jìn)此引腳,耦

38、合電容值和芯片部此引腳的10千歐輸入阻抗共同決定了ISD2560芯片頻帶的低頻截至點(diǎn)。·MIC REF(18引腳): 話筒參考輸入引腳。此引腳是前置放大器的反向輸入,當(dāng)以差分形式連接話筒時(shí),可減小噪聲,提高共模抑制比。·AGC(19引腳):自動(dòng)增益控制引腳。AGC可動(dòng)態(tài)調(diào)整前置增益以補(bǔ)償話筒輸入電平的寬幅變化,使得錄制變化很大的音量(從耳語(yǔ)道喧囂聲)時(shí)失真都保持最小。響應(yīng)時(shí)間取決于該端置的5千歐電阻和從該端到VSSA端所接電容的時(shí)間常數(shù)。·ANA IN(20引腳):模擬輸入引腳。此引腳為芯片錄音信號(hào)輸入端。對(duì)話筒輸入來(lái)說(shuō),應(yīng)將ANA OUT引腳通過(guò)外接電容連至此引

39、腳,該電容和本端的3千歐輸入阻抗決定了芯片頻帶的附加低端截至頻率。·ANA OUT(21引腳):模擬輸出引腳。此引腳為前置放大器的輸出,其前置電壓增益取決于AGC引腳的電平。·OVF(22引腳):溢出標(biāo)志輸出引腳,低電平有效。芯片處于存儲(chǔ)空間末尾時(shí),此引腳輸出低電平脈沖以表示溢出,之后該引腳狀態(tài)跟隨CE引腳的狀態(tài),直到PD引腳變高復(fù)位芯片·CE(23引腳):芯片使能輸入引腳,低電平有效。此引腳為低電平使能所有的錄音和播放操作。芯片在該引腳的下降沿和鎖存地址線和P/R引腳的狀態(tài)。·PD(24引腳):節(jié)電控制引腳。此引腳變高后可使芯片停止而進(jìn)入節(jié)電狀態(tài)。芯片

40、發(fā)生溢出,即OVF引腳輸出低電平后,應(yīng)將此引腳變高以將地址指針復(fù)位到錄音/放音空間的開(kāi)始位置。·EOM(25引腳):信息結(jié)尾標(biāo)志輸出引腳,低電平有效。EOM標(biāo)志在錄音時(shí)由芯片自控插入到該信息段的結(jié)尾。當(dāng)放音遇到EOM時(shí),此引腳輸出低電平脈沖。·XCLK(26引腳):外部時(shí)鐘輸入引腳。此引腳部與下拉元件,不用時(shí)應(yīng)接地。·P/R(27引腳):錄音/放音模式選擇引腳。此引腳在CE的下降沿鎖存。高電平選擇放音,低電平選擇錄音。錄音時(shí),由地址線提供起始地址,直到錄音持續(xù)到CE或PD變高,或存溢出;如果是前一種情況,芯片將自動(dòng)在錄音結(jié)束處寫(xiě)入EOM標(biāo)志。放音時(shí),由地址輸入提供

41、起始地址,放音持續(xù)到EOM標(biāo)志。如果CE一直為低,或芯片工作在某些操作模式,放音則會(huì)忽略EOM而繼續(xù)進(jìn)行下去,知道發(fā)生溢出為止。4.5 按鍵電路 計(jì)算機(jī)輸入數(shù)字和其他功能按鍵時(shí)要用到很多按鍵,在這種情況下,編程會(huì)很簡(jiǎn)單,但是會(huì)占用大量的I/O口資源,因此在很多情況下都不采用這樣的方式,而是采用矩陣鍵盤(pán)的方式。矩陣鍵盤(pán)采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤(pán),在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤(pán)上按鍵的數(shù)量就為4*4個(gè),這樣行列式鍵盤(pán)結(jié)構(gòu)能有效的提高單片機(jī)系統(tǒng)中I/O口的利用率。其中MM74C922為口擴(kuò)展芯片,單片機(jī)擴(kuò)展口電路如圖4.5所示,在本設(shè)計(jì)中,計(jì)算器輸入鍵盤(pán)

42、的4條行線、列線分別連接到MM74C922的X1-X4、Y1-Y4引腳,MM74C922的數(shù)據(jù)輸出口與單片機(jī)的P2口相連,MM74C922的DA引腳經(jīng)過(guò)一個(gè)與非門(mén)連接到單片機(jī)的/INT0腳,當(dāng)MM74C922檢測(cè)到鍵盤(pán)輸入時(shí),DA產(chǎn)生高電平,與之相連的/INT0檢測(cè)到低電平,給單片機(jī)一個(gè)中斷,單片機(jī)從P2口的低四位讀入鍵盤(pán)上按下的鍵的值。圖4.5 單片機(jī)擴(kuò)展口電路MM74C922主要引腳說(shuō)明:(1) Y1-Y4(腳1-腳4):4*4鍵盤(pán)第一列至第四列。(2) X1-X4(腳11、10、8、7):4*4鍵盤(pán)第一行至第四行。(3) DOA- DOD(Dataout A-D,腳14-17):按鍵之B

43、CD碼輸出(4) KBM(Keyboard Mask,腳6):部消除開(kāi)關(guān)彈跳電路所外加電容的引腳。(5) DA(Data Available,腳12):數(shù)據(jù)有效輸出腳。任一按鍵按下時(shí),此腳位會(huì)輸出高電位,按鍵釋放后此腳又會(huì)恢復(fù)為低電位。(6) OE(Output Enable,腳13):芯片使能腳,接低電位可使芯片選通。MM74C922對(duì)各按鍵的響應(yīng)如表4.1所示:表4.1按鍵電路如圖4.6所示:圖4.6 按鍵電路5 軟件設(shè)計(jì)本設(shè)計(jì)是硬件電路和軟件編程相結(jié)合的設(shè)計(jì)方案,選擇合適的編程語(yǔ)言是一個(gè)重要的環(huán)節(jié)。在單片機(jī)的應(yīng)用系統(tǒng)程序設(shè)計(jì)時(shí),常用的是匯編語(yǔ)言和C語(yǔ)言。匯編語(yǔ)言程序可讀性和可移植性比較差

44、。而C語(yǔ)言雖然執(zhí)行效率沒(méi)有匯編語(yǔ)言高,但語(yǔ)言簡(jiǎn)潔,使用方便,靈活,運(yùn)算豐富,表達(dá)化類型多樣化,數(shù)據(jù)結(jié)構(gòu)類型豐富,具有結(jié)構(gòu)化的控制語(yǔ)句,程序設(shè)計(jì)自由度大,有很好的可重用性,可移植性等特點(diǎn)。由于現(xiàn)在單片機(jī)的發(fā)展已經(jīng)達(dá)到了很高的水平,部的各種資源相當(dāng)?shù)呢S富,CPU的處理速度非常的快。用C語(yǔ)言來(lái)控制單片機(jī)無(wú)疑是一個(gè)理想的選擇。所以在本設(shè)計(jì)中采用C語(yǔ)言編寫(xiě)軟件程序。5.1 AT89C51單片機(jī)中斷允許控制IE:中斷允許控制寄存器如表5.1所示:寄存器地址A8H,位尋址AFHA8H。表5.1位地址AFAEADACABAAA9A8位符號(hào)EA/ET2ESET1EX1ET0EX0EA:中斷允許總控制位當(dāng)EA=0

45、時(shí),中斷總禁止。當(dāng)EA=1時(shí),中斷總允許后中斷的禁止與允許由各中斷源的中斷允許控制位進(jìn)行設(shè)置。EX0( EX1):外部中斷允許控制位當(dāng)EX0( EX1)0 禁止外中斷當(dāng)EX0( EX1)1 允許外中斷ET0(EX1):定時(shí)/計(jì)數(shù)中斷允許控制位當(dāng)ET0(ET1)0 禁止定時(shí)(或計(jì)數(shù))中斷當(dāng)ET0(ET1)1 允許定時(shí)(或計(jì)數(shù))中斷ET2:定時(shí)器2中斷允許控制位,在AT89S52、AT89C52中ES:串行中斷允許控制位當(dāng)ES0 禁止串行中斷當(dāng)ES1 允許串行中斷5.2 LCD1602控制5.2.1 LCD1602字符發(fā)生存儲(chǔ)器(CGROM)1602液晶模塊部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)

46、了160個(gè)不同的點(diǎn)陣字符圖形,如表5.3所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A” 。表5.2 LCD1602字符碼顯示圖5.2.2 LCD1602顯示數(shù)據(jù)寄存器(DDRAM)1.清屏指令功能:清除液晶顯示器,即清屏操作數(shù)為0x01。2.進(jìn)入模式設(shè)置指令功能:設(shè)定每次定入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫(xiě)入的一個(gè)字符是否移動(dòng)。此設(shè)計(jì)規(guī)定光標(biāo)右移、顯示屏不移動(dòng),與操作數(shù)為0x06。參數(shù)設(shè)定的情況如下

47、所示:位名      設(shè)置I/D     0=寫(xiě)入新數(shù)據(jù)后光標(biāo)左移        1=寫(xiě)入新數(shù)據(jù)后光標(biāo)右移S        0=寫(xiě)入新數(shù)據(jù)后顯示屏不移動(dòng)  1=寫(xiě)入新數(shù)據(jù)后顯示屏整體右移1個(gè)字符3.顯示開(kāi)關(guān)控制指令功能:控制顯示器開(kāi)/關(guān)、光標(biāo)顯示/關(guān)閉以與光標(biāo)是否閃爍。此設(shè)計(jì)規(guī)定顯示功能開(kāi)、無(wú)光標(biāo)、光標(biāo) 不閃

48、爍,操作數(shù)為0x0c。參數(shù)設(shè)定的情況如下:位名              設(shè)置D                0=顯示功能關(guān)              1=顯示功能開(kāi)C 

49、;               0=無(wú)光標(biāo)                  1=有光標(biāo)B                0=光標(biāo)

50、閃爍                 1=光標(biāo)不閃爍4.功能設(shè)定指令功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)與字型。此設(shè)計(jì)規(guī)定數(shù)據(jù)總線為8位、顯示2行,操作數(shù)為0x38。參數(shù)設(shè)定的情況如下:位名              設(shè)置DL       &

51、#160;       0=數(shù)據(jù)總線為4位             1=數(shù)據(jù)總線為8位N                0=顯示1行         

52、               1=顯示2行F                 0=5×7點(diǎn)陣/每字符             1=5×10點(diǎn)陣/每字符

53、5.液晶屏顯示位置顯示位置12345678910111213141516地址(H)第一行000102030405060708090A0B0C0D0E0F第二行404142434445464748494A4B4C4D4E4F功能:0x31(數(shù)字1的代碼)并不能顯示1出來(lái)。原因就是如果你要想在DDRAM的00H地址處顯示數(shù)據(jù),則必須將00H加上80H,即80H,若要在DDRAM的01H處顯示數(shù)據(jù),則必須將01H加上80H即80H+01H。依次類推。5.3 計(jì)算器軟件設(shè)計(jì)現(xiàn)實(shí)生活中人們熟知的計(jì)算器,其功能主要如下:1、 鍵盤(pán)輸入;2、 數(shù)值顯示;3、 加、減、乘、除四則運(yùn)算;4、 對(duì)錯(cuò)誤的控制與提示

54、;針對(duì)上述功能,計(jì)算器軟件程序要完成以下模塊的設(shè)計(jì):1、 鍵盤(pán)輸入檢測(cè)模塊2、 算術(shù)運(yùn)算模3、 塊LCD顯示模塊4、 錯(cuò)誤處理與提示模塊。5.3.1系統(tǒng)總流程圖圖5.1 系統(tǒng)總流程圖5.3.2算術(shù)運(yùn)算程序設(shè)計(jì) 算術(shù)運(yùn)算程序的過(guò)程為:先判斷輸入的運(yùn)算符是+、-、*、/ 中的哪一個(gè),輸入數(shù)值是否溢出,若溢出規(guī)定圍,則顯示錯(cuò)誤信息,若是/,則要先判斷除數(shù)是否為零,為零就顯示錯(cuò)誤信息,不為零則顯示運(yùn)算結(jié)果,結(jié)果可顯示小數(shù)點(diǎn)后3位,若是-,則直接顯示運(yùn)算結(jié)果,可顯示負(fù)數(shù)。其流程圖如圖5.2所示。圖5.2運(yùn)算流程圖5.3.3按鍵程序設(shè)計(jì)有鍵按下時(shí),單片機(jī)響應(yīng)外部中斷0,轉(zhuǎn)入外部中斷0中斷處理函數(shù),在中斷處

55、理函數(shù)中完成對(duì)按鍵的判斷,以進(jìn)行下一步的程序處理。5.3.4顯示程序設(shè)計(jì)利用LCD靜態(tài)顯示,通過(guò)程序向LCD寫(xiě)指令字或數(shù)據(jù)使LCD完成不同功能或顯示相應(yīng)數(shù)據(jù)。5.3.5 錯(cuò)誤處理與提示程序設(shè)計(jì)當(dāng)計(jì)算器執(zhí)行過(guò)程中有錯(cuò)誤時(shí),會(huì)在LCD上顯示相應(yīng)的提示,如當(dāng)除數(shù)為0或數(shù)值超出圍時(shí),計(jì)算器會(huì)在LCD上提示錯(cuò)誤。5.4 語(yǔ)音播報(bào)軟件設(shè)計(jì)錄音時(shí),按下錄音鍵,單片機(jī)通過(guò)口線設(shè)置語(yǔ)音段的起始地址,再使PD端、P /R端和CE端為低電平啟動(dòng)錄音;結(jié)束時(shí),松開(kāi)按鍵,單片機(jī)又讓CE端回到高電平,完成一段語(yǔ)音的錄制。同樣的方法可錄取第二段、第三段。特別值得注意的是,錄音時(shí)間不能超過(guò)預(yù)先設(shè)定的每段語(yǔ)音的時(shí)間。放音時(shí),根

56、據(jù)需播放的語(yǔ)音容,找到相應(yīng)的語(yǔ)音段起始地址,并通過(guò)口線送出。再將P /R端設(shè)為高電平,PD端設(shè)為低電平,并讓CE端產(chǎn)生一負(fù)脈沖啟動(dòng)放音,這時(shí)單片機(jī)只需等待ISD2560的信息結(jié)束信號(hào),即EOM的產(chǎn)生。信號(hào)為一負(fù)脈沖,在負(fù)脈沖的上升沿,該段語(yǔ)音才播放結(jié)束,所以單片機(jī)必須要檢測(cè)到EOM的上升沿才能播放第二段,否則播放的語(yǔ)音就不連續(xù),而且會(huì)產(chǎn)生啪啪聲。具體的軟件設(shè)計(jì)和錄放音時(shí)序圖見(jiàn)表5.3、圖5.4和圖5.5所示。表5.3 ISD2560軟件設(shè)計(jì)地址表圖5.3 ISD2560語(yǔ)音芯片放音時(shí)序圖圖5.4 ISD2560語(yǔ)音芯片錄音時(shí)序圖5.4.1 分段錄放音2500系列最多可分為600段,只要在分段錄

57、/放操作前(不少于300納秒),給地址A0-A9賦值,錄音與放音功能均從設(shè)定的起始地址開(kāi)始,錄音結(jié)束由停止鍵操作決定,芯片部自動(dòng)在該段的結(jié)束位置插入結(jié)束標(biāo)志(EOM);而放音芯片遇到EOM標(biāo)志即自動(dòng)停止放音。2500系列地址空間是這樣分配的:地址0-599作為分段用表 5.5 ISD2560 地址空間分配圖5.4.2 程序流程圖 本設(shè)計(jì)主要通過(guò)單片機(jī)對(duì)ISD2560的控制實(shí)現(xiàn)指定地址入口的錄音和循環(huán)播放。程序要實(shí)現(xiàn)下面的過(guò)程:“開(kāi)始”鍵按下后,即系統(tǒng)上電后,系統(tǒng)初始化,然后判斷開(kāi)始鍵是否按下,如果按下則單片機(jī)控制PD,P/R引腳低電平,并指向錄音地址,啟動(dòng)錄音過(guò)程。調(diào)用錄音函數(shù),錄音函數(shù)為:V

58、oid record(void) CE = 0; /片選有效 PD = 0; /非節(jié)電模式 PR = 0 ; /錄音當(dāng)CE=0 時(shí)芯片使能輸入引腳,使能所有的的錄音操作。當(dāng)PD=0 時(shí)使芯片開(kāi)始工作,而進(jìn)入非節(jié)電模式。當(dāng)PR=0 時(shí)開(kāi)始錄音,錄音時(shí),由地址線提供起始地址,直到錄音持續(xù)到CE或PD變高,或自動(dòng)溢出。語(yǔ)音播報(bào)系統(tǒng)總流程如圖5.6所示:圖5.6 語(yǔ)音播報(bào)系統(tǒng)總流程圖在預(yù)先設(shè)定的時(shí)間,(小于60s)結(jié)束錄音,松開(kāi)“開(kāi)始”鍵單片機(jī)控制P/R引腳回到高電平,即完成一段語(yǔ)音的錄制。之后打開(kāi)外部中斷1,指定放音地址,啟動(dòng)放音程序,其放音函數(shù)為: Void playback(void) CE =

59、 0; / 片選有效 PD = 0; / 非節(jié)電模式 PR = 1; / 放音當(dāng)CE=0 時(shí)芯片使能輸入引腳,使能所有的的錄音操作。當(dāng)PD=0 時(shí)使芯片開(kāi)始工作,而進(jìn)入非節(jié)電模式。當(dāng) PR=1時(shí)為高電平,這時(shí)選擇放音,這時(shí)由地址輸入提供起始地址,放音持續(xù)到EOM位標(biāo)志。每次放音結(jié)束時(shí),EOM輸出會(huì)觸發(fā)單片機(jī)的外部中斷1,經(jīng)過(guò)適當(dāng)?shù)难訒r(shí)后,重新啟動(dòng)第二次放音,這樣重復(fù)三次后關(guān)閉外部中斷1,流程結(jié)束,等待下一次錄音。外部中斷服務(wù)子程序流程圖如圖5.7所示:外部中斷服務(wù)子程序 關(guān)閉外部中斷 如果count<2 Count+ 延時(shí) 打開(kāi)外部中斷 調(diào)用播放函數(shù)圖 5.7 外部中斷服務(wù)子程序流程圖5.5 仿真與調(diào)試下面用KEIL uVision與 porteus仿真軟件實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的仿真與調(diào)試。5.5.1 KEIL uVision調(diào)試Keil是目前進(jìn)行51單片機(jī)開(kāi)發(fā)最常用的編譯軟件,操作如下:圖5.8 3.6 Keil軟件主界面首先點(diǎn)擊Project->New Project(Project-&

溫馨提示

  • 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)論