2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  單片機(jī)雙字節(jié)十六進(jìn)制減法實驗設(shè)計</p><p><b>  摘要</b></p><p>  本設(shè)計是基于51系列的單片機(jī)進(jìn)行的雙字節(jié)十六進(jìn)制減法設(shè)計,可以完成計算器的鍵盤輸入,進(jìn)行加、減、3位無符號數(shù)字的簡單運算,并在LED上相應(yīng)的顯示結(jié)果。</p><p>  設(shè)計過程在硬件與軟件方面進(jìn)行同步設(shè)計。硬件方面從功能考慮

2、,首先選擇內(nèi)部存儲資源豐富的AT89C51單片機(jī),輸入采用5個鍵盤。顯示采用3位7段共陰極LED動態(tài)顯示。軟件方面從分析計算器功能、流程圖設(shè)計,再到程序的編寫進(jìn)行系統(tǒng)設(shè)計。編程語言方面從程序總體設(shè)計以及高效性和功能性對C語言和匯編語言進(jìn)行比較分析,針對計算器四則運算算法特別是乘法和除法運算的實現(xiàn),最終選用KEIL公司的μVision3軟件,采用匯編語言進(jìn)行編程,并用proteus仿真。</p><p><b

3、>  引言</b></p><p>  十六進(jìn)制減法計算器的原理與設(shè)計是單片機(jī)課程設(shè)計課題中的一個。在完成理論學(xué)習(xí)和必要的實驗后,我們掌握了單片機(jī)的基本原理以及編程和各種基本功能的應(yīng)用,但對單片機(jī)的硬件實際應(yīng)用設(shè)計和單片機(jī)完整的用戶程序設(shè)計還不清楚,實際動手能力不夠,因此對該課程進(jìn)行一次課程設(shè)計是有必要的。</p><p>  單片機(jī)課程設(shè)計既要讓學(xué)生鞏固課本學(xué)到的理論,

4、還要讓學(xué)生學(xué)習(xí)單片機(jī)硬件電路設(shè)計和用戶程序設(shè)計,使所學(xué)的知識更深一層的理解,十進(jìn)制加法計算器原理與硬軟件的課程設(shè)計主要是通過學(xué)生獨立設(shè)計方案并自己動手用計算機(jī)電路設(shè)計軟件,編寫和調(diào)試,最后仿真用戶程序,來加深對單片機(jī)的認(rèn)識,充分發(fā)揮學(xué)生的個人創(chuàng)新能力,并提高學(xué)生對單片機(jī)的興趣,同時學(xué)習(xí)查閱資料、參考資料的方法。</p><p>  關(guān)鍵詞:單片機(jī)、計算器、AT89C51芯片、匯編語言、數(shù)碼管、加減 </

5、p><p><b>  目錄</b></p><p>  摘 要 ..........................................01</p><p>  引 言 ..........................................01</p><p>  一、 設(shè)計任務(wù)和要求...

6、..........................</p><p>  1、1 設(shè)計要求 </p><p><b>  1、2 性能指標(biāo)</b></p><p>  1、3 設(shè)計方案的確定 </p><p>  二、 單片機(jī)簡要原理.............................</p>

7、<p>  2、1 AT89C51的介紹</p><p>  2、2 單片機(jī)最小系統(tǒng)</p><p>  2、3 七段共陰極數(shù)碼管</p><p>  三、 硬件設(shè)計...................................</p><p>  3、1 鍵盤電路的設(shè)計 </p><p>

8、;  3、2 顯示電路的設(shè)計</p><p>  四、 軟件設(shè)計...................................</p><p><b>  4、1 系統(tǒng)設(shè)計</b></p><p>  4、2 顯示電路的設(shè)計</p><p>  五、 調(diào)試與仿真.....................

9、............</p><p>  5、1 Keil C51單片機(jī)軟件開發(fā)系統(tǒng)</p><p>  5、2 proteus的操作</p><p>  心得體會....................................</p><p>  參考文獻(xiàn)...................................

10、......</p><p>  附錄1 系統(tǒng)硬件電路圖............................</p><p>  附錄2 程序清單..................................</p><p><b>  設(shè)計任務(wù)和要求</b></p><p><b>  1.1

