版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、WORD格式Keil軟件使用手冊本手冊參考 keil 4版本一安裝到網(wǎng)上下載一個安裝包,里面必須包含以下內(nèi)容:1:(安裝包文件,圈選的文件為安裝說明,請務(wù)必仔細閱讀)2:翻開安裝文件3:專業(yè)資料整理WORD格式1專業(yè)資料整理WORD格式(點擊下一步 )4:(勾選同意,并點擊下一步)5:專業(yè)資料整理WORD格式2專業(yè)資料整理WORD格式瀏覽選擇到你想安裝的地方,然后選擇下一步6:兩個空可以隨便打,不重要,填完后點擊下一步7:(正在安裝中 )專業(yè)資料整理WORD格式3專業(yè)資料整理WORD格式8:(點擊完成 )9:(進入安裝的文件夾,點擊UV4)10:翻開 Keil4 的執(zhí)行文件11:專業(yè)資料整理W
2、ORD格式4專業(yè)資料整理WORD格式(點擊 File,再選擇License Management)Pic 12:專業(yè)資料整理WORD格式5專業(yè)資料整理WORD格式復(fù)制右上角的ID 號12:翻開注冊機文件13:專業(yè)資料整理WORD格式6專業(yè)資料整理WORD格式將復(fù)制的ID 號粘貼在此處14:點擊 Generate ,在上方會生成一組ID,復(fù)制下來專業(yè)資料整理WORD格式7專業(yè)資料整理WORD格式15:將復(fù)制好的ID 粘貼在圈選出,并點擊Add LIC16:專業(yè)資料整理WORD格式8專業(yè)資料整理WORD格式當你看見這兩組單詞,那么恭喜你,注冊成功,準備開場你的奇妙程序之旅吧!二 新建工程1. 單擊
3、 Project,選擇 New Project2選擇保存位置,輸入工程的名字3選擇 CPU。緊接著, Keil C51提示您選擇 CPU器件。 8051 內(nèi)核專業(yè)資料整理WORD格式9專業(yè)資料整理WORD格式片機最早是由Intel 公司創(chuàng)造的,后來其他廠商如Philips、Atmel、Winbond等先后推出其兼容產(chǎn)品,并在8051 的根底上擴展了許多增強功能,根據(jù)芯片的實際情況,選擇相應(yīng)的器件本例程選擇Atmel公司下的 AT89C52,如圖:注:選擇 8051 也可以, 8051 與 8052 有一點的差異,可以說8052 是 8051 的升級版,主要有以下不同:1. 內(nèi)部 RAM,805
4、1 單片機為 128Byte(00H-7FH) ,8052 單片機為 56Byte (00H-0FFH)2. 內(nèi)部 ROM, 8051 單片機為 4KB,8052 單片機為 8KB3. 8051 有兩個 Timer :T0 和 T1。8052 除了有 T0 和 T1 以外,還有一個 Timer24. 8051 有 5 個中斷源 8052 有 6 個。關(guān)于單片機的知識我們將在后面做詳細介紹。專業(yè)資料整理WORD格式10專業(yè)資料整理WORD格式4. 選擇 C 語言啟動代碼? 如果使用匯編來編程,請選擇“否 。? 如果使用 C51 來編程,請選擇“是。如果不出現(xiàn)本提示,請檢查是否將安裝是否出錯。5.
5、源程序文件"選擇 File菜單,選擇 New,然后單擊保存按鈕本例程保存為test.c,如果是用匯編寫的程序保存的后綴名應(yīng)該寫成 .asm專業(yè)資料整理WORD格式11專業(yè)資料整理WORD格式12專業(yè)資料整理WORD格式右鍵工程工程,選擇 Add Fliles to 將剛剛保存的 test.c 添加到工程里面去以上就是工程的搭建,剩下的就是寫程序?qū)I(yè)資料整理WORD格式13專業(yè)資料整理WORD格式程序?qū)懲昃幾g通過后,設(shè)置生成HEX文件右鍵單擊 Target1,選擇 Option forTarget 1 或者直接點擊工具欄上面的按鈕彈出的窗口選擇Output,選上 Create HEX專
6、業(yè)資料整理WORD格式14專業(yè)資料整理WORD格式編譯生成 HEX文件單擊工具欄的“ Rebuild all target files 按鈕果程序有錯,那么會顯示錯誤所在的文件及行號。 如以下列圖,表示 test.c文件的第 35 行有錯誤,雙擊那么可定位到該位專業(yè)資料整理WORD格式15專業(yè)資料整理WORD格式如果程序沒有錯誤那么會生成HEX文件。 Data 后面的數(shù)據(jù)表示使用片內(nèi) RAM 的大小,xdata 表示使用外部數(shù)據(jù)大小, code 表示程序的大小三 軟件調(diào)試調(diào)試一般都是在發(fā)生錯誤與意外的情況下使用的。如果程序能正常執(zhí)行,調(diào)試很多時候都是用不上的。所以,最高效率的程序開發(fā)還是程序員
7、自己做好標準,而不是指望調(diào)試來解決問題。單片機的程序調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,第二種是硬件調(diào)試。使用軟件模擬調(diào)試,就是用計算機去模擬單片機的指令執(zhí)行,并虛擬單片機片內(nèi)資源,從而實現(xiàn)調(diào)試的目的。但是軟件調(diào)試存在一些問題, 不可能像真正的單片機運行環(huán)境那樣執(zhí)行的指令能在同一個時間完成往往比單片機慢。軟件調(diào)試只能是一種初步的,小型工程的調(diào)試,比方一個只有幾百上千行的代碼的程序,軟件調(diào)試能很好的完成。硬件調(diào)試其實也需要計算機軟件的配合,大致過程是這樣的: 計算機軟件把編譯好的程序通過串行口、并行口或者USB口傳輸?shù)椒抡嫫?,然后與單片機一樣執(zhí)行。仿真器仿真全部的單專業(yè)資料整理WORD格式16
8、專業(yè)資料整理WORD格式片機資源所有的單片機接口,并且有真實的引腳輸出。仿真器會將單片機內(nèi)部內(nèi)存與時序等情況返回給計算機,這樣 就可以在計算機里看到單片機程序真實的執(zhí)行情況。 不僅如此,還可以通過計算機的軟件實現(xiàn)單步、全速、運行到光標的常規(guī)調(diào)試手段。仿真器可以接入實際的電路中仿真器以下介紹軟件模擬調(diào)試調(diào)試的重要性前面我們學(xué)習了如何建立工程,編寫 C 源文件,連接工程,并獲取生成的目標代碼, 但是坐到這些僅僅代表你的源程序沒有語法錯誤,至于程序中存在其它錯誤必須通過調(diào)試才能解決。 事實上,除了一小局部極其簡單的程序絕大局部程序都要通過屢次調(diào)試才能得到正確結(jié)果,調(diào)試是單片機開發(fā)過程中一個非常重要的
9、環(huán)節(jié)。常用調(diào)試命令在對工程成功地進展匯編、連接以后,按 Ctrl+F5 或者使用菜單 Debug->Start/Stop Debug Session 即可進入調(diào)試狀態(tài), Keil 內(nèi)建了一個仿真 CPU用來模擬執(zhí)行程序, 該仿真 CPU功能強大,可以在沒有硬件和仿真機的情況下進展程序的調(diào)試專業(yè)資料整理WORD格式17專業(yè)資料整理WORD格式工具欄上從左到右依次為:查找 find out,第二個幾乎不用,開場停頓調(diào)試,后面幾個帶圈的都和斷點相關(guān)具體可將鼠標移到圖標上查看,和工程窗口相關(guān)的幾個小幫助最后一個是配置,可以修改各個窗口的字體,short cut key等等。單擊中的調(diào)試按鈕可以進
10、入或者退出調(diào)試,單擊進入進入調(diào)試狀態(tài)后,界面與編緝狀態(tài)相比有明顯的變化, Debug菜單項中原來不能用的命令現(xiàn)在已可以使用了, 工具欄會多出一個用于運行和調(diào)試的工具條,如下列圖, Debug菜單上的大部份命令可以在此找到對應(yīng)的快捷按鈕,從左到右依次是:復(fù)位、運行、暫停、單步、過程單步、執(zhí)行完當前子程序、運行 到 當 前 行 、 命 令 窗 口 command window、 匯編 窗 口 disassembly window、控制 特殊功能存放器顯示窗口Symble window 、存放器窗口工程窗口那塊 (register window)、堆棧調(diào)用窗口Call stack 、監(jiān)視窗口watc
11、h window、子窗口是 locals watch1 watc2、存儲器窗口memorywindow、串行口調(diào)試窗口serial window、分析窗口包含邏輯分析儀,性能分析儀,工具按鈕等命令。全速執(zhí)行,復(fù)位重新開場執(zhí)行,逐語句執(zhí)行,跟蹤進函數(shù)內(nèi)部,先設(shè)置一個斷點,專業(yè)資料整理WORD格式18專業(yè)資料整理WORD格式全速運行程序如下:出現(xiàn)幾個工作區(qū)間,以下介紹這幾個區(qū)域:專業(yè)資料整理WORD格式19專業(yè)資料整理WORD格式1 左側(cè)是單片機內(nèi)存放器的狀態(tài)區(qū)域,給出了常用的存放器r0r7 以及 a,b,sp,dptr,pc,psw 等特殊功能存放器的值,這些值會隨著程序的執(zhí)行發(fā)生相應(yīng)的變化。涉
12、及單片機內(nèi)存,假設(shè)未學(xué)過匯編語言,建議了解;其中 Regs 是片內(nèi)內(nèi)存的相關(guān)情況值;Sys 是系統(tǒng)一些累加器、計數(shù)器等。具體介紹一下 Sys:a累加器ACC,往往在運算前暫存一個操作數(shù)如被加數(shù) ,而運算后又保存其結(jié)果如代數(shù)和。b存放器B,主要用于乘法和除法操作。spsp_maxdptr數(shù)據(jù)指針 DPTR。PC $states執(zhí)行指令的數(shù)量。sec執(zhí)行指令的時間累計單位:秒。psw程序狀態(tài)標志存放器PSW,八位存放器,用來存放運算結(jié)果的一些特征量,如有無進位、借位等。p 奇偶標志 P。反映累加器 ACC內(nèi)容的奇偶性,如果 ACC中的運算結(jié)果有偶數(shù)個 1如 11001100B,其中有 4 個 1,
13、那么 P 為 0,否那么, P=1。f1ov 溢出標志位 OV。MCS51 反映帶符號數(shù)的運算結(jié)果是否有溢出, 有溢出時,此位為 1,否那么為 0。rs f0ac輔助進位標志 AC。又稱半進位標志,它反映了兩個八位數(shù)運算低四位是否有半進位,即低四位相加或減有否進位或借位 ,如有那么 AC為 1 狀態(tài),否那么為 0。cy 進位標志 CYPSW 7。它表示運算是否有進位或借位。如果操作結(jié)果在最高位有進位加法或者借位減法 ,那么該位為 1,否那么為 0。由于 PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字。運算器中還有一個按位( bit 進展邏輯運算的邏輯處理機又稱布爾處理機。根據(jù)指令執(zhí)行的不同, 上
14、述值會有相應(yīng)的變化, 程序員可以監(jiān)測這些在單片機中看不到的值而到達調(diào)試的目的專業(yè)資料整理WORD格式20專業(yè)資料整理WORD格式2 C語言源代碼區(qū)域3 反匯編指令區(qū)域這個是 Disassembly Windows ,按下后可以把C51 Disassembly轉(zhuǎn)化為相應(yīng)的匯編語言,如果有匯編語言知識的話, 就可以比照 C51 程序與匯編程序了。由于匯編語言的效率高很多, 這也可以作為查看 C51 執(zhí)行效率的一個方法。 可以看出, C51 代碼是如何被解釋為匯編的。4 查看變量的值專業(yè)資料整理WORD格式21專業(yè)資料整理WORD格式5 查看存儲器的值選擇 View Memory Window存儲器
15、窗口的地址欄處輸入0000H 后回車,那么可以查看單片機內(nèi)程序存儲器的內(nèi)容,單元地址前有C:表示程序存儲器。如果在存儲器窗專業(yè)資料整理WORD格式22專業(yè)資料整理WORD格式口的地址欄處輸入D:00H 后回車,那么可以查看單片機內(nèi)數(shù)據(jù)存儲器的內(nèi)容,單元地址前有“ D:表示數(shù)據(jù)存儲器,單元地址前有X:表示片外數(shù)據(jù)區(qū),冒號后面表示要查看的數(shù)據(jù)地址。專業(yè)資料整理WORD格式23專業(yè)資料整理WORD格式24專業(yè)資料整理WORD格式6 雖然軟件調(diào)試無法實現(xiàn)硬件調(diào)試那樣的信號輸出,但是軟件調(diào)試也可以在軟件窗口監(jiān)測輸出信號的上下電平, 以及單片機相關(guān)端口的變化,實現(xiàn)模擬監(jiān)測輸出信號的目的。在主菜單欄: pe
16、ripherals 可以查看定時器,和 IO 口的數(shù)值,中斷,串行通信上圖所示, Port0,Port1,Port2,Port3 就對應(yīng)于 51 單片機的四個 P0,P1, P2, P3 口,共 32 個針腳查看輸出波形單擊,然后選 setup 可以輸入想要觀察的引腳。專業(yè)資料整理WORD格式25專業(yè)資料整理WORD格式全速運行并單擊圖中的all,可以看到以下效果, 單擊圖中的 out 或者in 可以對單位時間進展修改。選擇適宜的時間可以清楚得觀察上下電平變化及占空比專業(yè)資料整理WORD格式26專業(yè)資料整理WORD格式下面我們來看一個實例:Keil C51程序調(diào)試過程用 Keil C51編寫程
17、序時,經(jīng)常需要調(diào)試,如果不是經(jīng)常用這個軟件的話,很容易忘記這些調(diào)試步驟,現(xiàn)在舉一個例子“驗證延遲函數(shù) delay 使其延遲的時間為 500ms說明。源程序?qū)懲旰?,就可以調(diào)試了,按照圖 1 所示,先進展第一步和第二步操作,使界面切換到圖 2 的狀態(tài),可以看到在文本編輯窗口中,有一個黃色箭頭指向 13 行的位置,說明程序從這個位置開場執(zhí)行。 左上角有一些跟調(diào)試相關(guān)的按鈕,如“全速執(zhí)行、“單步進入 , 。對于這個例子,目的是驗證 delay 函數(shù)的延遲時間,使其大約為 500ms。按照以下方法可以到達這個目的:專業(yè)資料整理WORD格式27專業(yè)資料整理WORD格式圖 1 編譯界面圖 2調(diào)試界面點擊“單
18、步跳出按鈕或功能鍵F10,黃色箭頭從第13 行往下移一行( 14,再單擊“單步跳出,那么箭頭移到 15 行那邊,表示程序從第 13 行執(zhí)行到第 15 行注:這種方式是一步一步執(zhí)行程序。如果要同時執(zhí)行幾行,比方從第 13 行一下子執(zhí)行到15 行,可以作如下操作:先用鼠標在第15 行的位置處點擊兩下會出現(xiàn)一個圖 2 所示的紅色圖標; 然后點擊“全速執(zhí)行按鈕, 那么黃色的箭頭會從第 13 行快速移到 15 行。即:這兩行同時被執(zhí)行。此時左邊存放器窗口中的 sec 有一個數(shù)值,表示程序執(zhí)行的時間,即 delay 函數(shù)的延遲時間。如果延遲時間不是500ms,可改變 delay 函數(shù)中 x,y 的數(shù)值,再
19、點擊圖 1 的第二步所對應(yīng)的按鈕切換到圖 1 所示的編譯界面,點擊“重新構(gòu)造所有對象文件編譯程序,然后再切換到圖 2 的界面上來進展調(diào)試。重復(fù)上面的步驟,直到左邊存放器窗口中的 sec單位秒數(shù)值大約為 0.50s ,即可說明 delay 延遲時間為 500ms。注:這種方法比較麻煩,而且延遲時間不會很準確,如果要準確延遲的話可采用定時器的方式。Keil C調(diào)試案例 - 優(yōu)化導(dǎo)致的問題如下是一個簡單的Keil C中的小程序 :#include <reg52.h>void main()unsigned char i,j;i = 0xf0;專業(yè)資料整理WORD格式28專業(yè)資料整理WORD
20、格式j(luò) = 0x0f;P0 = i;P1 = j;while (1);編譯 OK后, 進入 Debug session ,按 F11 單步執(zhí)行 , 發(fā)現(xiàn) "i= 0xf0" 和"j= 0x0f"這兩句沒有執(zhí)行。如以下列圖:很多初學(xué)者百思不得其解, 其實,這是由于Keil C本身的 8 級優(yōu)化導(dǎo)致的。解決的方法有兩種 :1、降底優(yōu)化級別,如以下列圖, 可降至級別 2。專業(yè)資料整理WORD格式29專業(yè)資料整理WORD格式2、在局部變量 i,j定義前加上 Volatile,制止Keil C優(yōu)化這兩個變量。如下:volatile unsigned char i,
21、j;調(diào)試 OK!KEIL-C 調(diào)試點滴問:用 KEIL 寫 C 代碼,做完以后的調(diào)試工作應(yīng)該如何開展?只有 PC機,沒有任何的硬件設(shè)備。用自帶的編譯功能然后查錯誤。寫完代碼后, F7 編譯, Alt+F5 調(diào)試, F10 單步運行??梢圆榭创娣牌鞯闹狄约?RAM的內(nèi)容。還可以改變 P0P3口的輸入。 KEIL 就是一個開發(fā)仿真一體的。 Keil C 本身就是編譯與仿真一體的。當不要外部數(shù)據(jù)時很方便,可以使用 Keil C 自帶的軟件調(diào)試器軟件仿真器 , 有單步運行 , 設(shè)置斷點等功能。當要外部輸入時比方用定時器作計數(shù)器用,有兩種處理方法:1做產(chǎn)品時最好是用硬件仿真器調(diào)試。2學(xué)習時可用以下方法:
22、 Keil C提供了幾個調(diào)試輸入用的窗口,可用它們來模擬輸入;調(diào)試函數(shù)由自己根據(jù)需要按特定的格式來編輯,再按KEIL C 的要求調(diào)入即可。專業(yè)資料整理WORD格式30專業(yè)資料整理WORD格式下面給出用定時器作外部事件計數(shù)時模擬外部輸入的調(diào)試函數(shù), 并寫出Keil C調(diào)用的步驟如下:步驟一:編寫如下信號函數(shù):single void t0_singal(void)while(1)PORT3|=0x10; /pull INT0(P3.4) high again PORT3&=0x10; /pull INT0(P3.4) low and generate interrupt PORT3|=0x
23、10; /pull INT0(P3.4) high again twatch(CLOCK); /wait for 1 second步驟二:在 DEBUG狀態(tài)下選擇:DEBUG"“ Function Editor(OpenIni File)",這時,將彈出兩個新屏幕,將其中的“翻開窗口關(guān)閉;保存“Function Editor窗口;步驟三:在 Function Editor窗口中輸入上面的函數(shù):single void t0_singal(void)步驟四:保存注意:擴展名為 .ini ,編譯該程序,成功后關(guān)閉 Function Editor 窗口;步驟五:執(zhí)行用戶程序必須連續(xù)
24、執(zhí)行;步驟六:在屏幕左下腳的命令窗口中, 鍵入 t0_singl() 后必須回車 ,Keil C 便可向 P3.4 源源不斷地提供脈沖信號。四 基于 8051+Proteus 仿真案例Protues簡介Protues軟件是英國 Labcenter electronics公司出版的 EDA 工具軟件。它不僅具有其它EDA 工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片專業(yè)資料整理WORD格式31專業(yè)資料整理WORD格式機開發(fā)應(yīng)用的科技工作者的青睞。 Proteus 是世界上著名
25、的 EDA 工具 (仿真軟件 ),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到 PCB 設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計其處理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR 、ARM 、8086和 MSP430 等,2021年增加 Cortex 和 DSP 系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR 、Keil 和 MPLAB 等多種編譯。這里請讀者自行安裝好Proteus,雙擊已安裝好的Proteus,我們將簡單的介紹該軟件,要深入學(xué)習請查閱其它資料。Protues 軟件界面左側(cè)的工具欄提供豐富
26、的硬件資源專業(yè)資料整理WORD格式32專業(yè)資料整理WORD格式用 Protues搭建單片機系統(tǒng)第一步,新建立計。單擊“File“ New Design, 命令或單擊圖標命令,在 Protues 中翻開了一個空白的新電路圖紙。第二步,添加所需器件。單擊“ Library “Pick Device/Symbol , 命令或單擊圖標命令,單擊左側(cè)的,然后點擊翻開器件選擇對話框,如圖 3-1 所示,在對話框左上角有個關(guān)鍵字“Keyword 搜索文字框,如果我們知道器件型號可輸入其中, Protues 將自動幫我們找到所需器件首 先,輸入“ AT89C51 點擊 Ok 選中器件,在電路繪制區(qū)中央單擊鼠標
27、, AT89C51 單片機就被放置到了電路圖中。參考單片機的放置方法把其它器件如晶振、電容、電阻、發(fā)光二極管等也放置到電路圖中的適當位置。這幾個器件在器件專業(yè)資料整理WORD格式33專業(yè)資料整理WORD格式選擇對話框中的關(guān)鍵詞分別為: res(電阻 )、crystal(晶體振蕩器 )、cap電容、led-red、7seg(數(shù)碼管 )關(guān)鍵字不唯一。其它器件添加進去后,連接各器件構(gòu)成原理圖。所有元器件都放置到電路圖后的效果如圖接下來就是將寫好的程序下載到 CPU 里面去,雙擊 CPU 會彈出下面的窗口專業(yè)資料整理WORD格式34專業(yè)資料整理WORD格式點擊將生成的 Hex 文件燒錄到 CPU 即可
28、開場仿真依次是,運行、單步運行、暫停、停頓開場仿真按鈕,退出仿真在仿真中,紅色代表高電平,藍色代表低電平,灰色代表不確定。下面介紹幾個簡單案例:1 閃爍的 LED/*名稱:閃爍的LED說明: LED按設(shè)定的時間間隔閃爍*/#include<reg51.h>#defineucharunsignedchar#define uint unsigned intsbit LED=P10;/ 延時void DelayMS(uint x)uchar i;while(x-)專業(yè)資料整理WORD格式for(i=0;i<120;i+);專業(yè)資料整理WORD格式/ 主程序void main()LE
29、D=0;while(1)LED=LED;DelayMS(150);2 單只數(shù)碼管循環(huán)顯示09/*名稱:單只數(shù)碼管循環(huán)顯示09說明:主程序中的循環(huán)語句反復(fù)將09 的段碼送至P0 口,使數(shù)字09 循環(huán)顯示*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intuchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/ 延時void DelayMS(uint x
30、)uchar t;while(x-)for(t=0;t<120;t+);/ 主程序void main()uchar i=0;P0=0x00;while(1)P0=DSY_CODEi;i=(i+1)%10;DelayMS(300);3 數(shù)碼管顯示4X4 矩陣鍵盤按鍵號專業(yè)資料整理WORD格式36專業(yè)資料整理WORD格式/*名稱:數(shù)碼管顯示4X4 矩陣鍵盤按鍵號說明:按下任意鍵時, 數(shù)碼管都會顯示其鍵的序號, 掃描程序首先判斷按鍵發(fā)生在哪一列,然后根據(jù)所發(fā)生的行附加不同的值,從而得到按鍵的序號。*/#include<reg51.h>#define uchar unsigned c
31、har#define uint unsigned int/ 段碼uchar code DSY_CODE=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00;sbit BEEP=P37;/ 上次按鍵和當前按鍵的序號,該矩陣中序號X圍015, 16 表示無按鍵uchar Pre_KeyNo=16,KeyNo=16;/ 延時void DelayMS(uint x)uchar i;while(x-) for(i=0;i<120;i+);/ 矩陣鍵盤掃描void Keys_Sca
32、n()uchar Tmp;P1=0x0f; / 高 4 位置 0,放入 4 行DelayMS(1);Tmp=P10x0f;/ 按鍵后 0f 變成 0000*,X 中一個為0,3 個仍為 1,通過異或把3 個 1變?yōu)?0,唯一的0 變?yōu)?1switch(Tmp)/ 判斷按鍵發(fā)生于03 列的哪一列case 1:KeyNo=0;break;case 2:KeyNo=1;break;case 4: KeyNo=2;break;case 8:KeyNo=3;break;default:KeyNo=16; / 無鍵按下P1=0xf0;/低4位置 0,放入 4列DelayMS(1);Tmp=P1>&g
33、t;40x0f;/ 按鍵后 f0 變成 *0000,X 中有 1 個為 0,三個仍為 1;高 4 位轉(zhuǎn)移到低 4 位并異或得到改變的值switch(Tmp)/ 對 03 行分別附加起始值0, 4, 8,12case 1:KeyNo+=0;break;case 2:KeyNo+=4;break;專業(yè)資料整理WORD格式37專業(yè)資料整理WORD格式case 4:KeyNo+=8;break;case 8:KeyNo+=12;/ 蜂鳴器void Beep()uchar i;for(i=0;i<100;i+)DelayMS(1);BEEP=BEEP;BEEP=0;/ 主程序void main()P0=0x00;BEEP=0;while(1)P1=0xf0;if(P1!=0xf0) Keys_Scan();/ 獲取鍵序號if(Pre_KeyNo!=KeyNo)P0=DSY_CODEKeyNo;Beep();Pre_KeyNo=KeyNo;DelayMS(100);4100 000s 以內(nèi)的計時程序/*名稱: 100 000s 以內(nèi)的計時程序說明:在 6 只數(shù)碼管上完成099 999.9s。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define u
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版離婚合同:兩個孩子撫養(yǎng)與財產(chǎn)分配版B版
- 2025年度文化產(chǎn)業(yè)園物業(yè)委托管理服務(wù)合同4篇
- 2025年度商用廚房設(shè)備安全檢測及認證合同3篇
- 2025年度土地承包經(jīng)營權(quán)流轉(zhuǎn)糾紛調(diào)解合同模板4篇
- 2025年度珠寶首飾代工定制合同范本(高品質(zhì))4篇
- 2024美甲店美甲技師勞務(wù)外包合同參考3篇
- 2025年度智能化工廠承包合同范本8篇
- 2025年度水資源綜合利用項目承包合作協(xié)議樣本4篇
- 2024版畫室合伙協(xié)議合同范本
- 2025年LED照明產(chǎn)品智能照明系統(tǒng)集成設(shè)計與施工合同3篇
- 多感官交互對文化參與的影響
- 2024至2030年中國家庭維修行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- 文化旅游場所運營設(shè)備更新項目資金申請報告-超長期特別國債投資專項
- 【人教版】二年級數(shù)學(xué)上冊說課稿-第2課時 直角的認識
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)英語試卷(含答案)
- 江蘇省南京市玄武區(qū)2022-2023學(xué)年七年級下學(xué)期期末語文試題
- 《金屬非金屬地下礦山監(jiān)測監(jiān)控系統(tǒng)建設(shè)規(guī)范》
- 房建EPC項目施工部署及-物資、機械設(shè)備、勞動力投入計劃
- 如何提高護士的應(yīng)急能力
- 2024屆四川省瀘州市江陽區(qū)八年級下冊數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
評論
0/150
提交評論