基于.單片機(jī)的lcd1602的多功能計(jì)算器_第1頁(yè)
基于.單片機(jī)的lcd1602的多功能計(jì)算器_第2頁(yè)
基于.單片機(jī)的lcd1602的多功能計(jì)算器_第3頁(yè)
基于.單片機(jī)的lcd1602的多功能計(jì)算器_第4頁(yè)
基于.單片機(jī)的lcd1602的多功能計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

...wd......wd......wd...單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)基于51單片機(jī)的多功能計(jì)算器機(jī)電工程學(xué)院電子信息工程1班:20134081006指導(dǎo)教師:邵海龍職稱(chēng):講師完成日期:2015年9月22日評(píng)定成績(jī):關(guān)鍵詞:?jiǎn)纹瑱C(jī);液晶顯示;計(jì)算器;目錄引言………………………….31單片機(jī)及其應(yīng)用……………………...3.1.1單片機(jī)介紹………………31.2單片機(jī)的應(yīng)用……………41.3STC89C52單片機(jī)…………42液晶屏LCD1602原理及應(yīng)用……………………....52.1液晶屏LCD1602介紹及工作原理…....…………………..52.2液晶屏LCD1602的功能及應(yīng)用…………53設(shè)計(jì)思路、仿真及調(diào)試……………...73.1設(shè)計(jì)方法…………………73.2硬件設(shè)計(jì)…………………….………….73.2.1復(fù)位電路……………………….....73.2.2液晶屏LCD1602顯示電路…...…………………83.2.34*4鍵盤(pán)的設(shè)計(jì)……………….....93.2.5多功能計(jì)算器的總電路............................................103.3軟件設(shè)計(jì)……………………103.4軟件仿真…………………173.5硬件調(diào)試……………………..…………..184完畢語(yǔ)……………………..…………..18謝辭…………..……………...18參考文獻(xiàn)………..………….191單片機(jī)及其應(yīng)用1.1單片機(jī)介紹單片機(jī)〔Microcontrollers〕是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能1.2單片機(jī)的應(yīng)用STC89C52是STC公司推出的一款超強(qiáng)抗干擾,加密性強(qiáng),在線(xiàn)可編程,高速,低功耗CMOS8位單片機(jī)。片內(nèi)含8kbytes的可反復(fù)擦寫(xiě)Flash只讀程序存儲(chǔ)器和256bytes的隨機(jī)數(shù)據(jù)存儲(chǔ)器〔RAM〕,器件采用STC公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器〔CPU〕和Flash存儲(chǔ)單元,功能強(qiáng)大的STC89C52單片機(jī)適合于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。1.3STC89C52單片機(jī)3.2STC89C52外部構(gòu)造及特性其外形封裝有兩種方式:雙列直插式40腳封裝〔DIP〕和方形44腳封裝〔PLCC〕,直插式40腳封裝〔DIP〕和外部總線(xiàn)構(gòu)造如圖2和圖3所示:圖3.1STC89C52引腳排列圖3.2外部總線(xiàn)STC89C52的4個(gè)8位I/O口的功能說(shuō)明如下:〔1〕P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1〞時(shí),引腳用作高阻抗輸入。當(dāng)訪(fǎng)問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻?!?〕P1口:P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入〔P1.0/T2〕和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。〔3〕P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVX@DPTR〕時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVX@RI〕訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。〔4〕P3口:P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫(xiě)“1〞時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流〔IIL〕。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。P3口亦作為AT89C52特殊功能〔第二功能〕使用,如下所示:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外部中斷0輸入口)P3.3INT1(外部中斷1輸入口)P3.4TO(定時(shí)器0外部輸入)P3.5TI(定時(shí)器1外部輸入)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào))P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào))3.3STC89C52內(nèi)部組成STC89C52單片機(jī)在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器、看門(mén)狗和多種功能的I/O口設(shè)備的等,相當(dāng)于一臺(tái)計(jì)算機(jī)所需要的根本功能部件。STC89C52單片機(jī)內(nèi)包含的具體局部如下:一個(gè)8位CPU。一個(gè)片內(nèi)振蕩器及時(shí)鐘電路。8KBFlash程序存儲(chǔ)器。256BRAM數(shù)據(jù)存儲(chǔ)器。三個(gè)16位定時(shí)器/計(jì)數(shù)器??蓪ぶ?4KB的外部數(shù)據(jù)存儲(chǔ)器和64KB的外部程序存儲(chǔ)器空間的控制電路。32條可編程的I/O線(xiàn)〔4組8位并行I/O端口〕。一個(gè)可編程全雙工串口通信。8個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷構(gòu)造。STC89C52單片機(jī)的框圖如圖3.3所示,各功能部件由內(nèi)部總線(xiàn)連接在一起。圖3.3STC89C52單片機(jī)框圖2液晶屏LCD1602原理及應(yīng)用2.1液晶屏LCD1602介紹LCD1602已很普遍了,具體介紹我就不多說(shuō)了,市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全一樣的,因此HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大局部的字符型液晶。字符型LCD通常有14條引腳線(xiàn)或16條引腳線(xiàn)的LCD,多出來(lái)的2條線(xiàn)是背光電源線(xiàn)VCC(15腳)和地線(xiàn)GND(16腳)2.2液晶屏LCD1602的功能及應(yīng)用5.2.11602LCD液晶顯示屏1602LCD顯示屏是一種工業(yè)字符型液晶,所謂1602是指顯示的內(nèi)容為16*2,即可以顯示兩行,每行16個(gè)字符,目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全一樣的,因此基于HD44780寫(xiě)的控制程序可以很方便地應(yīng)用于市面上大局部的字符型液晶。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比方大寫(xiě)的英文字母“A〞的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A〞。其管腳功能表和存放器選擇控制表如表5.1和表5.1所示:表5.1管腳功能表引腳符號(hào)功能說(shuō)明1VSS一般接地2VDD接電源〔+5V〕3V0液晶顯示器比照度調(diào)整端,接正電源時(shí)比照度最弱,接地電源時(shí)比照度最高〔比照度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影〞,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整比照度〕。4RSRS為存放器選擇,高電平1時(shí)選擇數(shù)據(jù)存放器、低電平0時(shí)選擇指令存放器。5R/WR/W為讀寫(xiě)信號(hào)線(xiàn),高電平(1)時(shí)進(jìn)展讀操作,低電平(0)時(shí)進(jìn)展寫(xiě)操作。6EE(或EN)端為使能(enable)端,下降沿使能。7DB0底4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)0位〔最低位〕8DB1底4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)1位9DB2底4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)2位10DB3底4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)3位11DB4高4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)4位12DB5高4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)5位13DB6高4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)6位14DB7高4位三態(tài)、雙向數(shù)據(jù)總線(xiàn)7位〔最高位〕〔也是busyflag〕15BLA背光電源正極16BLK背光電源負(fù)極表5.2存放器選擇控制表RSR/W操作說(shuō)明00寫(xiě)入指令存放器〔去除屏等〕01讀busyflag〔DB7〕,以及讀取位址計(jì)數(shù)器〔DB0~DB6〕值10寫(xiě)入數(shù)據(jù)存放器〔顯示各字型等〕11從數(shù)據(jù)存放器讀取數(shù)據(jù)3設(shè)計(jì)思路、仿真及調(diào)試3.1設(shè)計(jì)方法本電路設(shè)計(jì)采用STC89C51單片機(jī)為核心,利用晶振產(chǎn)生頻率為1HZ的時(shí)鐘脈沖信號(hào),利用液晶屏LCD1602顯示計(jì)算器,通過(guò)對(duì)STC89C51單片機(jī)的編程控制液晶屏LCD1602的顯示。顯示計(jì)算和簡(jiǎn)易計(jì)算的信息同在LCD1602.3.2硬件設(shè)計(jì)本系統(tǒng)以STC89C51單片機(jī)為核心,本系統(tǒng)選用12MHZ的晶振,使單片機(jī)有合理的運(yùn)行速度。起振電容30pf對(duì)振蕩器的頻率上下,振蕩器的穩(wěn)定性和起振的快速性影響較適宜,復(fù)位電路為按鍵高電平復(fù)位。3.2.1復(fù)位電路為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一局部,復(fù)位電路的根本功能是:系統(tǒng)上電時(shí)提供復(fù)位信號(hào),直至系統(tǒng)電源穩(wěn)定后,撤銷(xiāo)復(fù)位信號(hào)。為可靠起見(jiàn),電源穩(wěn)定后還要經(jīng)一定的延遲才撤銷(xiāo)復(fù)位,以防電源開(kāi)關(guān)或電源插頭分-合過(guò)程中引起的抖動(dòng)而影響復(fù)位。當(dāng)單片機(jī)的復(fù)位引腳出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。所以復(fù)位引腳的電容大一點(diǎn)沒(méi)多大關(guān)系,頂多是復(fù)位時(shí)間長(zhǎng)一點(diǎn);但如果電容太小,高電平持續(xù)時(shí)間太短,則單片機(jī)無(wú)法正常復(fù)位,就不能工作,電容通常取10UF或22UF,鋁電解電容即可。單片機(jī)的復(fù)位電路在剛接通電時(shí),剛開(kāi)場(chǎng)電容是沒(méi)有電的,電容內(nèi)的電阻很低,通電后,5V的電源通過(guò)電阻給電解電容進(jìn)展充電,電容兩端的電會(huì)由0V慢慢的升到4V左右〔此時(shí)間很短一般小于0.3秒〕,正因?yàn)檫@樣,復(fù)位腳由低電位升到高電位,引起了內(nèi)部電路的復(fù)位工作;當(dāng)按下復(fù)位鍵時(shí),電容兩端放電,電容又回到0V了,于是又進(jìn)展了一次復(fù)位工作。電路圖如圖5.1。圖5.1復(fù)位電路3.2.2液晶屏LCD1602顯示電路3.2.34*4鍵盤(pán)的設(shè)計(jì)其功能如下3.2.5多功能計(jì)算器的總電路............................................143.3軟件設(shè)計(jì)程序如下:#include<reg51.h>#definelcd1602_DATAPINSP0#defineuintunsignedint#defineucharunsignedcharsbitlcd1602_E=P2^7;sbitlcd1602_RS=P2^6;sbitlcd1602_RW=P2^5;ucharcodedigit[]={"0123456789+-x/=."};ucharcodekey_code[]={0xd7,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0x7e,0x7d,0x7b,0x77,0xb7,0xe7};ucharcodestr[]="InputData:";ucharkey;voiddelay1ms(ucharc)//誤差0us{uchara,b; for(;c>0;c--) { for(b=199;b>0;b--) { for(a=1;a>0;a--); } } }voidlcdwritecom(ucharcom){lcd1602_E=0; lcd1602_RS=0; lcd1602_RW=0; lcd1602_DATAPINS=com; delay1ms(1); lcd1602_E=1;delay1ms(5); lcd1602_E=0; }voidlcdwritedata(unsignedchardat){lcd1602_E=0; lcd1602_RS=1; lcd1602_RW=0; lcd1602_DATAPINS=dat; delay1ms(1); lcd1602_E=1;delay1ms(5); lcd1602_E=0;}voidinit(){lcdwritecom(0x38); lcdwritecom(0x0c); lcdwritecom(0x06); lcdwritecom(0x01); lcdwritecom(0x80);}voidkey_scan(){ucharscan1,scan2,keycode,i;P1=0xf0;scan1=P1;if((scan1&0xf0)!=0xf0) {//判斷是否按鍵delay1ms(15);//延時(shí)消陡scan1=P1;if((P1&0xf0)!=0xf0) {P1=0x0f;scan2=P1;keycode=scan1|scan2;}for(i=0;i<16;i++) {if(keycode==key_code[i]) {//查表得鍵值key=i;}}}else{P1=0xff;//P1口寫(xiě)1,輸入狀態(tài)}}voidmain(){uchari; ucharx,y,sign=0; ucharflag; inta,b;P1=0xff;//寫(xiě)1,讀狀態(tài)delay1ms(15);init(); lcdwritecom(0x80);for(i=0;i<16;i++) {lcdwritedata(str[i]);delay1ms(10);}lcdwritecom(0xc0);delay1ms(5);//lcdwritedata('0');while(1) {P1=0xf0;if((P1&0xf0)!=0xf0) {delay1ms(15);if((P1&0xf0)!=0xf0){key_scan(); if(key<=9) {if(sign==0) { lcdwritedata(digit[key]); if(x==0) a=key; if(x==1) a=a*10+key; if(x==2) a=a*10+key; x++;} else { lcdwritedata(digit[key]); if(y==0) b=key; if(y==1) b=b*10+key; if(y==2) b=b*10+key; y++;}delay1ms(200); } if(key==15) { lcdwritedata(digit[key]); delay1ms(200);} if((key==10)||(key==11)||(key==12)||(key==13)||(key==14)) { if(key==10) { sign++; flag=1; lcdwritedata(digit[key]); delay1ms(200);} elseif(key==11) { sign++; flag=2; lcdwritedata(digit[key]); delay1ms(200);} elseif(key==12) { sign++; flag=3; lcdwritedata(digit[key]); delay1ms(200);} elseif(key==13) { sign++; flag=4; lcdwritedata(digit[key]); delay1ms(200);} elseif(key==14){ sign=0; lcdwritedata(digit[key]); delay1ms(200); switch(flag) { case1:a=a+b;break; case2:a=a-b;break; case3:a=a*b;break; case4:a=a/b;break; } if(a>0&&a<10) { lcdwritedata(digit[a%10]);} if(a>9&&a<100) { lcdwritedata(digit[a/10]); lcdwritedata(digit[a%10]);} if(a>99&&a<1000) { lcdwritedata(digit[a/100]); lcdwritedata(digit[a/10%10]); lcdwritedata(digit[a%10]);} if(a>999&&a<10000) { lcdwritedata(digit[a/1000]); lcdwritedata(digit[a%1000/100]); lcdwritedata(digit[a%1000/10%10]); lcdwritedata(digit[a%10]);}}} }}}}3.4軟件仿真在硬件設(shè)計(jì)完成后,利用軟件進(jìn)展仿真,以盡可能減少做板子的次數(shù),這次我采用了protues軟件進(jìn)展仿真如圖多功能計(jì)算器的的顯示3.5硬件調(diào)試……………………..…………..164完畢語(yǔ)在用單片機(jī)實(shí)現(xiàn)多功能計(jì)算的設(shè)計(jì)中使用了STC89C51,LCD1602及其4*4鍵盤(pán)的使用,在設(shè)計(jì)過(guò)程中我通過(guò)在網(wǎng)上和圖書(shū)館查閱資料,收集了相關(guān)的單片機(jī)和液晶屏LCD160

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論