




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 單片機(jī)技術(shù)課程設(shè)計(jì)說明書 計(jì)算器 院 、 部: 電氣與信息工程學(xué)院 學(xué)生姓名: 指導(dǎo)教師: 職稱: 教授 專 業(yè): 通信工程 班 級: 通信1102班 完成時(shí)間: 2013年12月 湖南工學(xué)院課程設(shè)計(jì)任務(wù)書課 程: 單片機(jī)技術(shù) 課程設(shè)計(jì)題目: 數(shù)字電子鐘 數(shù)字頻率計(jì) 數(shù)字電壓表 交通燈 搶答器 密碼鎖 波形發(fā)生器 數(shù)字溫度計(jì) 計(jì)算器 數(shù)字式秒表 適 用 班 級: 電子11012、通信11023 通信1101電子1103 時(shí) 間: 20132014學(xué)年第一學(xué)期 指 導(dǎo) 教 師: 單片機(jī)技術(shù)課程設(shè)計(jì)任務(wù)書一、設(shè)計(jì)題目:數(shù)字電子鐘、數(shù)字頻率計(jì)、數(shù)字電壓表、交通燈、搶答器、密碼鎖、波形發(fā)生器、數(shù)字溫
2、度計(jì)、計(jì)算器、數(shù)字式秒表。二、適用班級:電子11012、通信11023、通信1101電子1103三、指導(dǎo)教師:王韌四、設(shè)計(jì)目的與任務(wù):學(xué)生通過理論設(shè)計(jì)和實(shí)物制作解決相應(yīng)的實(shí)際問題,鞏固和運(yùn)用在單片機(jī)技術(shù)中所學(xué)的理論知識和實(shí)驗(yàn)技能,掌握單片機(jī)應(yīng)用系統(tǒng)的一般設(shè)計(jì)方法,提高設(shè)計(jì)能力和實(shí)踐動手能力,為以后從事電子電路設(shè)計(jì)、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。五、設(shè)計(jì)內(nèi)容與要求 設(shè)計(jì)內(nèi)容1、數(shù)字電子鐘設(shè)計(jì)一個(gè)具有特定功能的電子鐘。該電子鐘上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入時(shí)鐘準(zhǔn)備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵,電子鐘從0時(shí)0分0秒開始運(yùn)行,進(jìn)入時(shí)鐘運(yùn)行狀態(tài);再次按電子鐘啟動/調(diào)整鍵,則電子鐘
3、進(jìn)入時(shí)鐘調(diào)整狀態(tài),此時(shí)可利用各調(diào)整鍵調(diào)整時(shí)間,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進(jìn)入時(shí)鐘運(yùn)行狀態(tài)。2、數(shù)字頻率計(jì)設(shè)計(jì)一個(gè)能夠測量周期性矩形波信號的頻率、周期、脈寬、占空比的頻率計(jì)。該頻率計(jì)上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入測量準(zhǔn)備狀態(tài)。按頻率測量鍵則測量頻率;按周期測量鍵則測量周期;按脈寬測量鍵則測量脈寬;按占空比測量鍵則測量占空比。3、數(shù)字電壓表設(shè)計(jì)一個(gè)能夠測量直流電壓的數(shù)字電壓表。測量電壓范圍05V,測量精度小數(shù)點(diǎn)后兩位。該電壓表上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入測量準(zhǔn)備狀態(tài),按測量開始鍵則開始測量,并將測量值顯示在顯示器上,按測量結(jié)束鍵則自動返回“P.”狀
4、態(tài)。4、交通燈設(shè)計(jì)一個(gè)具有特定功能的十字路口交通燈。該交通燈上電或按鍵復(fù)位后能自動顯示系統(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ù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開始按鈕后,搶答開始并限定時(shí)間30S;10S內(nèi)無人搶答,蜂鳴器發(fā)出音響
5、;主持人按下開始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯示器顯示違規(guī)臺號,違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺號,蜂鳴器發(fā)出音響,其它搶答按鈕無效;正常搶答下,從按下?lián)尨鸢粹o開始30S內(nèi),答完按鈕沒按下,則作超時(shí)處理,超時(shí)處理時(shí),違規(guī)指示燈亮,顯示器顯示違規(guī)臺號。蜂鳴器發(fā)出音響;各臺數(shù)字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過主持人按復(fù)位按鈕。6、密碼鎖設(shè)計(jì)一個(gè)具有特定功能的密碼鎖。該密碼鎖上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。該密碼鎖具有系統(tǒng)原始密碼888888,用戶可以設(shè)定并存儲用戶密碼,密碼輸入時(shí)應(yīng)處于保密顯示狀態(tài),密碼輸入正確時(shí)應(yīng)顯示
6、密碼輸入正確提示信息,否則,顯示密碼輸入錯(cuò)誤提示信息。7、波形發(fā)生器設(shè)計(jì)一個(gè)具有特定功能的波形發(fā)生器。該波形發(fā)生器上電或按鍵復(fù)位后能自動顯示系統(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ù)位后能自動顯示系統(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ù)位后能自動顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)
7、備工作狀態(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ù)位后能自動顯示系統(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ī)
8、技術(shù)課程設(shè)計(jì)說明書書寫規(guī)范格式 參照“單片機(jī)技術(shù)課程設(shè)計(jì)說明書書寫規(guī)范格式”文件。八、參考資料1、馬忠梅,單片機(jī)的C語言Windows環(huán)境編程寶典M, 北京:北京航空航天大學(xué)出版社,2003.6; 2、李光飛,單片機(jī)C程序設(shè)計(jì)指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2003.01 ;3、李光飛,單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)M,北京:北京航空航天大學(xué)出版社,2004.9。電氣自動化教研室 2013年9月10日摘 要 計(jì)算器在人們的日常中是比較的常見的電子產(chǎn)品之一。計(jì)算器可以快速的計(jì)算出較大的數(shù)據(jù)。單片機(jī)現(xiàn)在在高速的發(fā)展,而單片機(jī)的運(yùn)行速度非???,所以單片機(jī)經(jīng)常作為一個(gè)產(chǎn)品的核心?;谶@樣的理念,本次的單
9、片機(jī)計(jì)算器的課程設(shè)計(jì)用單片機(jī)AT89S52作為核心。 P1口作為輸入端,外接4X4的鍵盤,通過鍵盤掃描來對輸入數(shù)的控制,并外接驅(qū)動電路,系統(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顯示器ABSTRAC The calculator is one of the common electronic products in the people daily. Calculator can calculate a large
10、data. Singlechip now in development of high speed, and the running speed singlechip is very fast, so often as a core product. Based on this idea, the curriculum design of the singlechip calculator used AT89S52 microcontroller as the core. The P1 port as the input, external 4X4 keyboard, through the
11、keyboard to input the number of scanning control, and external driving circuit, the system adopts LCD as the display, the software program is written by C language, easy to calculate, the assembly is not good at calculation. The software program design report detailing the entire system hardware str
12、ucture, working principle and system. The calculator will complete the function of addition, subtraction, multiplication, division and other functions. Keywords: calculator;Single chip microcomputer;LCD display目 錄 1 課程設(shè)計(jì)要求及總體方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 設(shè)計(jì)課題要求11.3 設(shè)計(jì)課題總體方案12 硬件系統(tǒng)設(shè)計(jì)2 2.1 硬件電路設(shè)計(jì)原理框圖2 2.2 硬件電路設(shè)
13、計(jì)方案設(shè)計(jì)2 2.3 各部分硬件電路設(shè)計(jì)23 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)5 3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況5 3.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹5 3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖7 3.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單94 系統(tǒng)設(shè)計(jì)結(jié)果分析及結(jié)論10 4.1 系統(tǒng)使用說明10 4.2 系統(tǒng)實(shí)物調(diào)試結(jié)果10 4.3 系統(tǒng)設(shè)計(jì)誤差分析11 4.4 設(shè)計(jì)體會11結(jié)束語12致 謝13參考文獻(xiàn)14附錄15 附錄A 原理圖15 附錄B 頂層PCB圖 附錄C 底層PCB圖 附錄E 實(shí)物圖19 附錄F 程序清單20 附錄G 元件清單341 課程設(shè)計(jì)要求及總體方案介紹1.1 設(shè)計(jì)課題任務(wù)課題:簡易計(jì)
14、算器設(shè)計(jì)一個(gè)具有特定功能的計(jì)算器。該計(jì)算器上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”。1.2 設(shè)計(jì)課題要求計(jì)算器上電或按鍵復(fù)位后能自動顯示系統(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)其他功能。1.2 設(shè)計(jì)課題總體方案計(jì)算器主要是由AT89S52芯片及一些輸入輸出設(shè)備構(gòu)成,上電即顯示P.。能實(shí)現(xiàn)簡單的加減乘除運(yùn)算,以及一些其它功能,外部外加一個(gè)4*4矩陣鍵盤,來作為輸入設(shè)備,外加LCD12864來作為顯示設(shè)備,當(dāng)按下數(shù)字鍵時(shí),LCD12864顯示數(shù)字以及位數(shù);然后按下運(yùn)算鍵;再按下數(shù)字鍵,或先按下
15、特殊特殊運(yùn)算符在按下數(shù)字鍵,LCD12864顯示數(shù)字,再按下等于后能實(shí)現(xiàn)一些簡單的運(yùn)算。按下清零后為下一次計(jì)算做好準(zhǔn)備。系統(tǒng)總框圖如圖1所示。 圖1 系統(tǒng)總原理框圖2 硬件系統(tǒng)設(shè)計(jì)2.1 硬件電路設(shè)計(jì)原理框圖本設(shè)計(jì)主要采用單片機(jī)最小系統(tǒng),電源模塊,輸入模塊和輸出模塊來實(shí)現(xiàn),通過對控制器進(jìn)行編程。使其對輸入模塊的信號進(jìn)行處理計(jì)算,然后通過輸出模塊反饋給使用者以計(jì)算結(jié)果。2.2 硬件電路設(shè)計(jì)方案設(shè)計(jì) 由4×4矩陣鍵盤作為硬件電路的數(shù)據(jù)輸入端,4×4矩陣鍵盤可以解決獨(dú)立鍵盤占用IO口的缺點(diǎn)。再由LCD12864作為作為硬件電路的數(shù)據(jù)顯示端,LCD12862擁有豐富的中文字庫及字符
16、,可以方便的顯示各種中文以及字符。2.3 各部分硬件電路設(shè)計(jì)2.3.1 電源模塊電路對于一個(gè)完整的電子設(shè)計(jì)來講,首要問題就是為整個(gè)系統(tǒng)提供電源供電模塊,電源模塊的可靠是系統(tǒng)平穩(wěn)運(yùn)行的前提和基礎(chǔ)。本次課程設(shè)計(jì)的電源模塊是由計(jì)算機(jī)的USB口供給的。電源電路中接入了電源指示LED,接入一個(gè)LED的限流電阻,還有一個(gè)開關(guān)。2.3.2 復(fù)位電路復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳RST通過一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個(gè)機(jī)器周期的S5P2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。2
17、.3.3 振蕩電路由于單片機(jī)內(nèi)部有振蕩電路,所以外部只要連接一個(gè)晶振和兩個(gè)電容即可,電容容量這次選擇的是33pF。2.3.4 輸入模塊電路本設(shè)計(jì)使用鍵盤輸入預(yù)置用于計(jì)算或計(jì)時(shí),按鍵較多。若采用獨(dú)立按鍵,需頻繁按鍵,為軟件設(shè)計(jì)增加負(fù)擔(dān),且操作界面不友好。若采用矩陣式按鍵,可以方便地輸入一個(gè)數(shù)值,使操作界面更具人性化,節(jié)約了寶貴的I/O口資源。通過對比,故采用4*4矩陣鍵盤作為系統(tǒng)輸入模塊。2.3.5 顯示模塊電路FYD12864-0402B 是一種具有4 位/8 位并行、2 線或3 線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64
18、, 內(nèi)置8192 個(gè)16*16 點(diǎn)漢字,和128 個(gè)16*8點(diǎn)ASCII 字符集.利用該模塊靈 活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面??梢燥@示8×4 行16×16 點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。2.3.6 控制器模塊電路 考慮到設(shè)計(jì)功能需要,控制器的功能用于外部鍵盤信號的接收和識別、液晶模塊的顯示控制、復(fù)位電路等,我們選擇了AT89S52系列單片機(jī),具有反應(yīng)速度極快,工
19、作效率特高的特點(diǎn)。 AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(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級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振
20、及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。2.3.7 下載口電路模塊 下載口電路就是在原理電路圖上加上一個(gè)USB下載口,下載口再與單片機(jī)I/O口線連接。2.3.8 各個(gè)按鍵的功能根據(jù)系統(tǒng)的基本要求,采用由16個(gè)鍵構(gòu)成的行列式鍵盤分別接在AT89S52單片機(jī)的P1.0-P1.7,相對于獨(dú)立式鍵盤節(jié)省了大量口線和空間,給電路設(shè)計(jì)帶來極大的方便,不過也相應(yīng)的增加了程序的設(shè)計(jì)難度。采
21、用矩陣式連接方法,組成4×4式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è)功能分別為清零、等于號。字母“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的功能
22、是sin函數(shù)。按第一下B鍵時(shí),B鍵的功能是平方,再按一下B鍵時(shí),B鍵的功能是cos函數(shù)。3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況 AT89S52的片外資源: P0、P1:基本輸入輸出口; P3.7:E(12864液晶); P3.1:RS(12864液晶); P3.6:RW(12864液晶); XTAL1、XTAL2:晶振輸入; RST: 復(fù)位輸入。3.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹3.2.1 主函數(shù)模塊 主函數(shù) Void main(),用于設(shè)置初始化界面,調(diào)用各個(gè)主要模塊,實(shí)現(xiàn)簡單計(jì)算器的整體功能。3.2.2 矩陣式鍵盤模塊 矩陣式鍵盤軟件設(shè)計(jì)主要通過在主程序中調(diào)
23、用鍵掃函數(shù)keyscan()來執(zhí)行相應(yīng)的功能,單片機(jī)P1口在復(fù)位之后保持高電平,當(dāng)鍵按下相應(yīng)口線為低電平,經(jīng)過相應(yīng)判別過程判斷鍵是真的按了,執(zhí)行相關(guān)鍵功能程序,完成相應(yīng)操作。3.2.3 液晶顯示模塊 液晶顯示是通過在主程序中調(diào)用相關(guān)的液晶功能函數(shù)來執(zhí)行相應(yīng)功能,經(jīng)過液晶接在單片機(jī)上的P0及P3部分管腳,通過液晶功能函數(shù)LCD12864()的調(diào)用對液晶進(jìn)行操作,將各類指令寫入液晶模塊,用來驅(qū)動液晶以實(shí)現(xiàn)不同的顯示功能,達(dá)到界面顯示的要求。3.2.4 數(shù)據(jù)處理模塊通過調(diào)用處理函數(shù):lcd_set():LCD功能設(shè)置函數(shù);display(uchar y, uchar x, uchar *p):顯示函
24、數(shù);checkbusy():判忙;delay(uint count):延時(shí)函數(shù);write(uchar command):寫命令函數(shù);read(uchar data0):寫數(shù)據(jù)函數(shù);jishu(void);顯示緩沖;jisuan(void);處理函數(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é)果顯示在液晶上。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖3.3.1 主函數(shù) 圖2 主函數(shù)流程框圖3.3.2 矩陣
25、式鍵盤圖3 鍵掃描函數(shù)流程框圖3.3.3 液晶顯示圖4 液晶顯示函數(shù)流程框圖3.4 設(shè)計(jì)課題軟件系統(tǒng)程序清單 見附錄F4 系統(tǒng)設(shè)計(jì)結(jié)果分析及結(jié)論4.1 系統(tǒng)使用說明基于51單片機(jī)的計(jì)算器的使用規(guī)則如下:計(jì)算器上電后,顯示P.,1秒后顯示計(jì)算界面,通過鍵盤輸入,在有數(shù)值輸入的情況下,鍵盤的運(yùn)算符號鍵分別為“ +,*,/ ”;在沒有數(shù)值輸入的情況下,鍵盤的運(yùn)算符號鍵分別為“平方(正弦),開方(余弦),1016,1610”,其中“平方(正弦)”和“開方(余弦)”為復(fù)用鍵,可以相互切換;“清零鍵”使計(jì)算器進(jìn)入初始計(jì)算界面;“=”鍵為計(jì)算鍵,并顯示計(jì)算值。 本次計(jì)算器的鍵盤設(shè)計(jì)共有十六個(gè)鍵分別為“09”
26、數(shù)字鍵, “ +, ,* ,/ ”運(yùn)算符號鍵(與特殊功能運(yùn)算鍵復(fù)用),清零鍵-“AC”,計(jì)算鍵-“=”。4.2 系統(tǒng)實(shí)物調(diào)試結(jié)果基本排除了應(yīng)用系統(tǒng)的硬件故障后,進(jìn)入軟件的綜合調(diào)試階段。通過不斷地修改程序與調(diào)試,基于51單片機(jī)的計(jì)算器實(shí)物顯示的效果如圖所示。圖5 進(jìn)入畫面 圖6 初始畫面 圖7 sin函數(shù)畫面 圖8 cos函數(shù)畫面 圖9 平方畫面 圖10 開方畫面4.3 系統(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í),對小數(shù)位的
27、值取的精度不是很高。 4.4 設(shè)計(jì)體會對于這次課程設(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)化。用我
28、單片機(jī)老師的話來講,我的程序是“廢話連篇,不動腦子去編寫。”用我的EDA老師的話來講,我畫的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è)問題就是
29、按鍵的設(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)理論的唯一
30、標(biāo)準(zhǔn)。 致 謝 首先我要感謝王韌老師,本次單片機(jī)課程設(shè)計(jì)是在王韌老師的悉心指導(dǎo)下完成的,老師知識淵博,讓我在實(shí)踐的過程中避免了很多的錯(cuò)誤。在單片機(jī)學(xué)習(xí)的過程中,王老師王老師常說嚴(yán)師出高徒,所以王韌老師在學(xué)習(xí)的各個(gè)方面都對我們比較嚴(yán)格。由于王韌老師的嚴(yán)格,所以在單片機(jī)的理論課和實(shí)驗(yàn)課上我多學(xué)到了很多有用的知識。在理論課上,王老師不僅教我們單片機(jī)的知識,還教了一些我們做人的道理。同時(shí)感謝通信1102班所有同學(xué),他們不但給我提供了一個(gè)很好的學(xué)習(xí)空間,而且經(jīng)常不厭其煩的指導(dǎo)我。最后,再次感謝再這次設(shè)計(jì)中所有幫助過我的良師益友,設(shè)計(jì)的成功離不開你們對我的指導(dǎo)與幫助。參考文獻(xiàn) 1馬忠梅.單片機(jī)C程序設(shè)計(jì)M
31、,北京:北京航空航天大學(xué)出版社,2007 Ma Zhongmei.microcontroller C programming M, Beijing: Beijing Aerospace University Press, 2007 2李廣弟.單片機(jī)基礎(chǔ)M,北京:北京航空航天大學(xué)出版社,2007 Li Guangdi. microcontroller based on M, Beijing: Beijing Aerospace University Press, 2007 3 曹巧媛.單片機(jī)原理及應(yīng)用M,北京:電子工業(yè)出版社,1997.7. Cao QiaoYuan.Microcontrolle
32、r Theory and Applications M, Beijing: Electronic Industry Press, 1997.7. 4 張洪潤.蘭清華,單片機(jī)應(yīng)用技術(shù)教程M,北京:清華大學(xué)出版社,1997.11. Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial M, Beijing: Tsinghua University Press, 1997.11.15附錄E: 實(shí)物圖附錄F: 程序清單/*標(biāo)題:液晶顯示器顯示界面+科學(xué)型計(jì)算器*功能: (1)基本的加、減、乘、除、平方、開方; (2)三角函數(shù)運(yùn)算
33、; (3)十進(jìn)制、十六進(jìn)制轉(zhuǎn)換運(yùn)算;*日期:2013-12-25*作者:張付宏*/#include<reg52.h>#include<intrins.h>#include<math.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned longsbit rs = P31;sbit rw = P36;sbit en = P37;uchar command,data0;uchar key,p,bb,aa=1,a=0,
34、b=0,c=0;int i,n=0;ulong k=0;float ds,m;uchar dismsm10=0;uchar code yejingtable=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46,0x2e,0x48,0x20;/0-9void lcd_clear(void);/清屏函數(shù)void lcd_set();/LCD功能設(shè)置函數(shù)void display(uchar y, uchar x, uchar *p);/顯示函數(shù)void checkbusy();/判忙 void
35、 delay(uint count);/延時(shí)函數(shù)void write(uchar command);/寫命令函數(shù)void read(uchar data0);/寫數(shù)據(jù)函數(shù)void jishu(void);/顯示緩沖void jisuan(void);/處理函數(shù)void keyproc();/鍵功能程序void disds();/顯示函數(shù)/*行列式鍵盤掃描函數(shù)*/uchar key_s() uchar scan,tmp; /列號,行號 P1=0xf0; /發(fā)全行0掃描碼 if(P1&0xf0)!=0xf0) /若有鍵按下 delay(80); / 延時(shí)去抖 if(P1&0xf0)
36、!=0xf0) /延時(shí)再判鍵是否還按下 scan=0xfe; while(scan&0x10)!=0) /逐行掃描 P1=scan; /輸出行掃描碼 if(P1&0xf0)!=0xf0) /本行有鍵按下 tmp=(P1&0xf0)|0x0f; delay(20); /按鍵判釋放 return (scan)|(tmp); /還回鍵值 else scan=(scan<<1)|0x01; /行掃描碼左移一位 return (0);/*主函數(shù)*/void main(void) int a=0,b=0; lcd_clear(); lcd_set(); display(
37、1,2,"* 湖南工學(xué)院"); display(2,1,"* 單片機(jī)課程設(shè)計(jì)"); display(3,2,"通信1102班"); display(4,3,"張付宏"); delay(1000); lcd_clear(); lcd_set(); while(1) display(1,2,"科學(xué)型計(jì)算器"); display(2,4,"P."); delay(1000); lcd_clear(); lcd_set();display(1,2,"科學(xué)型計(jì)算器"
38、); while(1) while(!key_s(); /等待按鍵按下··· keyproc(); /*判忙*/ void checkbusy() rs=0; rw=1; P0=0xff; while(1) en = 1;if(P0 < 0x80)break;/P0的最高位為忙標(biāo)志為,H:忙,L:空閑 en = 0; en=0; /*LCD功能設(shè)置函數(shù)*/void lcd_set(void) command=0x34; write(command); command=0x30; write(command); command=0x01; write(comm
39、and); command=0x06; write(command); command=0x0c; write(command);/*清屏函數(shù)*/void lcd_clear(void) command=0x01; write(command); command=0x34; write(command); command=0x30; write(command);/*寫命令函數(shù)*/void write(uchar command) checkbusy(); rs=0; rw=0; P0=command; en=1; _nop_(); _nop_(); en=0;/*寫數(shù)據(jù)函數(shù)*/void re
40、ad(uchar data0) checkbusy(); rs=1; rw=0; P0=data0; en=1; _nop_(); _nop_(); en=0;/*液晶顯示函數(shù)*/void display(uchar y, uchar x, uchar *p) switch (y) case 1:write(0x7f+x); break; /液晶第一行 case 2:write(0x8f+x); break; /0x90+(x-1) case 3:write(0x87+x);break; case 4:write(0x97+x);break; default:break;while(*p) r
41、ead(*p+); /*延時(shí)函數(shù)*/void delay(uint count) /延時(shí)1ms函數(shù) uint j; while(count-!=0) for(j=0;j<120 void delay1(uint m)while(-m); /*顯示緩沖*/void jishu()dismsm0=k/1000000000%10;dismsm1=k/100000000%10;dismsm2=k/10000000%10;dismsm3=k/1000000%10;dismsm4=k/100000%10;dismsm5=k/10000%10;dismsm6=k/1000%10;dismsm7=k/1
42、00%10;dismsm8=k/10%10;dismsm9=k%10;/*顯示函數(shù)*/void disds()uchar i;for(i=0;i<10;i+)if(i%2=0) command+; write(command); read(yejingtabledismsmi);/*處理函數(shù)*/void jisuan()switch (bb)case 0:ds=k; ds=m+ds;break;case 1:ds=k;if(m>ds)ds=m-ds;elseds=ds-m;display(4,3," -");break;case 2:ds=k;ds=m*ds;b
43、reak;case 3:ds=k;ds=m/ds;break;case 4:k=k%360; ds=k; if(ds>180)ds=ds-180; ds=ds*3.1415926536; ds=ds/180.0; ds=sin(ds); display(4,3," -"); else ds=ds*3.1415926536;ds=ds/180.0;ds=sin(ds);break; case 5:ds=k; ds=ds*ds;break; case 6:k=k+90; k=k%360;ds=k;if(ds>180)ds=ds-180;ds=ds*3.1415926
44、536;ds=ds/180.0;ds=sin(ds);display(4,3," -");else ds=ds*3.1415926536;ds=ds/180.0;ds=sin(ds);break; case 7:ds=k;ds=sqrt(ds);break;case 8:for(i=8;i>=0;i-)dismsmi=k%16;k=k/16;dismsm9=17; goto nn;case 9:jishu();ds=dismsm2*268435456+dismsm3*16777216+dismsm4*1048576+dismsm5*65536+dismsm6*4096
45、+dismsm7*256+dismsm8*16+dismsm9*1;default:break; if(ds<1) k=ds*1000000000;jishu();dismsm9=dismsm8;dismsm8=dismsm7;dismsm7=dismsm6;dismsm6=dismsm5;dismsm5=dismsm4;dismsm4=dismsm3;dismsm3=dismsm2;dismsm2=dismsm1;dismsm1=dismsm0;dismsm1=16;dismsm0=0;else if(ds<10)k=ds*1000000000;jishu();dismsm9=dismsm8;dismsm8=dismsm7;dismsm7=dismsm6;dismsm6=dismsm5;dismsm5=dismsm4;dismsm4=dismsm3;dismsm3=dismsm2;dismsm2=dismsm1;dismsm1=16;else if(ds<100)k=ds*100000000;jishu();dismsm9=dismsm8;dismsm8=dismsm7;dismsm7=dismsm6;dismsm6=dismsm5;dismsm5=disms
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 叉車轉(zhuǎn)讓回收合同范本
- 仿古門窗加工合同范本
- 午托員工合同范本
- 教學(xué)提質(zhì)增效課題申報(bào)書
- 農(nóng)村合作社有些合同范例
- 克拉瑪依勞動合同范本
- 員工離職接觸合同范本
- 廠房拆除門窗合同范本
- 中介融資合同范本
- 叫做招標(biāo)性質(zhì)合同范本
- 2025年旅行與旅游的未來:擁抱可持續(xù)與包容性增長報(bào)告(英文版)-世界經(jīng)濟(jì)論壇
- 2025年湖南水利水電職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 2025年徐州生物工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 向量的數(shù)量積說課
- 2024年全國體育專業(yè)單獨(dú)招生考試數(shù)學(xué)試卷試題真題(含答案)
- 2025年中糧集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2023年12月大學(xué)英語四級第一套真題和答案
- 河北省職業(yè)院校技能大賽建筑信息模型建模與應(yīng)用(高職組)賽項(xiàng)參考試題及答案
- 艾滋病耐藥報(bào)告解讀
- 創(chuàng)新思維與創(chuàng)造力開發(fā)(山西經(jīng)貿(mào)職業(yè)學(xué)院)知到智慧樹答案
- 2024年濰坊護(hù)理職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
評論
0/150
提交評論