11、設(shè)計要求 </b></p><p>  本次課程設(shè)計,我選擇的課題是單片機(jī)十進(jìn)制加法計算器軟硬件設(shè)計 ,設(shè)計任務(wù)為: </p><p>  設(shè)計一鍵盤顯示裝置,鍵盤上除需定義16個十六進(jìn)制數(shù)字鍵外還要相應(yīng)的功能鍵,其它鍵不定義無響應(yīng)。利用此系統(tǒng)可分別可輸入十六進(jìn)制被減數(shù)與減數(shù),實現(xiàn)兩數(shù)相減并將結(jié)果以十六進(jìn)制形式顯示出來。(擴(kuò)展:多位16進(jìn)制數(shù)相減)</p><

12、;p><b>  1.2 性能指標(biāo) </b></p><p>  本課程設(shè)計的十六進(jìn)制減法,計算結(jié)果全為整數(shù),計算結(jié)果溢出結(jié)果不顯示。</p><p>  1 、減法:三位減法,計算結(jié)果若小于零溢出不顯</p><p><b>  3、有顯示差的功能</b></p><p>  1.3 設(shè)計方

13、案的確定 </p><p>  按照1.1的設(shè)計要求,本課題需要使用數(shù)碼管顯示和擴(kuò)展1*5鍵盤,由于AT89C51芯片的I口不夠多,而且為了硬件電路設(shè)計的簡單化,故選擇串行動態(tài)顯示和用P1口擴(kuò)展1*5鍵盤,擴(kuò)展的1*5鍵盤定義十個數(shù)字鍵,5個功能鍵,使用串行動態(tài)顯示顯示運算結(jié)果。 </p><p>  主程序進(jìn)行初始化,采用行列掃描進(jìn)行查表得出鍵值,每次按鍵后調(diào)用顯示子程序。 </p

14、><p>  二、 單片機(jī)簡要原理</p><p>  在該課程設(shè)計中,主要用到一個AT89C51芯片和串接的共陰數(shù)碼管。作為該設(shè)計的主要部分,下面將對它們的原理及功能做詳細(xì)介紹和說明。</p><p>  2.1 AT89C51的介紹:</p><p>  圖一 AT89C51外形結(jié)構(gòu)和引腳分布圖</p><p> 

15、 芯片AT89C51的外形結(jié)構(gòu)和引腳圖如圖一所示。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT8

16、9C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  2.2 單片機(jī)最小系統(tǒng)</p><p>  單片機(jī)最小系統(tǒng)就是支持主芯片正常工作的最小部分,包括主控芯片、復(fù)位電路和晶振電路。</p><p><b> ?。ㄒ唬?復(fù)位電路</b></p><p><b> 

17、 圖二 復(fù)位電路</b></p><p>  本設(shè)計采用上電與手動復(fù)位電路,電阻分別選取100和10K,電容選取10uF,系統(tǒng)一上電,芯片就復(fù)位,或者中途按按鍵也可以進(jìn)行復(fù)位。</p><p><b>  晶振電路</b></p><p>  圖三 晶振電路</p><p>  晶振電路是單片機(jī)的心臟

18、,它用于產(chǎn)生單片機(jī)工作所需要的時鐘信號。單片機(jī)的晶振選取11.0592MHz,晶振旁電容選取30pF。</p><p>  2.3 七段共陰極數(shù)碼管</p><p>  圖四 七段共陰數(shù)碼管</p><p>  圖為七段共陰數(shù)碼管的引腳圖,從左到右數(shù)碼管的段碼分別為a,b,c,d,e,f,g和小數(shù)點dp,低電平時點亮,最右邊為位選端。</p>&

19、lt;p><b>  三、 硬件設(shè)計</b></p><p>  簡易數(shù)字計算器系統(tǒng)硬件設(shè)計主要包括:顯示電路以及其他輔助電路。下面分別進(jìn)行設(shè)計。 </p><p>  3.1 顯示電路的設(shè)計 </p><p>  當(dāng)系統(tǒng)需要顯示少量數(shù)據(jù)時,采用LED數(shù)碼管進(jìn)行顯示是一種經(jīng)濟(jì)實用的方法。數(shù)碼管顯示有靜態(tài)顯示和動態(tài)顯示兩種方法。為了減少端

20、口的使用,故選擇動態(tài)顯示。 電路如下圖六所示:</p><p>  圖六 三位數(shù)碼管的顯示電路</p><p><b>  四、 軟件設(shè)計</b></p><p>  在十進(jìn)制加法計算器的軟件規(guī)劃要求下,簡易計算器的程序主要包括以下功能模塊:(1)    主模塊,為系統(tǒng)的初始化。(2)  

