




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄第一章 引言31.1 簡(jiǎn)述簡(jiǎn)易計(jì)算器.31.2 本設(shè)計(jì)主要任務(wù).31.3 系統(tǒng)主要功能.4第二章 系統(tǒng)主要硬件電路設(shè)計(jì).42.1 系統(tǒng)的硬件構(gòu)成及功能.4 2.2 鍵盤電路設(shè)計(jì).5 2.3 顯示電路設(shè)計(jì).6第三章 系統(tǒng)軟件設(shè)計(jì).73.1 計(jì)算器的軟件規(guī)劃.7 3.2 鍵盤掃描的程序設(shè)計(jì).7 3.3 顯示模塊的程序設(shè)計(jì).8 3.4 主程序的設(shè)計(jì).9 3.5 軟件的可靠性設(shè)計(jì).9第四章 調(diào)試.9第五章 結(jié)束語(yǔ).10參考文獻(xiàn).11附錄源程序.11第一章 引言1.1 簡(jiǎn)述簡(jiǎn)易計(jì)算器近幾年單片機(jī)技術(shù)的發(fā)展很快,其中電子產(chǎn)品的更新速度迅猛。計(jì)算器是日常生活中比較的常見(jiàn)的電子產(chǎn)品之一。如何才能使計(jì)算器技
2、術(shù)更加的成熟,充分利用已有的軟件和硬件條件,設(shè)計(jì)出更出色的計(jì)算器呢?本設(shè)計(jì)是以AT89S52單片機(jī)為核心的計(jì)算器模擬系統(tǒng)設(shè)計(jì),輸入采用4×6矩陣鍵盤,可以進(jìn)行加、減、乘、除9位帶符號(hào)數(shù)字運(yùn)算,并在LCD1602上顯示操作過(guò)程??萍嫉倪M(jìn)步告別了以前復(fù)雜的模擬電路,一塊幾厘米平方的單片機(jī)可以省去很多繁瑣的電路?,F(xiàn)在應(yīng)用較廣泛的是科學(xué)計(jì)算器,與我們?nèi)粘K玫暮?jiǎn)單計(jì)算器有較大差別,除了能進(jìn)行加減乘除,科學(xué)計(jì)算器還可以進(jìn)行正數(shù)的四則運(yùn)算和乘方、開(kāi)方運(yùn)算,具有指數(shù)、對(duì)數(shù)、三角函數(shù)、反三角函數(shù)及存儲(chǔ)等計(jì)算功能。計(jì)算器的未來(lái)是小型化和輕便化,現(xiàn)在市面上出現(xiàn)的使用太陽(yáng)能電池的計(jì)算器,使用ASIC設(shè)計(jì)的
3、計(jì)算器,如使用純軟件實(shí)現(xiàn)的計(jì)算器等,未來(lái)的智能化計(jì)算器將是我們的發(fā)展方向,更希望成為應(yīng)用廣泛的計(jì)算工具。1.2 本設(shè)計(jì)主要任務(wù)以下是初步設(shè)定的矩陣鍵盤簡(jiǎn)易計(jì)算器的功能:1.擴(kuò)展4*6鍵盤,其中10個(gè)數(shù)字,5個(gè)功能鍵,1個(gè)清零2.強(qiáng)化對(duì)于電路的焊接3.使用五位數(shù)碼管接口電路4. 完成十進(jìn)制的四則運(yùn)算(加、減、乘、除); 5. 實(shí)現(xiàn)結(jié)果低于五位的連續(xù)運(yùn)算;6. 使用keil 軟件編寫程序,使用匯編語(yǔ)言; 7. 最后用ptoteus模擬仿真;8.學(xué)會(huì)對(duì)電路的調(diào)試1.3 系統(tǒng)主要功能本設(shè)計(jì)是一個(gè)實(shí)現(xiàn)加減乘除的計(jì)算器,它的硬件主要由四部分構(gòu)成,一個(gè)8051單片機(jī)芯
4、片,兩個(gè)八段共陰極數(shù)碼管,一個(gè)4*4鍵盤,它可以實(shí)現(xiàn)一位數(shù)的加減乘除運(yùn)算。顯示部分:采用LED動(dòng)態(tài)顯示。按鍵部分:采用4*4鍵盤。采用軟件識(shí)別鍵值,并執(zhí)行相應(yīng)的操作。第二章 系統(tǒng)主要硬件電路設(shè)計(jì)2.1 系統(tǒng)的硬件構(gòu)成及功能主要用到的硬件:AT89S52 LCD液晶顯示屏 編碼鍵盤 硬件分配:1、P0、P3口:做為輸出口,控制LCD液晶顯示屏顯示數(shù)據(jù)的結(jié)果。2、P1口:做為輸入口,與鍵盤連接,實(shí)現(xiàn)數(shù)據(jù)的輸入。3、LCD液晶顯示屏顯示輸出。為了更好的實(shí)現(xiàn)系統(tǒng)得功能,硬件電路的設(shè)計(jì)應(yīng)該遵循以下原則:1、優(yōu)化硬件電路采用軟件設(shè)計(jì)與硬件設(shè)計(jì)相結(jié)合的方法;盡管采用軟件來(lái)實(shí)現(xiàn)硬件系統(tǒng)的功能時(shí),也許響應(yīng)時(shí)間會(huì)
5、比單純使用硬件時(shí)長(zhǎng),而且還要占用微處理器(MCU)的時(shí)間;但是,用軟件實(shí)現(xiàn)硬件的功能可以簡(jiǎn)化硬件結(jié)構(gòu),提高電路的可靠性。所以,在設(shè)計(jì)本系統(tǒng)得時(shí)候,在滿足可靠性和實(shí)時(shí)性的前提下,盡可能的通過(guò)軟件來(lái)實(shí)現(xiàn)硬件功能。2、可靠性及抗干擾設(shè)計(jì)根據(jù)可靠性設(shè)計(jì)理論,系統(tǒng)所用芯片數(shù)量越少,系統(tǒng)的平均無(wú)故障時(shí)間越長(zhǎng)。而且,所用芯片數(shù)量越少,地址和數(shù)據(jù)總線在電路板上受干擾的可能性也就越小。因此,系統(tǒng)的設(shè)計(jì)思想是在滿足功能的情況下力爭(zhēng)使用較少數(shù)量的芯片。3、靈活的功能擴(kuò)展功能擴(kuò)展是否靈活是衡量一個(gè)系統(tǒng)優(yōu)劣的重要指標(biāo)。一次設(shè)計(jì)往往不能完全考慮到系統(tǒng)的各個(gè)方面,系統(tǒng)需要不斷完善以及進(jìn)行功能升級(jí)。進(jìn)行功能擴(kuò)展時(shí),應(yīng)該在原有
6、設(shè)計(jì)的基礎(chǔ)上,通過(guò)修改軟件程序和少量硬件完成。對(duì)于本系統(tǒng)而言,就是要求在系統(tǒng)硬件不變的情況下,能夠通過(guò)修改軟件程序,完成功能的升級(jí)和擴(kuò)展。根據(jù)第提出的系統(tǒng)設(shè)計(jì)方案,結(jié)合以上三條原則,確定了系統(tǒng)硬件的設(shè)計(jì)。計(jì)算器主要由以下一些功能模塊構(gòu)成:非編碼鍵盤模塊、LCD液晶顯示屏模塊等。該系統(tǒng)的硬件設(shè)計(jì)采用了模塊化的設(shè)計(jì)方法。AT89S52 單片機(jī)與LCD液晶顯示屏顯示電路是整個(gè)電路的核心,它們實(shí)現(xiàn)系統(tǒng)的功能要求。簡(jiǎn)易計(jì)算器主要包括:鍵盤電路,顯示電路。下圖為總體硬件結(jié)構(gòu)。(如圖2-1 所示為整個(gè)系統(tǒng)的原理圖)圖2-1 計(jì)算器原理圖前面敘述了該系統(tǒng)的設(shè)計(jì)說(shuō)明,系統(tǒng)采用了比較簡(jiǎn)單的設(shè)計(jì)方案,所以該系統(tǒng)的硬
7、件設(shè)計(jì)的總外圍電路不會(huì)產(chǎn)生過(guò)多的干擾。在下面的闡述中,對(duì)系統(tǒng)的外圍電路分別予以介紹。鍵盤部分采用編碼鍵盤,顯示部分采用LCD液晶顯示屏完全能夠很好的實(shí)現(xiàn)顯示方面的要求。2.2 鍵盤電路的設(shè)計(jì)鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個(gè)以上)和專用驅(qū)動(dòng)芯片的組合,當(dāng)按下某個(gè)按鍵時(shí),它能夠處理按鍵抖動(dòng)、連擊等問(wèn)題,直接輸出按鍵的編碼,無(wú)需系統(tǒng)軟件干預(yù)。通用計(jì)算機(jī)使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時(shí)還可以兼顧數(shù)碼管的顯示驅(qū)動(dòng),其相關(guān)的接口電路和接口軟件均可在芯片資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,按鍵數(shù)量
8、很多時(shí),采用編碼鍵盤可以簡(jiǎn)化軟件設(shè)計(jì)。非編碼鍵盤成本低廉。 從成本角度出發(fā),本設(shè)計(jì)選用的是非編碼鍵盤。如圖2-2圖2-2 編碼鍵盤電路2.3 顯示電路的設(shè)計(jì)當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時(shí),采用LCD液晶顯示屏進(jìn)行顯示是一種經(jīng)濟(jì)實(shí)用的方法。P0口作為液晶顯示的數(shù)據(jù)端口,P3.5-P3.7口作為其控制端口,控制LCD液晶顯示屏顯示輸出數(shù)據(jù)。最終電路如圖2.3所示: 圖2.3 LCD液晶顯示屏顯示第三章 系統(tǒng)軟件設(shè)計(jì)3.1計(jì)算器的軟件規(guī)劃簡(jiǎn)易計(jì)算器的程序主要包括以下功能模塊: 1、定時(shí)查鍵模塊,分為讀鍵程序、判鍵程序段、運(yùn)算操作子程序等部分; 2、基于LCD液晶顯示屏的顯示模塊; 3、主模塊,為系統(tǒng)的初始
9、化。 3.2 鍵盤掃描的程序設(shè)計(jì)鍵盤掃描子程序,首先讀出P1的低四位,然后讀出P1口的高四位。然后鍵值并顯示緩存。然后將鍵如的值轉(zhuǎn)換為ASCII碼然后就可以軟件來(lái)設(shè)置硬件按鍵各個(gè)鍵代表的內(nèi)容。 讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。第一次所有行線均輸出低電平,從所有讀入鍵盤信息(列信息);第二次所有列線均輸出低電平,從所有行線讀入鍵盤信息(行信息)。數(shù)字鍵按下則將相應(yīng)的數(shù)字送入緩存區(qū),功能鍵按下則執(zhí)行相應(yīng)的程序。 3.3 顯示模塊的程序設(shè)計(jì)顯示模塊程序首先要對(duì)顯示模塊進(jìn)行初始化;然后控制光標(biāo)的位置;定義液晶顯示的控制端口,用SBIT指令完成;然后設(shè)置清屏、關(guān)閉顯示
10、、歸位、開(kāi)顯示、顯示位置的首地址等等。顯示模塊的流程圖如圖3.3所示:延時(shí)程序開(kāi)始檢測(cè)LED是否在忙掃描鍵盤Y N加減乘除運(yùn)算子程序液晶顯示結(jié)束圖5.3模塊的流程圖3.4 主程序的設(shè)計(jì) 主程序主要是用來(lái)對(duì)LCD液晶顯示屏進(jìn)行初始化的。3.5 軟件的可靠性設(shè)計(jì) 提高本儀器其可靠性措施主要有: 1、為防止程序跑飛,軟件中設(shè)置了軟件陷阱。 2、為防止程序死循環(huán),軟件中使用了看門狗技術(shù)。第四章 調(diào)試Keil調(diào)試與仿真KEIL C51標(biāo)準(zhǔn) C編譯器是眾多單片機(jī)應(yīng)用開(kāi)發(fā)的優(yōu)秀軟件之一,它集編輯、編譯、仿真于一體,支持匯編、PLM 語(yǔ)言和 C 語(yǔ)言的程序設(shè)計(jì)。1. 啟動(dòng) KEIL C51 進(jìn)入編輯界面 建立
11、一個(gè)新工程:?jiǎn)螕鬚roject菜單,在彈出的下拉菜單中選中 New Project選項(xiàng)。選擇保存路徑,輸入工程文件名。2. 工程文件保存完畢之后,提示選擇單片機(jī)的型號(hào)。KEIL支持近乎所有51核的單片機(jī)。單擊 File菜單,選擇New。3.文件保存:使用匯編編寫,文件后綴名為.asm或 a51。完成后,單擊“保存”按鈕保存文件。4.在Source Group 上單擊右鍵,找到剛才保存的源文件 ,然后添加ADD 5. 在編輯完成之后,需要進(jìn)行程序的編譯。點(diǎn)開(kāi)Project選項(xiàng),單擊 Build target;或是利用快捷鍵 F7。 6. 在程序調(diào)試的時(shí)候,點(diǎn)擊Debug 選項(xiàng),選擇 Start/
12、Stop Debug Session。 7. 以上是使用 KEIL建立一個(gè)完整工程文件的過(guò)程。下載到單片機(jī)之中,則需要 生 成 HEX 文 件 。 單 擊 “Project” 菜 單 , 再 在 下 拉 菜 單 中 單 擊出現(xiàn)選項(xiàng)對(duì)話框。在選項(xiàng)對(duì)話框的“Output”頁(yè)面對(duì)話框中,單擊“Create HEX File” 選項(xiàng),使程序編譯后產(chǎn)生 HEX 代碼,供下載器軟件使用。 4.2.調(diào)試過(guò)程 在Debug調(diào)試下,如有錯(cuò)誤時(shí),下面窗口將有提示說(shuō)明錯(cuò)誤個(gè)數(shù)和具體哪一行有錯(cuò),還有對(duì)于錯(cuò)誤的說(shuō)明,大多數(shù)格式使用不當(dāng),此時(shí)在那一行前后仔細(xì)檢查,要考慮格式,語(yǔ)法等基本性錯(cuò)誤。 即使調(diào)試沒(méi)錯(cuò)時(shí),程序也不是
13、代表完全正確,需要結(jié)合硬件來(lái)確定改程序的功能是否完全實(shí)現(xiàn)了。圖4-1keil調(diào)試圖 圖4-1keil調(diào)試圖第五章 結(jié)束語(yǔ) 選擇這個(gè)課題的時(shí)候,完全是由于興趣,因?yàn)橛X(jué)得這個(gè)課題比較的有意思,比較貼近生活。參考了一些范文和參考書后,作出了這篇設(shè)計(jì)報(bào)告。在期間,感覺(jué)自己的視野和對(duì)于單片機(jī)的應(yīng)用都有了新的認(rèn)識(shí)和拓展。 在硬件的制作過(guò)程中我走了好多的彎路,主要是在系統(tǒng)還沒(méi)有設(shè)計(jì)很有把握就開(kāi)始動(dòng)手制作了。后來(lái)發(fā)現(xiàn)與設(shè)計(jì)的要求還有偏差,反復(fù)的改過(guò)了幾次,浪費(fèi)了大量的時(shí)間和體力。感受到設(shè)計(jì)人員要有耐心,要認(rèn)真的從要求開(kāi)始研究。軟件的編寫過(guò)程中費(fèi)了很大的力氣,因?yàn)檐浖木帉懸蠛芨撸芗?xì)心,一不小心就會(huì)調(diào)用錯(cuò)
14、誤,很深刻的體會(huì)到作為軟件編程人員是絕不能粗心大意的。一個(gè)程序的完成的速度和質(zhì)量高低與細(xì)心與否有著很大聯(lián)系。編程時(shí),我充分使用了結(jié)構(gòu)化的思想。這樣因?yàn)檎Z(yǔ)句較少,程序調(diào)試比較方便,功能模塊可以逐一的調(diào)試,充分體現(xiàn)了結(jié)構(gòu)化編程的優(yōu)勢(shì)。當(dāng)每個(gè)模塊都完成時(shí),將其功能加到一起就完成了整體的設(shè)計(jì)。參考文獻(xiàn)【1】張靖武,周靈杉.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真M.北京:北京電子工業(yè)出版社【2】靳達(dá).求是科技.單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航M.:人民郵電出版社,2006【3】劉守義. 單片機(jī)應(yīng)用技術(shù)M.:西安電子科技大學(xué)出版社,2001【4】林志琦.基于PROTEUS的單片機(jī)可視化軟硬件仿真M.北京:北京航空
15、航天大學(xué)出版社,2006【5】胡漢才.單片機(jī)原理及接口技術(shù).清華大學(xué)出版社,1996【6】徐江海.單片機(jī)實(shí)用教程M.北京:機(jī)械工業(yè)出版社,2007.【7】肖洪兵. 跟我學(xué)用單片機(jī). 北京:北京航空航天大學(xué)出版社,2002.8【8】夏繼強(qiáng). 單片機(jī)實(shí)驗(yàn)與實(shí)踐教程. 北京:北京航空航天大學(xué)出版社, 2001【9】譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)M.北京:清華大學(xué)出版社,2000.【11】張磊. C語(yǔ)言程序設(shè)計(jì)M.北京:高等教育出版社,2005.【12】嚴(yán)桂蘭. C語(yǔ)言程序設(shè)計(jì)M.廈門:廈門大學(xué)出版社,2006附錄 源程序/*- 名稱:液晶顯示計(jì)算器 日期:2012.11.30 內(nèi)容:整數(shù)之間運(yùn)算,沒(méi)有小數(shù)
16、所有除法得出的結(jié)果不正確,有負(fù)號(hào)運(yùn)算,-*/#include<reg52.h> /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include<stdio.h>#define KeyPort P1#define DataPort P0 /定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換sbit LATCH1=P22;/定義鎖存使能端口 段鎖存sbit LATCH2=P23;/ 位鎖存unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6
17、f;/ 顯示段碼值09unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼unsigned char TempData8; /存儲(chǔ)顯示值的全局變量extern unsigned char TempData8; /存儲(chǔ)顯示值的全局變量extern unsigned char code dofly_DuanMa10;/*- 顯示函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 輸入?yún)?shù) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個(gè)數(shù)碼管開(kāi)始顯示 如輸入0表示從第一個(gè)顯示。 Num表示
18、需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2-*/*-按鍵掃描函數(shù),返回掃描鍵值-*/unsigned char KeyScan(void); /鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法/*-按鍵值處理函數(shù),返回掃鍵值-*/unsigned char KeyPro(void);void Display(unsigned char FirstBit,unsigned char Num);/*- 定時(shí)器初始化子程序-*/void Init_Timer0(void);/*- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值 unsigned char 是定義無(wú)符號(hào)字符變量,其值的范
19、圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編,大致延時(shí) 長(zhǎng)度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t);/*- mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無(wú)返回值 unsigned char 是定義無(wú)符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請(qǐng)使用匯編-*/void DelayMs(unsigned char t);/*- 主程序-*/main() unsigned char num,i,sign; unsigned char temp8; /最大輸入8個(gè) bit firstflag; i
20、nt a=0,b=0; unsigned char s; Init_Timer0(); /初始化定時(shí)器0while (1) /主循環(huán) num=KeyPro(); /掃描鍵盤 if(num!=0xff) /如果掃描是按鍵有效值則進(jìn)行處理 if(i=0) /輸入是第一個(gè)字符的時(shí)候需要把改行清空,方便觀看 for(s=0;s<8;s+) /賦值完成后把緩沖區(qū)清零,防止下次輸入影響結(jié)果 TempDatas=0; if('+'=num)| (i=8) | ('-'=num) | ('x'=num)| ('/'=num) | ('
21、;='=num)/輸入數(shù)字最大值8,輸入符號(hào)表示輸入結(jié)束 i=0; /計(jì)數(shù)器復(fù)位 if(firstflag=0) /如果是輸入的第一個(gè)數(shù)據(jù),賦值給a,并把標(biāo)志位置1,到下一個(gè)數(shù)據(jù)輸入時(shí)可以跳轉(zhuǎn)賦值給b sscanf(temp,"%d",&a);/從一個(gè)字符串輸入到變量 firstflag=1; else sscanf(temp,"%d",&b); for(s=0;s<8;s+) /賦值完成后把緩沖區(qū)清零,防止下次輸入影響結(jié)果 temps=0; if(num!='=') /判斷當(dāng)前符號(hào)位并做相應(yīng)處理 sign=
22、num; /如果不是等號(hào)記下標(biāo)志位 else firstflag=0; /檢測(cè)到輸入=號(hào),判斷上次讀入的符合 switch(sign) case '+':a=a+b;break;case '-':a=a-b;break;case 'x':a=a*b;break;case '/':a=a/b;break;default:break; sprintf(temp,"%d",a); /打印十進(jìn)制到臨時(shí)緩沖區(qū) for(s=0;s<8;s+) /由于打印的是ASCII碼值 if(temps=0) /所以需要轉(zhuǎn)換,如果
23、為0表示null 數(shù)碼管上則不能顯示,所以賦值0 TempDatas=0;else if(temps=0x2d)/表示負(fù)號(hào),數(shù)碼管顯示負(fù)號(hào) 0x40 TempDatas=0x40; else TempDatas=dofly_DuanMatemps-'0'/其他0-9負(fù)號(hào)則進(jìn)行ASCII 到 數(shù)字處理,如當(dāng)前是'3',用'3'-'0'=3 /'3'的16進(jìn)制是0x33,'0'的16進(jìn)制是0x30 sign=0;a=b=0; /用完后所有數(shù)據(jù)清零 for(s=0;s<8;s+) temps=0;
24、elseif(i<16) tempi=num+'0' TempDatai=dofly_DuanManum;/輸出數(shù)據(jù) i+; /輸入數(shù)值累加 /*-按鍵掃描函數(shù),返回掃描鍵值-*/unsigned char KeyScan(void) /鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法 unsigned char cord_h,cord_l;/行列值中間變量 KeyPort=0x0f; /行線輸出全為0 cord_h=KeyPort&0x0f; /讀入列線值 if(cord_h!=0x0f) /先檢測(cè)有無(wú)按鍵按下 DelayMs(10); /去抖 if(KeyPort&0
25、x0f)!=0x0f) cord_h=KeyPort&0x0f; /讀入列線值 KeyPort=cord_h|0xf0; /輸出當(dāng)前列線值 cord_l=KeyPort&0xf0; /讀入行線值 while(KeyPort&0xf0)!=0xf0);/等待松開(kāi)并輸出 return(cord_h+cord_l);/鍵盤最后組合碼值 return(0xff); /返回該值/*- 按鍵值處理函數(shù),返回掃鍵值 可以根據(jù)需要改變返回值 | 1 | 2 | 3 | + | | 4 | 5 | 6 | - | | 7 | 8 | 9 | * | | 0 | . | = | / | -
26、*/unsigned char KeyPro(void) switch(KeyScan() case 0x7e:return 1 ;break;/0 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0x7d:return 2 ;break;/1 case 0x7b:return 3 ;break;/2 case 0x77:return '+'break;/3 case 0xbe:return 4 ;break;/4 case 0xbd:return 5 ;break;/5 case 0xbb:return 6 ;break;/6 case 0xb7:return '-'
27、break;/7 case 0xde:return 7 ;break;/8 case 0xdd:return 8 ;break;/9 case 0xdb:return 9 ;break;/a case 0xd7:return 'x'break;/b case 0xee:return 0 ;break;/c case 0xed:return '.'break;/d case 0xeb:return '='break;/e case 0xe7:return '/'break;/f default:return 0xff;break; /*- 顯示函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 輸入?yún)?shù) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個(gè)數(shù)碼管開(kāi)始顯示 如輸入0表示從第一個(gè)顯示。 Num表示需要顯示的位數(shù),如需要顯示99兩
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度人美容院與時(shí)尚博主互動(dòng)直播合作協(xié)議
- 2025年度教育貸款借款合同
- 2025年度居住權(quán)租賃合同解除與糾紛調(diào)解協(xié)議
- 2025年度合伙份額轉(zhuǎn)讓與體育產(chǎn)業(yè)投資合作協(xié)議
- 2025年度游戲賬號(hào)社區(qū)建設(shè)與活動(dòng)策劃合同
- 2025年度個(gè)性化教育資料打印服務(wù)合同
- 2025年新能源汽車行業(yè)分析:新能源汽車市場(chǎng)需求持續(xù)釋放
- 2025年包裝設(shè)備行業(yè)政策分析:包裝設(shè)備行業(yè)標(biāo)準(zhǔn)確保設(shè)備安全
- 2025年哈爾濱城市職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完美版
- 2025貴州省安全員C證考試題庫(kù)
- 【人教版化學(xué)】選擇性必修2 知識(shí)點(diǎn)默寫小紙條(答案背誦版)
- 初中生心理健康教育講座課件
- 2024年司法考試完整真題及答案
- 部編高教版2023·職業(yè)模塊 中職語(yǔ)文 《寧夏閩寧鎮(zhèn):昔日干沙灘今日金沙灘》課件
- 企業(yè)對(duì)外溝通與形象塑造制度
- 《前列腺增生》課件
- 整體法蘭強(qiáng)度校核計(jì)算表(設(shè)計(jì):zxg)
- 供應(yīng)鏈經(jīng)理年度工作計(jì)劃
- 2024年甘肅省公務(wù)員錄用考試《行測(cè)》真題卷及答案解析
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 中國(guó)高血壓防治指南(2024年修訂版)要點(diǎn)解讀
評(píng)論
0/150
提交評(píng)論