基于C51單片機(jī)簡易計(jì)算器的課程設(shè)計(jì)論文_第1頁
基于C51單片機(jī)簡易計(jì)算器的課程設(shè)計(jì)論文_第2頁
基于C51單片機(jī)簡易計(jì)算器的課程設(shè)計(jì)論文_第3頁
基于C51單片機(jī)簡易計(jì)算器的課程設(shè)計(jì)論文_第4頁
基于C51單片機(jī)簡易計(jì)算器的課程設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、. . . . 贛南師學(xué)院基于C51單片機(jī)的簡易計(jì)算器目錄1. 緒論32. 系統(tǒng)軟件設(shè)計(jì)方案42.1設(shè)計(jì)目標(biāo)和實(shí)現(xiàn)方法42.2整體方案論證43. 系統(tǒng)硬件的設(shè)計(jì)與介紹53.1復(fù)位電路的設(shè)計(jì)與運(yùn)用53.2時鐘振蕩器電路的設(shè)計(jì)與運(yùn)用63.3輸入電路的設(shè)計(jì)63.4輸出電路的設(shè)計(jì)84. 系統(tǒng)程序的設(shè)計(jì)與介紹114.1 LED顯示程序流程圖設(shè)計(jì)114.2讀鍵輸入程序流程圖設(shè)計(jì)134.3主程序流程圖設(shè)計(jì)144.4仿真與調(diào)試155. 結(jié)論17元件清單18附錄1簡易計(jì)算器源程序191.緒論 中國古代最早采用的一種計(jì)算工具叫籌策,又被叫做算籌。這種算籌多是用竹子制成,也有用木頭,獸骨充當(dāng)材料的。大約二百七十枚一

2、束,放在布袋里可以隨身攜帶。 直到今天仍在使用的珠算盤,是中國古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,明代時期的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎沒有差別。 17世紀(jì)初,西方國家的計(jì)算工具已經(jīng)有了較大的發(fā)展,英國數(shù)學(xué)家納皮爾發(fā)明的納皮爾算籌,英國牧師奧卻德發(fā)明了圓柱型對數(shù)計(jì)算尺,這種計(jì)算尺不僅能做加減乘除、乘方、開方運(yùn)算,甚至可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對數(shù)函數(shù),這些計(jì)算工具不僅帶動了計(jì)算器的快速發(fā)展,也為實(shí)現(xiàn)現(xiàn)代計(jì)算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會應(yīng)用廣泛的計(jì)算工具。 1642年,年僅19歲的法國偉大科學(xué)家帕斯卡引用算盤的原理,發(fā)明了世界上第一部機(jī)械式計(jì)算器,在他的計(jì)算器中有一些互相聯(lián)鎖的齒輪,一個轉(zhuǎn)

3、過十位的齒輪會使另一個齒輪轉(zhuǎn)過一位,人們可以像撥盤那樣,把數(shù)字撥進(jìn)去,計(jì)算結(jié)果就會出現(xiàn)在另外一個窗口中,但是只能做加減計(jì)算。1694年,萊布尼茲在德國將其改進(jìn)成可以進(jìn)行乘除的計(jì)算。此后,一直要到20世紀(jì)50年代末才有了電子計(jì)算器的出現(xiàn)。2. 軟件設(shè)計(jì)方案2.1 設(shè)計(jì)目標(biāo)和實(shí)現(xiàn)方法為了滿足簡易計(jì)算器的基本要求,可以進(jìn)行基本的運(yùn)算(加減乘除),數(shù)據(jù)歸零和出錯警告提示,我們采用基于51單片機(jī)設(shè)計(jì)計(jì)算器,并用七段共陰級LED 數(shù)碼管顯示數(shù)據(jù),4*4的矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)的輸入。2.2 整體方案論述根據(jù)簡單計(jì)算器的功能和本方案中的設(shè)計(jì)指標(biāo)要求,本系統(tǒng)選用了MCS 51 單片機(jī)為主控機(jī)。通過擴(kuò)展必要的外圍接口