21、 顯示與讀鍵模塊,分為判鍵程序段、運算操作子程序、顯示子程序等部分;</p><p><b>  系統(tǒng)設(shè)計</b></p><p>  (一) 系統(tǒng)模塊圖</p><p><b>  圖六 系統(tǒng)模塊圖</b></p><p>  此系統(tǒng)包括輸入、運算和顯示模塊,由單片機(jī)控制。其中通過輸

22、入鍵盤模塊將數(shù)字0~9和運算符號“+”、“-”、“*”、“/”輸入單片機(jī)進(jìn)行運算;運算模塊分別根據(jù)輸入的運算符進(jìn)行加減乘除運算;顯示模塊將運算后的數(shù)值通過動態(tài)掃描使之在數(shù)碼管上輸出。</p><p><b>  系統(tǒng)總流程圖</b></p><p>  主程序主要是用來進(jìn)行初始化的,調(diào)用其他子程序,清空各個標(biāo)志位,清空緩存區(qū),讀取鍵碼,判斷功能,在LED上作出回應(yīng),主

23、程序流程圖如圖六所示。</p><p>  (1)數(shù)字送顯示緩沖程序設(shè)計</p><p>  簡易計算器所顯示的數(shù)值最大位三位。要顯示數(shù)值,先判斷數(shù)值大小和位數(shù),如果是超過三位或大于255,將不顯示數(shù)字??芍匦螺斎霐?shù)字,再次計算。</p><p>  (2)運算程序的設(shè)計</p><p>  首先初始化參數(shù),送LED三位顯示“0”,其它位不顯

24、示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是功能鍵,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運算鍵,若是“=”則計算最后結(jié)果并送LED顯示,若是運算鍵則保存相對運算程序的首地址。</p><p>  圖七 主程序流程圖</p><p>  4.2 顯示與按鍵設(shè)計</p><p><

25、;b>  LED顯示程序設(shè)計</b></p><p>  LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也稱為七段LED顯示器。為了顯示數(shù)字或符號,要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點位,共計8段,因此提供的字形代碼的長度正好是一個字節(jié)。簡易計算器用到的數(shù)字0~9的共陰極字形代碼如下表:</p><p>  表一 共陰極數(shù)碼

26、管段碼對照表</p><p><b>  讀鍵子程序設(shè)計</b></p><p>  為了實現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個鍵都有其處理子程序,為此每個鍵都對應(yīng)一個碼——鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識別按鍵。其程序框圖如圖八:</p><p>  讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。第一次所

27、有列線均輸出低電平,從所有讀入鍵盤信息(行信息);第二次所有行線均輸出低電平,從所有行線讀入鍵盤信息(列信息)。將兩次讀鍵信息進(jìn)行組合就可以得到按鍵的特征編碼,然后通過查表得到按鍵的順序編碼。將各特征編碼按希望的順序排成一張表,然后用當(dāng)前讀得的特征碼來查表。當(dāng)表中有該特征碼時,它的位置就是對應(yīng)的順序編碼;當(dāng)表中沒有該特征碼時,說明這是一個沒有定義的鍵碼,與沒有按鍵(0FFH)同等看待。 </p><p>  圖八

28、 計算鍵值子程序流程圖</p><p><b>  五、 調(diào)試與仿真</b></p><p>  下面用KEIL uVision3與 proteus仿真軟件介紹十進(jìn)制加法計算器的仿真與調(diào)試。</p><p>  5.1Keil C51單片機(jī)軟件開發(fā)系統(tǒng)</p><p>  (一) 系統(tǒng)的整體結(jié)構(gòu)</p>

29、;<p>  C51工具包的整體結(jié)構(gòu)中,其中uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)

30、試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。</p><p>  (二) 采用KEIL 開發(fā)的89c51單片機(jī)應(yīng)用程序步驟:</p><p>  1. 在uVision 集成開發(fā)環(huán)境中創(chuàng)建新項目(Project),擴(kuò)展文件名為.UV2,并為該項目選定合適的單片機(jī)CPU器件(本設(shè)計采用ATMEL 公

31、司下的AT89C51)</p><p>  2. 用uVision 的文本編輯器編寫源文件,可以是匯編文件(.ASM),也可以使C語言文件(擴(kuò)展名.C),并將該文件添加到項目中去。一個項目文件可以包含多個文件,除了源程序文件外,還可以是庫文件、頭文件或文本說明文件。</p><p>  3. 通過uVision 3 的相關(guān)選擇項,配置編譯環(huán)境、連接定位器以及Debug調(diào)試器的功能。<

