freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的計算器設(shè)計計算器畢業(yè)論文(編輯修改稿)

2025-07-24 20:50 本頁面
 

【文章內(nèi)容簡介】 四條I/O 線作為列線組成鍵盤,在行線和列線的每個交叉點上設(shè)置一個按鍵。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機系統(tǒng)中I/O 口的利用率。P1口:作為輸入口,與鍵盤連接,實現(xiàn)數(shù)據(jù)的輸入.矩陣鍵盤的設(shè)計如圖34所示: 圖34矩陣鍵盤圖34矩陣鍵盤鍵值與其功能對應(yīng)表如表32所示: 表32按鍵功能對照 對照 鍵值 0 1 2 3 4 5 6 7 8 9 + / = . 功能 0 1 2 3 4 5 6 7 8 9 + / = 點 LCD顯示模塊設(shè)計LCD1602,工業(yè)字符型液晶,能夠同時顯示16x02即32個字符(16列2行),故簡稱1602。1602LCD 液晶具有功耗低、顯示內(nèi)容豐富、清晰,顯示信息量大,顯示速度較快,界面友好等而得到廣泛應(yīng)用,因此使用1602液晶顯示屏,可以方便的顯示多種字符,特別適用于單片機計算器的雙行顯示。通過D0D7引腳向LCD寫指令字或?qū)憯?shù)據(jù)以使LCD實現(xiàn)不同的功能或顯示相應(yīng)的數(shù)據(jù)。P0口作為液晶顯示的數(shù)據(jù)端口,與D0D7連接。,控制LCD液晶顯示屏顯示輸出數(shù)據(jù),與RS,RW,E,連接 。 液晶顯示模塊的設(shè)計如圖35所示:圖35 液晶顯示模塊 LCD1602主要技術(shù)參數(shù)顯示容量:162個字符芯片工作電壓:—工作電流:()模塊最佳工作電壓:字符尺寸:(WH)mmLCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表33所示。表33引腳接口說明表編號 符號引腳說明編號符號引腳說明1GND電源地9D2數(shù)據(jù)2VCC電源正極10D3數(shù)據(jù)3V0液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極第1腳:GND為地電源。第2腳:VCC接5V正電源。第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器,低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負(fù)極。、音樂開關(guān)、開方和多次方運算功能模塊設(shè)計本設(shè)計要求在任何時候按下AC清零鍵,都必須退出當(dāng)前操作,數(shù)據(jù)清零,準(zhǔn)備下一次的運算,故應(yīng)采用獨立鍵盤產(chǎn)生下降沿輸入給單片機外部中斷處理。對于聲音開關(guān)按鍵,由于要求隨時關(guān)閉或打開聲音提示,本設(shè)計也采用獨立按鍵產(chǎn)生下降沿輸入給單片機的外部中斷處理。而開方或多次方運算,則可與矩陣鍵盤一起檢測,也當(dāng)做一個運算符處理。具體功能按鍵設(shè)計如圖36所示: 圖36功能按鍵設(shè)圖中,AC為清零按鍵、KeyBeep為聲音開關(guān)按鍵、KeySqrt為開方按鍵、KeyPow為多次方按鍵。由于AT89S52和LCD1602都是采用5V供電,而且其他模塊功能也采用5V電平,本系統(tǒng)采用LM7805作為穩(wěn)壓芯片,經(jīng)過初級和次級的電容濾波,最終得到穩(wěn)定的5V電壓供給系統(tǒng)使用。 圖37電源 運算模塊(單片機控制)AT89S52單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數(shù)器和多功能I/O等一臺計算機所需要的基本功能部件。如果按功能劃分,它由如下功能部件組成,即微處理器(CPU)、數(shù)據(jù)存儲器(RAM)、程序存儲器(ROM/EPROM)、并行I/O 口、串行口、定時器/計數(shù)器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機是靠程序運行的,并且可以修改。通過不同的程序?qū)崿F(xiàn)不同的功能,尤其是一些特殊的功能,通過使用單片機編寫的程序可以實現(xiàn)高智能、高效率以及高可靠性!因此我們采用單片機作為計算器的主要功能部件,可以很快地實現(xiàn)運算功能。單片機通過按鍵來實現(xiàn)輸入數(shù)據(jù)和操作方式的控制,在運算過程中,先確定選用的是哪一個運算符,若是+或*,則要判斷結(jié)果是否會溢出,溢出則顯示錯誤提示,沒有益處顯示運算結(jié)果。若是/,判斷除數(shù)是否為零,為零時顯示錯誤提示,不是零顯示運算結(jié)果。 第四章 軟件設(shè)計LCD1602在上電以后,應(yīng)該先等待50毫秒左右,讓其內(nèi)部芯片初始化后再對其進(jìn)行操作。在對其操作時,應(yīng)參考其時序圖,先把命令寫入其內(nèi)部寄存器設(shè)置它的工作方式和狀態(tài)。要顯示數(shù)據(jù)的時候,先設(shè)置好顯示坐標(biāo),再往里面寫入要顯示的ASCII碼,LCD則通過刷新和替換來顯示新的數(shù)據(jù)。其程序流程圖如圖41所示: 開始 初始化 設(shè)置坐標(biāo) 發(fā)送ASII 顯示數(shù)據(jù) 圖41顯示程序流程圖其程序位于后面附錄 由于矩陣鍵盤采用4行4列的結(jié)構(gòu),每一行每一列各對應(yīng)一個I/O口,故程序應(yīng)該逐行查詢,一旦查詢到有某一行的按鍵被按下了,則根據(jù)讀取到的I/O總線口的數(shù)據(jù)即可查詢到是哪一列的按鍵被按下了,最后對應(yīng)行列返回一個按鍵值回主函數(shù)。其程序流程圖如圖42所示: 結(jié)束返回行列對應(yīng)的按鍵值判斷是哪一列的按鍵 開始 按鍵賦初值第一行有鍵按下? 否第二行有鍵按下? 否第三行有鍵按下? 否第四行有鍵按下? 否返回按鍵初始值 圖42 矩陣鍵盤程序流程圖其程序位于后面附錄根據(jù)系統(tǒng)要求以及硬件結(jié)構(gòu),AC按鍵直接接入單片機外部中段0,則程序應(yīng)使用中斷來清除各數(shù)據(jù)存儲變量達(dá)到清零的目的,并把清零標(biāo)志位至1,在主程序中不斷查詢標(biāo)志位,若為1,則清零后。其程序框圖如圖43所示: 中斷0入口 LCD清屏顯示0 各數(shù)據(jù)存儲清零 清零標(biāo)志位置1 返回主程序 圖43清零程序流程圖其程序如下:/***清零中斷程序******/void EX0_int() interrupt 0{ if(beepflag==1) //若開聲音則每一次按鍵均鳴叫 { beep=0。 delayms(100)。 beep=1。 } lcdwrite_(0x01)。 //顯示清屏 lcd_setxy(0,0)。 lcdwrite_data(39。039。)。 lcd_setxy(0,0)。 num=39。N39。 //數(shù)字初始化 keynum1=0,keynum2=0,sign=0。 ans1=0,ans2=0,ans=0,point=0。 conflag=0,newcalc=0。 ac=1。}根據(jù)要求,聲音開關(guān)使用外部中斷1來處理,當(dāng)按下聲音開關(guān)時,觸發(fā)單片機進(jìn)入外部中斷1,在中斷程序里,通過對聲音開關(guān)標(biāo)志位取反,在按鍵掃描過程中,加入對聲音標(biāo)志位的判斷,若為1,則發(fā)出聲音,即可實現(xiàn)聲音提示功能。其程序框圖如圖44:中斷1入口 聲音標(biāo)注位取反 聲音標(biāo)志位為1? 否 開聲音提示 返回主程序 圖44聲音開關(guān)程序流程圖其程序如下:/***聲音中斷程序******/void EX1_int() interrupt 2{ beepflag=~beepflag。 if(beepflag==1) //若開聲音則每一次按鍵均鳴叫 { beep=0。 delayms(100)。 beep=1。 }}整體程序包括:、 本系統(tǒng)采用大小循環(huán)嵌套方式的軟件設(shè)計思想,大循環(huán)則一直在運行,使計算器一直處于工作狀態(tài),并不斷掃描按鍵,小循環(huán)用于識別數(shù)字是否輸入完,一旦檢測到輸入的是運算符,則轉(zhuǎn)換輸入數(shù)值并儲存起來,最后按下等于號以后則根據(jù)運算符計算兩個數(shù)值的大小,并通過LCD顯示。軟件系統(tǒng)總框圖如圖45所示:開始根據(jù)上次功能鍵和輸入的數(shù)據(jù)計算結(jié)果初始化參數(shù)LED顯示本次功能鍵有鍵輸入是‘=’其他鍵保存結(jié)果和功能鍵計算最后結(jié)果讀取鍵碼 鍵碼是?結(jié)果送顯示緩沖等待數(shù)值輸入數(shù)字鍵清零鍵功能鍵輸入數(shù)值狀態(tài)清零 數(shù)值送顯示緩沖圖45 軟件系統(tǒng)總框圖其程序位于后面附錄 第五章 系統(tǒng)仿真及原理圖 Proteus仿真系統(tǒng)仿真圖見圖51所示: 圖51系統(tǒng)仿真圖 圖52加法運算 圖53減法運算 圖54乘法運算 圖55除法運算 圖56開根號運算 圖57冪運算 圖58錯誤提示1 圖59錯誤提示2 Protel原理圖 系統(tǒng)原理圖如圖510所示: 圖510系統(tǒng)原理圖 第六章 系統(tǒng)調(diào)試邏輯錯誤:它是由設(shè)計錯誤或加工過程中的工藝性錯誤所造成的。這類錯誤包括錯線、開路、短路等。元器件失效:有兩方面的原因:一是器件本身已損壞或性能不符合要求;二是組裝錯誤造成元件失效,如電解電容、集成電路安裝方向錯誤等??煽啃圆睿阂蚱淇煽啃圆畹脑蚝芏?,如金屬化孔、接插件接觸不良會造成系統(tǒng)時好時壞,經(jīng)不起振動;走線和布局不合理也會引起系統(tǒng)可靠性差。電源故障:若樣機由電源故障,則加電后很容易造成器件損壞。電源故障包括電壓值不符合設(shè)計要求,電源引線和插座不對,功率不足,負(fù)載能力差等。軟件調(diào)試一般分為以下四個階段:編寫程序并查錯;在 C 語言的編譯系統(tǒng)中編譯源程序?qū)Τ绦蜻M(jìn)行編譯連接,并及時發(fā)現(xiàn)程序中存在的錯誤;改正錯誤。在本次調(diào)試中出現(xiàn)的問題有:在程序中有的函數(shù)名未定義;在抄錄程序時,少錄入一些字符,如: ”“{”“”“;、 、等符號,而出現(xiàn)錯誤;有一些函數(shù)名錄入時少寫一個字母或順序顛倒;沒有注意函數(shù)名的調(diào)用及定義;芯片引腳定義出錯而導(dǎo)致沒有實驗現(xiàn)象。各項功能測試: 表61功能測試加法測試 減法測試 表62功能測試乘法測試 除法測試 表63功能測試開方測試 多次方運算測試 表64功能測試錯誤提示測試1 錯誤提示測試2 由以上測試結(jié)果可知,計算器的各項功能正常,基本能達(dá)到設(shè)計要求。下面將進(jìn)行多次測試,以檢驗計算器的性能指標(biāo)。本次對計算器的功能進(jìn)行多次測量,其測試結(jié)果如下表:表6
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦

基于單片機的簡易計算器設(shè)計-資料下載頁

【總結(jié)】電》