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

下載本文檔

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

文檔簡介

單片機(jī)技術(shù)課程設(shè)計(jì)說明書計(jì)算器院、部電氣與信息工程學(xué)院學(xué)生姓名指導(dǎo)教師職稱教授專業(yè)通信工程班級(jí)完成時(shí)間課程設(shè)計(jì)任務(wù)書課程單片機(jī)技術(shù)課程設(shè)計(jì)題目數(shù)字電子鐘數(shù)字頻率計(jì)數(shù)字電壓表交通燈搶答器密碼鎖波形發(fā)生器數(shù)字溫度計(jì)計(jì)算器數(shù)字式秒表適用班級(jí)電子11012、通信11023通信1101電子1103時(shí)間指導(dǎo)教師單片機(jī)技術(shù)課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目數(shù)字電子鐘、數(shù)字頻率計(jì)、數(shù)字電壓表、交通燈、搶答器、密碼鎖、波形發(fā)生器、數(shù)字溫度計(jì)、計(jì)算器、數(shù)字式秒表。二、適用班級(jí)電子11012、通信11023、通信1101電子1103三、指導(dǎo)教師王韌四、設(shè)計(jì)目的與任務(wù)學(xué)生通過理論設(shè)計(jì)和實(shí)物制作解決相應(yīng)的實(shí)際問題,鞏固和運(yùn)用在單片機(jī)技術(shù)中所學(xué)的理論知識(shí)和實(shí)驗(yàn)技能,掌握單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,提高設(shè)計(jì)能力和實(shí)踐動(dòng)手能力,為以后從事電子電路設(shè)計(jì)、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。五、設(shè)計(jì)內(nèi)容與要求設(shè)計(jì)內(nèi)容1、數(shù)字電子鐘設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動(dòng)/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動(dòng)/調(diào)整鍵,則電子鐘進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,調(diào)整結(jié)束后可按啟動(dòng)/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。2、數(shù)字頻率計(jì)設(shè)計(jì)一個(gè)能夠測量周期性矩形波信號(hào)的頻率、周期、脈寬、占空比的頻率計(jì)。該頻率計(jì)上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入測量準(zhǔn)備狀態(tài)。按頻率測量鍵則測量頻率;按周期測量鍵則測量周期;按脈寬測量鍵則測量脈寬;按占空比測量鍵則測量占空比。3、數(shù)字電壓表設(shè)計(jì)一個(gè)能夠測量直流電壓的數(shù)字電壓表。測量電壓范圍05V,測量精度小數(shù)點(diǎn)后兩位。該電壓表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入測量準(zhǔn)備狀態(tài),按測量開始鍵則開始測量,并將測量值顯示在顯示器上,按測量結(jié)束鍵則自動(dòng)返回“P”狀態(tài)。4、交通燈設(shè)計(jì)一個(gè)具有特定功能的十字路口交通燈。該交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。按開始鍵則開始工作,按結(jié)束鍵則返回“P”狀態(tài)。要求甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,甲車道為主車道,每次通車時(shí)間為60秒,乙車道為次車道,每次通車時(shí)間為30秒,要求黃燈亮3秒,并且1秒閃爍一次。有應(yīng)急車輛出現(xiàn)時(shí),紅燈全亮,應(yīng)急車輛通車時(shí)間10秒,同時(shí)禁止其他車輛通過。5、搶答器設(shè)計(jì)一個(gè)具有特定功能的搶答器。該搶答器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開始按鈕后,搶答開始并限定時(shí)間30S;10S內(nèi)無人搶答,蜂鳴器發(fā)出音響;主持人按下開始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯示器顯示違規(guī)臺(tái)號(hào),違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺(tái)號(hào),蜂鳴器發(fā)出音響,其它搶答按鈕無效;正常搶答下,從按下?lián)尨鸢粹o開始30S內(nèi),答完按鈕沒按下,則作超時(shí)處理,超時(shí)處理時(shí),違規(guī)指示燈亮,顯示器顯示違規(guī)臺(tái)號(hào)。蜂鳴器發(fā)出音響;各臺(tái)數(shù)字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過主持人按復(fù)位按鈕。6、密碼鎖設(shè)計(jì)一個(gè)具有特定功能的密碼鎖。該密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。該密碼鎖具有系統(tǒng)原始密碼888888,用戶可以設(shè)定并存儲(chǔ)用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示密碼輸入正確提示信息,否則,顯示密碼輸入錯(cuò)誤提示信息。7、波形發(fā)生器設(shè)計(jì)一個(gè)具有特定功能的波形發(fā)生器。該波形發(fā)生器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。該波形發(fā)生器可以分別產(chǎn)生幅值05V、頻率100HZ100KHZ范圍內(nèi)的三角波、鋸齒波、方波、梯形波和正弦波。8、數(shù)字溫度計(jì)設(shè)計(jì)一個(gè)具有特定功能的數(shù)字溫度計(jì)。該數(shù)字溫度計(jì)上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。測量溫度范圍099,測量精度小數(shù)點(diǎn)后兩位,可以通過開始和結(jié)束鍵控制數(shù)字溫度計(jì)的工作狀態(tài)。9、計(jì)算器設(shè)計(jì)一個(gè)具有特定功能的計(jì)算器。該計(jì)算器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。能實(shí)現(xiàn)(1)基本的加、減、乘、除、平方、開方;(2)三角函數(shù)運(yùn)算;(3)十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算;(4)其他功能。10、數(shù)字式秒表設(shè)計(jì)一個(gè)具有特定功能的數(shù)字式秒表。該數(shù)字式秒表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。該數(shù)字式秒表應(yīng)具有開始、暫停、連續(xù)、清零和停止功能。設(shè)計(jì)要求1、以上課題可以任選其一或多選,學(xué)生也可以自擬課題;2、編程語言匯編或C51;3、計(jì)算機(jī)打印單片機(jī)技術(shù)課程設(shè)計(jì)說明書一份;4、設(shè)計(jì)時(shí)間一周;5、實(shí)物制作;6、人員分組一人一組一實(shí)物。六、單片機(jī)技術(shù)課程設(shè)計(jì)說明書正文主要內(nèi)容參照“單片機(jī)技術(shù)課程設(shè)計(jì)說明書正文主要內(nèi)容”文件。七、單片機(jī)技術(shù)課程設(shè)計(jì)說明書書寫規(guī)范格式參照“單片機(jī)技術(shù)課程設(shè)計(jì)說明書書寫規(guī)范格式”文件。八、參考資料1、馬忠梅,單片機(jī)的C語言WINDOWS環(huán)境編程寶典M,北京北京航空航天大學(xué)出版社,20036;2、李光飛,單片機(jī)C程序設(shè)計(jì)指導(dǎo)M,北京北京航空航天大學(xué)出版社,200301;3、李光飛,單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)M,北京北京航空航天大學(xué)出版社,20049。電氣自動(dòng)化教研室摘要計(jì)算器在人們的日常中是比較的常見的電子產(chǎn)品之一。計(jì)算器可以快速的計(jì)算出較大的數(shù)據(jù)。單片機(jī)現(xiàn)在在高速的發(fā)展,而單片機(jī)的運(yùn)行速度非??欤詥纹瑱C(jī)經(jīng)常作為一個(gè)產(chǎn)品的核心?;谶@樣的理念,本次的單片機(jī)計(jì)算器的課程設(shè)計(jì)用單片機(jī)AT89S52作為核心。P1口作為輸入端,外接4X4的鍵盤,通過鍵盤掃描來對(duì)輸入數(shù)的控制,并外接驅(qū)動(dòng)電路,系統(tǒng)采用LCD作為顯示器,軟件程序采用均采用C語言編寫,便于計(jì)算,匯編不擅長計(jì)算。報(bào)告詳細(xì)介紹了整個(gè)系統(tǒng)的硬件組成結(jié)構(gòu)、工作原理和系統(tǒng)的軟件程序設(shè)計(jì)。計(jì)算器將完成的功能有加,減,乘,除等功能。關(guān)鍵詞計(jì)算器;單片機(jī);LCD顯示器ABSTRACTHECALCULATORISONEOFTHECOMMONELECTRONICPRODUCTSINTHEPEOPLEDAILYCALCULATORCANCALCULATEALARGEDATASINGLECHIPNOWINDEVELOPMENTOFHIGHSPEED,ANDTHERUNNINGSPEEDSINGLECHIPISVERYFAST,SOOFTENASACOREPRODUCTBASEDONTHISIDEA,THECURRICULUMDESIGNOFTHESINGLECHIPCALCULATORUSEDAT89S52MICROCONTROLLERASTHECORETHEP1PORTASTHEINPUT,EXTERNAL4X4KEYBOARD,THROUGHTHEKEYBOARDTOINPUTTHENUMBEROFSCANNINGCONTROL,ANDEXTERNALDRIVINGCIRCUIT,THESYSTEMADOPTSLCDASTHEDISPLAY,THESOFTWAREPROGRAMISWRITTENBYCLANGUAGE,EASYTOCALCULATE,THEASSEMBLYISNOTGOODATCALCULATIONTHESOFTWAREPROGRAMDESIGNREPORTDETAILINGTHEENTIRESYSTEMHARDWARESTRUCTURE,WORKINGPRINCIPLEANDSYSTEMTHECALCULATORWILLCOMPLETETHEFUNCTIONOFADDITION,SUBTRACTION,MULTIPLICATION,DIVISIONANDOTHERFUNCTIONSKEYWORDSCALCULATORSINGLECHIPMICROCOMPUTERLCDDISPLAY目錄1課程設(shè)計(jì)要求及總體方案介紹111設(shè)計(jì)課題任務(wù)112設(shè)計(jì)課題要求113設(shè)計(jì)課題總體方案12硬件系統(tǒng)設(shè)計(jì)221硬件電路設(shè)計(jì)原理框圖222硬件電路設(shè)計(jì)方案設(shè)計(jì)223各部分硬件電路設(shè)計(jì)23設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)531設(shè)計(jì)課題使用單片機(jī)資源的情況532設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹533設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖734設(shè)計(jì)課題軟件系統(tǒng)程序清單94系統(tǒng)設(shè)計(jì)結(jié)果分析及結(jié)論1041系統(tǒng)使用說明1042系統(tǒng)實(shí)物調(diào)試結(jié)果1043系統(tǒng)設(shè)計(jì)誤差分析1144設(shè)計(jì)體會(huì)11結(jié)束語12致謝13參考文獻(xiàn)14附錄15附錄A原理圖15附錄B頂層PCB圖附錄C底層PCB圖附錄E實(shí)物圖19附錄F程序清單20附錄G元件清單341課程設(shè)計(jì)要求及總體方案介紹11設(shè)計(jì)課題任務(wù)課題簡易計(jì)算器設(shè)計(jì)一個(gè)具有特定功能的計(jì)算器。該計(jì)算器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”。12設(shè)計(jì)課題要求計(jì)算器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P”,進(jìn)入準(zhǔn)備工作狀態(tài)。能實(shí)現(xiàn)(1)基本的加、減、乘、除、平方、開方;(2)三角函數(shù)運(yùn)算;(3)十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算;(4)其他功能。12設(shè)計(jì)課題總體方案計(jì)算器主要是由AT89S52芯片及一些輸入輸出設(shè)備構(gòu)成,上電即顯示P。能實(shí)現(xiàn)簡單的加減乘除運(yùn)算,以及一些其它功能,外部外加一個(gè)44矩陣鍵盤,來作為輸入設(shè)備,外加LCD12864來作為顯示設(shè)備,當(dāng)按下數(shù)字鍵時(shí),LCD12864顯示數(shù)字以及位數(shù);然后按下運(yùn)算鍵;再按下數(shù)字鍵,或先按下特殊特殊運(yùn)算符在按下數(shù)字鍵,LCD12864顯示數(shù)字,再按下等于后能實(shí)現(xiàn)一些簡單的運(yùn)算。按下清零后為下一次計(jì)算做好準(zhǔn)備。系統(tǒng)總框圖如圖1所示。單片機(jī)AT89S52液晶顯示電路晶振電路下載口電路復(fù)位電路電源電路矩形鍵盤電路圖1系統(tǒng)總原理框圖2硬件系統(tǒng)設(shè)計(jì)21硬件電路設(shè)計(jì)原理框圖本設(shè)計(jì)主要采用單片機(jī)最小系統(tǒng),電源模塊,輸入模塊和輸出模塊來實(shí)現(xiàn),通過對(duì)控制器進(jìn)行編程。使其對(duì)輸入模塊的信號(hào)進(jìn)行處理計(jì)算,然后通過輸出模塊反饋給使用者以計(jì)算結(jié)果。22硬件電路設(shè)計(jì)方案設(shè)計(jì)由44矩陣鍵盤作為硬件電路的數(shù)據(jù)輸入端,44矩陣鍵盤可以解決獨(dú)立鍵盤占用IO口的缺點(diǎn)。再由LCD12864作為作為硬件電路的數(shù)據(jù)顯示端,LCD12862擁有豐富的中文字庫及字符,可以方便的顯示各種中文以及字符。23各部分硬件電路設(shè)計(jì)231電源模塊電路對(duì)于一個(gè)完整的電子設(shè)計(jì)來講,首要問題就是為整個(gè)系統(tǒng)提供電源供電模塊,電源模塊的可靠是系統(tǒng)平穩(wěn)運(yùn)行的前提和基礎(chǔ)。本次課程設(shè)計(jì)的電源模塊是由計(jì)算機(jī)的USB口供給的。電源電路中接入了電源指示LED,接入一個(gè)LED的限流電阻,還有一個(gè)開關(guān)。232復(fù)位電路復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。233振蕩電路由于單片機(jī)內(nèi)部有振蕩電路,所以外部只要連接一個(gè)晶振和兩個(gè)電容即可,電容容量這次選擇的是33PF。234輸入模塊電路本設(shè)計(jì)使用鍵盤輸入預(yù)置用于計(jì)算或計(jì)時(shí),按鍵較多。若采用獨(dú)立按鍵,需頻繁按鍵,為軟件設(shè)計(jì)增加負(fù)擔(dān),且操作界面不友好。若采用矩陣式按鍵,可以方便地輸入一個(gè)數(shù)值,使操作界面更具人性化,節(jié)約了寶貴的I/O口資源。通過對(duì)比,故采用44矩陣鍵盤作為系統(tǒng)輸入模塊。235顯示模塊電路FYD128640402B是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標(biāo)一級(jí)、二級(jí)簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864,內(nèi)置8192個(gè)1616點(diǎn)漢字,和128個(gè)168點(diǎn)ASCII字符集利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示84行1616點(diǎn)陣的漢字也可完成圖形顯示低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。236控制器模塊電路考慮到設(shè)計(jì)功能需要,控制器的功能用于外部鍵盤信號(hào)的接收和識(shí)別、液晶模塊的顯示控制、復(fù)位電路等,我們選擇了AT89S52系列單片機(jī),具有反應(yīng)速度極快,工作效率特高的特點(diǎn)。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲(chǔ)器。使用ATMEL公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上FLASH允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能8K字節(jié)FLASH,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0HZ靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。237下載口電路模塊下載口電路就是在原理電路圖上加上一個(gè)USB下載口,下載口再與單片機(jī)I/O口線連接。238各個(gè)按鍵的功能根據(jù)系統(tǒng)的基本要求,采用由16個(gè)鍵構(gòu)成的行列式鍵盤分別接在AT89S52單片機(jī)的P10P17,相對(duì)于獨(dú)立式鍵盤節(jié)省了大量口線和空間,給電路設(shè)計(jì)帶來極大的方便,不過也相應(yīng)的增加了程序的設(shè)計(jì)難度。采用矩陣式連接方法,組成44式16個(gè)按鍵,分別代表“0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F?!逼渲袛?shù)字鍵“09”只有一個(gè)功能就是輸入數(shù)字;字母鍵“E、F”也只有一個(gè)功能分別為清零、等于號(hào)。字母“C、D”分別都有兩個(gè)功能當(dāng)先按下數(shù)字鍵的時(shí)候,字母“C、D”的功能分別為乘法、除法。沒有按下數(shù)字鍵,先去按“C、D”鍵時(shí),“C、D”的功能分別為十進(jìn)制轉(zhuǎn)換成十六進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制。字母“A、B”分別具有3個(gè)功能,當(dāng)先按下數(shù)字鍵的時(shí)候,字母“A、B”的功能分別是加法、減法。沒有按下數(shù)字鍵,先去按“A、B”時(shí),按第一下A鍵時(shí),A的功能是開方,再按一下A鍵時(shí),A的功能是SIN函數(shù)。按第一下B鍵時(shí),B鍵的功能是平方,再按一下B鍵時(shí),B鍵的功能是COS函數(shù)。3設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)31設(shè)計(jì)課題使用單片機(jī)資源的情況AT89S52的片外資源P0、P1基本輸入輸出口;P37E12864液晶;P31RS12864液晶;P36RW12864液晶;XTAL1、XTAL2晶振輸入;RST復(fù)位輸入。32設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹321主函數(shù)模塊主函數(shù)VOIDMAIN,用于設(shè)置初始化界面,調(diào)用各個(gè)主要模塊,實(shí)現(xiàn)簡單計(jì)算器的整體功能。322矩陣式鍵盤模塊矩陣式鍵盤軟件設(shè)計(jì)主要通過在主程序中調(diào)用鍵掃函數(shù)KEYSCAN來執(zhí)行相應(yīng)的功能,單片機(jī)P1口在復(fù)位之后保持高電平,當(dāng)鍵按下相應(yīng)口線為低電平,經(jīng)過相應(yīng)判別過程判斷鍵是真的按了,執(zhí)行相關(guān)鍵功能程序,完成相應(yīng)操作。323液晶顯示模塊液晶顯示是通過在主程序中調(diào)用相關(guān)的液晶功能函數(shù)來執(zhí)行相應(yīng)功能,經(jīng)過液晶接在單片機(jī)上的P0及P3部分管腳,通過液晶功能函數(shù)LCD12864()的調(diào)用對(duì)液晶進(jìn)行操作,將各類指令寫入液晶模塊,用來驅(qū)動(dòng)液晶以實(shí)現(xiàn)不同的顯示功能,達(dá)到界面顯示的要求。324數(shù)據(jù)處理模塊通過調(diào)用處理函數(shù)LCD_SETLCD功能設(shè)置函數(shù);DISPLAYUCHARY,UCHARX,UCHARP顯示函數(shù);CHECKBUSY判忙;DELAYUINTCOUNT延時(shí)函數(shù);WRITEUCHARCOMMAND寫命令函數(shù);READUCHARDATA0寫數(shù)據(jù)函數(shù);JISHUVOID顯示緩沖;JISUANVOID處理函數(shù);KEYPROC鍵功能程序;DISDS顯示函數(shù);先在鍵盤上輸入一個(gè)數(shù)字,然后輸入一個(gè)運(yùn)算符,再輸入一個(gè)數(shù)字,最好通過處理函數(shù)運(yùn)算出結(jié)果并把結(jié)果顯示在液晶上或者先輸入一個(gè)特殊的運(yùn)算符,再輸入一個(gè)數(shù)字,最夠通過處理函數(shù)運(yùn)算出結(jié)果并把結(jié)果顯示在液晶上。33設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖331主函數(shù)開始判斷是否有數(shù)字鍵按下計(jì)算器界面顯示初始界面P調(diào)延時(shí)程序顯示器顯示第一個(gè)輸入數(shù)字輸入運(yùn)算符號(hào)顯示器顯示第二個(gè)輸入數(shù)字輸入等于號(hào)輸入特殊運(yùn)算符顯示器顯示輸入的數(shù)字顯示結(jié)果清零結(jié)束調(diào)顯示函數(shù)液晶顯示學(xué)校,班級(jí)和姓名調(diào)延時(shí)程序YN圖2主函數(shù)流程框圖332矩陣式鍵盤開始是否有鍵按下延時(shí)消去抖動(dòng)確定鍵是否按下查詢是那個(gè)鍵按下按鍵是否釋放結(jié)束YYY圖3鍵掃描函數(shù)流程框圖333液晶顯示開始給液晶發(fā)送寫指令送顯示符地址給液晶發(fā)送寫數(shù)據(jù)指令送顯示符字符是否送完結(jié)束Y圖4液晶顯示函數(shù)流程框圖34設(shè)計(jì)課題軟件系統(tǒng)程序清單見附錄F4系統(tǒng)設(shè)計(jì)結(jié)果分析及結(jié)論41系統(tǒng)使用說明基于51單片機(jī)的計(jì)算器的使用規(guī)則如下計(jì)算器上電后,顯示P,1秒后顯示計(jì)算界面,通過鍵盤輸入,在有數(shù)值輸入的情況下,鍵盤的運(yùn)算符號(hào)鍵分別為“,/”;在沒有數(shù)值輸入的情況下,鍵盤的運(yùn)算符號(hào)鍵分別為“平方(正弦),開方(余弦),1016,1610”,其中“平方(正弦)”和“開方(余弦)”為復(fù)用鍵,可以相互切換;“清零鍵”使計(jì)算器進(jìn)入初始計(jì)算界面;“”鍵為計(jì)算鍵,并顯示計(jì)算值。本次計(jì)算器的鍵盤設(shè)計(jì)共有十六個(gè)鍵分別為“09”數(shù)字鍵,“,/”運(yùn)算符號(hào)鍵與特殊功能運(yùn)算鍵復(fù)用,清零鍵“AC”,計(jì)算鍵“”。42系統(tǒng)實(shí)物調(diào)試結(jié)果基本排除了應(yīng)用系統(tǒng)的硬件故障后,進(jìn)入軟件的綜合調(diào)試階段。通過不斷地修改程序與調(diào)試,基于51單片機(jī)的計(jì)算器實(shí)物顯示的效果如圖所示。圖5進(jìn)入畫面圖6初始畫面圖7SIN函數(shù)畫面圖8COS函數(shù)畫面圖9平方畫面圖10開方畫面43系統(tǒng)設(shè)計(jì)誤差分析基于51單片機(jī)的計(jì)算取設(shè)計(jì)完成,進(jìn)行實(shí)物調(diào)試,其計(jì)算值與實(shí)際值存在誤差,分析可能造成的誤差原因如下(1)、硬件設(shè)計(jì)電路不夠完善;(2)、在程序設(shè)計(jì)時(shí),計(jì)算器的計(jì)算范圍不是很大。(3)、在程序設(shè)計(jì)時(shí),對(duì)小數(shù)位的值取的精度不是很高。44設(shè)計(jì)體會(huì)對(duì)于這次課程設(shè)計(jì),我經(jīng)歷了課程設(shè)計(jì)制作過程中的畫硬件電路、系統(tǒng)軟件的設(shè)計(jì)、以及一些瑣碎的事情。在這次的課程設(shè)計(jì)中,我發(fā)現(xiàn)了自己的很多不足之處。在這次課程設(shè)計(jì)中,我們遇到了硬件及軟件的多方面問題。在硬件方面的問題比較少,因?yàn)樵韴D是老師提供的。但是在做元器件的封裝的時(shí)候,我沒有把單片機(jī)的底座做進(jìn)去,因此單片機(jī)周圍的原件一般是斜斜地。在軟件方面的問題就比較多了,編程方面常出現(xiàn)語法錯(cuò)誤,而我的C語言又差勁,所以遇到了很多的困難。但是在同學(xué)的幫助下終于把程序給編寫出來了。當(dāng)然我的作品有很多不足的地方,比如結(jié)構(gòu)比較簡陋,外形不精美,程序的結(jié)構(gòu)沒有得到更好的優(yōu)化。用我單片機(jī)老師的話來講,我的程序是“廢話連篇,不動(dòng)腦子去編寫?!庇梦业腅DA老師的話來講,我畫的PCB做出來的板子沒有任何工藝價(jià)值,完全不符合工藝上的標(biāo)準(zhǔn)。結(jié)束語本次課程設(shè)計(jì)是最后一次單片機(jī)作業(yè),計(jì)算器是較復(fù)雜的課題之一。所以我花了很大一部分時(shí)間在這個(gè)上面。但是最后我成功了。在這次設(shè)計(jì)中,我也遇到了不少問題,拿到這個(gè)課題之后,我首先想到的是用匯編編譯程序,因?yàn)閱纹瑱C(jī)課上老師主要講的是匯編。但是老師在講解課程設(shè)計(jì)的各個(gè)課題的時(shí)候說“計(jì)算器的程序最好最好用C編譯”。因?yàn)镃最大的優(yōu)勢在于它的計(jì)算能力,這是匯編所不具有的長處。我當(dāng)時(shí)就傻了。因?yàn)槲业腃語言很差勁啊。在做課程設(shè)計(jì)的時(shí)候,面臨的第一個(gè)問題就是按鍵的設(shè)置,由于我以前做的板子上面只有9個(gè)按鍵,這遠(yuǎn)遠(yuǎn)不能滿足計(jì)算器的要求,故我想到了用行列式鍵盤,但行列式鍵盤老師沒教,只教了我們獨(dú)立式鍵盤,所以就要自學(xué)行列式鍵盤,知道寫行列式鍵掃的程序之后,第一個(gè)問題解決了。然后是顯示,顯示要用液晶顯示。這個(gè)老師也沒教,所以又去自學(xué)了液晶顯示。這兩個(gè)大難題解決了,后面的就是各個(gè)功能的實(shí)現(xiàn),在這幾個(gè)功能,我認(rèn)為加減是最容易做的,其次是乘除,再就是平方、開方,還有正余弦以及十進(jìn)制與十六進(jìn)制的相互轉(zhuǎn)換。在學(xué)習(xí)C語言的時(shí)候,我最害怕的就是編寫程序,覺得它很枯燥、乏味。但在學(xué)習(xí)匯編的時(shí)候我發(fā)現(xiàn)編寫程序的的快樂。通過這一學(xué)期的學(xué)習(xí),我真正的了解了實(shí)踐是檢驗(yàn)理論的唯一標(biāo)準(zhǔn)。致謝首先我要感謝王韌老師,本次單片機(jī)課程設(shè)計(jì)是在王韌老師的悉心指導(dǎo)下完成的,老師知識(shí)淵博,讓我在實(shí)踐的過程中避免了很多的錯(cuò)誤。在單片機(jī)學(xué)習(xí)的過程中,王老師王老師常說嚴(yán)師出高徒,所以王韌老師在學(xué)習(xí)的各個(gè)方面都對(duì)我們比較嚴(yán)格。由于王韌老師的嚴(yán)格,所以在單片機(jī)的理論課和實(shí)驗(yàn)課上我多學(xué)到了很多有用的知識(shí)。在理論課上,王老師不僅教我們單片機(jī)的知識(shí),還教了一些我們做人的道理。同時(shí)感謝通信1102班所有同學(xué),他們不但給我提供了一個(gè)很好的學(xué)習(xí)空間,而且經(jīng)常不厭其煩的指導(dǎo)我。最后,再次感謝再這次設(shè)計(jì)中所有幫助過我的良師益友,設(shè)計(jì)的成功離不開你們對(duì)我的指導(dǎo)與幫助。參考文獻(xiàn)1馬忠梅單片機(jī)C程序設(shè)計(jì)M,北京北京航空航天大學(xué)出版社,2007MAZHONGMEIMICROCONTROLLERCPROGRAMMINGM,BEIJINGBEIJINGAEROSPACEUNIVERSITYPRESS,20072李廣弟單片機(jī)基礎(chǔ)M,北京北京航空航天大學(xué)出版社,2007LIGUANGDIMICROCONTROLLERBASEDONM,BEIJINGBEIJINGAEROSPACEUNIVERSITYPRESS,20073曹巧媛單片機(jī)原理及應(yīng)用M,北京電子工業(yè)出版社,19977CAOQIAOYUANMICROCONTROLLERTHEORYANDAPPLICATIONSM,BEIJINGELECTRONICINDUSTRYPRESS,199774張洪潤蘭清華,單片機(jī)應(yīng)用技術(shù)教程M,北京清華大學(xué)出版社,199711ZHANGHONGRUN,LANQINGHUA,MCUAPPLICATIONTECHNOLOGYTUTORIALM,BEIJINGTSINGHUAUNIVERSITYPRESS,199711附錄E實(shí)物圖附錄F程序清單/標(biāo)題液晶顯示器顯示界面科學(xué)型計(jì)算器功能(1)基本的加、減、乘、除、平方、開方;(2)三角函數(shù)運(yùn)算;(3)十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算;日期20131225作者張付宏/INCLUDEINCLUDEINCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEULONGUNSIGNEDLONGSBITRSP31SBITRWP36SBITENP37UCHARCOMMAND,DATA0UCHARKEY,P,BB,AA1,A0,B0,C0INTI,N0ULONGK0FLOATDS,MUCHARDISMSM100UCHARCODEYEJINGTABLE0X30,0X31,0X32,0X33,0X34,0X35,0X36,0X37,0X38,0X39,0X41,0X42,0X43,0X44,0X45,0X46,0X2E,0X48,0X20/09VOIDLCD_CLEARVOID/清屏函數(shù)VOIDLCD_SET/LCD功能設(shè)置函數(shù)VOIDDISPLAYUCHARY,UCHARX,UCHARP/顯示函數(shù)VOIDCHECKBUSY/判忙VOIDDELAYUINTCOUNT/延時(shí)函數(shù)VOIDWRITEUCHARCOMMAND/寫命令函數(shù)VOIDREADUCHARDATA0/寫數(shù)據(jù)函數(shù)VOIDJISHUVOID/顯示緩沖VOIDJISUANVOID/處理函數(shù)VOIDKEYPROC/鍵功能程序VOIDDISDS/顯示函數(shù)/行列式鍵盤掃描函數(shù)/UCHARKEY_SUCHARSCAN,TMP/列號(hào),行號(hào)P10XF0/發(fā)全行0掃描碼IFP1/延時(shí)去抖IFP1WHILESCAN/輸出行掃描碼IFP1DELAY20/按鍵判釋放RETURNSCAN|TMP/還回鍵值ELSESCANSCANDSDSMDSELSEDSDSMDISPLAY4,3,“BREAKCASE2DSKDSMDSBREAKCASE3DSKDSM/DSBREAKCASE4KK360DSKIFDS180DSDS180DSDS31415926536DSDS/1800DSSINDSDISPLAY4,3,“ELSEDSDS31415926536DSDS/1800DSSINDSBREAKCASE5DSKDSDSDSBREAKCASE6KK90KK360DSKIFDS180DSDS180DSDS31415926536DSDS/1800DSSINDSDISPLAY4,3,“ELSEDSDS31415926536DSDS/1800DSSINDSBREAKCASE7DSKDSSQRTDSBREAKCASE8FORI8I0IDISMSMIK16KK/16DISMSM917GOTONNCASE9JISHUDSDISMSM2268435456DISMSM316777216DISMSM41048576DISMSM565536DISMSM64096DISMSM7256DISMSM816DISMSM91DEFAULTBREAKIFDS1KDS1000000000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM5DISMSM4DISMSM4DISMSM3DISMSM3DISMSM2DISMSM2DISMSM1DISMSM1DISMSM0DISMSM116DISMSM00ELSEIFDS10KDS1000000000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM5DISMSM4DISMSM4DISMSM3DISMSM3DISMSM2DISMSM2DISMSM1DISMSM116ELSEIFDS100KDS100000000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM5DISMSM4DISMSM4DISMSM3DISMSM3DISMSM2DISMSM216ELSEIFDS1000KDS10000000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM5DISMSM4DISMSM4DISMSM3DISMSM316ELSEIFDS10000KDS1000000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM5DISMSM4DISMSM416ELSEIFDS100000KDS100000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM6DISMSM5DISMSM516ELSEIFDS1000000KDS10000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM7DISMSM6DISMSM616ELSEIFDS10000000KDS1000JISHUDISMSM9DISMSM8DISMSM8DISMSM7DISMSM716ELSEJISHUNNCOMMAND0X9ADISDS/鍵功能程序/VOIDKEYPROCSWITCHKEY_SCASE0X11NP0KK10PJISHUFORI0I9NIDISMSMI18IFC0COMMAND0X92DISDSAA0BREAKELSECOMMAND0X8ADISDSAA0BREAKCASE0X21NP1KK10PJISHUFORI0I9NIDISMSMI18IFC0COMMAND0X92DISDSAA0BREAKELSECOMMAND0X8ADISDSAA0BREAKCASE0X41NP2KK10PJISHUFORI0I9NIDISMSMI18IFC0COMMAND0X92DISDSAA0BREAKELSECOMMAND0X8ADISDSAA0BREAKCASE0X81NP3KK10PJISHUFORI0I9NIDISMSMI18IFC0COMMAN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論