32、/p><p>  4. 對項目中的源文件進(jìn)行編譯連接,生成絕對目標(biāo)代碼和可選的HEX文件,如果出現(xiàn)編譯連接錯誤則返回到第2步,修改源文件中的錯誤后重構(gòu)整個項目。</p><p>  5. 對沒有語法錯誤的程序進(jìn)行仿真調(diào)試,調(diào)試成功后將HEX文件寫入到單片機(jī)應(yīng)用系統(tǒng)的ROM中。</p><p>  5.2 proteus的操作</p><p> 

33、?。ㄒ唬┯布娐穲D的接法操作 </p><p>  1.放置選擇(刪除)元器件</p><p><b>  2.移動元器件</b></p><p><b>  3.縮放視圖</b></p><p><b>  4.連接導(dǎo)線</b></p><p><

34、;b>  5.仿真,調(diào)試</b></p><p> ?。ǘ?單片機(jī)系統(tǒng)PROTEUS設(shè)計與仿真過程</p><p>  Proteus強(qiáng)大的單片機(jī)系統(tǒng)設(shè)計與仿真功能,使它可成為單片機(jī)系統(tǒng)應(yīng)用開發(fā)和改進(jìn)手段之一。全部過程都是在計算機(jī)上通過Proteus來完成的。其過程一般也可分為三步:</p><p>  1.在ISIS平臺上進(jìn)行單片機(jī)系統(tǒng)電路設(shè)計

35、、選擇元器件、接插件、連接電路和電氣檢測等,簡稱Proteus電路設(shè)計。</p><p>  2.在Keil平臺上進(jìn)行單片機(jī)系統(tǒng)程序設(shè)計、編輯、匯編編譯、代碼級調(diào)試,最后生成目標(biāo)代碼文件(*.hex)。簡稱Proteus源程序設(shè)計和生成目標(biāo)代碼文件。</p><p>  3.在ISIS平臺上將目標(biāo)代碼文件加載到單片機(jī)系統(tǒng)中,并實現(xiàn)單片機(jī)系統(tǒng)的實時交互、協(xié)同仿真。它在相當(dāng)程度上反映了實際單片

36、機(jī)系統(tǒng)的運行情況。簡稱Proteus仿真。</p><p> ?。ㄈ?Proteus中課程設(shè)計的仿真結(jié)果</p><p>  在Proteus中將硬件電路全部接好以后,將Keil中生成的.hex文件導(dǎo)入到單片機(jī)中,點擊開始仿真按鈕,電路開始仿真??梢杂^察到:數(shù)碼管顯示“000”;分別依次按下按鍵“5”、“+”、“6”和“=”,可以看到數(shù)碼管顯示“11”;也可以分別調(diào)試其它功能鍵,結(jié)果發(fā)現(xiàn)

37、調(diào)試結(jié)果與預(yù)期的理論值相吻合,即本次課設(shè)已成功。</p><p>  總的仿真原理電路圖見附錄1圖九。</p><p><b>  心得體會</b></p><p>  為期兩周的單片機(jī)課程設(shè)計終于結(jié)束了,通過緊張的工作,完成了我們的設(shè)計任務(wù)-十進(jìn)制加法計算器??偟膩碚f,這次課程設(shè)計是比較成功的。當(dāng)然,這其中也經(jīng)歷了許多坎坷,但是在我的堅持不懈

38、下,在老師的細(xì)心指導(dǎo)下,在同學(xué)們的熱情幫助下,最終克服了種種困難,取得了成功。</p><p>  剛開始接到這個計算器的課程設(shè)計任務(wù)時,因為以前做過類似的題目,于是在腦海中初步構(gòu)建了編寫程序的一些控制程序。但是由于缺乏編寫大量程序的經(jīng)驗,不能如行云流水般的將全部的各部分代碼寫出,于是去網(wǎng)上查找相關(guān)資料,了解計算器的輸入控制原理、運算處理以及顯示的原理。了解之后自己嘗試編寫程序,在此過程中,其中鍵盤掃描和動態(tài)掃描