4、電路,實(shí)現(xiàn)對簡單計(jì)算器的設(shè)計(jì)。具體設(shè)計(jì)考慮如下:由于要設(shè)計(jì)的是簡單的計(jì)算器,可以進(jìn)行基本的四則運(yùn)算,對數(shù)字的大小圍要求不高,故我們采用可以進(jìn)行四位數(shù)字的運(yùn)算,選用8 個LED 數(shù)碼管顯示數(shù)據(jù)和運(yùn)算結(jié)果。另外鍵盤包括數(shù)字鍵(09)、符號鍵(+、-、)、清除鍵和等號鍵,故只需要16 個按鍵即可。系統(tǒng)模塊圖: 圖2-1 系統(tǒng)模塊圖3. 系統(tǒng)硬件的設(shè)計(jì)3.1 復(fù)位電路的設(shè)計(jì)上電復(fù)位的原理:VCC上電時,C充電,在10K電阻上出現(xiàn)了電壓,使單片機(jī)復(fù)位;幾個毫秒后,C充滿,10K電阻上電流降為0,電壓也為0,使得單片機(jī)進(jìn)入工作狀態(tài)。 手動復(fù)位的原理:工作期間,按下S,C放電。S松手,C又充電,在10K電阻

5、上出現(xiàn)電壓,使得單片機(jī)復(fù)位。幾個毫秒后,單片機(jī)進(jìn)入工作狀態(tài)。 如SW復(fù)位鍵按下時:RST經(jīng)1k電阻接VCC,獲得10k電阻上所分得電壓,形成高電平,進(jìn)入“復(fù)位狀態(tài)”。 當(dāng)SW復(fù)位鍵斷開時:RST經(jīng)10k電阻接地,電流降為0,電阻上的電壓也將為0,RST降為低電平,開始正常工作 。對于成熟產(chǎn)品,從降低成本角度,可以使用上電復(fù)位。另外,作為產(chǎn)品,最好使用上電復(fù)位。因?yàn)槭褂谜咄ǔ]有專業(yè)知識,就知道斷電通電,對他們來說,按鍵復(fù)位成了擺設(shè)。按鍵復(fù)位比較適合樣品制作或者實(shí)驗(yàn)室調(diào)試場合,上電復(fù)位電路成本也低一些。 綜上所述我們在本方案中選用了上電自動復(fù)位電路。上位自動復(fù)位電路圖和手動復(fù)位電路圖如下圖兩種復(fù)

6、位方式 如圖31:3.2 時鐘振蕩電路的設(shè)計(jì)能夠產(chǎn)生振蕩電流的電路叫做振蕩電路。一般由電阻、電感、電容等元件和電子器件所組成。由電感線圈l和電容器c相連而成的lc電路是最簡單的一種振蕩電路,其固有頻率為f=sx(12lc。 一種不用外加激勵就能自行產(chǎn)生交流信號輸出的電路。它在電子科學(xué)技術(shù)領(lǐng)域中得到廣泛地應(yīng)用,如通信系統(tǒng)中發(fā)射機(jī)的載波振蕩器、接收機(jī)中的本機(jī)振蕩器、醫(yī)療儀器以與測量儀器中的信號源等。 XTAL1:反向振蕩放大器的輸入與部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片振蕩器。石晶振蕩和瓷振蕩均可采用此

7、振動器。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。使用片振蕩器,可以節(jié)省IO引腳,減少成本,但是部振蕩器使用阻容震蕩,導(dǎo)致它的精度不高,如果使用了串口、或者PWM等對時鐘比較敏感的功能,最好還是使用外部晶體振蕩。在本方案中我們選擇了部時鐘方式,如下圖:兩種時鐘方式 如圖32:3.3 輸入電路的設(shè)計(jì)每一個按鍵都有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。鍵盤的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”

8、實(shí)現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么?還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地;另一個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能。當(dāng)無按鍵閉合時,P10P13 與P14P17 之間開路;當(dāng)有鍵閉合時,與閉合鍵相連的兩條I/O 口線之間短路。判斷有無按鍵按下的方法是:第一步,置列線P14P17 為輸入狀態(tài),從行線P10P13 輸出低電平,讀入列線數(shù)據(jù),若某一列線為低電平,則該列線上有鍵閉合。第二步,行線輪流輸出低電平,從列線P14P17 讀入數(shù)據(jù),若有某一列為低

9、電平,則對應(yīng)行線上表示有鍵按下。綜合一二兩步的結(jié)果,可以確定按鍵編號。但是鍵閉合一次只能進(jìn)行一次鍵功能操作,因此須等到按鍵釋放后,再進(jìn)行鍵功能操作,否則按一次鍵,有可能會連續(xù)多次進(jìn)行同樣的鍵操作。鍵盤是單片機(jī)系統(tǒng)中常用的人機(jī)對話輸入設(shè)備,用戶通過鍵盤向單片機(jī)輸入數(shù)據(jù)或者指令。鍵盤控制程序需要完成的任務(wù)有:監(jiān)測是否有鍵按下,有鍵按下時,在無硬件去抖的動電路時,應(yīng)用軟件延時方法消除按鍵抖動影響;當(dāng)有多個鍵同時按下時,只處理一個按鍵,不管一次按鍵持續(xù)多長時間,僅執(zhí)行一次按鍵功能程序。矩陣按鍵掃描程序是一種節(jié)省IO口的方法,按鍵數(shù)目越多節(jié)省IO口就越可觀,思路:先判斷某一列(行)是否有按鍵按下,再判斷

10、該行(列)是那一只鍵按下。但是,在程序的寫法上,采用了最簡單的方法,使得程序的效率最高。本程序中,如果檢測到了某個鍵按下了,就不再檢測其它的按鍵,這完全能滿足絕大多數(shù)需要,又能節(jié)省大量的CPU時間。本鍵盤掃描程序的優(yōu)點(diǎn)在于:不使用專門的按鍵延時程序,提高了CPU效率,也不用中斷來掃描鍵盤,節(jié)省了硬件資源。另外,本鍵盤掃描程序,每次掃描占用CPU時最短,不論有鍵按下或者無鍵按下都可以在很短的時間完成一次掃描。本鍵盤掃描子程序名叫key,每次要掃描時用lcall key調(diào)用即可。鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20個以上)和專用驅(qū)動芯片的組合,當(dāng)按下某個鍵時,它能夠處理按

