嵌入式系統(tǒng)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告
目錄 引言 第一章硬件介紹 1.1單片機(jī)介紹 1.2 設(shè)計(jì)所用開(kāi)發(fā)板的介紹 1.3 LCD1602的原理及其應(yīng)用 1.3.1開(kāi)發(fā)板硬件連接關(guān)系 1.3.2液晶屏LCD1602的功能及應(yīng)用 1.3.31602LCD的指令說(shuō)明及時(shí)序 1.3.4 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表 1.4開(kāi)發(fā)板矩陣鍵盤(pán)原理及應(yīng)用 第二章設(shè)計(jì)思路、仿真及調(diào)試 2.1 設(shè)計(jì)方法 2.2 硬件簡(jiǎn)介 2.3 軟件設(shè)計(jì) 2.3.1 矩陣鍵盤(pán) 2.3.2 LCD1602 第三章設(shè)計(jì)結(jié)果 第四章設(shè)計(jì)總結(jié) 附錄
引言目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒(méi)有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車(chē)的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開(kāi)單片機(jī)。更不用說(shuō)自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專(zhuān)用設(shè)備的智能化管理及過(guò)程控制等領(lǐng)域,大致可分如下幾個(gè)范疇: (1)在智能儀器儀表上的應(yīng)用 (2)在工業(yè)控制中的應(yīng)用 (3)在家用電器中的應(yīng)用 (4)在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用 (5)單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用 (6)在各種大型電器中的模塊化應(yīng)用 (7)單片機(jī)在汽車(chē)設(shè)備領(lǐng)域中的應(yīng)用 此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。 隨著智能化的逐步提高,單片機(jī)在我們生活中得到了越來(lái)越廣泛的應(yīng)用,其是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。本設(shè)計(jì)要制作的就是單片機(jī)于生活中最為常見(jiàn)的異種應(yīng)用——簡(jiǎn)易計(jì)算器。本簡(jiǎn)易計(jì)算器是在普中HC6800 V3.0開(kāi)發(fā)板的基礎(chǔ)上,利用開(kāi)發(fā)板上已有的資源設(shè)計(jì)開(kāi)發(fā)的,本開(kāi)發(fā)板上有著相對(duì)豐富的硬件資源,可以較好的完成一些設(shè)計(jì)。 本設(shè)計(jì)所用的單片機(jī)為STC90C516RD+,具體的設(shè)計(jì)要求如下:通過(guò)矩陣鍵盤(pán)檢測(cè)按下的數(shù)字和運(yùn)算符號(hào),在LCD1602液晶顯示屏上面顯示運(yùn)算的結(jié)果,在第一行上顯示輸入的計(jì)算式,為左對(duì)齊;在第二行顯示等于號(hào)以及最后的運(yùn)算結(jié)果,為了較好的顯示效果和使用的效果,第二行的計(jì)算結(jié)果顯示設(shè)計(jì)為右對(duì)齊。這樣在LCD1602的顯示屏上可以有較好的顯示效果,計(jì)算效果比較分明。 總體上來(lái)說(shuō),作為本嵌入式原理課程的設(shè)計(jì)作業(yè),本設(shè)計(jì)的實(shí)現(xiàn)難度不大。
第一章硬件介紹如上所述,本課程的課程設(shè)計(jì)是在普中的單片機(jī)開(kāi)發(fā)板上面完成的,可以直接使用開(kāi)發(fā)板上面的硬件設(shè)計(jì),相對(duì)于普通的硬件設(shè)計(jì)而言,省去了很多硬件設(shè)計(jì)上面的過(guò)程和時(shí)間,提高了本設(shè)計(jì)的效率,加快了設(shè)計(jì)的流程。但在相應(yīng)的軟件設(shè)計(jì)之前,我們需要對(duì)開(kāi)發(fā)板的硬件設(shè)計(jì)有著清楚的了解,以免在設(shè)計(jì)過(guò)程中出現(xiàn)一些不必要的麻煩和錯(cuò)誤,影響設(shè)計(jì)進(jìn)度。下面開(kāi)始即對(duì)開(kāi)發(fā)板的硬件連接做一些詳細(xì)而必要的介紹。 1.1單片機(jī)介紹 單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片機(jī),是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的縮寫(xiě)MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專(zhuān)用處理器的發(fā)展便分道揚(yáng)鑣。 本設(shè)計(jì)所使用的單片機(jī)為STC的STC90C516RD。根據(jù)STC官方的介紹,本單片機(jī)有著以下特點(diǎn): STC90C516RD+系列單片機(jī)是宏晶科技推出的新一代超高速/低功耗的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可任意選擇,內(nèi)部集成MAX810專(zhuān)用復(fù)位電路,時(shí)鐘頻率在12MHz以下時(shí),復(fù)位腳可直接接地。 1.增強(qiáng)型6 時(shí)鐘/ 機(jī)器周期,12 時(shí)鐘/ 機(jī)器周期 8051 CPU 2.工作電壓:5.5V - 3.8V(5V 單片機(jī))/3.8V - 2.4V(3V 單片機(jī)) 3.工作頻率范圍:0-40MHz,相當(dāng)于普通8051的 0~80MHz. 4.用戶(hù)應(yīng)用程序空間 4K/6K/7K/8K/10K/12K/13K/16K/32K/40K/48K/56K/ 61K/字節(jié) 5.片上集成 1280字節(jié)/512/256字節(jié) RAM 6.通用I/O口(35/39 個(gè)),復(fù)位后為: P1/P2/P3/P4 是準(zhǔn)雙向口/ 弱上拉(普通8051 傳統(tǒng)I/O 口)P0口是開(kāi)漏輸出,作為總線擴(kuò)展用時(shí),不用加上拉電阻,作為I/O 口用時(shí),需加上拉電阻。 7.ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無(wú)需專(zhuān)用編程器 / 仿真器可通過(guò)串口(P3.0/P3.1)直接下載用戶(hù)程序,8K 程序3 - 5 秒即可完成一片 8.EEPROM 功能 9.看門(mén)狗 10.內(nèi)部集成MAX810專(zhuān)用復(fù)位電路,外部晶體12M以下時(shí),可省外部復(fù)位電路,復(fù)位腳可直接接地。 11.共3個(gè)16位定時(shí)器/計(jì)數(shù)器,其中定時(shí)器0還可以當(dāng)成2個(gè)8位定時(shí)器使用 12.外部中斷4路,下降沿中斷或低電平觸發(fā)中斷,Power Down模式可由外部中斷低電平觸發(fā)中斷方式喚醒 13.通用異步串行口(UART),還可用定時(shí)器軟件實(shí)現(xiàn)多個(gè)UART 14.工作溫度范圍:0-75℃/-40-+85℃ 15.封裝:LQFP-44,PDIP-40,PLCC-44 1.2 設(shè)計(jì)所用開(kāi)發(fā)板的介紹 本課程設(shè)計(jì)是在開(kāi)發(fā)板普中HC6800 V3.0基礎(chǔ)上完成的,開(kāi)發(fā)板的外觀圖如圖1.1所示。本開(kāi)發(fā)板在硬件上配置了以下硬件: 1.五線四相步進(jìn)電機(jī) 2.16*16點(diǎn)陣 3.LCD1602液晶顯示屏 4.1個(gè)靜態(tài)數(shù)碼管+8個(gè)動(dòng)態(tài)數(shù)碼管 5.四線雙極性步進(jìn)電機(jī) 6.4*4矩陣鍵盤(pán)+8個(gè)獨(dú)立按鍵 7.TFT彩屏/12864/19264 8.RS485通信 9.繼電器 10.蜂鳴器 11.AD/DA/光敏/熱敏 12.18B20溫度傳感器 13.紅外 14.三色交通燈 本實(shí)驗(yàn)將在開(kāi)發(fā)板現(xiàn)有的硬件基礎(chǔ)上設(shè)計(jì)一個(gè)簡(jiǎn)易的計(jì)算器,按照設(shè)計(jì)要求,我們將會(huì)用到開(kāi)發(fā)板上外接的LCD1602液晶顯示屏、矩陣鍵盤(pán)。因?yàn)樵O(shè)計(jì)周期的限制,將不加其他的功能,比如蜂鳴器等。 開(kāi)發(fā)板單片機(jī)部分的連接關(guān)系如下圖所所示: 圖1.1設(shè)計(jì)所用開(kāi)發(fā)板 圖1.2開(kāi)發(fā)板MCU的硬件連接
1.3LCD1602的原理及其應(yīng)用 1.3.1開(kāi)發(fā)板硬件連接關(guān)系 開(kāi)發(fā)板上LCD1602這一部分的硬件連接原理圖如圖1.1所示。 圖1.3開(kāi)發(fā)板LCD1602的硬件連接關(guān)系 可見(jiàn),本開(kāi)發(fā)板上LCD1602的硬件連接設(shè)計(jì)相對(duì)于常見(jiàn)的電路設(shè)計(jì)而言,并沒(méi)有什么相對(duì)特殊的地方,可以碩士比較常見(jiàn)的設(shè)計(jì)。液晶屏的數(shù)據(jù)端口與單片機(jī)的P0口相連接,VCC和GND端口均有設(shè)計(jì)連接。此外通過(guò)調(diào)節(jié)變阻器RJ6可以調(diào)節(jié)液晶顯示屏的圖像對(duì)比度。 圖1.4調(diào)節(jié)圖像對(duì)比度 1.3.2液晶屏LCD1602的功能及應(yīng)用 LCD1602已很普遍了,具體介紹我就不多說(shuō)了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。 LCD1602采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,本設(shè)計(jì)所用的LCD1602為帶有背光的16腳。其中各引腳接口說(shuō)明如表1-1所示: 表1-1 LCD1602各引腳功能 編號(hào) | 符號(hào) | 引腳說(shuō)明 | 編號(hào) | 符號(hào) | 引腳說(shuō)明 | 1 | VSS | 電源地 | 9 | D2 | 數(shù)據(jù) | 2 | VDD | 電源正極 | 10 | D3 | 數(shù)據(jù) | 3 | VL | 液晶顯示偏壓 | 11 | D4 | 數(shù)據(jù) | 4 | RS | 數(shù)據(jù)/命令選擇 | 12 | D5 | 數(shù)據(jù) | 5 | R/W | 讀/寫(xiě)選擇 | 13 | D6 | 數(shù)據(jù) | 6 | E | 使能信號(hào) | 14 | D7 | 數(shù)據(jù) | 7 | D0 | 數(shù)據(jù) | 15 | BLA | 背光源正極 | 8 | D1 | 數(shù)據(jù) | 16 | BLK | 背光源負(fù)極 |
第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 第5腳:R/W為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 第15腳:背光源正極。 第16腳:背光源負(fù)極。 1.3.31602LCD的指令說(shuō)明及時(shí)序 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表1-2所示: 表1-2控制命令表 序號(hào) | 指令 | RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | 1 | 清顯示 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 2 | 光標(biāo)返回 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * | 3 | 置輸入模式 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S | 4 | 顯示開(kāi)/關(guān)控制 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | 5 | 光標(biāo)或字符移位 | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * | 6 | 置功能 | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * | 7 | 置字符發(fā)生存貯器地址 | 0 | 0 | 0 | 1 | 字符發(fā)生存貯器地址 | 8 | 置數(shù)據(jù)存貯器地址 | 0 | 0 | 1 | 顯示數(shù)據(jù)存貯器地址 | 9 | 讀忙標(biāo)志或地址 | 0 | 1 | BF | 計(jì)數(shù)器地址 | 10 | 寫(xiě)數(shù)到CGRAM或DDRAM) | 1 | 0 | 要寫(xiě)的數(shù)據(jù)內(nèi)容 | 11 | 從CGRAM或DDRAM讀數(shù) | 1 | 1 | 讀出的數(shù)據(jù)內(nèi)容 |
1602液晶模塊的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。 指令7:字符發(fā)生器RAM地址設(shè)置。 指令8:DDRAM地址設(shè)置。 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫(xiě)數(shù)據(jù)。 指令11:讀數(shù)據(jù)。 讀寫(xiě)操作時(shí)序如圖1.5的a、b所示: a.LCD1602讀寫(xiě)操作時(shí)序 b.LCD1602讀寫(xiě)操作時(shí)序 圖1.6 LCD1602讀寫(xiě)操作時(shí)序 1.3.4 1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫(kù)表 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖1.5是1602的內(nèi)部顯示地址。 圖1.6 1602LCD內(nèi)部顯示地址 例如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無(wú)需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。 1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A” 圖1.7字符代碼與圖形對(duì)應(yīng)圖 1.4開(kāi)發(fā)板矩陣鍵盤(pán)原理及應(yīng)用 本設(shè)計(jì)需要使用開(kāi)發(fā)板上面的按鍵完成數(shù)據(jù)的輸入,需要用到開(kāi)發(fā)板上的4*4的矩陣鍵盤(pán),以完成作為計(jì)算器的數(shù)字1~9以及+、—、*、/的輸入。本開(kāi)發(fā)板的矩陣鍵盤(pán)的硬件連接關(guān)系如下圖所示。 圖1.8矩陣鍵盤(pán)的硬件連接關(guān)系 可見(jiàn)本開(kāi)發(fā)板的硬件上,矩陣鍵盤(pán)通過(guò)和單片機(jī)的P11口連接,檢測(cè)按鍵的按下。 按鍵需要完成的是全部10個(gè)數(shù)字的輸入和運(yùn)算符號(hào)的輸入,相應(yīng)的按鍵分配情況如下表所示。 表1-3按鍵位置設(shè)計(jì)
矩陣鍵盤(pán)工作原理:由于按鍵沒(méi)有接地,4行4列正好占用8個(gè)I/O如果4行我們送 P3.0到P3.3送入0 1 1 1 然后去讀取 4列的值,如果P3.0的按鍵按下那么P3.4---P3.7的值等于 0 1 1 1,假如是第2個(gè)鍵按下的話(huà)那么讀回來(lái)的值是 1 0 1 1 ,如果第3個(gè)鍵按下去讀回來(lái)的值是 1 1 0 1 ,如果第4個(gè)鍵按下去讀回來(lái)的值是 1 1 1 0 ,如果沒(méi)有鍵按下去讀回來(lái)就是1 1 1 1。所以我們就根據(jù)讀回來(lái)的值來(lái)判斷按下去的是那個(gè)鍵。當(dāng)然這是對(duì)P3.0這一行,因?yàn)榫仃囨I盤(pán)是掃描的,所以下次把P3.0 給1 P3.1 給0對(duì)第2行,陸續(xù)的第3 行第4行, 0111 1011 1101 1110 而每次都去從新掃描一遍列值列有4個(gè)值,以確定是那個(gè)鍵按下。無(wú)論何時(shí)任何一個(gè)時(shí)間有一個(gè)按鍵被按下就跳出循環(huán)。當(dāng)然不可能有2個(gè)鍵剛好一起按下你的手沒(méi)有這么好的力度,就算有2個(gè)鍵一起按鍵,程序也有先后檢測(cè)的順序,只能檢測(cè)一個(gè)后面的檢測(cè)不到。 根據(jù)實(shí)驗(yàn)資料上的表述,開(kāi)發(fā)板在設(shè)計(jì)時(shí),在使用矩陣鍵盤(pán)時(shí)需要按照以下要求操作:(1)拔下1602下面的JP165以及通過(guò)排線將JP8和JP4連接起來(lái)。效果如下圖所示。 圖1.9開(kāi)發(fā)板準(zhǔn)備工作 主要時(shí)由于其他的硬件連接的原因,需要拔下JP165。在原理圖中,JP165的連接如下所示:為了正常的使用矩陣鍵盤(pán),我們按照開(kāi)飯的設(shè)計(jì)拔下JP165,連接好相應(yīng)的引腳。 圖1.10 JP165的硬件連接 第二章設(shè)計(jì)思路、仿真及調(diào)試2.1 設(shè)計(jì)方法 本電路設(shè)計(jì)采用STC90C516RD單片機(jī)為核心,利用晶振產(chǎn)生的時(shí)鐘脈沖信號(hào),利用液晶屏LCD1602顯示計(jì)算及其時(shí)間信息,通過(guò)對(duì)STC90C516RD單片機(jī)的編程控制液晶屏LCD1602的顯示。顯示計(jì)算和簡(jiǎn)易計(jì)算的信息同在LCD1602,通過(guò)按鍵切換選擇。外部的矩陣鍵盤(pán)作為簡(jiǎn)易計(jì)算器的數(shù)值和計(jì)算方式的輸入。 2.2 硬件簡(jiǎn)介 本系統(tǒng)以STC90C516RD單片機(jī)為核心,本系統(tǒng)選用12MHZ的晶振,,使得單片機(jī)有合理的運(yùn)行速度。起振電容30pF對(duì)振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性影響較合適,復(fù)位電路為按鍵高電平復(fù)位。 圖2.1單片機(jī)復(fù)位電路設(shè)計(jì) 當(dāng)復(fù)位按鍵按下之后,HRST接到高電平VCC。在按下復(fù)位健之前,三極管Q32TY時(shí)截止的。當(dāng)HRST輸入高電平之后,三極管導(dǎo)通,LRST的信號(hào)引腳輸入高電平。完成對(duì)單片機(jī)的復(fù)位。 第三章設(shè)計(jì)結(jié)果通過(guò)在keil4中編譯通過(guò),如圖3.1所示,將生成的.hex文件下載到開(kāi)發(fā)板上的單片機(jī)內(nèi)運(yùn)行。 圖3.1程序編譯通過(guò) 在開(kāi)發(fā)板上完成相應(yīng)簡(jiǎn)單的加減乘除運(yùn)算效果如下所示: a.加法運(yùn)算 b.減法運(yùn)算 c.乘法運(yùn)算d.除法運(yùn)算 圖3.2設(shè)計(jì)效果 由于變量的內(nèi)型決定了,當(dāng)數(shù)據(jù)的位數(shù)過(guò)多時(shí),程序的計(jì)算會(huì)出現(xiàn)一些錯(cuò)誤,比如,當(dāng)計(jì)算的位數(shù)過(guò)長(zhǎng)時(shí),會(huì)出現(xiàn)顯示結(jié)果亂碼,現(xiàn)象如圖3.3所示。 圖3.3液晶顯示屏顯示亂碼 從總體上來(lái)說(shuō),本設(shè)計(jì)基本實(shí)現(xiàn)了預(yù)期簡(jiǎn)易計(jì)算器的功能,能夠?qū)崿F(xiàn)一些簡(jiǎn)單的加減乘除的運(yùn)算。當(dāng)數(shù)據(jù)過(guò)大時(shí)顯示的亂碼可能時(shí)數(shù)據(jù)類(lèi)型的原因,也有可能是其他原因造成的,這里便不做具體深入的分析和探討。
第四章設(shè)計(jì)總結(jié)在用單片機(jī)實(shí)現(xiàn)簡(jiǎn)易計(jì)算的設(shè)計(jì)中使用到了STC的單片機(jī)、LCD1602及其4*4鍵盤(pán)。STC的單片機(jī)是目前使用相對(duì)比較廣泛的51單片機(jī),作為單片機(jī)的入門(mén)是一個(gè)非常合適的選擇,對(duì)于研究生階段來(lái)說(shuō),是一個(gè)比較熟悉的硬件了。4*4的矩陣鍵盤(pán)也是有用比較廣泛的硬件了,是一種比較常見(jiàn)的輸入方式,1602液晶顯示屏對(duì)于51單片機(jī)來(lái)說(shuō)是比較合適的組合,雖然使用的功能比較有限,但是在51單片機(jī)的硬件條件下是比較好的選擇。 為了更好的使用體驗(yàn),之后可以加入蜂鳴器和其他模塊,當(dāng)矩陣鍵盤(pán)的按鍵按下時(shí),蜂鳴器發(fā)聲,提示按鍵按下,一定程度上可以降低計(jì)算器在使用過(guò)程中出現(xiàn)的誤操作。此外,也可以在現(xiàn)有的計(jì)算器的基礎(chǔ)上加上時(shí)鐘等其他功能,并通過(guò)按鍵進(jìn)行狀態(tài)和功能的切換,比加上18B20溫度傳感器,檢測(cè)當(dāng)時(shí)環(huán)境中的溫度,加入時(shí)鐘顯示當(dāng)時(shí)的日期和時(shí)間等。 在設(shè)計(jì)過(guò)程中我通過(guò)在網(wǎng)上和圖書(shū)館查閱資料,收集了關(guān)于單片機(jī)和液晶屏LCD1602顯示方面的資料,通過(guò)對(duì)這些資料的學(xué)習(xí),我了解了單片機(jī)的基本結(jié)構(gòu)和單片機(jī)在生活和生產(chǎn)中所發(fā)揮的作用;液晶屏LCD1602的原理和使用。本次設(shè)計(jì)完成的主要工作和任務(wù)如下:對(duì)設(shè)計(jì)方案的理論研究,單片機(jī)的合理選型,軟件的編寫(xiě)和調(diào)試以及設(shè)計(jì)報(bào)告的制作。通過(guò)設(shè)計(jì)簡(jiǎn)易計(jì)算器的過(guò)程中我掌握了單片機(jī)的基本原理及其各種應(yīng)用,對(duì)它的各種硬件接口與軟件設(shè)計(jì)方法有較深入的認(rèn)識(shí)。
完整的Word格式文檔51黑下載地址(含源碼):
|