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

正文內(nèi)容

基于51單片機(jī)的多功能計(jì)算器設(shè)計(jì)課程設(shè)計(jì)-文庫(kù)吧資料

2024-09-02 20:07本頁面
  

【正文】 d char cord_h,cord_l。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。 key=keyscan()。 unsigned char KeyProcess(void) { unsigned char key。 sbit key3=P2^3。 sbit key1=P2^1。 //鍵盤掃描函數(shù) endif (f)按鍵 程序清單: include extern unsigned char sk。 /*顯示開及光標(biāo)設(shè)置 */ } (e)按鍵 程序清單: ifndef __KEYBOARD_H define __KEYBOARD_H unsigned char KeyProcess(void)。 /*顯示光標(biāo)移動(dòng)設(shè)置 */ delay_ms(5)。 /*顯示關(guān)閉 */ LCD_write_(0x01)。 LCD_write_(0x38)。 LCD_write_(0x38)。 LCD_write_(0x38)。 } /******************************************************************/ /* 初始化函數(shù) */ /******************************************************************/ void LCD_init(void) { LCD_write_(0x38)。 } else { LCD_write_(0xC0 + x)。 s++。 } } else break。j1。.39。039。i0。 } else { LCD_write_(0xC0 + x)。 } } /******************************************************************/ /* 寫入字符串函數(shù) */ /******************************************************************/ void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s) { unsigned char i,j。 } else { LCD_write_char(0,1,0x20)。 24 if(sk == 1) { LCD_write_char(0,1,0xde)。 } /******************************************************************/ /* 清屏函數(shù) */ /******************************************************************/ void LCD_clear(void) { LCD_write_(0x01)。 delay_us(5)。 EN_SET。 } /******************************************************************/ /* 寫入數(shù)據(jù)函數(shù) */ /******************************************************************/ void LCD_write_Data(unsigned char Data) { RS_SET。 delay_us(5)。 EN_SET。 define RS_CLR RS=0 define RS_SET RS=1 define RW_CLR RW=0 define RW_SET RW=1 define EN_CLR EN=0 define EN_SET EN=1 /******************************************************************/ /* 寫入命令函數(shù) */ /******************************************************************/ void LCD_write_(unsigned char ) { RS_CLR。 //讀寫 H/L sbit EN = P2^6。 23 endif (d) 程序清單: include sbit RS = P2^4。 void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data)。 void LCD_clear(void)。 } } } (c) 程序清單: ifndef __LCD1602_H define __LCD1602_H void LCD_write_(unsigned char )。j 65。 i t。 } void delay_ms(unsigned int t) { unsigned int i, j。 void delay_ms(uint t)。在思想上,更加明白的堅(jiān)持不懈的重要性,學(xué)習(xí)探索的重要性,實(shí)踐動(dòng)手的重要性。 總之, 通過這次設(shè)計(jì)也收獲了很多,知識(shí)層面上,學(xué)得了很多新知識(shí),解決問題的新方法 ,思考問題的新方向 。但在實(shí)際寫程序時(shí)也遇到了很多問題,但最終還是克服難關(guān),將整個(gè)軟件比較完善的實(shí) 現(xiàn)了。 19 4 結(jié)論 與心得體會(huì) 總之,通過一系列 仿真和設(shè)計(jì), 基于單片機(jī)的計(jì)算器設(shè)計(jì) 還是比較成功的做出來了。 圖 輸入錯(cuò)誤的顯示 由以上測(cè)試可知,整個(gè)設(shè)計(jì)運(yùn)行正常,能夠正確的進(jìn)行運(yùn)算和出錯(cuò)提示。 18 圖 輸入錯(cuò)誤的情況下 再按“ =”號(hào),將會(huì)出現(xiàn)出錯(cuò)畫面。 圖 整數(shù)運(yùn)算 17 浮點(diǎn)數(shù)運(yùn)算 圖 浮點(diǎn)數(shù)運(yùn)算 由圖可以看出,可以進(jìn)行浮點(diǎn)數(shù)運(yùn)算,還可以從第二行第一個(gè)字符,蜂鳴器處于關(guān)閉狀態(tài)。若有顯示,則聲音已經(jīng)打開,可以通過按鈕關(guān)閉聲音。 輸入結(jié)束后,點(diǎn)“ =”按鍵,即可在第二行顯示出運(yùn)算結(jié)果,由圖可見運(yùn)算完全正確。 整數(shù)運(yùn)算 在此以整數(shù)運(yùn)算為例,介紹計(jì)算器的使用方法即流程。 15 設(shè)計(jì)結(jié)果 圖 設(shè)計(jì)結(jié)果實(shí)物圖 如圖所示,各個(gè)按鍵功能如圖中文字說明,電源為 5V直流電源。若優(yōu)先級(jí)相等,則彈出符號(hào)棧棧頂符號(hào)。 ,表達(dá)式起始符 ””為運(yùn)算符棧的棧底元素; ,若是操作符即進(jìn) OPND棧,若是運(yùn)算符則和 OPTR 棧的棧頂運(yùn)算符比較優(yōu)先權(quán)后作相應(yīng)的操作,直至整個(gè)表達(dá)式求值完畢(即 OPTR 棧的棧頂元素和當(dāng)前讀入的字符均為 ””)。可以使用兩個(gè)工作棧。 棧結(jié)構(gòu)具有“后進(jìn)先出”的固有屬性,借助這個(gè)屬性我們可以隨時(shí)對(duì)剛輸入的元素進(jìn)行操作,從而實(shí)現(xiàn)邊輸入邊計(jì)算。 表達(dá)式的處理 表達(dá)式包含加、減、乘、除、括號(hào)等,必須按照相應(yīng)的優(yōu)先級(jí)運(yùn)算,才可能得出正確的結(jié)果。然后 確定鍵值并顯示緩存,最終將按鍵的 值 通過一個(gè)預(yù)先定義好的數(shù)組 轉(zhuǎn)換為 相應(yīng)的 ASCII碼 值 送給 LCD顯示和與表達(dá)式相應(yīng)的堆棧進(jìn)行處理, 讀鍵程序使用的是反轉(zhuǎn)法讀鍵,不管鍵盤矩陣的規(guī)模大小,均進(jìn)行兩次讀鍵。 鍵盤掃描 獨(dú)立鍵盤很好實(shí)現(xiàn),只需不停的檢測(cè)即可,出現(xiàn)低電平即出現(xiàn)按鍵,在經(jīng)過一定的延時(shí)消抖,再確認(rèn)判斷即可。 具體程序見附錄二 。在編程中,將該程序分為 四 個(gè)模塊 :延時(shí)模塊、 1602 顯示模塊 、用于處理計(jì)算表達(dá)式的對(duì)戰(zhàn)模塊 及主函數(shù)模塊。 11 軟件設(shè)計(jì) 軟件編程平臺(tái)選擇最常用的 keil軟件。電路如圖 所示,LCD 數(shù)據(jù)端與單片機(jī) P0 口相連,控制端與 P24~P26 連接, 電位器用于調(diào)節(jié) 對(duì)比度 。 同時(shí)單片機(jī) I/O 口還在這里還起到開關(guān)作用,為 ‘ 0’ 時(shí)打開蜂鳴器通道,使蜂鳴器發(fā)聲。可見,矩陣鍵盤相對(duì)來講更節(jié)省 I/O 口,但本著學(xué)習(xí)的目的,加之本設(shè)計(jì)并不需要太多的 I/O 口,故為充分學(xué)習(xí)和利用資源,在這里也設(shè)計(jì)了 4 個(gè)這樣的獨(dú)立按鍵。同時(shí),注意到按鍵數(shù)量還達(dá)不到要求,故增加了四個(gè)獨(dú)立按鍵S4,S9,S14,S19。 在這里, STC89C52單片機(jī) 8k 的程序存儲(chǔ)器已經(jīng)夠本設(shè)計(jì)使用,無需外部程序儲(chǔ)存器,故 EA 直接接高電平。 同時(shí),為使 P0口正常工作,并增加其帶負(fù)載能力, P0口需接了上拉電阻 。 圖 系統(tǒng)組成及總體框圖 STC89C52主控制模塊 (處理、運(yùn)算) 電源 LCD 液晶顯示屏 模塊 鍵盤模塊 8 硬件電路設(shè)計(jì) 單片機(jī)電路設(shè)計(jì) 為使單片機(jī)正常工作,除電源供電部分外,還需提供晶振電路和復(fù)位電路。 7 2 單元電路設(shè)計(jì) 工作原理 利用矩陣鍵盤進(jìn)行按鍵的輸入,通過對(duì)矩陣鍵盤的掃描,獲取用戶的輸入,并實(shí)時(shí)的顯示在 1602 液晶上,每次獲取到輸入時(shí),根據(jù)軟件設(shè)計(jì)的相應(yīng)方法對(duì)輸入進(jìn)行處理、運(yùn)算,輸入結(jié)束后( 以“ =“為標(biāo)志),將最終的運(yùn)算結(jié)果輸出的液晶上。單片機(jī)廣泛用于智能產(chǎn)品,智能儀表,測(cè)控技術(shù),智能接口等,具有操作簡(jiǎn)單,實(shí)用方便,價(jià)格便宜等優(yōu)點(diǎn),而其中 AT89S52以 MCS51 為內(nèi)核,是單
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1