![單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告簡(jiǎn)易計(jì)算器_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/13432db5-b022-46d4-b142-8c89133172fe/13432db5-b022-46d4-b142-8c89133172fe1.gif)
![單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告簡(jiǎn)易計(jì)算器_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/13432db5-b022-46d4-b142-8c89133172fe/13432db5-b022-46d4-b142-8c89133172fe2.gif)
![單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告簡(jiǎn)易計(jì)算器_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/13432db5-b022-46d4-b142-8c89133172fe/13432db5-b022-46d4-b142-8c89133172fe3.gif)
![單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告簡(jiǎn)易計(jì)算器_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/13432db5-b022-46d4-b142-8c89133172fe/13432db5-b022-46d4-b142-8c89133172fe4.gif)
![單片機(jī)技術(shù)課程設(shè)計(jì)報(bào)告簡(jiǎn)易計(jì)算器_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/13432db5-b022-46d4-b142-8c89133172fe/13432db5-b022-46d4-b142-8c89133172fe5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課設(shè)報(bào)告題 目: 簡(jiǎn)易計(jì)算器班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)老師: 日 期: 2013 年 10月 11 日 目錄一前言1二課程設(shè)計(jì)的目的和要求121課程設(shè)計(jì)的目的12.2課程設(shè)計(jì)要求1三總體設(shè)計(jì)23.1基本工作原理23.2系統(tǒng)組成單元2四硬件設(shè)計(jì)鍵盤(pán)輸入部分44.1簡(jiǎn)易計(jì)算器的電路原理圖44.2系統(tǒng)選用的主要元器件54.2.1 AT89C51簡(jiǎn)介 54.2.2 LCD顯示器(1602)54.2.3其他6五軟件設(shè)計(jì)6六 心得體會(huì)7七源程序8單片機(jī)課程設(shè)計(jì)報(bào)告 簡(jiǎn)易計(jì)算器一前言單片機(jī)課程設(shè)計(jì)是單片機(jī)原理課程的實(shí)踐性環(huán)節(jié)。是在我們學(xué)習(xí)了單片機(jī)原理等課程的基礎(chǔ)上進(jìn)行的綜合性訓(xùn)練,我們組這
2、次訓(xùn)練的課題是基于單片機(jī)簡(jiǎn)易計(jì)算器。此次課程設(shè)計(jì)的課題是針對(duì)我們學(xué)習(xí)單片機(jī)原理這門(mén)課程的基礎(chǔ)上,并在其輔助下完成的。此次進(jìn)行的綜合性訓(xùn)練,不僅培養(yǎng)了我如何合理運(yùn)用課本中所學(xué)到的理論知識(shí)與實(shí)踐緊密結(jié)合,獨(dú)立解決實(shí)際問(wèn)題的能力二課程設(shè)計(jì)的目的和要求21課程設(shè)計(jì)的目的首先,綜合運(yùn)用單片機(jī)原理與接口技術(shù)課程中所學(xué)到的理論知識(shí)來(lái)獨(dú)立完成此次設(shè)計(jì)課題,培養(yǎng)我們查閱手冊(cè)和文獻(xiàn)資料的良好習(xí)慣,以及培養(yǎng)我們獨(dú)立分析和解決實(shí)際問(wèn)題的能力。其次,在學(xué)習(xí)了理論知識(shí)的基礎(chǔ)上進(jìn)一步熟悉常用電子器件的類(lèi)型和特征,并掌握合理選用的原則。再次,就是學(xué)會(huì)電子電路的安裝與調(diào)試技能,以及與同組的組員的團(tuán)結(jié)合作的精神。2.2課程設(shè)計(jì)要
3、求利用89c51作為主控器組成一個(gè)四則運(yùn)算的計(jì)算器。第 1 頁(yè) 共 16 頁(yè)福建工程軟件學(xué)院三總體設(shè)計(jì)3.1基本工作原理本設(shè)計(jì)利用AT89C51單片機(jī)來(lái)控制液晶顯示器和矩陣式鍵盤(pán),實(shí)現(xiàn)了簡(jiǎn)易的計(jì)算器功能。通過(guò)鍵盤(pán)輸入需要計(jì)算的計(jì)算式子,該式子會(huì)顯示在液晶的第一行,當(dāng)鍵入等于號(hào)后,計(jì)算結(jié)果會(huì)顯示在液晶的第二行。本設(shè)計(jì)中液晶選用1602字符型液晶顯示器,顯示參與運(yùn)算的數(shù)字以及最終的運(yùn)算結(jié)果,鍵盤(pán)采用4*4矩陣式鍵盤(pán)。3.2系統(tǒng)組成單元中央處理單元CPU選用AT89C51對(duì)整個(gè)系統(tǒng)進(jìn)行控制:它將數(shù)據(jù)輸出到顯示屏,實(shí)現(xiàn)鍵入、輸出的顯示;根據(jù)鍵盤(pán)輸入調(diào)用相應(yīng)鍵處理子程序,實(shí)現(xiàn)數(shù)據(jù)的計(jì)算;單片機(jī)的管腳如下
4、所述:AT89C51的管腳分布如下:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門(mén)電流。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門(mén)電流。P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門(mén)電流。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門(mén)電流。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 /PSEN:外部程序存儲(chǔ)
5、器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN 3信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。電源電路部分在各種電子設(shè)備中,直流穩(wěn)壓電源是必不可少的組成部分,它是電子設(shè)備唯一能量來(lái)源,它的設(shè)計(jì)思路是根據(jù)我們以前學(xué)過(guò)的模電電子技術(shù),要想得到我們所要的+6V輸出電壓,就需將交流220V的電壓經(jīng)過(guò)變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分。LCD輸
6、出顯示部分1602采用標(biāo)準(zhǔn)的16腳接口,其管腳功能介紹如下:1:VSS為電源地2:VDD接5V電源正極3:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高。4:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。 5:RW為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。 6:E(或EN)端為使能(enable)端。714:D0D7為8位雙向數(shù)據(jù)端。1516:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。四硬件設(shè)計(jì)鍵盤(pán)輸入部分矩陣式鍵盤(pán)由行線和列線組成,按鍵位于行和列的交叉點(diǎn)上,很明顯,在所需按鍵數(shù)量較多時(shí)能節(jié)省很多的I/O口。4.1
7、簡(jiǎn)易計(jì)算器的電路原理圖4.2系統(tǒng)選用的主要元器件4.2.1 AT89C51簡(jiǎn)介 AT89C51是一種帶4K 字節(jié)FLASH 存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位 微處理器,俗稱(chēng) 單片機(jī)。AT89C2051是一種帶2K 字節(jié)閃存可編程可擦除 只讀存儲(chǔ)器的 單片機(jī)。 單片機(jī)的可擦除 只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失 存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍 存儲(chǔ)器組合在單個(gè)芯片中,ATME
8、L的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51 單片機(jī)為很多 嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。4.2.2 LCD顯示器(1602) 工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專(zhuān)門(mén)用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示
9、的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。4.2.3其他 按鈕開(kāi)關(guān)(SW-PB),排阻(9管腳,1k),電阻、電容、晶振、發(fā)光二極管等若干。五軟件設(shè)計(jì)該計(jì)算器系統(tǒng)的軟件設(shè)計(jì)分為以下幾個(gè)模塊:(1)主程序模塊,(2)鍵盤(pán)掃描及識(shí)別子程序,(3)顯示子程序,(4)計(jì)算程序。6 得體會(huì) 此次課程設(shè)計(jì)我和同學(xué)通過(guò)團(tuán)隊(duì)合作完成,從中知道以及團(tuán)隊(duì)合作的重要性。本次課程設(shè)計(jì)用到了單片機(jī)的多塊模塊,團(tuán)隊(duì)分工完成彼此的模塊,從而提高團(tuán)隊(duì)合作的效率。實(shí)驗(yàn)的完成讓我更加了解單片機(jī)的編程和單片機(jī)的各個(gè)模塊的工作方式。七源程序如下:#include<reg51.h>#inc
10、lude<intrins.h>#define int8 unsigned char#define int16 unsigned intsbit EN=P23; /定義引腳sbit RS=P24;sbit RW=P20;sbit busy=P07;char code num= 7,8,9,'*', 4,5,6,'/', 1,2,3,'-', 'c',0,'=','+'char code num1='0','1','2','3'
11、,'4','5','6','7','8','9'static char ckey; /當(dāng)前按鍵字符long a,b;/前后兩數(shù) char flag;/是否有符號(hào)鍵按下char f;/判斷按下的是什么符號(hào)鍵(+,-,*,/)long result;/運(yùn)算結(jié)果static int16 c=0;/字符顯示位置void delay_ms(int8 z); / 延遲函數(shù)void wait_busy();/忙等待void write_cmd(int8 cmd);/寫(xiě)指令void write_data(int8
12、dat);/寫(xiě)數(shù)據(jù)void Initialize_LCD(); /1602 初始化void LCD_ShowString(int8 r, int8 c,int8 *str); /在指定位置顯示字符串void keyboard();/鍵盤(pán)按鍵掃描void digit_a();/加減乘除處理void digit_b();/a和b運(yùn)算的結(jié)果在1602上顯示void digit_c();/把輸入的數(shù)存入到a和b/-/名稱(chēng):lcd1602液晶屏控制與顯示程序/-/-/延時(shí)/-void delay_ms(int8 z) / 延遲函數(shù)int8 y;for(z;z>0;z-)for(y=0;y<1
13、10;y+); /-/忙等待/-void wait_busy() do P0=0XFF; RS=0; RW=1; EN=0; delay_ms(1); EN=1; while(busy=1);/-/寫(xiě)指令/-void write_cmd(int8 cmd) P0=cmd; RS=0; RW=0; EN=0; wait_busy(); EN=1; /-/寫(xiě)數(shù)據(jù)/-void write_data(int8 dat) P0=dat; RS=1; RW=0; EN=0; wait_busy(); EN=1; /-/1602 初始化/-void Initialize_LCD() write_cmd(0x
14、38); write_cmd(0x0c); write_cmd(0x06); write_cmd(0x80); write_cmd(0x01); a=0;b=0; flag=0; result=0; c=0; ckey=0;/-/在指定位置顯示字符串/-void LCD_ShowString(int8 r, int8 c,int8 *str) int8 i=0; code int8 DDRAM=0X80,0XC0; write_cmd(DDRAMr | c); for(i=0;stri && i<16;i+) write_data(stri); for(;i<16;
15、i+) write_data(' ');/-/鍵盤(pán)按鍵掃描/-void keyboard() int16 h_code,l_code,key_code; P3=0xf0; h_code=P3; h_code=h_code&0xf0; delay_ms(200); P3=0x0f; l_code=P3; l_code=l_code&0x0f; delay_ms(200); key_code=h_code|l_code; if(key_code!=0xFF) switch(key_code) case 0xee: LCD_ShowString(0,c+,"
16、7");ckey=num0;digit_c(); break; /輸入字符7 case 0xde: LCD_ShowString(0,c+,"8");ckey=num1;digit_c(); break; /輸入字符8 case 0xbe: LCD_ShowString(0,c+,"9");ckey=num2;digit_c(); break; /輸入字符9 case 0x7e: LCD_ShowString(0,c+,"*");flag=1;f=0; break; /輸入字符* case 0xed: LCD_ShowStr
17、ing(0,c+,"4");ckey=num4;digit_c();break; /輸入字符4 case 0xdd: LCD_ShowString(0,c+,"5");ckey=num5;digit_c(); break; /輸入字符5 ; case 0xbd: LCD_ShowString(0,c+,"6");ckey=num6;digit_c();break; /輸入字符6 case 0x7d: LCD_ShowString(0,c+,"/");flag=1;f=1; break; /輸入字符 case 0xe
18、b: LCD_ShowString(0,c+,"1");ckey=num8;digit_c(); break; /輸入字符1 case 0xdb: LCD_ShowString(0,c+,"2");ckey=num9; digit_c(); break; /輸入字符2 case 0xbb: LCD_ShowString(0,c+,"3");ckey=num10;digit_c(); break; /輸入字符3 case 0x7b: LCD_ShowString(0,c+,"-");flag=1;f=2; break
19、; /輸入字符- case 0xe7: flag=0;f=4;digit_a();break; /輸入字符c case 0xd7: LCD_ShowString(0,c+,"0");ckey=num13;digit_c();break; /輸入字符0 case 0xb7: digit_a();break; /輸入字符= case 0x77: LCD_ShowString(0,c+,"+");flag=1;f=3; break; /輸入字符+ default : break; if(c>15) c=0; /-/ 數(shù)據(jù)處理/-void digit_a()/加減乘
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民培訓(xùn)計(jì)劃與實(shí)施手冊(cè)
- 加工非標(biāo)制作合同范本
- 2025年度影視剪輯技術(shù)支持與咨詢服務(wù)合同
- 2025年度生物質(zhì)能發(fā)電項(xiàng)目投資與建設(shè)合同
- 公司資金借貸合同范例
- 供酒供銷(xiāo)合同范例
- 2025年度洗滌設(shè)備行業(yè)技術(shù)培訓(xùn)與咨詢服務(wù)合同
- 加工箍筋合同范本
- 買(mǎi)賣(mài)購(gòu)房指標(biāo)合同范例
- 樂(lè)有假租房合同范本
- 元宇宙視域下非遺保護(hù)與傳播途徑探究
- 2025年買(mǎi)賣(mài)個(gè)人房屋合同(4篇)
- 2025代運(yùn)營(yíng)合同范本
- 武漢2025年湖北武漢理工大學(xué)管理人員招聘筆試歷年參考題庫(kù)附帶答案詳解
- 第十一章《功和機(jī)械能》達(dá)標(biāo)測(cè)試卷(含答案)2024-2025學(xué)年度人教版物理八年級(jí)下冊(cè)
- 初三物理常識(shí)試卷單選題100道及答案
- 使用錯(cuò)誤評(píng)估報(bào)告(可用性工程)模版
- 高中英語(yǔ)新課程標(biāo)準(zhǔn)解讀課件
- 客服人員績(jī)效考核評(píng)分表
- 變壓器檢修風(fēng)險(xiǎn)分析及管控措施
評(píng)論
0/150
提交評(píng)論