39、顯示掃描程序困擾了我很久,經(jīng)過三四天的辛苦工作,終于初步把所需要的程序編好了,于是就用Keil uversion3進(jìn)行仿真,在仿真期間也發(fā)現(xiàn)了許多錯誤,基本上都是平日容易犯的錯誤,比如忘記了子程序標(biāo)號、死循環(huán)程序、標(biāo)點符號的漏寫等。經(jīng)過反復(fù)的編譯差錯,仿真編譯通過后,于是開始在Proteus中連硬件電路,全部接完電路之后將Keil生成的.Hex文件導(dǎo)入進(jìn)行仿真,發(fā)現(xiàn)軟件與硬件不能夠?qū)?yīng)協(xié)調(diào)工作,于是分別對軟件和硬件進(jìn)行檢查,經(jīng)過反復(fù)的仿

40、真調(diào)試,并且在同學(xué)的幫助和自己對每個子程序進(jìn)行仿真觀察下,終于在課設(shè)快結(jié)束時成功的調(diào)試出結(jié)果了。這就是我這一周課設(shè)的經(jīng)過,看似簡單,過程卻曲折艱辛。</p><p>  通過這次課程設(shè)計,我進(jìn)一步加深了對電子自動控制的了解。并進(jìn)一步熟練了對Keil和Proteus軟件的操作。通過與同學(xué)探討和請教老師,終于把問題都解決了,并加深了對計算器工作的原理的了解。同時也掌握了做課程設(shè)計的一般流程,為以后的設(shè)計積累了一定的經(jīng)

41、驗。做課程設(shè)計時,先查閱相關(guān)知識,把原理吃透,確定一個大的設(shè)計方向,在按照這個方向分模塊的把要實現(xiàn)的功能用流程圖的形式展示。學(xué)會了怎么樣去制定計劃,怎么樣去實現(xiàn)這個計劃,并掌握了在執(zhí)行過程中怎么樣去克服心理上的不良情緒??傊ㄟ^這次的設(shè)計,進(jìn)一步了解了單片微型計算機(jī)及應(yīng)用原理,收獲很大,對軟件編程、排錯調(diào)試、查閱資料等方面得到較全面的鍛煉和提高。</p><p>  同時通過本次課程設(shè)計的學(xué)習(xí),掌握了一種系統(tǒng)的

42、研究方法,可以進(jìn)行一些簡單的編程,我還深深的體會到設(shè)計課的重要性和目的性所在。為今后的學(xué)習(xí)和實踐打下了良好的基礎(chǔ)。此次課設(shè)還鞏固和綜合運用所學(xué)過的原理知識,從而提高自己的實際動手能力和獨立思考的能力。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]   周航慈.單片機(jī)應(yīng)用程序設(shè)計技術(shù)(修訂版).北京航空大學(xué)出版社

43、</p><p>  [2] 張志良.單片機(jī)原理與控制技術(shù).第2版. 機(jī)械工業(yè)出版社</p><p>  [3] 康華光.電子技術(shù)基礎(chǔ)(第5版). 高等教育出版社出版,2006</p><p>  [4] 蔣力培.單片微機(jī)系統(tǒng)實用教程(第1版).機(jī)械工業(yè)出版社</p><p>  附錄1 系統(tǒng)硬件電路圖</p><

44、p>  圖九 總電路原理圖</p><p><b>  附錄2 程序清單</b></p><p>  # include<reg51.h></p><p>  typedef unsigned char uint8;</p><p>  typedef unsigned int uint16;&

45、lt;/p><p>  sbit p20 = P2^0;</p><p>  sbit p21 = P2^1;</p><p>  sbit p22 = P2^2;</p><p>  sbit p23 = P2^3;</p><p>  sbit keyin1 = P2^4;</p><p>  

46、sbit keyin2 = P2^5;</p><p>  sbit keyin3 = P2^6;</p><p>  sbit keyin4 = P2^7;</p><p>  sbit keyin5 = P1^0;</p><p>  code uint8 number[] = {0x3f,0x06,0x5b,0x4f,</p>

47、;<p>  0x66,0x6d,0x7d,0x07,</p><p>  0x7f,0x6f,0x77,0x7c,</p><p>  0x58,0x5e,0x79,0x71};</p><p>  uint8 a[5],b[2];</p><p>  uint8 num1,num2;</p><p>