11、鍵抖動、連擊等問題,直接輸出按鍵的編碼,無需系統(tǒng)軟件干預(yù)。通用PC機(jī)使用的標(biāo)準(zhǔn)鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片8279或串行接口芯片HD7279均可以組成編碼鍵盤,同時還可以兼顧數(shù)碼管的顯示驅(qū)動,其相關(guān)的接口電路和接口軟件均可以在相關(guān)資料中得到。當(dāng)系統(tǒng)功能比較復(fù)雜,案件數(shù)量很多時,采用編碼鍵盤可以簡化軟件設(shè)計(jì)。但大多數(shù)智能儀器和電子產(chǎn)品的按鍵數(shù)目都不很多(20個以),為了降低成本和簡化電路通常采用非編碼鍵盤。非編碼鍵盤的電路由設(shè)計(jì)者根據(jù)需要自己決定,按鍵信息通過接口軟件來獲取。本課題需要16個按鍵,故選擇非編碼鍵盤,為了減少所占用的端口,由P1口采用4*4矩陣式鍵盤。 圖3-3

12、 鍵盤樣式3.4 輸出電路設(shè)計(jì)數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點(diǎn)顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽級數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽級數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時,對應(yīng)的字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到地線GND上,當(dāng)

13、某一字段發(fā)光二極管的陽極為高電平時,相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽極為低電平時,對應(yīng)的字段就不亮。LED顯示器由七段發(fā)光二極管組成,排列成8字形狀,因此也成為七段LED顯示器,器排列形狀如下圖所示: 圖3-4 LED段碼為了顯示數(shù)字或符號,要為LED顯示器提供代碼,即字形代碼。七段發(fā)光二極管,再加上一個小數(shù)點(diǎn)位,共計(jì)8段,因此提供的字形代碼的長度正好是一個字節(jié)。簡易計(jì)算器用到的數(shù)字09的共陰極字形代碼如下表3-1所示:顯示字型gfedcBa段碼001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh611111017d

