單片機技術課程設計報告簡易計算器_第1頁
單片機技術課程設計報告簡易計算器_第2頁
單片機技術課程設計報告簡易計算器_第3頁
單片機技術課程設計報告簡易計算器_第4頁
單片機技術課程設計報告簡易計算器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課設報告題 目: 簡易計算器班 級: 姓 名: 學 號: 指導老師: 日 期: 2013 年 10月 11 日 目錄一前言1二課程設計的目的和要求121課程設計的目的12.2課程設計要求1三總體設計23.1基本工作原理23.2系統(tǒng)組成單元2四硬件設計鍵盤輸入部分44.1簡易計算器的電路原理圖44.2系統(tǒng)選用的主要元器件54.2.1 AT89C51簡介 54.2.2 LCD顯示器(1602)54.2.3其他6五軟件設計6六 心得體會7七源程序8單片機課程設計報告 簡易計算器一前言單片機課程設計是單片機原理課程的實踐性環(huán)節(jié)。是在我們學習了單片機原理等課程的基礎上進行的綜合性訓練,我們組這

2、次訓練的課題是基于單片機簡易計算器。此次課程設計的課題是針對我們學習單片機原理這門課程的基礎上,并在其輔助下完成的。此次進行的綜合性訓練,不僅培養(yǎng)了我如何合理運用課本中所學到的理論知識與實踐緊密結合,獨立解決實際問題的能力二課程設計的目的和要求21課程設計的目的首先,綜合運用單片機原理與接口技術課程中所學到的理論知識來獨立完成此次設計課題,培養(yǎng)我們查閱手冊和文獻資料的良好習慣,以及培養(yǎng)我們獨立分析和解決實際問題的能力。其次,在學習了理論知識的基礎上進一步熟悉常用電子器件的類型和特征,并掌握合理選用的原則。再次,就是學會電子電路的安裝與調(diào)試技能,以及與同組的組員的團結合作的精神。2.2課程設計要

3、求利用89c51作為主控器組成一個四則運算的計算器。第 1 頁 共 16 頁福建工程軟件學院三總體設計3.1基本工作原理本設計利用AT89C51單片機來控制液晶顯示器和矩陣式鍵盤,實現(xiàn)了簡易的計算器功能。通過鍵盤輸入需要計算的計算式子,該式子會顯示在液晶的第一行,當鍵入等于號后,計算結果會顯示在液晶的第二行。本設計中液晶選用1602字符型液晶顯示器,顯示參與運算的數(shù)字以及最終的運算結果,鍵盤采用4*4矩陣式鍵盤。3.2系統(tǒng)組成單元中央處理單元CPU選用AT89C51對整個系統(tǒng)進行控制:它將數(shù)據(jù)輸出到顯示屏,實現(xiàn)鍵入、輸出的顯示;根據(jù)鍵盤輸入調(diào)用相應鍵處理子程序,實現(xiàn)數(shù)據(jù)的計算;單片機的管腳如下

4、所述:AT89C51的管腳分布如下:VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 /PSEN:外部程序存儲

5、器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN 3信號將不出現(xiàn)。/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。電源電路部分在各種電子設備中,直流穩(wěn)壓電源是必不可少的組成部分,它是電子設備唯一能量來源,它的設計思路是根據(jù)我們以前學過的模電電子技術,要想得到我們所要的+6V輸出電壓,就需將交流220V的電壓經(jīng)過變壓器、整流電路、濾波電路和穩(wěn)壓電路四個部分。LCD輸

6、出顯示部分1602采用標準的16腳接口,其管腳功能介紹如下:1:VSS為電源地2:VDD接5V電源正極3:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高。4:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。 5:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。 6:E(或EN)端為使能(enable)端。714:D0D7為8位雙向數(shù)據(jù)端。1516:空腳或背燈電源。15腳背光正極,16腳背光負極。四硬件設計鍵盤輸入部分矩陣式鍵盤由行線和列線組成,按鍵位于行和列的交叉點上,很明顯,在所需按鍵數(shù)量較多時能節(jié)省很多的I/O口。4.1

7、簡易計算器的電路原理圖4.2系統(tǒng)選用的主要元器件4.2.1 AT89C51簡介 AT89C51是一種帶4K 字節(jié)FLASH 存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位 微處理器,俗稱 單片機。AT89C2051是一種帶2K 字節(jié)閃存可編程可擦除 只讀存儲器的 單片機。 單片機的可擦除 只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失 存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍 存儲器組合在單個芯片中,ATME

8、L的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51 單片機為很多 嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。4.2.2 LCD顯示器(1602) 工業(yè)字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示

9、的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。4.2.3其他 按鈕開關(SW-PB),排阻(9管腳,1k),電阻、電容、晶振、發(fā)光二極管等若干。五軟件設計該計算器系統(tǒng)的軟件設計分為以下幾個模塊:(1)主程序模塊,(2)鍵盤掃描及識別子程序,(3)顯示子程序,(4)計算程序。6 得體會 此次課程設計我和同學通過團隊合作完成,從中知道以及團隊合作的重要性。本次課程設計用到了單片機的多塊模塊,團隊分工完成彼此的模塊,從而提高團隊合作的效率。實驗的完成讓我更加了解單片機的編程和單片機的各個模塊的工作方式。七源程序如下:#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; /當前按鍵字符long a,b;/前后兩數(shù) char flag;/是否有符號鍵按下char f;/判斷按下的是什么符號鍵(+,-,*,/)long result;/運算結果static int16 c=0;/字符顯示位置void delay_ms(int8 z); / 延遲函數(shù)void wait_busy();/忙等待void write_cmd(int8 cmd);/寫指令void write_data(int8

12、dat);/寫數(shù)據(jù)void Initialize_LCD(); /1602 初始化void LCD_ShowString(int8 r, int8 c,int8 *str); /在指定位置顯示字符串void keyboard();/鍵盤按鍵掃描void digit_a();/加減乘除處理void digit_b();/a和b運算的結果在1602上顯示void digit_c();/把輸入的數(shù)存入到a和b/-/名稱:lcd1602液晶屏控制與顯示程序/-/-/延時/-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);/-/寫指令/-void write_cmd(int8 cmd) P0=cmd; RS=0; RW=0; EN=0; wait_busy(); EN=1; /-/寫數(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(' ');/-/鍵盤按鍵掃描/-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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論