48、  uint8 n = 0, m = 0, g = 0, h = 0;</p><p>  void delay(uint16 zms)</p><p><b>  {</b></p><p>  uint16 i,j;</p><p>  for(i = zms ; i > 0 ; i--)</p>

49、<p>  for(j = 110 ; j > 0 ; j--);</p><p><b>  }</b></p><p>  void refresh()</p><p><b>  {</b></p><p>  static uint8 j = 0;</p>&

50、lt;p><b>  switch(j)</b></p><p><b>  {</b></p><p>  case 0:p20 = 0; p21 = 1; p22 = 1; p23 = 1;P0 = number[a[0]]; j ++;delay(1); break;</p><p>  case 1:p20

51、= 1; p21 = 0; p22 = 1; p23 = 1;P0 = number[a[1]]; j ++; delay(1);break;</p><p>  case 2:p20 = 1; p21 = 1; p22 = 0; p23 = 1;P0 = number[a[2]]; j ++; delay(1);break;</p><p>  case 3:p20 = 1; p21 =

52、 1; p22 = 1; p23 = 0;P0 = number[a[3]]; j++; delay(1); break; </p><p>  default:p20 = 1; p21 = 1; p22 = 1; p23 = 1;j = 0;delay(1);break;</p><p><b>  } </b></p><p><b

53、>  }</b></p><p>  void refresh_1()</p><p><b>  {</b></p><p>  static uint8 k = 0;</p><p><b>  switch(k)</b></p><p><b&g

54、t;  {</b></p><p>  case 0:p20 = 0; p21 = 1; p22 = 1; p23 = 1;P0 = number[b[1]]; k ++;delay(1); break;</p><p>  case 1:p20 = 1; p21 = 0; p22 = 1; p23 = 1;P0 = number[b[0]]; k ++;delay(1); b

55、reak;</p><p>  default:p20 = 1; p21 = 1; p22 = 1; p23 = 1;k = 0; break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  main()</b>&l

56、t;/p><p><b>  {</b></p><p>  P0 = 0x3f;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(!keyin1)</p><p&g

57、t;<b>  {</b></p><p><b>  delay(5);</b></p><p>  if(!keyin1)</p><p><b>  {</b></p><p>  if(n >= 15)</p><p><b> 

58、 n = 0;</b></p><p><b>  else</b></p><p><b>  n ++;</b></p><p><b>  a[0] = n;</b></p><p>  while(!keyin1);</p><p>

59、<b>  } </b></p><p><b>  }</b></p><p>  if(!keyin2)</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  i

60、f(!keyin2)</p><p><b>  {</b></p><p>  if(m >= 15)</p><p><b>  m = 0;</b></p><p><b>  else</b></p><p><b>  m ++

61、;</b></p><p><b>  a[1] = m;</b></p><p>  while(!keyin2);</p><p><b>  } </b></p><p><b>  }</b></p><p>  if(!keyi

62、n3)</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p>  if(!keyin3)</p><p><b>  {</b></p><p>  if(g >= 15)</p>

63、;<p><b>  g = 0;</b></p><p><b>  else</b></p><p><b>  g ++;</b></p><p><b>  a[2] = g;</b></p><p>  while(!keyin3)

64、;</p><p><b>  } </b></p><p><b>  }</b></p><p>  if(!keyin4)</p><p><b>  {</b></p><p><b>  delay(5);</b>&l

65、t;/p><p>  if(!keyin4)</p><p><b>  {</b></p><p>  if(h >= 15)</p><p><b>  h = 0;</b></p><p><b>  else</b></p>&l

66、t;p><b>  h ++;</b></p><p><b>  a[3] = h;</b></p><p>  while(!keyin4);</p><p><b>  } </b></p><p><b>  }</b></p>

67、;<p>  if(!keyin5)</p><p><b>  {</b></p><p>  num1 = a[0]*16 + a[1];</p><p>  num2 = a[2]*16 + a[3];</p><p>  a[4] = num1 - num2;</p><p>

68、;  b[0] = a[4]%16; </p><p>  refresh_1();</p><p>  delay(10);</p><p>  b[1] = a[4]/16;</p><p>  refresh_1();</p><p>  delay(10);</p><p><b&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論