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

正文內(nèi)容

基于51單片機(jī)的多功能計(jì)算器設(shè)計(jì)課程設(shè)計(jì)-在線瀏覽

2024-10-28 20:07本頁(yè)面
  

【正文】 到迅速普及和應(yīng)用 ,并一度在高密度的可編程邏輯器件領(lǐng)域中獨(dú)占鰲頭。 方案二 采用 STC89C52 單片機(jī)是單片微型機(jī)的簡(jiǎn)稱,故又稱為微控制器 MCU( Micro Control Unit)。因此,單片機(jī)只要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 方案比較及選擇 通過以上兩種方案論證和比較,從設(shè)計(jì)的實(shí)用性,方便性和成本出發(fā),選擇了以 STC89C52 單片機(jī)作為中央處理單元進(jìn)行計(jì)算器的設(shè)計(jì),這樣設(shè)計(jì)能夠?qū)崿F(xiàn)對(duì)六位浮點(diǎn)數(shù)的加減和三位浮點(diǎn)數(shù)的乘除運(yùn)算。 系統(tǒng)組成及整體框圖 如圖 所示。具體電路如下: 圖 單片機(jī)工作電路 由圖 可知, 9 腳外接的是按鍵復(fù)位電路, 18,19腳外接的是晶振電路,這樣,就構(gòu)成了單片機(jī)正常工作的必備電路。 圖中 EA 為 外部訪問允許,欲使 CPU 僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH), EA端必須保持低電平(接地)。 9 鍵盤 模塊 電路 圖 是 鍵盤電路,共 20 個(gè)按鍵,用來(lái)實(shí)現(xiàn)人機(jī)交互和運(yùn)算表達(dá)式的輸入, S0~SS5~S S10~S1 S15~S18 共 16 個(gè)按鍵組成一組 4*4的矩陣鍵盤, 行線第一行到第四行分別接在 ~,列線第一列到第四列分別接在 ~ 口 ,這樣 P3口就完成了對(duì) 4*4的矩陣鍵盤的接線。他們依次接在 P20~P23口。 圖 鍵盤模塊電路 蜂鳴器提示電路 蜂鳴器主要用于按鍵時(shí)發(fā)出聲音,提示當(dāng)前的按鍵操作,電路 如圖 所示,三極管主要用于驅(qū)動(dòng)蜂鳴器,因?yàn)閱纹瑱C(jī) I/O的驅(qū)動(dòng)能力有限。 10 圖 蜂鳴器提示 電路 液晶 顯示電路 LCD 也是本次設(shè)計(jì)的重要組成部分之一,主要用于顯示輸入和輸出。 圖 LCD 顯示電路 至此,整個(gè)電容測(cè)量?jī)x的硬件設(shè)計(jì)部分就 基本設(shè)計(jì)完成 ,接下來(lái),需要的就是與之相匹配的軟件支持了。由于該程序并未涉及到底層的驅(qū)動(dòng) 問題,因此選擇方便快捷的 C 語(yǔ)言編程。 采用模塊化設(shè)計(jì), 方便調(diào)試與理解。 在這里重點(diǎn)介紹軟件核心的表達(dá)式處理程序算法。 矩陣鍵盤掃描 程序,首先讀出 P3 的低四位,然后讀出 P3 口的高四位。第一次所有行線均輸出 高電平,從 P3口的值 讀入鍵盤信息( 行 信息);第二次所有列線均輸出 高 電平,從 P3 口的值 讀入鍵盤信息( 列 信息)。在這兒采用棧結(jié)構(gòu),可以有效的進(jìn)行表達(dá)式的處理。 為了實(shí)現(xiàn)算符 優(yōu)先算法。一個(gè)稱為 OPTR,用以寄存運(yùn)算符,另一個(gè)稱做 OPND,用以寄存操作數(shù)或運(yùn)算結(jié)果。 12 在這里,相應(yīng)的處理指的是,如果當(dāng)前符號(hào)的優(yōu)先級(jí)比棧頂優(yōu)先級(jí)低,則將該符號(hào)繼續(xù)壓入堆棧,不做其它操作;如果當(dāng)前符號(hào)的優(yōu)先級(jí)比棧頂優(yōu)先級(jí)高,則依次取出 操作數(shù)棧的棧頂兩個(gè)數(shù)據(jù)和符號(hào)棧的棧頂符號(hào)進(jìn)行這兩個(gè)數(shù)的運(yùn)算,運(yùn)算結(jié)果數(shù)據(jù)再壓入操作數(shù)棧中。 算符間的優(yōu)先關(guān)系如下 (‘ ‘表示開始和結(jié)束) : + * / ( ) + * / ( = ) = 表 運(yùn)算符優(yōu)先級(jí)表 13 altium designer 原理圖設(shè)計(jì)及 PCB 制作 原理圖設(shè)計(jì) 圖 原理圖設(shè)計(jì) ( 1) —— 單片機(jī)部分 圖 原理圖設(shè)計(jì) (2)—— 鍵盤、蜂鳴器部分 14 PCB 制作 圖 PCB 設(shè)計(jì)( 1) —— 單片機(jī)部分 圖 原理圖設(shè)計(jì)( 2) —— 鍵盤、蜂鳴器部分 注: 在此并沒有布雙層板,紅色的線僅僅只是為了標(biāo)志出跳線 或者本質(zhì)上實(shí)物已經(jīng)連接上了。 16 3 系統(tǒng) 測(cè)試 測(cè)試主要測(cè)試其運(yùn)算是否正確, 及檢錯(cuò)能力。首先打開電源,看到 LCD 打開顯示,說明運(yùn)行正常,接著,輸入表達(dá)式: 12*( 56+23) *2,其結(jié)果本身應(yīng)為 1896。在使用時(shí),可以通過聲音開關(guān)按鈕控制按鍵音的打開和關(guān)閉,在 LCD 上也有顯示,如果再第二行第一個(gè)位置沒有顯示,則沒有打開聲音,可以通過按鈕打開。 如圖 所示 ,此時(shí)已經(jīng)打開聲音。 輸入出錯(cuò)的情況 輸入一個(gè)錯(cuò)誤的表達(dá)式,如圖 所示。如圖 所示。由此可得,整個(gè)設(shè)計(jì)是成功的。一路下來(lái)還是比較坎坷,從原理到實(shí)物, 從調(diào)試到調(diào)試成功, 遇到了很多問題, 特別是在軟件編程時(shí),開始以為既然單片機(jī)具有數(shù)據(jù)處理與運(yùn)算的能力,那么用它來(lái)做一個(gè)計(jì)算器應(yīng)該很簡(jiǎn)單了,可是,后面實(shí)際操作才知道,當(dāng)計(jì)算表達(dá)式時(shí),優(yōu)先級(jí)問題非常重要,一開始用了很多 if 語(yǔ)句來(lái)實(shí)現(xiàn),程序繁瑣復(fù)雜,且效果不是很好,很容易出錯(cuò),最后通過查閱相關(guān)資料,了解到利用數(shù)據(jù)結(jié)構(gòu)中棧的思想來(lái)解決這一問題就很方便。 在 硬件的 原理圖 及 PCB 設(shè)計(jì)中, 也遇到了很多問題,先做模塊后做主板,導(dǎo)致我后面的布線就很麻煩,這也教會(huì)了我一些經(jīng)驗(yàn),在 PCB 分模塊設(shè)計(jì)中,模塊與模塊之間的連接也是必須考慮到的,從左端連接還是從右端連接,都直接影響到整個(gè) PCB 板的設(shè)計(jì)。實(shí)踐方面,提高了動(dòng)手能力,提高了解決實(shí)際問題的能力等等。 20 5 參考文獻(xiàn) 【 1】 《單片機(jī)基礎(chǔ)》第三版 李廣弟 朱月秀 冷祖祁 編著 北京航天大學(xué)出版社, 2020 【 2】 《 數(shù)據(jù)結(jié)構(gòu) 》 嚴(yán)蔚敏 編著 清華大學(xué)出版社 21 附錄 1 元器件清單 ( 1) 晶振 12M一個(gè) ( 2) stc89c52芯片一片 ( 3) 30pf 2個(gè); 10uf 1個(gè); ( 4) 40腳活動(dòng)底座一個(gè) ( 5) LCD液晶一個(gè) ( 6) 按鍵 21個(gè) ( 7)發(fā)光二極管 1個(gè) ( 8) 9引腳 排阻 1個(gè) ( 9) 680Ω 1個(gè); 10k 2個(gè); 1k 1個(gè); 10k滑動(dòng)變阻器 1個(gè); 10Ω 1個(gè); ( 10) 開關(guān) 1個(gè) ( 11) 5V有源蜂鳴器 1個(gè) ( 12) 三極管 S8550一個(gè) ( 13) 排針若干,杜邦線若干 22 附錄 2 程序清單 分 9 個(gè)文件: , ,, , (a) 程序清單: ifndef __delay_h__ define __delay_h__ void delay_us(uint t)。 endif (b) 程序清單: include void delay_us(unsigned int t) { while(t)。 for (i = 0。 i++) { for (j = 0。 j++) { delay_us(1)。 void LCD_write_Data(unsigned char Data)。 void LCD_init(void)。 void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)。 //定義端口 數(shù)據(jù)命令選擇 H/L sbit RW = P2^5。 //使能 extern unsigned char sk。 RW_CLR。 P0 = 。 EN_CLR。 RW_CLR。 P0 = Data。 EN_CLR。 delay_ms(5)。 LCD_write_(0x80)。 LCD_write_(0x80)。 if (y == 0) { LCD_write_(0x80 + x)。 } for(i=4。i) { if(s[14] == 39。 || s[14] == 39。) { for(j=14。j) { s[j] = s[j1]。 } while (*s) { LCD_write_Data(*s)。 } } /******************************************************************/ /* 寫入字節(jié)函數(shù) */ 25 /******************************************************************/ void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_write_(0x80 + x)。 } LCD_write_Data(Data)。 /*顯示模式設(shè)置 */ delay_ms(5)。 delay_ms(5)。 delay_ms(5)。 LCD_write_(0x08)。 /*顯示清屏 */ LCD_write_(0x06)。 LCD_write_(0x0C)。 //讀按鍵函數(shù) unsigned char keyscan(void)。 sbit key0=P2^0。 sbit key2=P2^2。 26 sbit speak=P2^7。 unsigned char keyvalue = 16。 //調(diào)用鍵盤掃描 switch(key) { case 0xee:keyvalue = 0。 //0 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0xde:keyvalue = 1。 //1 按下相應(yīng)的鍵顯示相對(duì)應(yīng)的碼值 case 0xbe:keyvalue =
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1