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

正文內(nèi)容

基于51單片機(jī)的多功能計(jì)算器設(shè)計(jì)課程設(shè)計(jì)-免費(fèi)閱讀

  

【正文】 !39。 LCD_write_(0x80+keycount2)。 if(keycount==1 amp。 default:break。 num1 = POP_OPND(amp。 case 1: POP_OPTR(amp。(39。) { flagdp = 1。snd,c)。amp。 c = *(s++)。 34 Init_OPTR(amp。 //數(shù)據(jù)棧 char flagnum = 0。 keycount = 0。 LCD_write_(0x80 + keycount)。d39。 LCD_clear()。 void ErrorProcess(void)。 endif (j) 程序清單: include unsigned char code uckey[20] = {0x37,0x38,0x39,0x28,0x29, 0x34,0x35,0x36,0x2b,0x2d, 0x31,0x32,0x33,0x2a,0x2f, 32 0x30,0x2e,0x64,0xde,0x3d}。 double j = 1。break。break。 } double Operate(double num1,char theta,double num2) { double num3。break。break。break。break。)39。/39。39。 temp= *(sdtop)。 temp= *(srtop)。 void Pushdp(OPND *sq,char flag,double c)。 void PUSH_OPTR(OPTR *s,char elem)。 } } return(0xff)。 } speak = 1。 return 0x00。 speak = !sk。0x0f。 //key3 case 0xff:keyvalue = 20。 //15 case 0x00:keyvalue = 4。 //11 case 0xe7:keyvalue = 15。 //7 case 0xeb:keyvalue = 10。 //3 case 0xed:keyvalue = 5。 //調(diào)用鍵盤掃描 switch(key) { case 0xee:keyvalue = 0。 sbit key0=P2^0。 LCD_write_(0x08)。 } LCD_write_Data(Data)。) { for(j=14。 if (y == 0) { LCD_write_(0x80 + x)。 EN_CLR。 P0 = 。 void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)。 i++) { for (j = 0。實(shí)踐方面,提高了動(dòng)手能力,提高了解決實(shí)際問(wèn)題的能力等等。如圖 所示。首先打開電源,看到 LCD 打開顯示,說(shuō)明運(yùn)行正常,接著,輸入表達(dá)式: 12*( 56+23) *2,其結(jié)果本身應(yīng)為 1896。一個(gè)稱為 OPTR,用以寄存運(yùn)算符,另一個(gè)稱做 OPND,用以寄存操作數(shù)或運(yùn)算結(jié)果。 矩陣鍵盤掃描 程序,首先讀出 P3 的低四位,然后讀出 P3 口的高四位。 圖 LCD 顯示電路 至此,整個(gè)電容測(cè)量?jī)x的硬件設(shè)計(jì)部分就 基本設(shè)計(jì)完成 ,接下來(lái),需要的就是與之相匹配的軟件支持了。 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的矩陣鍵盤的接線。 方案比較及選擇 通過(guò)以上兩種方案論證和比較,從設(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)算。 設(shè)計(jì)要求 在本次課程設(shè)計(jì)中,主要完成如下方面的設(shè)計(jì)要求: 掌握 MCS51 系列某種產(chǎn)品(例如 8051)的最小電路及外圍擴(kuò)展電路的設(shè)計(jì)方法; 計(jì)算器能實(shí)現(xiàn)基本的加、減、乘、除四則運(yùn)算; 支持浮點(diǎn)數(shù)運(yùn)算 ; 支持括號(hào)運(yùn)算,允許括號(hào)的多層正確嵌套 ; 較為友好的界面顯示,對(duì)輸入實(shí)時(shí)顯示,對(duì)計(jì)算結(jié)果輸出顯示 ; 能夠具備比較完善的報(bào)錯(cuò)系統(tǒng) 方案論證及選擇 基于設(shè)計(jì)要求,笨設(shè)計(jì)考慮了兩種設(shè)計(jì)方案,他們均可以實(shí)現(xiàn)計(jì)算器的功能,但基于設(shè)計(jì)目的及微控制器的廣泛運(yùn)用,比較兩種方案的優(yōu)劣, 最終選擇基于 51 單片機(jī)的計(jì)算器設(shè)計(jì)。計(jì)算器作為一種快速通用的計(jì)算工具方便了用戶的使用。 在設(shè)計(jì)的同時(shí), 特別注重 keil 軟件 和 altium designer軟件的使用方法 和技巧 以及常用的 LCD顯示器和矩陣 鍵盤的 設(shè)計(jì)和 使用方法。通常由單塊集成電路芯片組成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器CPU,存儲(chǔ)器和 I/O 接口電路等。 同時(shí),為使 P0口正常工作,并增加其帶負(fù)載能力, P0口需接了上拉電阻 。 同時(shí)單片機(jī) I/O 口還在這里還起到開關(guān)作用,為 ‘ 0’ 時(shí)打開蜂鳴器通道,使蜂鳴器發(fā)聲。 具體程序見附錄二 。 棧結(jié)構(gòu)具有“后進(jìn)先出”的固有屬性,借助這個(gè)屬性我們可以隨時(shí)對(duì)剛輸入的元素進(jìn)行操作,從而實(shí)現(xiàn)邊輸入邊計(jì)算。 15 設(shè)計(jì)結(jié)果 圖 設(shè)計(jì)結(jié)果實(shí)物圖 如圖所示,各個(gè)按鍵功能如圖中文字說(shuō)明,電源為 5V直流電源。 圖 整數(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)。但在實(shí)際寫程序時(shí)也遇到了很多問(wèn)題,但最終還是克服難關(guān),將整個(gè)軟件比較完善的實(shí) 現(xiàn)了。 } void delay_ms(unsigned int t) { unsigned int i, j。 void LCD_clear(void)。 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。 EN_SET。 } else { LCD_write_char(0,1,0x20)。039。 s++。 LCD_write_(0x38)。 /*顯示開及光標(biāo)設(shè)置 */ } (e)按鍵 程序清單: ifndef __KEYBOARD_H define __KEYBOARD_H unsigned char KeyProcess(void)。 unsigned char KeyProcess(void) { unsigned char key。break。break。break。break。break。 } unsigned char keyscan(void) //鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法 { unsigned char cord_h,cord_l。 //輸出當(dāng)前行線值 cord_l=P3amp。 if(key0==0) { while(key0 == 0) { speak = !sk。 return 0x01。 } speak = 1。 double *dtop。 char Precede(char a,char b)。 srtop ++。 30 sdtop ++。:i=0。:i=2。:i=4。:i=6。 case 39。 case 39。 case 39。 default :j=0。 case 39。 case 39。 PUSH_OPND(sq,temp2)。 temp4 = temp3 + c * j。 char getonechar(void)。 P2 = 0xff。39。 if(sk == 1) { LCD_write_char(0,1,0xde)。 } s[ipos] = 39。 LCD_write_str(1,1,text)。 Init_OPND(amp。39。)) { if(c=39。snd,(double)c)。 } c=*(s++)。 } else switch(Precede(*(),c)) { case 0: if(flagnum == 0 amp。 35 flagnum = 0。str)。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦

基于單片機(jī)的簡(jiǎn)易計(jì)算器設(shè)計(jì)-資料下載頁(yè)

【摘要】電》