版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、密級(jí): NANCHANG UNIVERSITY學(xué) 士 學(xué) 位 論 文(設(shè) 計(jì))THESIS OF BACHELOR(20112015年)中文題目:基于單片機(jī)的簡易計(jì)算器英文題目:Simple calculator based on single chip microcomputer 學(xué) 院:南昌大學(xué)共青學(xué)院系 別:電子信息工程專業(yè)班級(jí):11級(jí)電子信息工程學(xué)生姓名:向廣宇學(xué) 號(hào):8120211037指導(dǎo)教師:譚金平二 一 五 年 六 月學(xué)士學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的內(nèi)容外,本論文不包含任何其他個(gè)人或集體
2、已經(jīng)發(fā)表或撰寫的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。本人簽名: 日期: 摘 要 近年來隨著科技的飛速發(fā)展,以單片機(jī)技術(shù)為基礎(chǔ)的電子產(chǎn)品在不斷推廣和應(yīng)用,單片機(jī)技術(shù)的發(fā)展也帶來了傳統(tǒng)計(jì)算方式的改變。在目前市場(chǎng)上采用的計(jì)算器大部分都是基于單片機(jī)技術(shù)設(shè)計(jì)的,采用單片機(jī)結(jié)合軟件編程技術(shù)實(shí)現(xiàn)的電子計(jì)算器,可以控制多種顯示單元,同時(shí)可以根據(jù)需要方便對(duì)產(chǎn)品功能的升級(jí)和完善。考慮到價(jià)格成本的約束,本系統(tǒng)中央處理器由市場(chǎng)上較為成熟的51單片機(jī)來承擔(dān),51單片機(jī)價(jià)格低廉操作簡單,外圍接口豐富,可以很好的實(shí)現(xiàn)系統(tǒng)的各項(xiàng)功能要求,鍵盤輸入
3、部分采用4*4矩陣鍵盤來實(shí)現(xiàn),16個(gè)按鍵分別完成0-9數(shù)字的輸入和加、減、乘、除、等號(hào)、5個(gè)計(jì)算鍵的功能,最后一個(gè)按鍵實(shí)現(xiàn)清除計(jì)算內(nèi)容的功能,顯示 單元采用LCD1602液晶顯示屏顯示,液晶顯示效果相比數(shù)碼管更加穩(wěn)定,無閃爍同時(shí)顯示字符內(nèi)容豐富。關(guān)鍵詞: 單片機(jī) 計(jì)算器 液晶顯示器 Simple calculator design base on MCU Abstract In recent years with the rapid development of technology, SCM technology-based electronic products continue to s
4、pread and the application of SCM technology development has also brought a change in the traditional method of calculation. In the current calculator market, most of which are microcontroller-based, which is designed by single-chip combination of software programming technology of electronic calcula
5、tors, you can control a variety of display units, at the same time also easily to upgrade and improve product functionality required. Taking into account constraints of the cost price, the central processor of the system take use of the more mature microcontroller 51 in the market, which has low pri
6、ce and rich peripheral interfaces, also simple to operate, so it can be very good to achieve the functional requirements of the system, the keyboard input part 4 * 4 matrix keypad, or 16 keys are 0-9 complete input and processing, subtraction, multiplication, division, equals, five key functions to
7、calculate, calculate the final key to achieve clear content features, the display unit using LCD1602 display, LCD digital effects compared to more stable, flicker-free display rich character content simultaneously.Keyword : MCU calculator LCD display目 錄第一章 前 言51.1課題背景51.2課題研究的目的和意義51.3計(jì)算器設(shè)計(jì)的任務(wù)和要求6第二
8、章 簡易計(jì)算器的方案設(shè)計(jì)72.1系統(tǒng)設(shè)計(jì)方案論述72.2系統(tǒng)設(shè)計(jì)方案比較與論證82.2系統(tǒng)設(shè)計(jì)方選擇9第三章 系統(tǒng)硬件電路設(shè)計(jì)103.1系統(tǒng)電源接口電路設(shè)計(jì)103.2 單片機(jī)最小系統(tǒng)設(shè)計(jì)113.2.1系統(tǒng)單片機(jī)選型113.2.2系統(tǒng)單片機(jī)最小系統(tǒng)電路設(shè)計(jì)123.3 系統(tǒng)顯示電路設(shè)計(jì)133.3.1 系統(tǒng)顯示器件選擇133.3.2 系統(tǒng)顯示電路設(shè)計(jì)143.4 系統(tǒng)矩陣鍵盤輸入電路設(shè)計(jì)153.5 系統(tǒng)整體電路設(shè)計(jì)分析16第四章 計(jì)算器的軟件系統(tǒng)設(shè)計(jì)184.1系統(tǒng)軟件編程環(huán)境介紹184.2系統(tǒng)主程序流程圖184.3系統(tǒng)子程序介紹20第五章 系統(tǒng)的仿真與調(diào)試225.1系統(tǒng)仿真軟件介紹225.2系統(tǒng)仿真結(jié)
9、果分析22第六章 實(shí)物的制作與調(diào)試256.1電路的安裝過程256.2系統(tǒng)的調(diào)試及問題25總結(jié)27致 謝27參考文獻(xiàn)29附錄A 系統(tǒng)源程序30附錄B 系統(tǒng)電路圖38附錄C系統(tǒng)仿真圖39附錄D系統(tǒng)實(shí)物圖39基于單片機(jī)的簡易計(jì)算器設(shè)計(jì)論文42第一章 前 言1.1課題背景在人們的日常生活中,計(jì)算器的使用已經(jīng)和人們的生活密切相關(guān),當(dāng)今人們對(duì)日常生活的便利性要求越來越高,傳統(tǒng)的口算和珠算的計(jì)算方式由于諸多的不便已經(jīng)不能滿足人們對(duì)便利性的要求,攜帶方便,使用便捷的簡易計(jì)算器是目前市場(chǎng)上最受消費(fèi)者親睞的產(chǎn)品。計(jì)算是我們?nèi)粘I钪胁豢杀苊獾囊粋€(gè)環(huán)節(jié),小到市場(chǎng)買菜,大到買房置家,計(jì)算都會(huì)如影隨形,因而計(jì)算器的開發(fā)
10、具有廣闊的應(yīng)用市場(chǎng),目前市場(chǎng)上的計(jì)算器種類已經(jīng)很多,但是大多數(shù)計(jì)算器功能相對(duì)較多,體積較大,價(jià)格相對(duì)較貴,不利于家庭的推廣和使用。本文正是基于攜帶方便,功能簡易,成本低廉為應(yīng)用背景進(jìn)行開發(fā)和設(shè)計(jì),最終設(shè)計(jì)完成一款能夠?qū)崿F(xiàn)簡單計(jì)算功能的廉價(jià)計(jì)算器。1.2課題研究的目的和意義計(jì)算是伴隨人們?nèi)粘I畹囊粋€(gè)概念,計(jì)算工具是一個(gè)從古至今一直存在而又不斷發(fā)展的。在遙遠(yuǎn)的古代人們用簡單的數(shù)字的多少來計(jì)算,這種計(jì)算在我們?nèi)缃竦娜粘I钪羞€能看到,當(dāng)我們問三四歲的小孩簡單的加法運(yùn)算時(shí),我們會(huì)發(fā)現(xiàn)大部分兒童還是會(huì)伸出手指來數(shù)數(shù)的多少來進(jìn)行簡單的加減運(yùn)算,雖然計(jì)算的方式古老,但是卻簡單可行。在后來,中國珠算的發(fā)明與
11、使用使得計(jì)算的速度和準(zhǔn)確性得到很大的提高,珠算在中國的計(jì)算領(lǐng)域有這悠久的歷史,直到上個(gè)世紀(jì)80年代之前珠算還是大多從事會(huì)計(jì)與相關(guān)計(jì)算領(lǐng)域方面較為常用的工具,然而隨著科技的進(jìn)步,電子計(jì)算器的發(fā)明與使用是計(jì)算領(lǐng)域內(nèi)的又一次革新,電子計(jì)算器無論在計(jì)算速度還是可靠性方面相比珠算都有了很大的提高,另外電子計(jì)算器操作簡單,不需要專業(yè)的學(xué)習(xí)和培訓(xùn)即可操作,因而隨著電子計(jì)算器的發(fā)明和使用,珠算很快便從中國一千多年的應(yīng)用歷史中退出了市場(chǎng)。在現(xiàn)實(shí)生活中,我們總是會(huì)被各種繁瑣的計(jì)算問題而煩心,由于生活節(jié)奏的提高,面對(duì)突然來到的計(jì)算問題,我們已經(jīng)沒有足夠的時(shí)間和耐心拿上筆和紙進(jìn)行計(jì)算了,計(jì)算器已經(jīng)成為我們?nèi)粘I钪胁?/p>
12、可或缺的計(jì)算工具了,在大多的工作場(chǎng)合我們會(huì)發(fā)現(xiàn)每個(gè)人的辦公工具中,計(jì)算器已經(jīng)是必不可少的了,因而如何結(jié)合所學(xué)電子知識(shí),開發(fā)一款價(jià)格低廉,操作簡單,計(jì)算準(zhǔn)確可靠性高的計(jì)算器具有和好的開發(fā)價(jià)值和應(yīng)用前景,設(shè)計(jì)完成一款價(jià)格低廉、操作方便的簡易計(jì)算器對(duì)自己不僅具有很好的鍛煉意義,同時(shí)也具有很好的市場(chǎng)需求,適當(dāng)?shù)倪M(jìn)行完善即可推廣到市場(chǎng)上應(yīng)用。1.3計(jì)算器設(shè)計(jì)的任務(wù)和要求本設(shè)計(jì)采用宏晶科技公司生產(chǎn)的STC89C52單片機(jī)作為系統(tǒng)的核心控制單元,然后以此單片機(jī)為基礎(chǔ)結(jié)合外圍所需的硬件電路,最后在硬件設(shè)計(jì)平臺(tái)上完成軟件代碼的驗(yàn)證,最終完成簡易數(shù)字計(jì)算器各項(xiàng)功能要求。此簡易數(shù)字計(jì)算器主要電路模塊包括:單片機(jī)最小
13、系統(tǒng)、矩陣鍵盤電路、液晶LCD顯示電路、系統(tǒng)電源電路等單元組成。系統(tǒng)所使用的主要元器件包括:STC89C52單片機(jī)、4*4矩陣鍵盤、液晶顯示屏LCD1602、DC直流電源等。本設(shè)計(jì)主要實(shí)現(xiàn)的功能和要求包括:(1)實(shí)現(xiàn)100000000以內(nèi)的加法運(yùn)算功能;(2)實(shí)現(xiàn)100000000以內(nèi)的減法運(yùn)算功能;(3)實(shí)現(xiàn)100000000的乘法運(yùn)算功能;(4)實(shí)現(xiàn)100000000的除法運(yùn)算功能;(5)系統(tǒng)計(jì)算時(shí)輸入數(shù)字和符號(hào)以及運(yùn)算結(jié)果顯示功能;(6)系統(tǒng)輸入錯(cuò)誤時(shí)具有清除的功能。 第二章 簡易計(jì)算器的方案設(shè)計(jì)2.1系統(tǒng)設(shè)計(jì)方案論述本次設(shè)計(jì)所要實(shí)現(xiàn)的功能主要有加減乘除的運(yùn)算,能夠?qū)崿F(xiàn)上述運(yùn)算的設(shè)計(jì)方案
14、進(jìn)行簡要的介紹。 方案一:以51單片機(jī)為基礎(chǔ),結(jié)合鍵盤輸入電路、電源轉(zhuǎn)換電路、單片機(jī)復(fù)位電路和晶體振蕩電路以及液晶顯示電路進(jìn)行設(shè)計(jì)完成。其硬件設(shè)計(jì)框圖如圖21所示。STC89C52單片機(jī)LCD液晶顯示電路矩陣鍵盤輸入電路單片機(jī)復(fù)位電路系統(tǒng)電源轉(zhuǎn)換電路晶體振蕩電路圖21 方案二:以51單片機(jī)為基礎(chǔ),結(jié)合鍵盤輸入電路、電源轉(zhuǎn)換電路、單片機(jī)復(fù)位電路和晶體振蕩電路以及LED數(shù)碼管顯示電路進(jìn)行設(shè)計(jì)完成。其硬件設(shè)計(jì)框圖如圖22所示。STC89C52單片機(jī)Led數(shù)碼管顯示電路矩陣鍵盤輸入電路單片機(jī)復(fù)位電路系統(tǒng)電源轉(zhuǎn)換電路晶體振蕩電路圖22方案三:以ARM為平臺(tái),結(jié)合電源轉(zhuǎn)換電路以及液晶LCD顯示電路進(jìn)行設(shè)計(jì)
15、完成。其硬件設(shè)計(jì)框圖如圖23所示。STM3的ARM平臺(tái)矩陣鍵盤輸入電路LCD液晶顯示電路系統(tǒng)電源轉(zhuǎn)換電路圖23 2.2系統(tǒng)設(shè)計(jì)方案比較與論證方案一以51單片機(jī)為核心結(jié)合液晶顯示電路來實(shí)現(xiàn)具有以下優(yōu)點(diǎn):1、 STC89C52單片機(jī)是目前市場(chǎng)上主流的51單片機(jī)型號(hào),其價(jià)格低廉、IO端口豐富,在很多中低端的電子產(chǎn)品上具有很廣泛的應(yīng)用。2、 以STC89C52單片機(jī)作為方案設(shè)計(jì)的控制核心,開發(fā)相對(duì)容易,開發(fā)周期相對(duì)較短,可以有效的節(jié)約開發(fā)時(shí)間。3、 采用液晶LCD作為系統(tǒng)的顯示界面,液晶顯示效果穩(wěn)定,顯示字符數(shù)相對(duì)較多,而且能夠很好的顯示運(yùn)算符號(hào)。方案二相比方案一來講,采用LED數(shù)碼管顯示界面代替LC
16、D液晶,相比方案一成本價(jià)格更為低廉,開發(fā)費(fèi)用和周期更短,不足之處是數(shù)碼管顯示效果存在一定的閃爍現(xiàn)象,同時(shí)顯示字符數(shù)有限,如果計(jì)算的位數(shù)較多就需要級(jí)聯(lián)較多個(gè)數(shù)的數(shù)碼管才能實(shí)現(xiàn),同時(shí)市場(chǎng)上通用的數(shù)碼管一般不能直接顯示運(yùn)算符,如需要直觀的顯示運(yùn)算符則需要單獨(dú)定做,這樣又會(huì)使得設(shè)計(jì)成本得到提高。 方案三相比前兩個(gè)方案講,外圍電路更加簡單,由于ARM芯片內(nèi)部已經(jīng)集成了晶體振蕩電路和看門狗復(fù)位電路,因而不需要在單獨(dú)外接復(fù)位電路和晶振電路,這樣使得外圍電路更加簡單,可以有效的縮減線路板的體積,使得整個(gè)設(shè)計(jì)體積更小,攜帶更為方便,除此之外,ARM處理器處理速度相比51單片機(jī)更為快捷,以ARM為控制核心的計(jì)算器
17、反應(yīng)靈敏度更高;方案三的不足之處是ARM處理器價(jià)格相對(duì)較高,開發(fā)難度大、開發(fā)周期長。2.2系統(tǒng)設(shè)計(jì)方選擇基于本文是以價(jià)格低廉、開發(fā)容易和使用方便為開發(fā)背景的前提下,經(jīng)過對(duì)上述3種方案的論證和比較,方案一更能符合課題開發(fā)的背景,因而本文設(shè)計(jì)方案最終以方案一為基礎(chǔ)進(jìn)行設(shè)計(jì)。第三章 系統(tǒng)硬件電路設(shè)計(jì)3.1系統(tǒng)電源接口電路設(shè)計(jì)系統(tǒng)電源電路主要完成供電系統(tǒng)的穩(wěn)壓濾波和開關(guān)控制功能,此部分電路如圖3-1所示。圖3-1系統(tǒng)電源管理電路圖3-1為系統(tǒng)5V輸出電壓管理電路,其中J1為DC005電源輸入接口,用于連接DC9V直流電源,SW1為系統(tǒng)電源開關(guān),用于控制整個(gè)系統(tǒng)的電源的開啟與關(guān)閉,C1為電解電容,一般取
18、值在220uf到680uf之間,此電解電容是用于濾除電源線上存在的高頻干擾,U1為三端穩(wěn)壓芯片LM7805,LM7805輸入電壓范圍在7-16V情況下,穩(wěn)定輸出直流5V電壓,輸出穩(wěn)定度在5V正負(fù)0.05mv的波動(dòng)內(nèi)變化,能夠很好的保證單片機(jī)系統(tǒng)電壓的穩(wěn)定性,電容C1和C4分別用于濾除輸出電壓上存下的低頻干擾和高頻干擾,LED為電源指示燈,當(dāng)系統(tǒng)電源輸出正常的情況下LED燈點(diǎn)亮,電阻R1為1K阻值的限流電阻,保證LED在允許的工作電流下工作,避免LED被電流過高造成的損壞,D0為整理二極管,在此是為了防止輸入電源極性反接造成后續(xù)電路器件的燒壞,當(dāng)電源極性反接時(shí),二極管D0的反向截止功能可以對(duì)后續(xù)
19、電路進(jìn)行有效的保護(hù)。3.2 單片機(jī)最小系統(tǒng)設(shè)計(jì)3.2.1系統(tǒng)單片機(jī)選型單片機(jī)為整個(gè)系統(tǒng)的控制核心,單片機(jī)型號(hào)的選擇好壞直接會(huì)影響到整個(gè)系統(tǒng)設(shè)計(jì)的成敗,因而選擇一款合適的單片機(jī)對(duì)整個(gè)系統(tǒng)設(shè)計(jì)的成功與否起著至關(guān)重要的作用,目前市場(chǎng)上單片機(jī)種類型號(hào)千差萬別,從基礎(chǔ)的8位單片機(jī)到高端的64位單片機(jī),價(jià)格從幾元到上百元不等,選擇單片機(jī)要首先要考慮價(jià)格因素,由于本系統(tǒng)設(shè)計(jì)是簡易型計(jì)算器,因而功能相對(duì)較少,不需要較多的IO端口以及強(qiáng)大的存儲(chǔ)空間,所以不需要選擇價(jià)位較高的高端的單片機(jī),考慮到目前市場(chǎng)上應(yīng)用較為廣泛的51位單片機(jī)完全能夠達(dá)到設(shè)計(jì)的功能要求,因而本設(shè)計(jì)首選單片機(jī)是51單片機(jī)。宏晶科技公司生產(chǎn)的ST
20、C89C52單片機(jī)是目前國產(chǎn)單片機(jī)中性價(jià)比較高的型號(hào),此單片機(jī)價(jià)格低廉,端口豐富完全兼容國外大品牌Atmel公司的AT89S52單片機(jī),價(jià)格相比Atmel公司的單片機(jī)只有其價(jià)格的一般,鑒于以上分析,本文最終選擇宏晶科技的STC89C52單片機(jī)作為簡易計(jì)算器的主控單片機(jī),STC89C52單片機(jī)的引腳圖如圖3-2所示。圖3-2 STC89C52引腳圖STC89C52單片機(jī)具有以下標(biāo)準(zhǔn)功能: l 與MCS-51單片機(jī)產(chǎn)品兼容l 8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器l 1000次擦寫周期l 全靜態(tài)操作:0Hz33Hzl 三級(jí)加密程序存儲(chǔ)器l 32個(gè)可編程I/O口線l 三個(gè)16位定時(shí)器/計(jì)數(shù)器l 八個(gè)中
21、斷源l 全雙工UART串行通道l 低功耗空閑和掉電模式l 掉電后中斷可喚醒l 看門狗定時(shí)器l 雙數(shù)據(jù)指針l 掉電標(biāo)識(shí)符3.2.2系統(tǒng)單片機(jī)最小系統(tǒng)電路設(shè)計(jì)單片機(jī)最小系統(tǒng)電路是整個(gè)計(jì)算器系統(tǒng)的核心,單片機(jī)最小系統(tǒng)電路設(shè)計(jì)的好壞直接決定整個(gè)系統(tǒng)的設(shè)計(jì)成敗,因而在設(shè)計(jì)單片機(jī)最小系統(tǒng)電路之前一定要對(duì)單片機(jī)的工作原理有一個(gè)系統(tǒng)的學(xué)習(xí),要知道單片機(jī)正常工作所需的必備條件,要了解單片機(jī)系統(tǒng)電路的組成以及各部分的主要功能。單片機(jī)最小系統(tǒng)電路一般由單片機(jī)、晶振電路、復(fù)位電路組成,此部分設(shè)計(jì)完成的電路如圖3-3所示。圖3-3 單片機(jī)最小系統(tǒng)電路圖如圖3-3所示,其中Y1為11.0592M的晶體振蕩器,選擇11.0
22、592M是為了便于計(jì)算單片機(jī)運(yùn)行的周期,Y1兩端的電容 C7,C8 接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。電容C7和C8應(yīng)選擇瓷片電容,至于電容容值的大小沒有嚴(yán)格的限定,只是電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度的穩(wěn)定性。如果使用石英晶體,推薦電容使用30pF士l0pF。STC89C52單片機(jī)為高電平復(fù)位使能,在單片機(jī)最小系統(tǒng)電路設(shè)計(jì)中需要保證上電的時(shí)候能夠復(fù)位單片機(jī),同時(shí)當(dāng)系統(tǒng)運(yùn)行 過程中出現(xiàn)跑飛或者進(jìn)入死循環(huán)的時(shí)候能夠通過相應(yīng)的按鍵實(shí)現(xiàn)單片機(jī)的復(fù)位,因而單片機(jī)復(fù)位需要有上電復(fù)位和按鍵復(fù)位兩種復(fù)位方式,復(fù)位電路設(shè)計(jì)如圖3-3所示,其中 S0為復(fù)位按
23、鍵。上電復(fù)位的工作原理為:通電時(shí),電容兩端相當(dāng)于短路,于是單片機(jī)的復(fù)位引腳上為高電平,然后電源通過電阻對(duì)電容C6充電,單片機(jī)復(fù)位引腳端電壓慢慢下降,降到一定程度,即為低電平,單片機(jī)開始正常工作;按鍵復(fù)位的工作原理為:當(dāng)S0被按下后,電容C6迅速放電,使單片機(jī)復(fù)位引腳為高電平,從而實(shí)現(xiàn)復(fù)位。當(dāng)S0彈起后,電源通過10K的電阻R5放電,電平變?yōu)榈碗娖剑瑥?fù)位停止。3.3 系統(tǒng)顯示電路設(shè)計(jì)3.3.1 系統(tǒng)顯示器件選擇目前市場(chǎng)上的計(jì)算器顯示屏主要包括以下幾種:1、 OLED段碼液晶屏,此種液晶屏只能顯示固定的數(shù)字和字符,由于簡易計(jì)算器的運(yùn)算符號(hào)種類較少,因而考慮到OLED段碼液晶屏的價(jià)格相對(duì)較低,在一些
24、簡單的計(jì)算器上應(yīng)用較多。2、 LED數(shù)碼管顯示屏,近年來隨著LED技術(shù)的發(fā)展,LED數(shù)碼管應(yīng)用場(chǎng)合也逐漸增多,LED數(shù)碼管顯示亮度較高,同時(shí)LED顏色種類較多,客戶可以根據(jù)自己的喜好選擇自己喜歡的顏色,不足之處是LED數(shù)碼管功耗較高,顯示效果會(huì)有輕微的閃爍,長時(shí)間觀看不利于眼睛的保護(hù)。3、 LCD液晶屏,目前市場(chǎng)上主要用到的液晶屏分為字符型液晶屏和中文漢字液晶屏, 字符型 LCD 液晶顯示,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件;中文漢字液晶屏體積尺寸較大,同時(shí)價(jià)格較貴,考慮到價(jià)格和體積因素,字符型LCD液晶更適合本
25、系統(tǒng)設(shè)計(jì)的需要,采用LCD液晶顯示價(jià)格適中,顯示效果穩(wěn)定,不足是亮度效果會(huì)相對(duì)降低。綜合以上幾種顯示器件的優(yōu)缺點(diǎn),系統(tǒng)最終采用LCD液晶顯示器做系統(tǒng)的顯示器件,系統(tǒng)選用字符型LCD1602作為顯示部分。3.3.2 系統(tǒng)顯示電路設(shè)計(jì)系統(tǒng)顯示電路主要包括單片機(jī)控制器、單片機(jī)P0口上拉電阻、LCD1602液晶顯示器和對(duì)比度調(diào)節(jié)電阻器組成,此部分電路如圖3-4所示。圖3-4 系統(tǒng)顯示器件電路圖由圖3-4所示:液晶LCD1602的1腳為接地端,2腳為電源引腳,此款液晶顯示器采用DC5V電壓供電,此處VCC接5V電壓,3腳為液晶顯示器的對(duì)比度調(diào)節(jié)引腳,通過電阻R6接地,R6阻值可以選擇2.2K到4.7K之
26、間的電阻,也可以接4.7K的可調(diào)電位器接地,可通過改變此電阻的阻值大小來調(diào)節(jié)液晶的對(duì)比度;4腳、5腳、6腳為液晶片選控制引腳,分別連接到單片機(jī)的P25、P26、P27端口,714腳為數(shù)據(jù)接口,與單片機(jī)的P0口相連實(shí)現(xiàn)數(shù)據(jù)的傳輸,15、16、腳為液晶的背光控制腳,分別接到電源和地,如果懸空不接則不使用背光。3.4 系統(tǒng)矩陣鍵盤輸入電路設(shè)計(jì)按鍵輸入電路用來完成密碼的輸入和修改,按鍵輸入電路采用4*4矩陣鍵盤實(shí)現(xiàn),矩陣鍵盤電路如圖3-5所示。圖3-5系統(tǒng)矩陣鍵盤輸入電路系統(tǒng)矩陣鍵盤對(duì)應(yīng)按鍵功能如圖3-6所示。圖3-6系統(tǒng)矩陣鍵盤按鍵功能說明如上表所示,0-9位數(shù)字鍵,當(dāng)運(yùn)算時(shí)按下對(duì)應(yīng)數(shù)字的按鍵即可輸
27、入相應(yīng)數(shù)字,符號(hào)鍵“”“-”“*”“/”“=”號(hào)對(duì)應(yīng)計(jì)算器的運(yùn)算功能鍵,當(dāng)輸入完相應(yīng)的數(shù)字后按下對(duì)應(yīng)的運(yùn)算符后即可執(zhí)行相應(yīng)的計(jì)算操作,清除鍵指的是當(dāng)運(yùn)算過程中如果操作錯(cuò)誤可以按下清除鍵完成對(duì)本次運(yùn)算的清除功能,按下清除鍵以后即可進(jìn)行再次運(yùn)算操作。3.5系統(tǒng)整體電路設(shè)計(jì)分析當(dāng)系統(tǒng)各部分電路設(shè)計(jì)完成后,需要對(duì)各部分電路進(jìn)行總體匯總,然后對(duì)完整的電路進(jìn)行可行性分析論證,在保證系統(tǒng)電路的完整性和可靠性的前提下方可進(jìn)行下一步的軟件設(shè)計(jì)以及成品組裝,系統(tǒng)匯總完成的總體電路如圖3-7所示。圖3-7 系統(tǒng)整體電路圖圖3-7為系統(tǒng)整體電路圖,主要包括電源部分電路,矩陣鍵盤輸入電路,單片機(jī)最小系統(tǒng)電路以及液晶顯示
28、電路4大部分組成,系統(tǒng)電源電路用了完成系統(tǒng)電壓的穩(wěn)壓和濾波作用,因?yàn)閱纹瑱C(jī)系統(tǒng)需要在比較穩(wěn)定的5V電壓系統(tǒng)下工作,因而要想保證整個(gè)系統(tǒng)能夠穩(wěn)定可靠的運(yùn)行,首先要保證系統(tǒng)電源電路穩(wěn)定可靠,所以增加穩(wěn)壓濾波電路是必不可少的環(huán)節(jié);考慮到計(jì)算器輸入鍵盤部分由0-9共10個(gè)數(shù)字鍵,5個(gè)運(yùn)算符號(hào)鍵,一個(gè)清除鍵,共需要16個(gè)按鍵,因而系統(tǒng)設(shè)計(jì)鍵盤輸入部分采用4*4的矩陣鍵盤,共16個(gè)按鍵完成;顯示界面采用LCD1602字符型液晶顯示屏,LCD1602液晶能夠顯示2行32個(gè)字符,可以很好的滿足系統(tǒng)設(shè)計(jì)的要求。第四章 計(jì)算器的軟件系統(tǒng)設(shè)計(jì)4.1系統(tǒng)軟件編程環(huán)境介紹系統(tǒng)軟件設(shè)計(jì)采用C語言編程,編譯環(huán)境為Keil。
29、Keil c51 是美國Keil Software 公司出品的51 系列兼容單片機(jī)C 語言軟件開發(fā)系統(tǒng),和匯編相比,C 在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil c51 軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows 界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil c51 生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。Keil C51 可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE 本身或其它編輯器編輯C 或匯編源文件,然后分別有C
30、51 及A51 編輯器編譯連接生成單片機(jī)可執(zhí)行的二進(jìn)制文件(.HEX),然后通過單片機(jī)的燒寫軟件將HEX 文件燒入單片機(jī)內(nèi)。軟件主要三個(gè)方面:一是初始化系統(tǒng);二是數(shù)據(jù)采集;三是數(shù)據(jù)處理并進(jìn)行顯示。這三個(gè)方面的操作分別在主程序中來進(jìn)行。程序采用模塊化的結(jié)構(gòu),這樣程序結(jié)構(gòu)清楚,易編程和易讀性好,也便于調(diào)試和修改。4.2系統(tǒng)主程序流程圖系統(tǒng)主程序主要包括系統(tǒng)的初始化、鍵盤掃描、運(yùn)算的執(zhí)行以及液晶的顯示等,系統(tǒng)主程序流程圖如圖4-1所示。判斷是否有按鍵按下?按鍵掃描開始系統(tǒng)初始化否是液晶顯示輸入數(shù)字和運(yùn)算符是否判斷是否按下“=”號(hào)鍵?是執(zhí)行運(yùn)算操作顯示計(jì)算結(jié)果是否判斷是否按下清除鍵?是圖4-1 系統(tǒng)主
31、程序流程圖系統(tǒng)主程序流程如圖4-1所示,當(dāng)系統(tǒng)上電后首先完成各個(gè)組件的初始化,一個(gè)系統(tǒng)的初始化是程序運(yùn)行必不可少的環(huán)節(jié),系統(tǒng)初始化部分主要包括:單片機(jī)初始化、液晶顯示初始化、矩陣鍵盤初始化等;初始化完成以后系統(tǒng)首先要掃描矩陣鍵盤,通過判斷矩陣鍵盤對(duì)應(yīng)的單片機(jī)IO端口是否發(fā)生變化來判斷是否進(jìn)入有效的運(yùn)算操作,當(dāng)按鍵掃描到有按鍵輸入時(shí),單片機(jī)通過鍵盤鍵值的判斷來確定輸入的是數(shù)字還是運(yùn)算符,同時(shí)通過控制液晶屏實(shí)時(shí)顯示輸入的運(yùn)算數(shù)字和運(yùn)算符,當(dāng)單片機(jī)判斷到有“=”鍵按下后開始執(zhí)行運(yùn)算符前后數(shù)字的相應(yīng)運(yùn)算,然后把運(yùn)算的結(jié)果顯示在液晶屏的“=”符之后。此時(shí)如果系統(tǒng)檢測(cè)到清除功能鍵按下則系統(tǒng)返回到按鍵掃描狀
32、態(tài),如果沒有清除鍵按下,則一直保留此次運(yùn)算的狀態(tài)。4.3系統(tǒng)子程序介紹系統(tǒng)子程序主要包括按鍵掃描子程序和液晶顯示子程序,按鍵掃描子程序是通過檢測(cè)矩陣鍵盤所接的單片機(jī)IO端口的電平變化來實(shí)現(xiàn)。矩陣鍵盤電路設(shè)計(jì)成4X4矩陣式,在程序中可以先判斷按鍵編碼,然后根據(jù)編碼將鍵盤代表的數(shù)值送到相應(yīng)的存儲(chǔ)單元,再進(jìn)行功能選擇或數(shù)據(jù)處理。液晶顯示子程序主要完成在顯示字符發(fā)生變化時(shí),通過單片機(jī)控制液晶的讀寫操作來完成顯示字符的更新。按鍵掃描子程序流程圖如圖4-2所示。判斷是否有按鍵按下?按鍵掃描開始鍵盤端口電平初始化行列端口掃描判斷行端口電平是否發(fā)生變化?否是否判斷列端口電平是否發(fā)生變化?是得出對(duì)應(yīng)行列交叉線處
33、按鍵碼值圖4-2 系統(tǒng)按鍵掃描子程序流程圖系統(tǒng)按鍵掃描是通過對(duì)矩陣鍵盤行列掃描的方式實(shí)現(xiàn)的,系統(tǒng)首先對(duì)行進(jìn)行掃描,檢測(cè)出4行當(dāng)中是否有一行對(duì)應(yīng)的端口電平發(fā)生變化,如果有則進(jìn)行列的掃描,同樣如果4列中的一列端口電平發(fā)生了變化,則電平發(fā)生變化的行列交叉處的按鍵碼值即可檢測(cè)出來,此時(shí)單片機(jī)就可以通過對(duì)端口電平的變化來判斷出所按下的按鍵具體位置,然后即可記錄下對(duì)應(yīng)按鍵所對(duì)應(yīng)的數(shù)字或者符號(hào),如此循環(huán)檢測(cè)即可完成按鍵的掃描工作。第五章 系統(tǒng)的仿真與調(diào)試5.1系統(tǒng)仿真軟件介紹Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件。Proteus不僅具有其它EDA工具軟件
34、的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前比較好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA仿真工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真。它是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等多種型號(hào)的單片機(jī)。5.2系統(tǒng)仿真結(jié)果分析系統(tǒng)完成加法運(yùn)算的仿真運(yùn)行效果圖如圖5-1所示。圖5-1系
35、統(tǒng)運(yùn)行仿真效果圖系統(tǒng)完成加法運(yùn)算的運(yùn)行效果圖5-1所示,加數(shù)分別為123和56,完成運(yùn)算符為加法運(yùn)算,運(yùn)算得出的結(jié)果為179,經(jīng)驗(yàn)證運(yùn)算結(jié)果正確,液晶顯示內(nèi)容和實(shí)際運(yùn)算輸出數(shù)字及運(yùn)算符完全一致,系統(tǒng)加法運(yùn)算仿真運(yùn)行正確無誤。系統(tǒng)完成減法運(yùn)算的仿真運(yùn)行效果圖如圖5-2所示。圖5-2 系統(tǒng)減法運(yùn)算仿真效果圖系統(tǒng)完成減法運(yùn)算的運(yùn)行效果圖5-2所示,減數(shù)和被減數(shù)分別為456和123,完成運(yùn)算符為減法運(yùn)算,運(yùn)算得出的結(jié)果為333,經(jīng)驗(yàn)證運(yùn)算結(jié)果正確,液晶顯示內(nèi)容和實(shí)際運(yùn)算輸出數(shù)字及運(yùn)算符完全一致,系統(tǒng)減法運(yùn)算仿真運(yùn)行正確無誤。系統(tǒng)完成乘法運(yùn)算的仿真運(yùn)行效果圖如圖5-3所示。圖5-3 系統(tǒng)乘法運(yùn)算仿真效果
36、圖系統(tǒng)完成乘法運(yùn)算的運(yùn)行效果圖5-3所示,乘數(shù)和被乘數(shù)分別為45和2,完成運(yùn)算符為乘法運(yùn)算,運(yùn)算得出的結(jié)果為90,經(jīng)驗(yàn)證運(yùn)算結(jié)果正確,液晶顯示內(nèi)容和實(shí)際運(yùn)算輸出數(shù)字及運(yùn)算符完全一致,系統(tǒng)乘法運(yùn)算仿真運(yùn)行正確無誤。系統(tǒng)完成除法運(yùn)算的仿真運(yùn)行效果圖如圖5-4所示。圖5-4 系統(tǒng)除法運(yùn)算運(yùn)行仿真圖系統(tǒng)完成除法運(yùn)算的運(yùn)行效果圖5-4所示,除數(shù)和被除數(shù)分別為10000和5,完成運(yùn)算符為除法運(yùn)算,運(yùn)算得出的結(jié)果為2000,經(jīng)驗(yàn)證運(yùn)算結(jié)果正確,液晶顯示內(nèi)容和實(shí)際運(yùn)算輸出數(shù)字及運(yùn)算符完全一致,系統(tǒng)除法運(yùn)算仿真運(yùn)行正確無誤。第六章 實(shí)物的制作與調(diào)試6.1電路的安裝過程元件在安裝時(shí),注意事項(xiàng)如下:1) 晶振要緊挨
37、單片機(jī)的晶振引腳,晶振引線的太長會(huì)直接影響到晶振的起震效果,引線太長會(huì)造成晶振不起震的情況出現(xiàn)。2) 裝配時(shí),應(yīng)該先安裝那些需要安裝底座的器件,比如說單片機(jī)、液晶顯示屏等,由于這些器件價(jià)格較貴,如果直接裝配到板子上,一旦系統(tǒng)安裝出現(xiàn)意外情況不得不重新焊接的時(shí)候,這些主要器件就沒法再次利用了。3) 各種元器件的安裝時(shí)應(yīng)盡量留出較大的空間,這樣既可以避免器件太近存在的短路隱患也利于元器件的散熱。4)在元器件焊接之前應(yīng)該先用紗布將元器件的引腳打磨一遍,這樣可以將元件引腳氧化的部分去除掉,以便于焊接;在焊接過程中還要注意焊錫的量要得當(dāng),過多可能造成電路短路,過少有可能造成虛焊;最后可以在板子的四個(gè)角上
38、安裝四個(gè)固定柱,一方面可以增加整個(gè)結(jié)構(gòu)的美觀,另一方面也可以使避免電路板放在導(dǎo)電體上發(fā)生短路的危險(xiǎn)。通過以上步驟,一個(gè)完整的電路硬件部分就制作完成了,這時(shí)可以再檢查一下是否有元器件漏焊、焊錯(cuò)的情況,以確保電路的正確。6.2系統(tǒng)的調(diào)試及問題在調(diào)試過程中,曾遇到以下問題:1) 當(dāng)硬件連接無誤,在系統(tǒng)啟動(dòng)后液晶不顯示,系統(tǒng)沒有反應(yīng),經(jīng)過分析這種情況有以下幾種可能:第一,硬件電路中存在虛焊,或電路接線焊錯(cuò);第二,芯片插反了導(dǎo)致電路短路;第三,液晶電路焊接錯(cuò)誤。遇到這種情況首先要用萬用表檢查芯片的供電電壓是否為5V,如果不是就檢查供電電路有沒有問題。如果兩端有電壓就檢查一下單片機(jī)有沒有插反,通過逐步排查
39、最終找到問題是因?yàn)閱纹瑱C(jī)供電引腳虛焊造成的。2) 鍵盤輸入顯示亂碼,和設(shè)計(jì)的鍵值不符,經(jīng)檢查發(fā)現(xiàn)矩陣鍵盤的行列端口定義與仿真接口定義不一致引起的,后重新修改端口問題得以解決。3) 初期系統(tǒng)顯示不穩(wěn)定,這有可能是系統(tǒng)電壓不穩(wěn)定,或者STC89C52芯片的31引腳EA引腳沒有接高電平,經(jīng)過排查發(fā)現(xiàn)系統(tǒng)電源電路中未加濾波電容,由于仿真電路不存在電源干擾問題,所以在仿真中可以穩(wěn)定運(yùn)行的情況下,根據(jù)仿真電路制作出的實(shí)物可能會(huì)出現(xiàn)由于外界干擾帶來的系統(tǒng)工作不穩(wěn)定情況,這種情況一般是由電源的干擾造成,可以通過增加電源端的濾波電容來解決這種問題??偨Y(jié)本文采用STC89C52單片機(jī)設(shè)計(jì)完成了一款簡易計(jì)算器的制作
40、, 經(jīng)過實(shí)際測(cè)試,功能穩(wěn)定操作方便,能夠達(dá)到計(jì)算器的基本功能要求,通過適當(dāng)?shù)陌b和完善即可得到很好的推廣和應(yīng)用,此次設(shè)計(jì)對(duì)我具有很好的鍛煉效果,同時(shí)也是對(duì)自己所學(xué)知識(shí)的一次綜合檢驗(yàn)。在整個(gè)畢業(yè)設(shè)計(jì)過程中,我對(duì)大學(xué)四年所學(xué)的知識(shí)有了一個(gè)系統(tǒng)的認(rèn)識(shí)和理解,尤其是對(duì)本課題所用到的單片機(jī)及其相關(guān)知識(shí)有了進(jìn)一步的掌握,對(duì)單片機(jī)相關(guān)軟件的使用水平得到了提高,為今后的工作奠定了堅(jiān)實(shí)的基礎(chǔ)。本課題軟件和硬件相結(jié)合,有相當(dāng)大的難度,同時(shí)也有很大的實(shí)用性。在做畢業(yè)設(shè)計(jì)的過程中,我的理論和實(shí)踐水平都有了較大的提高。在課題的設(shè)計(jì)與制作過程中,遇到了不少問題,在老師和同學(xué)的指導(dǎo)和幫組下最終得到逐一的解決,通過此次畢業(yè)設(shè)
41、計(jì)制作不僅使我的實(shí)際動(dòng)手能力得帶了提高,也使我和同學(xué)老師之間的溝通和協(xié)作能力得到了提高,這些都為我今后進(jìn)入公司工作打下了很好的基礎(chǔ),為我今后的生活和工作積累了寶貴的財(cái)富,同時(shí)由于時(shí)間和費(fèi)用的限制,此款計(jì)算器只是實(shí)現(xiàn)了計(jì)算器的基礎(chǔ)功能,諸如開方等一些常用功能未能夠?qū)崿F(xiàn)。致 謝四年的本科學(xué)習(xí)生涯即將結(jié)束,在本人做畢業(yè)設(shè)計(jì)中,得到了我的導(dǎo)師的悉心指導(dǎo)和無私幫助。他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和謙和的為人給我留下了深刻的印象。本課題在選題及研究過程中得到譚老師的悉心指導(dǎo)。譚老師多次詢問研究進(jìn)程,并為我指點(diǎn)迷津,幫助我開拓研究思路,精心點(diǎn)撥、熱忱鼓勵(lì)。譚老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,讓我受益終身
42、。 通過這次畢業(yè)設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我對(duì)單片機(jī)的基本原理以及單片機(jī)編程技巧的掌握方面都能向前邁了一大步,為日后邁入職場(chǎng)打下了良好的基礎(chǔ)。在我畢業(yè)設(shè)計(jì)的過程中,我在譚老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識(shí),極大地提高了實(shí)踐能力,并對(duì)當(dāng)前電了領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,這對(duì)我今后進(jìn)一步學(xué)習(xí)傳感器方面的知識(shí)有極人的幫助。在此,我衷心感謝譚老師的指導(dǎo)和支持。在未來的工作和學(xué)習(xí)中,我將以更好的成績來回報(bào)老師。 在此,我還要感謝在一起愉快的度過我大學(xué)生活的全體老師和同學(xué)們,正是由于你們的幫助和支持,我才能克服一個(gè)一個(gè)的困難和疑惑,直
43、至本文的順利完成。最后再次對(duì)各位評(píng)委老師表示衷心的感謝,感謝你們能給我提出寶貴的指導(dǎo)意見,讓我順利通過畢業(yè)答辯,謝謝! 參考文獻(xiàn)1 李朝青單片機(jī)原理及接口技術(shù)M北京:北京航空航天大學(xué)出版社,20052 康華光電子技術(shù)基礎(chǔ)模擬部分(第五版) M北京:高等教育出版社, 20053 閻石數(shù)字電子技術(shù)基礎(chǔ)(第四版)M北京:高等教育出版社,20054 白延敏51單片機(jī)典型系統(tǒng)開發(fā)實(shí)例精講M北京:電子工業(yè)出版社,20095 張齊,杜群貴. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)M. 北京:電子工業(yè)出版社,2007.6 楊金巖等. 8051單片機(jī)數(shù)據(jù)傳輸接口擴(kuò)展技術(shù)與應(yīng)用實(shí)例M北京:人民郵電出版社,20057 求是科技單片
44、機(jī)通信技術(shù)與工程實(shí)踐M北京:人民郵電出版社,2005.8 郭永貞主編. 數(shù)字電子技術(shù)M. 西安電子科技大學(xué)出版社,2000.9 李廣弟. 單片機(jī)基礎(chǔ)M.北京:北京航空航天大學(xué)出版社,2001.10 張洪潤. 電子線路與電子技術(shù)M.清華大學(xué)出版社M,2005.11 張齊,杜群貴. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)M.電子工業(yè)出版社,2004.12 張偉基于8051單片機(jī)的無線溫控系統(tǒng)設(shè)計(jì)J北京:中國高新技術(shù)企業(yè),2010,34(7)13徐愛鈞.智能化測(cè)量控制儀表原理與設(shè)計(jì)(第二版)北京航天航空大學(xué)出版社,2004.914孫育才等.MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用(第4版)東南大學(xué)出版社,2004.3
45、 15李萍等.智能儀器實(shí)驗(yàn)指導(dǎo)書大連交通大學(xué),2007.9 16單片機(jī)應(yīng)用技術(shù)(C語言).中國勞動(dòng)社會(huì)保障出版社,2006.6 17武慶生,仇梅等著.單片機(jī)原理與應(yīng)用.電子科技大學(xué)出版,1998.12 18朱定華著.單片機(jī)原理與接口技術(shù).電子工業(yè)出版社,2001.4 19王宜懷,劉曉升等著.嵌入式應(yīng)用技術(shù)基礎(chǔ)教程.北京清華大學(xué)出版社,2005.7 20王威著.HCS12微控制器原理及應(yīng)用.北京航空航天大學(xué)出版社,2007.10附錄A 系統(tǒng)源程序#include <reg51.h>#include <stdio.h>#include <stdlib.h>#in
46、clude <string.h>#include <math.h>#include "LCD1602.h"void shortdelay(uchar i)/短延時(shí) for(;i>0;i-);void longdelay(uint i) /長延時(shí) uint j; for(;i>0;i-) for(j=100;j>0;j-);void delay(int i) /延時(shí)程序int j; for(;i>0;i-) for(j=0;j<100;j+);void io_init()/初試狀態(tài)P1=0xff;/?-鍵盤掃描部分-/ u
47、nsigned char key_scan() unsigned char key; unsigned char temp; uint flag; io_init(); P1=0xf0; flag=0;loop: temp=P10xf0; while(temp) P1=0xfe; delay(1); if(P1&0xfe)!=0xfe) switch(P1) case 0xee: key=0x11;flag=1;break; case 0xde: key=0x12;flag=1;break; case 0xbe: key=0x13;flag=1;break; case 0x7e: ke
48、y=0x14;flag=1;break; if(flag) goto exit; else P1=0xfd; delay(1); if(P1&0xfd)!=0xfd) switch(P1) case 0xed: key=0x21;flag=1;break; case 0xdd: key=0x22;flag=1;break; case 0xbd: key=0x23;flag=1;break; case 0x7d: key=0x24;flag=1;break; if(flag) goto exit; else P1=0xfb; delay(1); if(P1&0xfb)!=0xfb
49、) switch(P1) case 0xeb: key=0x31;flag=1;break; case 0xdb: key=0x32;flag=1;break; case 0xbb: key=0x33;flag=1;break; case 0x7b: key=0x34;flag=1;break; if(flag) goto exit; else P1=0xf7; delay(1); if(P1&0xf7)!=0xf7) switch(P1) case 0xe7: key=0x41;flag=1;break; case 0xd7: key=0x42;flag=1;break; case
50、0xb7: key=0x43;flag=1;break; case 0x77: key=0x44;flag=1;break; exit: return key; if(temp=0) goto loop; /-鍵盤掃描完-/-顯示初始化?-/void initpindata(bit i) /P0口初始化 if(i=1) pindata=0xff; else pindata=0X00;void setRS(bit i) /寄存器選擇信號(hào) if(i=1) pinRS=1; else pinRS=0;void setRW(bit i) /讀寫操作控制 if(i=1) pinRW=1; else pi
51、nRW=0;void setE(bit i) /使能信號(hào) if(i=1) pinE=1; else pinE=0;uint read_BF_AC()/讀BF以及AC的值 uint temp; initpindata(1); setRS(0); setRW(1); setE(1); shortdelay(1); temp=pindata; shortdelay(10); setE(0); return(temp); bit statuscheck()/判忙 return(bit)(read_BF_AC()&0x80);void writeinstruc(uint instruc) /寫指令函數(shù) while(statuscheck(); initpindata(0); setRS(0); setRW(0); setE(0); pindata=instruc;setE(1); shortdelay(10); setE(0);void writedata(uint data1) /寫數(shù)據(jù)到RAM initpindata(0); setRS(1); setRW(0); setE(0); pindata=data1; setE(1); shortdelay(10); setE(0);uint readdata(void) /從RAM中讀數(shù)據(jù)函數(shù) uint temp; i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬戲團(tuán)合作協(xié)議書
- 2025年個(gè)人別墅測(cè)繪項(xiàng)目合同范本
- 2025版房地產(chǎn)開發(fā)項(xiàng)目施工合同交底書范本2篇
- 2025-2030全球三氟化銪行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球高折射率光纖行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球滑動(dòng)軸承襯套行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球落地護(hù)眼燈行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國微膠囊熱致變色顏料行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 石料破碎加工合同范本
- 2025版?zhèn)€人股權(quán)交易保密協(xié)議書4篇
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場(chǎng)發(fā)展態(tài)勢(shì)及前景戰(zhàn)略研判報(bào)告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護(hù)制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 高中學(xué)校開學(xué)典禮方案
- 內(nèi)審檢查表完整版本
- 3級(jí)人工智能訓(xùn)練師(高級(jí))國家職業(yè)技能鑒定考試題及答案
評(píng)論
0/150
提交評(píng)論