版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)論文</b></p><p> 題 目:多功能電子計(jì)算器設(shè)計(jì)</p><p><b> 學(xué)生姓名:</b></p><p><b> 學(xué) 號(hào):</b></p><p><b> 系(院):</b><
2、;/p><p> 專 業(yè):電子信息科學(xué)與技術(shù)</p><p><b> 班 級(jí): </b></p><p> 指導(dǎo)教師姓名及職稱: 講師</p><p><b> 助理實(shí)驗(yàn)師</b></p><p> 起止時(shí)間: 2015 年 9 月—— 2015
3、年 12 月</p><p> 多功能電子計(jì)算器設(shè)計(jì)</p><p> 摘要:本設(shè)計(jì)是實(shí)現(xiàn)一個(gè)有四則運(yùn)算及函數(shù)運(yùn)算的多功能計(jì)算器。它的硬件部分主要包括:一個(gè)STC89C52RC單片機(jī)芯片,一塊LCD12864液晶顯示屏,一個(gè)4*4的矩陣鍵盤,外加3個(gè)設(shè)置按鍵。以STC89C52RC單片機(jī)為核心控制電路,LCD12864液晶顯示屏負(fù)責(zé)顯示輸入輸出數(shù)據(jù),4*4矩陣鍵盤與3個(gè)功能按鍵完成
4、電路的鍵入操作部分,來實(shí)現(xiàn)計(jì)算器的多功能。電路簡(jiǎn)單,功能豐富。</p><p> 軟件部分采用C語言編寫,除了實(shí)現(xiàn)了8位正整數(shù)的加、減、乘、除基本的四則運(yùn)算,還附有“sin”、“cos”、“tan”、“平方”、“開方”、“二進(jìn)制轉(zhuǎn)十進(jìn)制”、“十進(jìn)制轉(zhuǎn)二進(jìn)制”、“十進(jìn)制轉(zhuǎn)十六進(jìn)制”8個(gè)常用數(shù)學(xué)函數(shù)運(yùn)算。這樣一個(gè)簡(jiǎn)易的計(jì)算器實(shí)現(xiàn)了多功能,比較實(shí)用和方便。</p><p> 關(guān)鍵字:多功能;
5、計(jì)算器;單片機(jī);C語言</p><p> Design of multifunctional electronic calculator</p><p> Abstract: This design is to achieve a four operation and function of the multi-function calculator. Its hardware par
6、t mainly includes: a STC89C52RC chip, a LCD12864 LCD screen, a 4*4 matrix keyboard, plus 3 buttons. STC89C52RC microcontroller as the core control circuit, LCD12864 LCD screen is responsible for the display of input and
7、output data, 4*4 matrix keyboard and 3 functional keys to complete the input of the circuit part, to achieve the function of the calculator. Circuit is simple, the </p><p> Part of the software using C lang
8、uage, in addition to achieve the 8-bit is an integer add, subtract, multiply, in addition to the four basic operations, accompanied by "sin", "cos", "tan", "square", "root&quo
9、t;, "binary to decimal", decimal to binary "," decimal system turn hexadecimal "eight commonly used mathematical functions computing. Such a simple calculator to achieve more features, more pract
10、ical and convenient.</p><p> Key words: multi function; calculator; single chip microcomputer; C language</p><p><b> 目 錄</b></p><p><b> 1 緒論1</b></p&
11、gt;<p><b> 1.1 概述1</b></p><p> 1.2 項(xiàng)目設(shè)計(jì)的具體功能1</p><p> 2 系統(tǒng)設(shè)計(jì)的硬件方案1</p><p> 2.1 硬件方案的論證2</p><p> 2.1.1 方案一:采用FPGA控制2</p><p> 2
12、.1.2 方案二:采用STC89C52控制2</p><p> 2.1.3 方案的比較與選擇2</p><p> 2.2 系統(tǒng)設(shè)計(jì)總框圖2</p><p> 2.3 單元電路的設(shè)計(jì)與分析3</p><p> 2.3.1 單片機(jī)電路板的設(shè)計(jì)與分析3</p><p> 2.3.2 鍵盤模塊電路4<
13、;/p><p> 2.3.3 LCD12864液晶顯示模塊電路4</p><p> 2.3 硬件方案小結(jié)5</p><p> 3 系統(tǒng)設(shè)計(jì)的軟件方案5</p><p> 3.1 系統(tǒng)總體設(shè)計(jì)方案5</p><p> 3.2 單元模塊的軟件設(shè)計(jì)6</p><p> 3.2.1 矩
14、陣鍵盤掃描6</p><p> 3.2.2 顯示部分的軟件設(shè)計(jì)7</p><p> 3.3 軟件設(shè)計(jì)小結(jié)10</p><p><b> 4 系統(tǒng)調(diào)試10</b></p><p> 4.1 硬件系統(tǒng)的調(diào)試10</p><p> 4.2 軟件系統(tǒng)的調(diào)試11</p>
15、<p> 4.3 整機(jī)調(diào)試11</p><p><b> 5 總結(jié)12</b></p><p><b> 參考文獻(xiàn)14</b></p><p><b> 附錄15</b></p><p> 附錄A:電路原理圖15</p><p&
16、gt; 附錄B:PCB電路板圖15</p><p> 附錄C:實(shí)物照片16</p><p> 多功能電子計(jì)算器設(shè)計(jì)</p><p><b> 1 緒論 </b></p><p> 計(jì)算器的出現(xiàn)為我們帶來許多便捷,日常生活中的計(jì)算已經(jīng)少不了它。如今運(yùn)用我們所學(xué)知識(shí),也能夠做出簡(jiǎn)單的計(jì)算器。本文便是講述了如何使
17、用所學(xué)來設(shè)計(jì)一個(gè)計(jì)算器。</p><p><b> 1.1 概述</b></p><p> 隨著科技的日益更新,嵌入式系統(tǒng)與我們的生活愈發(fā)息息相關(guān),一些能夠使用單片機(jī)完成的工具也頻繁出現(xiàn)于日常生活中,比如計(jì)算器。計(jì)算器是現(xiàn)代人發(fā)明的可以進(jìn)行數(shù)字運(yùn)算的電子機(jī)器。電子計(jì)算器功能簡(jiǎn)便,價(jià)格便宜,利于攜帶,穩(wěn)定性好。</p><p> 1.2 項(xiàng)
18、目設(shè)計(jì)的具體功能</p><p> 該設(shè)計(jì)實(shí)現(xiàn)了8位正整數(shù)的加、減、乘、除基本運(yùn)算功能,另有三角函數(shù)運(yùn)算、平方運(yùn)算、開方運(yùn)算、二進(jìn)制轉(zhuǎn)十進(jìn)制功能、十進(jìn)制轉(zhuǎn)二進(jìn)制功能、十進(jìn)制轉(zhuǎn)十六進(jìn)制功能。</p><p> 2 系統(tǒng)設(shè)計(jì)的硬件方案</p><p> 設(shè)計(jì)一款計(jì)算器的方法很多,在此,在了解計(jì)算器各部分組成之后,列出方案,進(jìn)行對(duì)比,選擇出最合適的一種方案。<
19、/p><p> 2.1 硬件方案的論證</p><p> 2.1.1 方案一:采用FPGA控制</p><p> FPGA是一種高密度的可編程邏輯器件,自從Xilinx公司1985年推出第一片F(xiàn)PGA以來,FPGA的集成密度和性能提高很快,其集成密度最高達(dá)500萬門/片以上,系統(tǒng)性能可達(dá)200MHz。由于FPGA器件集成度高,方便易用,開發(fā)和上市周期短,在數(shù)字設(shè)計(jì)
20、和電子生產(chǎn)中得到迅速普及和應(yīng)用,并一度在高密度的可編程邏輯器件領(lǐng)域中獨(dú)占鰲頭。 但是而基于SRAM編程的FPGA,其編程信息需存放在外部存儲(chǔ)器上 ,需外部存儲(chǔ)器芯片 ,且使用方法復(fù)雜 ,保密性差,而其對(duì)于一個(gè)簡(jiǎn)單的計(jì)算器而言,實(shí)用FPGA有點(diǎn)大材小用,成本太高。</p><p> 2.1.2 方案二:采用STC89C52控制</p><p> 單片機(jī)是單片微型機(jī)的簡(jiǎn)稱,故又稱為微控制器
21、MCU(Micro Control Unit)。通常由單塊集成電路芯片組成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器CPU,存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)廣泛用于智能產(chǎn)品,智能儀表,測(cè)控技術(shù),智能接口等,具有操作簡(jiǎn)單,實(shí)用方便,價(jià)格便宜等優(yōu)點(diǎn),而其中AT89S52以MCS-51為內(nèi)核,是單片機(jī)中最典型的代表,應(yīng)用于各種控制領(lǐng)域。</p><
22、p> 2.1.3 方案的比較與選擇</p><p> 通過以上兩種方案論證和對(duì)比,從設(shè)計(jì)的實(shí)用性,方便性和成本出發(fā),選擇了以STC89C52單片機(jī)作為核心控制單元進(jìn)行對(duì)計(jì)算器的設(shè)計(jì)。</p><p> 2.2 系統(tǒng)設(shè)計(jì)總框圖</p><p> 該計(jì)算器設(shè)計(jì)主要由STC89C52單片機(jī)核心控制器,4X4矩陣鍵盤,12864液晶顯示器等組成,它的系統(tǒng)框圖如
23、圖2.1所示。</p><p><b> 圖2.1</b></p><p> 2.3 單元電路的設(shè)計(jì)與分析</p><p> 2.3.1 單片機(jī)電路板的設(shè)計(jì)與分析</p><p> 為了使STC89C52單片機(jī)正常穩(wěn)定工作,除了電源供電(帶有USB電源接入與DC電源接入)、復(fù)位按鍵外,還需要提供晶振電路、旁路電容
24、濾波電路,另附上電源指示燈。具體電路如下。</p><p><b> 圖2.2</b></p><p> 由圖2.2可知,9腳外接的是按鍵復(fù)位電路,18、19腳外接的是晶振電路,這樣,就構(gòu)成了單片機(jī)正常工作的必備電路。同時(shí),為使P0口正常工作,并增加其帶負(fù)載能力,P0口需接了上拉電阻。圖中EA為程序存儲(chǔ)器選擇端,如CPU需要訪問外部程序存儲(chǔ)器,EA端須保持低電平(
25、接地)。在此,STC89C52單片機(jī)的程序存儲(chǔ)器有8k,已經(jīng)足夠,不需要另外添加外部程序儲(chǔ)存器,故EA接高電平。</p><p> 2.3.2 鍵盤模塊電路</p><p> 鍵盤電路用來實(shí)現(xiàn)人的運(yùn)算表達(dá)式輸入,達(dá)到人機(jī)交流的作用。該電路如圖2.3所示,共18個(gè)按鍵,其中K1~K16共16個(gè)按鍵組成一組4*4的矩陣鍵盤,行線1-4行分別接在P2.0~P2.3口,列線1-4列分別接在P2
26、.4~P2.7口,如此實(shí)現(xiàn)P2口對(duì)4*4的矩陣鍵盤的接線。此外,為了方便,另外增加了2個(gè)獨(dú)立按鍵S1,S2。他們分別接在P3.2和P3.3口。</p><p><b> 圖2.3</b></p><p> 2.3.3 LCD12864液晶顯示模塊電路</p><p> LCD是本次設(shè)計(jì)的重要組成部分之一,主要用于顯示輸入和輸出。液晶顯示電
27、路電路如圖2.4所示,LCD數(shù)據(jù)端與單片機(jī)P0口相連,控制端與P1.0~P1.2連接,電位器用于調(diào)節(jié)對(duì)比度。</p><p><b> 圖2.4</b></p><p> 2.3 硬件方案小結(jié)</p><p> 本章主要介紹了計(jì)算器各個(gè)主要硬件模塊,包括:?jiǎn)纹瑱C(jī)MCU模塊,液晶顯示模塊,鍵盤電路,以及一些擴(kuò)展方面的設(shè)計(jì)方案。</p&
28、gt;<p> 3 系統(tǒng)設(shè)計(jì)的軟件方案</p><p> 軟件編程平臺(tái)選擇最常用的keil軟件。由于該程序并未涉及到底層的驅(qū)動(dòng)問題,因此選擇方便快捷的C語言編程。以下重點(diǎn)介紹核心程序算法設(shè)計(jì)。</p><p> 3.1 系統(tǒng)總體設(shè)計(jì)方案</p><p> 在編程中,為了方便調(diào)試,所以采用了模塊化設(shè)計(jì)。該程序主要分為四個(gè)模塊:延時(shí)模塊、12864
29、液晶顯示模塊、按鍵控制與處理計(jì)算函數(shù)表達(dá)式的模塊、主函數(shù)模塊。其中按鍵控制與處理計(jì)算函數(shù)表達(dá)式的模塊又分為五個(gè)子模塊:start(開始)、one(第一個(gè)數(shù)輸入)、two(第二個(gè)數(shù)輸入)、control(特殊功能模塊)、answer(運(yùn)算處理模塊)。從start開始進(jìn)行初始化,自動(dòng)進(jìn)入one,輸入第一個(gè)數(shù)并按下相應(yīng)的特殊功能鍵觸發(fā)來進(jìn)入下一個(gè)環(huán)節(jié)。如果按下加減乘除功能鍵,進(jìn)入two,再按下P3.2等號(hào)功能按鍵進(jìn)入answer;如果按下P3
30、.3特殊功能轉(zhuǎn)換鍵,進(jìn)入contorl,再按下相應(yīng)的功能鍵進(jìn)入answer。</p><p> 3.2 單元模塊的軟件設(shè)計(jì)</p><p> 3.2.1 矩陣鍵盤掃描</p><p> 矩陣鍵盤掃描程序,先讀出P2的低四位,后讀出P2口的高四位,利用一個(gè)switch語句及變量確定某種功能,接著該按鍵功能會(huì)賦值(每個(gè)功能分別有屬于自己特殊的值)到一個(gè)變量上,最后
31、將變量傳輸給單片機(jī),由單片機(jī)進(jìn)行對(duì)該功能的作具體操作。</p><p> 讀鍵程序使用的是掃描法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩層讀鍵。第一層掃描行線,從P2口的值讀入鍵盤信息(行信息),掃到某位為低電平則進(jìn)入第二層;第二層掃描列線,從P2口的值讀入鍵盤信息(列信息),掃到某位為低電平,即可確認(rèn)按鍵位置。</p><p> 獨(dú)立鍵盤只需要按下能出現(xiàn)低電平即出現(xiàn)按鍵,確認(rèn)判斷即可。
32、</p><p><b> 部分相關(guān)代碼如下:</b></p><p><b> P2=0xfe;</b></p><p> if(P2!=0xfe)</p><p><b> {</b></p><p> delay_ms(40);</
33、p><p> if(P2!=0xfe)</p><p><b> {</b></p><p> switch(P2&0xf0)</p><p><b> {</b></p><p> case 0xe0:……; break;</p><p&g
34、t; case 0xd0:……; break;</p><p> case 0xb0:……; break;</p><p> case 0x70:……; break;</p><p><b> }</b></p><p> if(P2!=0xfe)</p><p> delay_ms(
35、30);</p><p> while(P2!=0xfe);</p><p><b> }</b></p><p><b> }</b></p><p> 3.2.2 顯示部分的軟件設(shè)計(jì)</p><p> 顯示模塊程序首先要初始化顯示模塊,其次要能控制光標(biāo)位置。&l
36、t;/p><p> 用sbit指令定義液晶顯示的控制端口,之后設(shè)置初始化、清屏、讀寫操作、顯示位置的首地址等函數(shù)。</p><p><b> 部分相關(guān)代碼如下:</b></p><p> /***********LCD 128*64 控制腳***********/</p><p> sbit LCD_RS = P1^
37、0;</p><p> sbit LCD_RW = P1^1;</p><p> sbit LCD_EN = P1^2;</p><p> /***********讀"忙"***********/</p><p> void Read_busy()</p><p><b> {&
38、lt;/b></p><p> LCD_Data = 0X00;</p><p> LCD_RS = 0;</p><p> LCD_RW = 1;</p><p> LCD_EN = 1;</p><p> while(LCD_Data&0x00);</p><p>
39、 LCD_EN = 0;</p><p><b> }</b></p><p> /***********寫指令************/</p><p> void LCD_write_cmd(uchar cmd)</p><p><b> {</b></p><p&g
40、t; Read_busy(); //每次讀寫進(jìn)行忙判斷</p><p> LCD_RS = 0;</p><p> LCD_RW = 0;</p><p> LCD_Data = cmd;</p><p> LCD_EN = 1; //EN由1——0鎖存有效數(shù)據(jù)</p><p> Delay100us
41、();</p><p> LCD_EN = 0;</p><p><b> }</b></p><p> /***********寫數(shù)據(jù)*************/</p><p> void LCD_write_dat(uchar dat)</p><p><b> {<
42、;/b></p><p> Read_busy(); //每次讀寫進(jìn)行忙判斷</p><p> LCD_RS = 1;</p><p> LCD_RW = 0;</p><p> LCD_Data = dat;</p><p> LCD_EN = 1;</p><p> Del
43、ay100us();</p><p> LCD_EN = 0;</p><p><b> }</b></p><p> /***********讀數(shù)據(jù)*************/</p><p> uchar LCD_read_dat(void)</p><p><b> {&
44、lt;/b></p><p> uchar dat; //定義變量必須放在函數(shù)首位</p><p> Read_busy(); //每次讀寫進(jìn)行忙判斷</p><p> LCD_Data = 0xff;</p><p> LCD_RS = 1;</p><p> LCD_RW = 1;</p&
45、gt;<p> LCD_EN = 1;</p><p> dat=LCD_Data;</p><p> LCD_EN = 0;</p><p> return(dat);</p><p><b> }</b></p><p> /***********清屏********
46、***/</p><p> void LCD_clearscreen()</p><p><b> {</b></p><p> LCD_write_cmd(0x01); //顯示清屏</p><p> Delay100us();</p><p><b> }</b>
47、;</p><p> /***********初始化***********/</p><p> void LCD_Init(void)</p><p><b> {</b></p><p> LCD_write_cmd(0x30); //功能設(shè)置,一次送8位數(shù)據(jù),基本指令集</p><p>
48、; LCD_write_cmd(0x0C); //整理顯示,游標(biāo)off,游標(biāo)位置off</p><p> LCD_write_cmd(0x01); //清除DDRAM</p><p> LCD_write_cmd(0x02); //DDRAM地址歸位</p><p> LCD_write_cmd(0x80); //設(shè)定DDRAM7位地址000,0000到AC
49、</p><p> LCD_clearscreen();</p><p><b> }</b></p><p> /***********設(shè)置漢字 x,y坐標(biāo)***********/</p><p> void LCD_setxy(uchar x,uchar y)</p><p><
50、;b> {</b></p><p><b> switch(y)</b></p><p><b> {</b></p><p> case 1:{LCD_write_cmd(0x80|x);}break;</p><p> case 2:{LCD_write_cmd(0x
51、90|x);}break;</p><p> case 3:{LCD_write_cmd(0x88|x);}break;</p><p> case 4:{LCD_write_cmd(0x98|x);}break;</p><p><b> }</b></p><p><b> }</b>&
52、lt;/p><p> 3.3 軟件設(shè)計(jì)小結(jié)</p><p> 本章主要介紹計(jì)算器各個(gè)軟件模塊詳細(xì)的運(yùn)行流程以及設(shè)計(jì)方案。采用C語言程序設(shè)計(jì)以及模塊化設(shè)計(jì),都使這些程序更加清晰條理。</p><p><b> 4 系統(tǒng)調(diào)試</b></p><p> 4.1 硬件系統(tǒng)的調(diào)試</p><p> 對(duì)
53、硬件的測(cè)試主要由以下步驟:</p><p> ?、貾CB板檢查。用萬用表測(cè)試電路板是否存在短路或者斷路甚至是虛焊,短路則用美工刀分開,斷路則補(bǔ)上錫,虛焊則重新焊一次。之后再用萬用表測(cè)一次,確保無誤后再進(jìn)行下一個(gè)步驟。</p><p> ?、陔娫礄z查。上電通過萬用表測(cè)試各電源輸出值是否正常,或者觀察電源指示燈是否正常點(diǎn)亮。去掉板上各電源輸出的0R電阻,串萬用表測(cè)試電流(萬用表打到電流檔,表筆
54、測(cè)量為電流輸出檔),記錄此時(shí)各電源負(fù)載的工作狀態(tài)和電源的輸出電流,再查芯片數(shù)據(jù)手冊(cè)對(duì)比是否正常。</p><p> ?、壑餍酒瑱z查。主芯片供電正常后,可調(diào)試其最小系統(tǒng)外圍電路。這個(gè)環(huán)節(jié)容易出問題的就是復(fù)位電路工作不正常,主芯片某些引腳虛焊。主芯片的系統(tǒng)配置正確與否暫時(shí)不會(huì)影響到芯片是否工作,可以最后檢查。用萬用表測(cè)量外部晶振腳的電壓,如果顯示在2V附近,說明晶振起振了。測(cè)量復(fù)位信號(hào)電壓是否滿足設(shè)計(jì)要求,上電復(fù)位時(shí)
55、間是否滿足要求;</p><p> ?、軪A腳檢查。用萬用表測(cè)量EA上電平,如果是5V則表明燒片子運(yùn)行的硬件條件已經(jīng)滿足了。</p><p> ?、薮谕ㄐ耪{(diào)試??商峁┐谡{(diào)試的主芯片,需先調(diào)試好串口,再進(jìn)行主芯片其他接口的調(diào)試,以便實(shí)時(shí)打印串口信息,確認(rèn)程序編寫是否有問題。</p><p> 4.2 軟件系統(tǒng)的調(diào)試</p><p> 單
56、擊仿真工具中的暫停按鈕,調(diào)出源碼調(diào)試窗口,窗口右上角提供多個(gè)調(diào)試按鈕。修改程序至編譯后顯示creating hex file from "單片機(jī)測(cè)試"...0 Error(成功創(chuàng)建hex文件,0個(gè)錯(cuò)誤)為止。由于STC89C52芯片的內(nèi)部存儲(chǔ)只有8K,所以還要確保code值不超過8192,否則程序需要優(yōu)化才能成功燒錄。</p><p><b> 4.3 整機(jī)調(diào)試</b>
57、</p><p> 開機(jī)運(yùn)行后,各按鍵如圖4.1所示。其中0’~‘9’為數(shù)字按鍵;“+”“-”“*”“/”為運(yùn)算符號(hào);</p><p><b> 圖4.1</b></p><p> 按下功能切換按鍵后,其中有sin函數(shù),cos函數(shù),tan函數(shù),平方函數(shù),開方函數(shù),十進(jìn)制轉(zhuǎn)十六進(jìn)制功能(d→x),十進(jìn)制轉(zhuǎn)二進(jìn)制功能(d→b),二進(jìn)制轉(zhuǎn)十進(jìn)制
58、功能(b→d),函數(shù)功能按鍵如圖4.2所示。</p><p><b> 圖4.2</b></p><p> 燒錄程序后,嘗試運(yùn)行,看是否正常。圖4.3是抽取隨機(jī)數(shù)值進(jìn)行測(cè)試結(jié)果:</p><p><b> 圖4.3</b></p><p> 經(jīng)過測(cè)試,功能暫未發(fā)現(xiàn)異常。</p>
59、<p><b> 5 總結(jié)</b></p><p> 本次課程設(shè)計(jì)是多功能電子計(jì)算器設(shè)計(jì)。它相比以往的課程設(shè)計(jì)僅考核了我們硬件技術(shù),還考驗(yàn)了我們的軟件編程能力,有著更上一層的要求。</p><p> 有著經(jīng)過幾次課程設(shè)計(jì)之后積累的經(jīng)驗(yàn),設(shè)計(jì)原理圖、PCB圖,不會(huì)向以往那么迷糊。遇到知識(shí)空白區(qū)會(huì)自己主動(dòng)在網(wǎng)上查閱資料。整一個(gè)硬件流程沒有遇到過多的問題。
60、主要問題僅出現(xiàn)在于蜂鳴器。由于使用了5V的有源蜂鳴器,導(dǎo)致蜂鳴器所發(fā)出的聲音過??;換成3.3V的蜂鳴器就能正常鳴叫。發(fā)現(xiàn)還有一種方法,就是在P1.6口(控制蜂鳴器的MCU腳)和VCC之間接一個(gè)上拉電阻,同樣可以解決問題。</p><p> 軟件編程方面我主要是通過C語言來編寫。由于長(zhǎng)期沒有使用keil和編寫C語言,所以我用了較多的時(shí)間在重新探索。雖然花在里面的時(shí)間和心血很多,但每次實(shí)現(xiàn)一個(gè)目標(biāo)任務(wù),我都能獲取到
61、非常良好的成就感,這給予了我非常大的學(xué)習(xí)動(dòng)力。更重要的是,我發(fā)現(xiàn)我以前學(xué)習(xí)編程的方法是嚴(yán)重偏離了軌道,所以效率很低。相信這次的進(jìn)步不僅僅體現(xiàn)在量上,還體現(xiàn)在質(zhì)上。</p><p> 在編寫多功能電子計(jì)算器的程序之前,我先查閱資料,構(gòu)思設(shè)計(jì)。本設(shè)計(jì)所涉及的按鍵數(shù)量是條件限制的,所以我就思索著如何能實(shí)現(xiàn)所有按鍵。這樣我就必須先做好計(jì)劃,預(yù)算,還要思考如何看起來會(huì)讓人覺得更直觀,如何安置會(huì)讓人使用起來如何更便捷。要做
62、到計(jì)算器的簡(jiǎn)明易懂,就不能隨便潦草就開始編程。</p><p> 初次寫出來的程序超過了STC89C52RC的RAM內(nèi)存最大值8K,經(jīng)過多種方式嘗試后,在不更換芯片或者是外加外部數(shù)據(jù)存儲(chǔ)器的情況下,我將程序更進(jìn)一步地優(yōu)化了,把不必要的程序剔除。除此之外,我了解到,STC89C54的RAM內(nèi)存是STC89C52的2倍,即16K,而上網(wǎng)查閱,更推薦使用STC12C5A60S2制作計(jì)算器,其內(nèi)存有足足64K,它的指令
63、代碼完全兼容傳統(tǒng)8051,但在同樣晶振的情況下,速度快8-12倍,更適合滿足制作多功能科學(xué)計(jì)算的需求。</p><p> 本次課程設(shè)計(jì)讓我對(duì)電路設(shè)計(jì)有了進(jìn)一步的掌握,對(duì)系統(tǒng)的分析和問題的解決有了切身的認(rèn)識(shí)和體會(huì),在此實(shí)踐過程中增長(zhǎng)了知識(shí)、豐富了經(jīng)驗(yàn),提高了解決問題的能力。</p><p><b> 參考文獻(xiàn)</b></p><p> [1
64、]譚浩強(qiáng).C程序設(shè)計(jì)(第四版)[M].北京:清華大學(xué)出版社,2010.174-200.</p><p> [2]彭真真.單片機(jī)區(qū)別LCD12864的應(yīng)用——科學(xué)計(jì)算器的設(shè)計(jì)與制作[J/0L].中國知網(wǎng)www.cnki.net,2011.07</p><p><b> 附錄</b></p><p><b> 附錄A:電路原理圖&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告---多功能計(jì)算器
- 單片機(jī)原理課程設(shè)計(jì)——oled電子計(jì)算器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---計(jì)算器
- 電子計(jì)算器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)——計(jì)算器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告-- 簡(jiǎn)易計(jì)算器設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)計(jì)算器
- 硬件課程設(shè)計(jì)報(bào)告(電子計(jì)算器)
- 單片機(jī)計(jì)算器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--計(jì)算器
- 單片機(jī)課程設(shè)計(jì)-計(jì)算器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---簡(jiǎn)易計(jì)算器
- 單片機(jī)課程設(shè)計(jì)報(bào)告計(jì)算器2
- 單片機(jī)課程設(shè)計(jì)報(bào)告-簡(jiǎn)易計(jì)算器
- 簡(jiǎn)易計(jì)算器單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告計(jì)算器4
- 單片機(jī)系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)--計(jì)算器
- 51單片機(jī)計(jì)算器設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)---單片機(jī)簡(jiǎn)易計(jì)算器設(shè)計(jì)
- 計(jì)算器畢業(yè)論文-- 基于單片機(jī)的電子計(jì)算器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論