14、h7000011107h811111117fh911011116fh表3-5 09七段數(shù)碼管共陰級字形代碼由于數(shù)值單元存放的是二進(jìn)制數(shù),而我們大家熟悉的是十進(jìn)制數(shù),所以應(yīng)將數(shù)值單元中的二進(jìn)制數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)字,即BCD碼。要通過數(shù)碼管顯示出當(dāng)前的數(shù)值,還必須將BCD碼進(jìn)一步轉(zhuǎn)換為七段碼,轉(zhuǎn)換的最終結(jié)果數(shù)據(jù)存放于顯示緩沖區(qū)30H-33H單元中,其中30H單元存放數(shù)值的個位七段碼,31H單元存放數(shù)值的十位七段碼,32H單元存放數(shù)值的百位七段碼,33H單元存放數(shù)值的千位七段碼。本方案設(shè)計(jì)中由P1口輸出字形碼,P0口輸出字位碼。先將存放于30H單元的數(shù)值個位七段碼由P1口輸出,同時P0口輸出使數(shù)值個

15、位顯示數(shù)碼管點(diǎn)亮的字位碼。由于采用的是共陰數(shù)碼管,所以只有該位數(shù)碼管對應(yīng)的P0.0為1,其他位P0.1-P0.3位0,點(diǎn)亮延時10MS。然后P1口輸出數(shù)值十位七段碼,P0.1位1,數(shù)值十位數(shù)碼管點(diǎn)亮,延時10MS。接著P1口輸出數(shù)值百位七段碼,P0.2為1,數(shù)值百位數(shù)碼管點(diǎn)亮,延時10MS。最后P1口輸出數(shù)值千位七段碼,P0.3為1,數(shù)值千位數(shù)碼管點(diǎn)亮,延時10MS。發(fā)光二極管LED 是單片機(jī)應(yīng)用系統(tǒng)中的一種簡單而最常用的輸出設(shè)備,其在系統(tǒng)中的主要作用是顯示單片機(jī)的輸出數(shù)據(jù)、狀態(tài)等。因而作為典型的外圍器件,LED 顯示單元是反映系統(tǒng)輸出和操作輸入的有效元器件。LED 具備數(shù)字接口可以方便的和單

16、片機(jī)引腳連接;它的優(yōu)點(diǎn)是價格低,壽命長,對電壓電流的要求低以與容易實(shí)現(xiàn)多路等,因而在單片機(jī)應(yīng)用系統(tǒng)中獲得了廣泛的應(yīng)用,所以在此設(shè)計(jì)中我首先選用了LED作為顯示器件。如圖3-10所示:圖3-6 數(shù)碼顯示管4. 程序設(shè)計(jì)本方案中的程序設(shè)計(jì)采用了模塊化設(shè)計(jì),各部分程序都分別進(jìn)行獨(dú)立的設(shè)計(jì),最后主程序通過調(diào)用各模塊程序來運(yùn)行,編程中所使用的語言全部都是C語言,可以利用keil軟件進(jìn)行靈活的編譯,編譯完成后也可生成HEX文件,利用ISP編程軟件通過串口寫到單片機(jī)中。本方案程序設(shè)計(jì)中部分包括主程序模塊、液晶顯示模塊、功能按鍵和控制輸出等部分。下面僅僅敘述了各部分程序設(shè)計(jì)的基本思想和流程圖,詳細(xì)程序請參閱附

17、錄。4.1 讀鍵輸入程序流程圖為了實(shí)現(xiàn)鍵盤的數(shù)據(jù)輸入功能和命令處理功能,每個鍵都有其處理子程序,為此每個鍵都對應(yīng)一個碼鍵碼。為了得到被按鍵的鍵碼,現(xiàn)使用行掃描法識別按鍵。列掃描信號進(jìn)行讀入行的信號判斷該列是否有列的輸出是則進(jìn)行按照行列計(jì)算鍵盤的值,查表取得鍵碼并返回若否則進(jìn)行再次掃描。程序框圖如下41圖:開始初始化地址讀入行掃描信號輸出列掃描信號等待按鍵釋放該列有信號?四列掃描完?返回根據(jù)行列計(jì)算鍵值返回列掃描信號位移查表得鍵碼是否是否 鍵盤輸入流程圖41 4.2 LED顯示程序流程圖設(shè)計(jì)LED數(shù)碼管要正常顯示,就要用驅(qū)動電路來驅(qū)動數(shù)碼管的各個段碼,從而顯示出我們需要的數(shù)位,因此根據(jù)LED數(shù)碼

