




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上摘 要近年來隨著科技的飛速發展,單片機的應用正在不斷深入。在實時檢測和自動控制的單片機應用系統中,單片機往往作為一個核心部件來使用。但僅單片機方面的知識是不夠的,還應根據具體的硬件擴展和軟件設計,來加以完善單片機的功能。計算器是人們的日常生活中比較常用的電子產品之一。語音技術的進展給這種應用需要提供了一種有力的技術支持,逐漸被廣大用戶所接受,并廣泛應用于各種需要語音響應的場合。本次設計的簡易計算器系統,以MCS-51系列中的AT89C51單片機為核心,通過鍵盤輸入,能夠實現簡單的加減乘除四則運算,并將結果于LCD1602液晶顯示器顯示。另外此系統擴展了語音的錄放功能,
2、能夠根據用戶喜好進行短時錄音和放音。硬件電路部分主要包括AT89C51單片機控制器模塊、LCD1602液晶顯示器模塊、4*4矩陣式控制按鍵模塊和語音播放模塊等。然后通過Proteus對系統進行仿真,最后進行實物焊接與調試。仿真和調試結果表明該系統能夠準確計算,響應時間較短,工作較穩定。關鍵詞:AT89C51; LCD1602; ISD2560; 4*4矩陣式控制按鍵ABSTRACTIn recent years, with the rapid development of science and technology, SCM applications are deepening. In re
3、al-time detection and automatic control of microcomputer application system, the single chip microcomputer often as a core component to use. But only SCM knowledge is not enough, still should according to the specific hardware extension, and the software design, to improve the function of the microc
4、ontroller. Calculator is more common in Peoples Daily life of one of the electronic products. Speech technology progress for this application needs to provide a powerful technical support, is gradually accepted by the masses of users, and are widely applied to various needs voice response. This simp
5、le calculator system, based on the AT89C51 MCS - 51 series microcontroller as the core, through keyboard input, the arithmetic to implement a simple addition, subtraction, multiplication, and division, and will result in the LCD1602 LCD display. In addition this system extends the voice recording fu
6、nction, can according to users preferences for short time recording and playback. Hardware circuit part mainly consists of AT89C51 controller module, LCD1602 LCD module, 4 * 4 matrix module and voice broadcast module control buttons, etc. Then the system are simulated by Proteus, and finally carries
7、 on the real welding and debugging. The simulation and debugging results show that the system can accurately calculate, shorter response time, work more stable. Keywords:AT89C51; LCD1602; ISD2560; 4 * 4 matrix control buttons 專心-專注-專業目錄1 緒論1.1 系統開發背景 隨著社會的發展,科學的進步,人們的生活水平在逐步的提高,尤其是微電子技的術的發展,猶如雨后春筍的變
8、化。計算器在人們的日常中視比較常見的電子產品之一,如何將常見的計算器技術更加成熟,充分利用已有的軟件和硬件條件,設計出更加出色的計算器,使其更好的為各行業服務,成了如今電子領域重要的研究課題。1.2 系統開發意義人們的日常生活中已經離不開計算器了,社會的各個角落幾乎都充斥著它的身影,比如各類商店,超市和辦公場所等等。因此設計一款方便實用的計算器有很大的實際意義。我們常見的計算器一般只有計算功能,和簡單的語音跟蹤,并不能根據用戶自身喜好進行錄音。本設計正是出于此種創意,制作的計算器不僅能完成基本計算功能,而且還融入了語音系統于其中。即是說此計算器除能夠完成一般計算功能和語音跟蹤之外,還可以根據用
9、戶喜好自定義一段錄音,然后播放出來。這種根據自己喜好錄放音的計算器將會受到大家的喜歡。1.3 設計主要內容隨著嵌入式系統(以應用為中心,以計算機技術為基礎,且軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統)的快速發展,單片機本著它簡單,功能強大,易于設計等優點被設計者廣泛使用。本設計使用單片機作為中央控制器件,另附計算系統與語音系統為擴展完成。第一章為設計的背景、意義介紹,簡明扼要的闡述設計的目的和成果。第二章為系統方案設計,主要從設計的功能,方案的確定及選擇原因和系統組成來介紹。第三章為主要芯片介紹,詳細闡述了芯片的內部結構和引腳分布。第四章為設計的核心
10、,即硬件電路設計。此章將硬件電路分為若干模塊,分別介紹了各模塊的硬件設計電路。第五章為軟件設計,主要介紹了語言的選擇,控制字的確定,流程圖和最后的仿真與調試。通過這幾章的介紹,完成簡易計算器的設計。2 系統方案總體設計2.1簡易計算器的功能介紹2.1.1 基本功能根據所學知識,自行設計一個計算器,要求該計算器能夠實現加減乘除四則混合運算,能夠實現連續計算。2.1.2 擴展功能(1)該計算器可顯示負數。(2)該計算器帶有語音播報系統,可自定義錄、放音。(3)該計算器能夠進行錯誤提示和數據溢出提示。2.2 方案論證與比較2.2.1 控制器部分設計方案論證與選擇根據設計要求,控制器主要用于數據的接收
11、和發送、數據的運算和控制液晶屏顯示等。針對這些,對于控制器的選擇有以下三種方案。方案一:采用計算器專用芯片實現。用計算器專用芯片進行設計并編程實現。這種設計方案計算效率高、速度快、而且成本也相對較低,是廠家做計算器的最佳方案。但是計算器專用芯片的使用最主要是規范和專業,適用于復雜領域計算。現設計的計算器只需完成基本計算功能和語音模塊擴展,并且由于專用芯片的使用繁瑣復雜,價格昂貴,所以這個方案不可取。方案二:采用FPGA(現場可編程門陣列)作為系統的控制器。FPGA將所有器件集成到一塊芯片上,體積小,節省空間,直接面向用戶,使用方便,硬件測試和實現方便快捷,開發效率高,工作可靠性好。可實現各種復
12、雜的邏輯功能,規模大,密度高,采用并行的輸入輸出方式,系統處理速度高,適合作為大規模實時系統的控制核心。由于本設計對數據處理速度的要求不是很高,FPGA的高速處理的優勢得不到充分體現。又由于其集成度高,成本偏高。而且其芯片的引腳較多,實物電路板布線復雜,加重了電路的實際焊接的工作。這樣一來FPGA的性價比太低,所以這個方案不考慮。方案三:用單片機實現。由于單片機集成了運算器電路、控制電路、存儲器、中斷系統、定時器/計數器以及輸入/輸出口電路等,所以用單片機設計控制電路省去了很多分立元器件。而且單片機是可編程芯片,可以運用C語言編寫,對于一些復雜的計算功能,它可以調用C語言庫函數,使編程工作變得
13、非常簡單。所以該課題用單片機實現,不僅功能易于實現,而且精確度高,穩定性好,抗干擾能力強。并且由于其成本低、體積小、技術成熟和功耗小,技術比較成熟,性價比也相當高。更重要的是本人經過四年的學習,對單片機已有深刻的理解,使用起來更加方便靈活。綜上所述,通過各個方面綜合比較,為達到最佳效果,我們采用方案三用單片機來設計此控制器。2.2.2 顯示電路部分設計方案論證與選擇方案一:數碼管顯示方案。使用兩個四位一體動態數碼管顯示,具有程序簡單,對外界環境要求低,易于維護,精確可靠,操作簡單,顯示直觀的特點。但由于數碼管只能顯示數字和代碼,不能顯示漢字及常用符號等,所以此方案不考慮。方案二:采用LCD16
14、02型液晶顯示。(一)基本顯示特性1、+5V電壓,對比可調度;2、內含復位電路;3、提供各種控制命令,如:清屏、字符閃爍、光標閃爍、顯示移位等多種功能;4、有80字節顯示數據存儲器DDRAM;5、內建有160個5X7點陣的字型的字符發生器CGROM;6、8個可由用戶自定義的5X7的字符發生器CGRAM。(二)接口定義LCD1602接口定義如表2-1所示表2-1 接口定義圖引腳號引腳名電平輸入/輸出作用12345678910111213141516VssVccVeeRSR/WEDB0DB1DB2DB3DB4DB5DB6DB7AK0/10/11,100/10/10/10/10/10/10/10/1
15、+Vcc接地輸入輸入輸入輸入/輸出輸入/輸出輸入/輸出輸入/輸出輸入/輸出輸入/輸出輸入/輸出輸入/輸出電源地電源(+5V)對比可調電壓0=輸入指令1=輸入數據0=向LCD寫入指令或數據1=從LCD讀取數據使能信號,1時讀取信息,10(下降沿)執行指令數據總線line0(最低位)數據總線line1數據總線line2數據總線line3數據總線line4數據總線line5數據總線line6數據總線line7(最高位)LCD背光電源正極LCD背光電源負極綜上所敘,AT1602的顯示效果好、功能齊全,所以我們選用AT1602液晶顯示。該液晶有16個引腳,它能顯示32個字符,并且硬件電路設計簡單,顯示美
16、觀。2.2.3 鍵盤設計方案與選擇方案一:獨立鍵盤。獨立鍵盤為一端接地,另一端接I/O口,并且要接上拉電阻。這種鍵盤的硬件很容易實現,但由于每一個按鍵就要占用一個I/O口,浪費單片機的I/O口資源,不適合本次設計,此方案不考慮。方案二:4*4矩陣式鍵盤。這種鍵盤的硬件簡單,使用的I/O口比獨立鍵盤減少一半,并且這種鍵盤的編程方法很常見,相對來說比較熟。所以本次設計采用4*4矩陣式鍵盤。2.3 系統組成本設計采用MCS-51系列單片機AT89C51來設計計算器。通過擴展必要的外圍接口電路,實現對計算器的設計。由鍵盤輸入數值,再通過80C51單片機輸入到系統,并由I/O口輸出,最后由LCD1602
17、顯示輸入數值和輸出結果,同時通過語音模塊達到實時語音播報,通過語音擴展模塊實現錄放音的功能效果。其中,本設計以單片機為核心,包括按鍵模塊、擴展模塊、基本運算模塊、語音模塊和顯示模塊。系統框圖如圖2-1所示: 圖2-1 系統框圖硬件電路是采用結構化系統設計方法,該方法保證設計電路的標準化、模塊化。硬件電路設計最重要的選擇是確定用于控制的單片機,并確定與之配套的外圍芯片,使所設計的系統實用性強、操作簡單。軟件設計的方法與開發環境的選取有著直接的關系,本系統由于是采用CMS-51系列單片機,因此使用Keil C語言進行開發,Proteus仿真軟件進行仿真。此編程工具相比匯編語言具有結構化、適用范圍大
18、、可移植性好等特點。本系統軟件設計采用模塊化系統設計方法,先編寫各個功能模塊子程序,然后進行組合與調整,經過Keil C調試后,達到設計功能要求,并在Proteus中仿真。在設計中采用AT89C51單片機作為微處理器,低電壓、高性能CMOS 8位單片機,片內含4K bytes的可反復擦寫的Flash只讀程序存儲器和128 bytes的隨機存取數據存儲器(RAM),兼容標準MCS-51指令系統,片內置通用8位中央處理器(CPU)和Flash 存儲單元。硬件方面需完成包括鍵盤控制,LCD屏顯示控制,基本運算控制、語音控制等設計。除外,還有各部件之間的連接、引腳間的連接等工作。軟件方面則需完成各功能
19、模塊的程序編寫,及調試和仿真工作。3 硬件電路設計硬件電路主要包括單片機為核心的復位電路、時鐘電路,顯示電路、語音電路和按鍵電路。通過各電路,詳細的介紹了電路組成。3.1 主控芯片選型及分析 隨著集成電路工藝的發展,出現了單片機、DSP、ARM等多種單片機。DSP:有16位的到32位之分,16位DSP適合中高級工控到簡單語音/圖片處理,32位DSP適合復雜語音/圖片/視頻等處理。ARM:是32位單片機,適合做中高級工控或簡單語音/圖片(不含視頻)的處理。而AT89C51是一種帶有4K字節閃爍可編程可擦除只讀存儲的低電壓、高性能CMOS8位微處理器,與工業標準的MCS-51指令集和輸出管腳均相兼
20、容。MCS-51單片機雖然和DSP,ARM相比處理速度和運算速度上都比較慢,但它體積小、質量輕、價格便宜,速度也可以滿足本次實驗的要求,所以我們采用AT89C51這款單片機作為本設計的主控芯片。AT89C51內部原理圖如圖3-1所示: 圖3-1 AT89C51單片機內部原理圖引腳圖如圖3-2所示:圖3-2 AT89C51單片機引腳圖AT89C51的主要特性:(1) 與MCS-51兼容(2) 4K字節可編程閃爍存儲器(3) 數據保留時間:10年(4) 全靜態工作:0Hz-24Hz(5) 128*8位內部RAM(6) 32可編程I/O線(7) 兩個16位定時器/計數器(8) 5個中斷源(9) 可編
21、程串行通道(10) 片內振蕩器和時鐘電路中央處理器:中央處理器(CPU)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼,CPU負責控制、指揮和調度整個單元系統協調的工作,完成運算和控制輸入輸出功能等操作。數據存儲器(RAM):C51內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的RAM只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。程序存儲器(ROM):C51共有4096個8位掩膜ROM,用于存放用戶程序,原始數據或表格。定時/
22、計數器:C51有兩個16位的可編程定時/計數器,以實現定時或計數產生中斷,用于控制程序轉向。并行輸入輸出(I/O)口:C51共有4組8位I/O口(P0、P1、P2和P3),用于對外部數據的傳輸。全雙工串行口:C51內置一個全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發器,也可以當同步移位器使用。中斷系統:C51具備較完善的中斷功能,有兩個外中斷、兩個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優先級別選擇。時鐘電路:C51內置最高頻率達12MHz的時鐘電路,用于產生整個單片機運行的脈沖時序,但C51單片機需外置振蕩電容。3.2 復位電路A
23、T89C51單片機在啟動時都需要復位,使CPU及系統各部件處于確定的初始狀態,并從初態開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內部的斯密特觸發器中的。當系統處于正常工作狀態時,且振蕩器穩定后,如RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期),則CPU就可以響應并將系統復位。如圖3-3所示,其為手動復位電路,通過接通一按鈕開關,使單片機進入復位狀態。圖3-3 復位電路3.3 時鐘電路AT89C51芯片內部有一個高增益反相放大器,用于構成振蕩器,反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構成穩定的自激振蕩器。電容器C1和C2
24、通常取22pf左右,可穩定頻率并對振蕩頻率有微調作用。振蕩脈沖頻率范圍為024MHz。 時鐘接口電路如圖3-4所示:圖3-4 時鐘電路3.4 顯示電路本設計采用LCD1602液晶顯示器來顯示輸出數據。 本設計通過D0-D7引腳向LCD寫指令字或寫數據以使LCD實現不同的功能或顯示相應的數據。其接口電路如圖3-5所示。圖3-5 顯示電路LCD部分3.5 語音電路 3.51 ISD2560選型及分析目前市場流行的語音芯片有很多,從性價比的角度來考慮,美國ISD公司的ISD系列語音芯片可謂是一只獨秀。ISD系列語音芯片具有以下優點:(1)采用模擬量數據存儲在半導體存儲器直接存儲的專利技術,即將模擬量
25、數據直接寫入單個存儲單元,不需要經過A/D,D/A轉換。(2)內部集成了大容量的的EEPROM,不再需要擴展存儲器。(3)控制簡單,控制引腳與TTL電平兼容。(4)集成度高,使用方便。(5)能較好的真時再現語音的自然效果,避免了一搬固體語音電路的因為量化和壓縮所造成的量化噪聲和失真現象。 因此本例選用ISD公司的語音芯片ISD2560。ISD2560是ISD公司生產的語音錄入和重放芯片ISD2500系列之一,ISD2500系列芯片包括ISD2560,ISD2575,ISD2590和ISD25120四種,他們的主要區別在于存儲語音的時間長度,ISD2560的錄音時間為60秒,ISD2575的錄音
26、時間為75秒,ISD2590的錄音時間為90秒,而ISD25120的錄音時間為120秒。ISD2560采用多電平直接模擬量存儲專利技術,每個采樣值可直接存儲在片內單個EEPROM單元中,因此能夠非常真實,自然得再現語音,音樂,音調和效果聲,從而避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。ISD2560的采樣頻率為8kHZ,同一系列的產品采樣頻率越低,錄音/放音時間越長,但同頻帶和音質會有所降。ISD2560可重復錄放10萬多次,它是一種永久記憶型語音錄音/放音電路,它具有音質自然,使用方便,單片存放,反復錄音,功耗低,抗斷電等許多優點,因此在許多領域獲得了廣泛的應用。ISD2
27、560省去了A/D和D/A轉換器,集成度較高,內部包括前置放大器,內部時鐘,定時器,采樣時鐘,濾波器,自動增益控制,邏輯控制,模擬收發器,解碼器和480k字節的EEPROM。ISD2560內部的EEPROM存儲單元均勻分為600行,有600個地址單元,每個地址單元指向其中一行,每一個地址單元的地址分辨率為100ms。此外,ISD2560還具備微控制器所需的控制接口。通過操縱地址和控制線可完成不同的任務,以便實現復雜的信息處理功能,如信息的組合,連接,設定固定的信息段和信息管理等。ISD2560可不分段,也可按最小段長為單位來任意組合分段。ISD2560內部原理圖如圖3-6所示: 圖 3-6 I
28、SD2560內部原理圖由內部框圖可知其內部集成了高精度的時鐘電路,無需外部配置晶振, ISD2560可進行錄、放兩種操作。錄入時,語音信號經過換能器MIC轉變為電信號,該信號經過隔直電容去除直流分量后送入前置放大器,微弱的電信號經過前置放大后由ANAOUT腳輸出,經過隔直電容后送入ANAIN腳,既而信號進入自動增益AGC放大器,信號電平得到調理,使其符合存儲電路的動態范圍。為使得采樣信號不產生失真,采樣系統必須滿足奈奎斯特采樣定律。ISD2560的采樣頻率8K, 故實際應用中,為存儲不失真音頻信息,放大后的信號必須經過一個低通濾波器后方可送入存儲單元,該濾波器為一五極點抗干擾濾波器,高頻頻限為
29、3.4K,完全滿足奈奎斯特定律,該器件典型帶寬為3.4K。調理完畢的信號在內部時鐘的作用下以閉環控制形式送入模擬存儲陣列。如3-7圖所示: 圖 3-7 閉環存儲電路被采樣信號經采樣電路取樣保持,同時電子被泵入模擬存儲單元,此時兩者被送入比較器的比較端,當兩者電平相等時則停止向EPROM中寫入數據,這樣模擬信息得到了存儲。在器件的放音模式下,錄入的模擬電壓在取樣脈沖的作用下,順序的從模擬矩陣中讀出并恢復為原始波形,經五極點平滑濾波器后入混合器,以便與外界其他信號混合,而后送入功率放大器,并由SP+,SP-端輸出,可直接驅動揚聲器。ISD2560應用電壓:單5 V供電,錄/放時間:60S尋址空間:
30、1024位最多語音分段:600 支持OVF 溢出ISD2560引腳圖如圖3-8所示:圖3-8 ISD2560引腳圖A0-A9引腳提供語音芯片ISD2560的地址/模式輸入,通過A8、A9引腳可以配置ISD2560操作模式。P/R引腳控制語音芯片ISD2560的錄音/放音模式的選擇,P/R引腳為低,ISD2560為錄音狀態,為高ISD2560為放音狀態。PD引腳和ISD2560的節電控制輸入相連,通過此引腳可以控制芯片的開關。CE引腳用于控制語音芯片的片選,低電平時選中芯片。單片機的P3.3(INT1)引腳、P2.5引腳和ISD2560DE的EOM標志輸出相連,EOM標志在錄音時由芯片自動插入到
31、錄音信息的結尾處,放音遇到EOM時,會產生低電平脈沖(約12.5ms)觸發單片機中斷,單片機在檢測到此輸出的上升沿后播放新的錄音。語音接口電路如圖3-9所示:圖3-9 語音電路以下為芯片ISD2560的主要引腳說明:AO0/MO-A6/M6,A7-A9(1-10引腳):地址線/模式輸入。共有1024種組合狀態。最前面的600個狀態作為狀態內部存儲器的尋址用,最后256個狀態作為操作模式。當A8或A9有一個為零時,作為地址線,作為當前錄音/放音操作的起始地址,地址端一直用作輸入,不輸出操作過程中的內部地址信息,地址輸入在CE的下降沿被鎖存。當A8和A9均為1時,為模式輸入。AUX IN(11引腳
32、):輔助輸入。當CE和P/R為高,放音不進行或處于放音溢出狀態時,該引腳的輸入信號通過內部輸出放大器驅動揚聲器輸出端。SP+,SP-(14,15引腳):揚聲器輸出。可驅動16歐以上的揚聲器(內存放音時功率為12.2mW,AUXIN放音是功率為50mW)。ISD2500系列的所有的器件在芯片上都有一個差分揚聲器驅動器。MIC IN(17引腳):話筒輸入引腳。麥克的輸入通過此引腳將信號送至片內的前置放大器,片內自動增益控制電路(AGC)將此前置放大器的增益控制在-1524dB。外接話筒應該通過一系列電容交流耦合進此引腳,耦合電容值和芯片內部此引腳的10千歐輸入阻抗共同決定了ISD2560芯片頻帶的
33、低頻截至點。MIC REF(18引腳): 話筒參考輸入引腳。此引腳是前置放大器的反向輸入,當以差分形式連接話筒時,可減小噪聲,提高共模抑制比。AGC(19引腳):自動增益控制引腳。AGC可動態調整前置增益以補償話筒輸入電平的寬幅變化,使得錄制變化很大的音量(從耳語道喧囂聲)時失真都保持最小。響應時間取決于該端內置的5千歐電阻和從該端到VSSA端所接電容的時間常數。 ANA IN(20引腳):模擬輸入引腳。此引腳為芯片錄音信號輸入端。對話筒輸入來說,應將ANA OUT引腳通過外接電容連至此引腳,該電容和本端的3千歐輸入阻抗決定了芯片頻帶的附加低端截至頻率。ANA OUT(21引腳):模擬輸出引腳
34、。此引腳為前置放大器的輸出,其前置電壓增益取決于AGC引腳的電平。 OVF(22引腳):出標志輸出引腳,低電平有效。芯片處于存儲空間末尾時,此引腳輸出低電平脈沖以表示溢出,之后該引腳狀態跟隨CE引腳的狀態,直到PD引腳變高復位芯片 CE(23引腳):芯片使能輸入引腳,低電平有效。此引腳為低電平使能所有的錄音和播放操作。芯片在該引腳的下降沿和鎖存地址線和P/R引腳的狀態。 PD(24引腳):節電控制引腳。此引腳變高后可使芯片停止而進入節電狀態。芯片發生溢出,即OVF引腳輸出低電平后,應將此引腳變高以將地址指針復位到錄音/放音空間的開始位置。 EOM(25引腳):信息結尾標志輸出引腳,低電平有效。
35、EOM標志在錄音時由芯片自控插入到該信息段的結尾。當放音遇到EOM時,此引腳輸出低電平脈沖。 XCLK(26引腳):外部時鐘輸入引腳。此引腳內部與下拉元件,不用時應接地。 P/R(27引腳):錄音/放音模式選擇引腳。此引腳在CE的下降沿鎖存。高電平選擇放音,低電平選擇錄音。錄音時,由地址線提供起始地址,直到錄音持續到CE或PD變高,或內存溢出;如果是前一種情況,芯片將自動在錄音結束處寫入EOM標志。放音時,由地址輸入提供起始地址,放音持續到EOM標志。如果CE一直為低,或芯片工作在某些操作模式,放音則會忽略EOM而繼續進行下去,知道發生溢出為止。3.6 按鍵電路計算機輸入數字和其他功能按鍵時要
36、用到很多按鍵,在這種情況下,編程會很簡單,但是會占用大量的I/O口資源,因此在很多情況下都不采用這樣的方式,而是采用矩陣鍵盤的方式。矩陣鍵盤采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤,在行線和列線的每個交叉點上設置一個按鍵。這樣鍵盤上按鍵的數量就為4*4個,這樣行列式鍵盤結構能有效的提高單片機系統中I/O口的利用率。其中MM74C922為口擴展芯片,單片機擴展口電路如圖4.5所示,在本設計中,計算器輸入鍵盤的4條行線、列線分別連接到MM74C922的X1-X4、Y1-Y4引腳,MM74C922的數據輸出口與單片機的P2口相連,MM74C922的DA引腳經過一個與非門連接到單片機的/
37、INT0腳,當MM74C922檢測到鍵盤輸入時,DA產生高電平,與之相連的/INT0檢測到低電平,給單片機一個中斷,單片機從P2口的低四位讀入鍵盤上按下的鍵的值。圖3-10 單片機擴展口電路MM74C922主要引腳說明:(1) Y1-Y4(腳1-腳4):4*4鍵盤第一列至第四列。(2) X1-X4(腳11、10、8、7):4*4鍵盤第一行至第四行。(3) DOA- DOD(Dataout A-D,腳14-17):按鍵之BCD碼輸出(4) KBM(Keyboard Mask,腳6):內部消除開關彈跳電路所外加電容的。(5) DA(Data Available,腳12):數據有效輸出腳。任一按鍵按
38、下時,此腳位會輸出高電位,按鍵釋放后此腳又會恢復為低電位。(6) OE(Output Enable,腳13):芯片使能腳,接低電位可使芯片選通。按鍵電路如圖3-11所示圖3-11 按鍵電路4 軟件設計本設計是硬件電路和軟件編程相結合的設計方案,選擇合適的編程語言是一個重要的環節。在單片機的應用系統程序設計時,常用的是匯編語言和C語言。匯編語言程序可讀性和可移植性比較差。而C語言雖然執行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表達化類型多樣化,數據結構類型豐富,具有結構化的控制語句,程序設計自由度大,有很好的可重用性,可移植性等特點。由于現在單片機的發展已經達到了很高的水平,內
39、部的各種資源相當的豐富,CPU的處理速度非常的快。用C語言來控制單片機無疑是一個理想的選擇。所以在本設計中采用C語言編寫軟件程序。4.1 AT89C51單片機中斷允許控制IE:中斷允許控制寄存器如表4-1所示:表4-1 中斷允許控制寄存器位地址AFAEADACABAAA9A8位符號EA/ET2ESET1EX1ET0EX0寄存器地址A8H,位尋址AFHA8H。EA:中斷允許總控制位當EA=0時,中斷總禁止。當EA=1時,中斷總允許后中斷的禁止與允許由各中斷源的中斷允許控制位進行設置。EX0( EX1):外部中斷允許控制位當EX0( EX1)0 禁止外中斷當EX0( EX1)1 允許外中斷ET0(
40、EX1):定時/計數中斷允許控制位當ET0(ET1)0 禁止定時(或計數)中斷當ET0(ET1)1 允許定時(或計數)中斷ET2:定時器2中斷允許控制位,在AT89S52、AT89C52中ES:串行中斷允許控制位當ES0 禁止串行中斷當ES1 允許串行中斷4.2 LCD1602控制4.2.1 LCD1602字符發生存儲器(CGROM)1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如表4-2所示,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是B(41H),顯示時模塊把地址
41、41H中的點陣字符圖形顯示出來,我們就能看到字母“A” 。表4-2 LCD1602字符碼顯示圖4.2.2 LCD1602顯示數據寄存器(DDRAM)1清屏指令如表4-3所示表4-3 清屏指令指令功能指令編碼RSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏0000000001功能:清除液晶顯示器,即清屏操作數為0x01。2進入模式設置指令如表4-4所示表4-4 模式設置指令指令功能指令編碼RSR/WDB7DB6DB5DB4DB3DB2DB1DB0進入模式設置00000001I/DS功能:設定每次定入1位數據后光標的移位方向,并且設定每次寫入的一個字符是否移動。此設計規定光標右移、顯
42、示屏不移動,及操作數為0x06。參數設定的情況如下所示:位名 設置I/D0=寫入新數據后光標左移 1=寫入新數據后光標右移S0=寫入新數據后顯示屏不移動1=寫入新數據后顯示屏整體右移1個字符3顯示開關控制指令如表4-5所示表4-5 開關控制指令指令功能指令編碼RSR/WDB7DB6DB5DB4DB3DB2DB1DB0顯示開關控制0000001DCB功能:控制顯示器開/關、光標顯示/關閉以及光標是否閃爍。此設計規定顯示功能開、無光標、光標 不閃爍,操作數為0x0c。參數設定的情況如下位名 設置D 0=顯示功能關1=顯示功能開C 0=無光標 1=有光標B 0=光標閃爍 1=光標不閃爍4功能設定指令
43、如表4-6所示表4-6 功能設定指令指令功能指令編碼RSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能設定00001DLNFXX功能:設定數據總線位數、顯示的行數及字型。此設計規定數據總線為8位、顯示2行,操作數為0x38。參數設定的情況如下位名 設置DL0=數據總線為4位1=數據總線為8位N 0=顯示1行 1=顯示2行F 0=57點陣/每字符1=510點陣/每字符5液晶屏顯示位置如表4-7所示表4-7 液晶屏顯示位置顯示位置12345678910111213141516地址第一行000102030405060708090A0B0C0D0E0F第二行4041424344454647
44、48494A4B4C4D4E4F功能:0x31(數字1的代碼)并不能顯示1出來。原因就是如果你要想在DDRAM的00H地址處顯示數據,則必須將00H加上80H,即80H,若要在DDRAM的01H處顯示數據,則必須將01H加上80H即80H+01H。依次類推。4.3 計算器軟件設計現實生活中人們熟知的計算器,其功能主要如下:1、 鍵盤輸入;2、 數值顯示;3、 加、減、乘、除四則運算;4、 對錯誤的控制及提示;針對上述功能,計算器軟件程序要完成以下模塊的設計:1、 鍵盤輸入檢測模塊2、 算術運算模3、 塊LCD顯示模塊4、 錯誤處理及提示模塊。4.3.1 系統總流程圖圖4-1 系統總流程圖4.3
45、.2 算術運算程序設計 算術運算程序的過程為:先判斷輸入的運算符是+、-、*、/ 中的哪一個,輸入數值是否溢出,若溢出規定范圍,則顯示錯誤信息,若是/,則要先判斷除數是否為零,為零就顯示錯誤信息,不為零則顯示運算結果,結果可顯示小數點后3位,若是-,則直接顯示運算結果,可顯示負數。其流程圖如圖4-2所示。圖4-2運算流程圖4.3.3 按鍵程序設計 有鍵按下時,單片機響應外部中斷0,轉入外部中斷0中斷處理函數,在中斷處理函數中完成對按鍵的判斷,以進行下一步的程序處理。4.3.4 顯示程序設計利用LCD靜態顯示,通過程序向LCD寫指令字或數據使LCD完成不同功能或顯示相應數據。4.3.5 錯誤處理
46、及提示程序設計當計算器執行過程中有錯誤時,會在LCD上顯示相應的提示,如當除數為0時,計算器會在LCD上提示error。當參與計算的數值或結果超出范圍時,計算器會在LCD上提示overflow。4.4 語音播報軟件設計錄音時,按下錄音鍵,單片機通過口線設置語音段的起始地址,再使PD端、P /R端和CE端為低電平啟動錄音;結束時,松開按鍵,單片機又讓CE端回到高電平,完成一段語音的錄制。同樣的方法可錄取第二段、第三段。特別值得注意的是,錄音時間不能超過預先設定的每段語音的時間。放音時,根據需播放的語音內容,找到相應的語音段起始地址,并通過口線送出。再將P /R端設為高電平,PD端設為低電平,并讓
47、CE端產生一負脈沖啟動放音,這時單片機只需等待ISD2560的信息結束信號,即EOM的產生。信號為一負脈沖,在負脈沖的上升沿,該段語音才播放結束,所以單片機必須要檢測到EOM的上升沿才能播放第二段,否則播放的語音就不連續,而且會產生啪啪聲。具體的軟件設計如表4-8所示表4-8 ISD2560軟件設計地址表PDCEP/RA9A8A7A6A5A4A3A2A1A0分段數地址錄音00000000000000段0x0000H00000000000011段0x0001H000000010011139段0x0027H00010000000000段0x0200H00000000000011段0x0201H00
48、0100010011139段0x0027H4.4.1 分段錄放音2500系列最多可分為600段,只要在分段錄/放操作前(不少于300納秒),給地址A0-A9賦值,錄音及放音功能均從設定的起始地址開始,錄音結束由停止鍵操作決定,芯片內部自動在該段的結束位置插入結束標志(EOM);而放音芯片遇到EOM標志即自動停止放音。4.4.2 程序流程圖 本設計主要通過單片機對ISD2560的控制實現指定地址入口的錄音和循環播放。程序要實現下面的過程:“開始”鍵按下后,即系統上電后,系統初始化,然后判斷開始鍵是否按下,如果按下則單片機控制PD,P/R引腳低電平,并指向錄音地址,啟動錄音過程。調用錄音函數,錄音
49、函數為:Void record(void) CE = 0; /片選有效 PD = 0; /非節電模式 PR = 0 ; /錄音當CE=0 時芯片使能輸入引腳,使能所有的的錄音操作。當PD=0 時使芯片開始工作,而進入非節電模式。當PR=0 時開始錄音,錄音時,由地址線提供起始地址,直到錄音持續到CE或PD變高,或自動溢出。語音播報流程如圖4-3所示圖4-3語音播報系統總流程圖在預先設定的時間內,(小于60s)結束錄音,松開“開始”鍵單片機控制P/R引腳回到高電平,即完成一段語音的錄制。之后打開外部中斷1,啟動放音,放音函數為: Void playback(void) CE = 0; / 片選有
50、效 PD = 0; / 非節電模式 PR = 1; / 放音當CE=0 時芯片使能輸入引腳,使能所有的的錄音操作。當PD=0 時使芯片開始工作,而進入非節電模式。當 PR=1時為高電平,這時選擇放音,這時由地址輸入提供起始地址,放音持續到EOM位標志。每次放音結束時,EOM輸出會觸發單片機的外部中斷1,經過適當的延時后,重新啟動第二次放音,這樣重復三次后關閉外部中斷1,流程結束,等待下一次錄音。外部中斷服務子程序流程圖如圖4-4所示:圖 4-4 外部中斷服務子程序流程圖4.5 軟件仿真與實物調試下面用KEIL uVision與 proteus仿真軟件實現簡易計算器的仿真與調試。4.5.1 KE
51、IL uVision調試圖4-5 Keil軟件主界面KEIL是目前51單片機開發最常用的編譯軟件,操作如上圖4-7所示。首先點擊Project-New Project(Project-Open Project為打開一個已經存在的工程),如圖4-6所示。圖4-6 Keil軟件打開新工程界面點開后,在出現的對話框中選擇工程存在路徑,單擊“保存”后,出現如圖4-7所示界面。在此界面上選擇電路板上所用的單片機型號,單擊“確定”。圖4-7 選擇電路板上所用的單片機型號點擊,或者File-New,便建立了一個空的文本框。將寫完的程序添加到工程里面,如圖4-10所示,在左邊Project Workspace
52、里的Source Group 1上右擊,選擇Add Files to Group Source Group 1。在打開的對話框中,選擇剛存的文件路徑和對應的擴展名。如圖4-8所示:圖4-8 添加文件到工程中建立工程的時候,默認是不生成HEX文件的,得在編譯做如下設置:單擊,或者在Project Workspace里Target 1上右擊,選擇“Options for Target Target 1”。出現如圖4-9所示對話框,選擇“Target”“Output”按圖示,進行更改,點“確定”。圖4-9 編譯設置編譯輸入計算器和語音的代碼:點擊工具欄中的按鈕。如圖4-10、4-11所示:圖4-10 計算器編譯圖圖4-11 語音編譯圖對于本設計,進入proteus ISIS 集成環境,繪制原理圖,將Keil編譯過的HEX文件加載到單片機中,運行即可。Protues軟件仿真如圖4-12所示圖4-12 Proteus軟件仿真圖4.5.2 四則運算、除數為0和數值溢出仿真演示:(1) 加法仿真:以666和222作為加數和被加數運算,結果為888。如圖4-13所示 圖4-13 加法仿真(2)減法仿真:以777和3作為被減數和減數運算,結果為774。如圖4-14所示 如圖4-14 減法仿真(3)乘法仿真:以155和2作為乘數和被乘數運算,結果為310。如圖4-15所示 如圖4-1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 竹材加工的自動化控制系統考核試卷
- 綜合能源服務模式創新與實踐考核試卷
- 藝術品市場藝術市場細分考核試卷
- 電容器在航空航天領域的應用與挑戰考核試卷
- 紡織品零售市場客戶滿意度調查考核試卷
- 木材加工設備選型與采購考核試卷
- 焙烤食品制造中的供應商管理考核試卷
- 小學生社會認知與道德教育復習計劃
- 人教版小學三年級課外拓展活動計劃
- 臨時用電安全管理措施與電力監測
- 中醫臨床醫學針灸在強迫癥治療中的應用
- 紹興市星域電子游藝廳建設項目環境影響報告
- 全球職等系統GGS職位評估手冊
- 頭頸部鱗癌治療現狀及免疫治療進展
- 律師評析:實際施工人訴訟案例
- 《電力工程電纜設計規范》
- 女性生育力保存
- 廠房窗戶安裝施工方案
- 2023年四川省雅安市長江造林局蜀西分局招聘4人(共500題)筆試必備質量檢測、歷年高頻考點模擬試題含答案解析
- 穿脫隔離衣操作考核評分標準
- 安林瞬變電磁設計方案
評論
0/150
提交評論