18、管的驅(qū)動方式的不同,可以分為靜態(tài)式和動態(tài)式兩類。 A、 靜態(tài)顯示驅(qū)動: 靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O埠進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)位*器*進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O埠多,如驅(qū)動5個數(shù)碼管靜態(tài)顯示則需要58=40根I/O埠來驅(qū)動,要知道一個89S51單片機(jī)可用的I/O埠才32個呢。故實(shí)際應(yīng)用時必須增加*驅(qū)動器進(jìn)行驅(qū)動,增加了硬體電路的復(fù)雜性。 B、 動態(tài)顯示驅(qū)動: 數(shù)碼管動態(tài)顯示介面是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃a,b,c,d,e,f,g,dp 的同名端

19、連在一起,另外為每個數(shù)碼管的公共極COM增加位元選通控制電路,位元選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到一樣的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機(jī)對位元選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位元就會顯示出字形,沒有選通的數(shù)碼管就不會亮。 透過分時輪流控制各個LED數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象與發(fā)光二極體的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示資料,不會

20、有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。綜上所述我們在本設(shè)計(jì)方案中選用了動態(tài)顯示。6位LED顯示的程序框圖如圖4-2所示:圖4-2 LED顯示流程圖4.3主程序設(shè)計(jì)主程序進(jìn)行程序中用到的一些存儲單元的初始化,數(shù)值顯示和4*4鍵盤掃描。首先,進(jìn)行存儲單元初始化,給數(shù)碼管顯示單元30H-33H賦予“0000”字形數(shù)據(jù),將數(shù)值計(jì)數(shù)單元,存儲單元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,賦予初值零。之后,調(diào)用鍵盤掃描子程序,和數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換程序,數(shù)碼管動態(tài)顯示子程序。主程序不斷進(jìn)行鍵盤掃描,數(shù)碼管顯示數(shù)據(jù)轉(zhuǎn)換子程序和動態(tài)顯示

21、子程序。 首先初始化參數(shù),送LED低位顯示“0”,功能鍵(“+” 、“-” 、“*” 、“/” 、 “+” )位不顯示。然后掃描鍵盤看是否有鍵輸入,若有,讀取鍵碼。判斷鍵碼是數(shù)字鍵、清零鍵還是“+” 、“” 、“*”“/” ,是數(shù)值鍵則送LED顯示并保存數(shù)值,是清零鍵則做清零處理,是功能鍵則又判斷是“=”還是運(yùn)算鍵,若是“=”則計(jì)算最后結(jié)果并送LED顯示,若是運(yùn)算鍵則保存相對運(yùn)算程序的首地址。運(yùn)算主程序框圖如4-3所示:圖4-3 運(yùn)算主程序框圖4.4仿真與調(diào)試在程序設(shè)計(jì)方法上,模塊化程序設(shè)計(jì)是單片機(jī)應(yīng)用中最常用的程序設(shè)計(jì)方法。設(shè)計(jì)的中心思想是把一個復(fù)雜應(yīng)用程序按整體功能劃分成若干相對獨(dú)立的程序

22、模塊,各模塊可以進(jìn)行單獨(dú)的設(shè)計(jì)、編程和調(diào)試,然后組合起來。這種方法便于設(shè)計(jì)和調(diào)試,容易實(shí)現(xiàn)多個程序共存,但各個模塊之間的連接有一定的難度。根據(jù)需要我們可以采取自上而下的程序設(shè)計(jì)方法,此方法先從主程序開始設(shè)計(jì),然后再編制各從屬程序和子程序,層層細(xì)化逐步完成,最終完成一個復(fù)雜程序的設(shè)計(jì)。這種方法比較符合人們的日常思維,缺點(diǎn)是一級的程序錯誤會對整個程序產(chǎn)生影響。功能和操作:加減乘除運(yùn)算和顯示。A:上電后,屏幕初始化,按下“ON/C”鍵。B: 計(jì)算。按下數(shù)字鍵,屏幕顯示要運(yùn)算的第一個數(shù)字,再按下符號鍵,然后再按下數(shù)字鍵,屏幕顯示要運(yùn)算的第二個數(shù)字,最后按下“”號鍵,屏幕上顯示出計(jì)算結(jié)果。C:如果要再次

23、計(jì)算,可以按下“ON/C”鍵清零,或者按下單片機(jī)的復(fù)位鍵,重新初始化。硬件聯(lián)系圖如下圖: 硬件連線圖4.45 結(jié)論課程設(shè)計(jì)是培養(yǎng)學(xué)生運(yùn)用所學(xué)的專業(yè)知識,發(fā)現(xiàn),提出,分析和解決實(shí)際問題,鍛煉實(shí)際動手能力的重要環(huán)節(jié),是對學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察,隨著科學(xué)技術(shù)日新月異的發(fā)展,單片機(jī)已經(jīng)成為當(dāng)今計(jì)算機(jī)應(yīng)用中空前活躍的領(lǐng)域,在生活中可以說遍布我們生活之中。這次設(shè)計(jì)進(jìn)一步端正了我的學(xué)習(xí)態(tài)度,學(xué)會了實(shí)事,嚴(yán)謹(jǐn)?shù)淖黠L(fēng),對自己要嚴(yán)格要求。急于求成是不好的,通過此次畢業(yè)設(shè)計(jì)我深有體會。如果省略了那些必要的步驟,急于求成,不僅會浪費(fèi)時間,還會適得其反。我覺得動手之前,應(yīng)該有清楚的步驟,這一步是很重要的。就目

24、前來說,我的動手能力雖然還有差距,但我知道,通過我的不懈努力,在動手方面,我會得到提高。這一點(diǎn),我堅(jiān)信。在此次的課程設(shè)計(jì)中我最大的體會就是進(jìn)一步認(rèn)識到了理論聯(lián)系實(shí)踐的重要性。一份耕耘,一份收獲。通過這段時間的設(shè)計(jì),讓我明白科學(xué)的思維方法和學(xué)習(xí)方法是多么重要,只有這樣才能夠有很高的效率,才能夠讓自己的工作更完美??偠灾舜萎厴I(yè)設(shè)計(jì)讓我學(xué)到了好多平時在課堂上學(xué)不到的東西,增加了我的知識運(yùn)用能力,增強(qiáng)我的實(shí)際操作能力。老師給我們提供這么好的機(jī)會,為我們之后走向社會奠定了一個好的基礎(chǔ)。在我做課程設(shè)計(jì)的整個過程中,無論是在設(shè)計(jì)的選題、構(gòu)思和資料的收集方面,還是在設(shè)計(jì)的研究方法以與成文定稿方面,或是在

25、論文的寫作過程中,都得到了許多同學(xué)的寶貴建議,在此一并致以誠摯的意。感所有關(guān)心、支持、幫助過我的同學(xué)。6 元件清單元件數(shù)量單價(元)12M晶振 11STC89C52芯片14輕觸按鍵200.1排阻10.5四位一體公陰數(shù)碼管21.5電阻若干0.5杜邦線400.1排針400.1電容若干0.5總計(jì)19.5附錄1 簡易計(jì)算器源程序#include #define uchar unsigned char#define uint unsigned int#define duan P0/數(shù)碼管顯示段選定義#define wei P2/數(shù)碼管顯示位選定義#define key P3/鍵盤接口定義sbit OFF

26、 = P10;/關(guān)機(jī)鍵定義unsigned long int shu1,shu2;/進(jìn)行運(yùn)算的兩個變量數(shù)uchar num;/鍵盤掃描返回值char flag1,flag_shu,flag_fuhao,fuhao,newkey;/flag1開機(jī)標(biāo)志newkey新按鍵標(biāo)志,fuhao運(yùn)算符char key_shu;/按鍵值unsigned char code Wela=0xdf,0xef,0xf7,0xfb,0xfd,0xfe;/六位數(shù)碼管的位選unsigned char code Duan=0x3f,0x06,0x5b,/ 0 1 20x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00; /3 4 5 6 7 8 9 無顯示共陰極數(shù)碼管uchar keyscan();/鍵盤掃描函數(shù)void display(unsigned long int );/數(shù)碼管顯示函數(shù)void delay(uint i)/延時函數(shù)while(i-);/* 主函數(shù)*/void main()flag1=0;/標(biāo)志關(guān)機(jī)w

溫馨提示

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

評論

0/150

提交評論