編譯原理課程設(shè)計(jì)-語法分析器_第1頁
編譯原理課程設(shè)計(jì)-語法分析器_第2頁
編譯原理課程設(shè)計(jì)-語法分析器_第3頁
編譯原理課程設(shè)計(jì)-語法分析器_第4頁
編譯原理課程設(shè)計(jì)-語法分析器_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE1福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院計(jì)算機(jī)類課程設(shè)計(jì)報(bào)告課程名稱:編譯原理課程設(shè)計(jì)題目:語法分析器姓名:系:軟件工程專業(yè):軟件工程年級(jí):2012級(jí)學(xué)號(hào):3126016056指導(dǎo)教師:職稱:副教授2014~2015學(xué)年第二學(xué)期福建農(nóng)林大學(xué)計(jì)算機(jī)與信息學(xué)院計(jì)算機(jī)類課程設(shè)計(jì)結(jié)果評(píng)定評(píng)語:成績(jī):指導(dǎo)教師簽字:任務(wù)下達(dá)日期:評(píng)定日期:目錄1正則表達(dá)式 11.1正則表達(dá)式 11.2確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖 11.3分析程序代碼 11.4程序運(yùn)行截圖 21.5小結(jié) 32LL(1)分析 42.1LL(1)文法 42.2LL(1)預(yù)測(cè)分析表 42.3分析程序代碼 42.4程序運(yùn)行截圖 62.5小結(jié) 73算符優(yōu)先分析 83.1算符優(yōu)先文法 83.2算符優(yōu)先關(guān)系表 83.3分析程序代碼 83.4程序運(yùn)行截圖 113.5小結(jié) 124LR分析 134.1LR文法 134.2LR分析表 134.3分析程序代碼 134.4程序運(yùn)行截圖 174.5小結(jié) 19參考文獻(xiàn): 19PAGE201正則表達(dá)式1.1正則表達(dá)式(a*|b*)b(ba)*1.2確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖1.3分析程序代碼importjava.util.Scanner;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassMain{ publicstaticvoidmain(String[]args){ Stringa,b; Scannerinput=newScanner(System.in); System.out.println("請(qǐng)先輸入【正則表達(dá)式】再輸入【符號(hào)串】"); while(input.hasNext()){ a=input.next(); b=input.next(); System.out.println("符號(hào)串【"+b+"】"+work(a,b)+"正則表達(dá)式【"+a+"】"); } } privatestaticStringwork(Stringa,Stringb){ Patternpattern=Ppile(a);//將給定的正則表達(dá)式編譯并賦予給Pattern類 Matchermatcher=pattern.matcher(b);//對(duì)輸入的字串以該正則表達(dá)式為模開展匹配 returnmatcher.matches()?"滿足":"不滿足";//匹配檢測(cè) }}#include<cstdio>#include<string>#include<iostream>usingnamespacestd;intm[100][255];//m[起點(diǎn)][路徑]=終點(diǎn)boolend[100];voidinit(){ m[1]['a']=2; m[1]['b']=3; m[2]['a']=2; m[2]['b']=4; m[3]['b']=6; m[4]['b']=5; m[5]['a']=4; m[6]['a']=4; m[6]['b']=6; end[3]=end[4]=end[6]=true;}intmain(){ puts("本程序的正則表達(dá)式為(a*|b*)b(ba)*,請(qǐng)輸入符號(hào)串"); strings; init(); cin>>s; intnow=1; for(inti=0;s[i];i++) now=m[now][s[i]]; if(end[now]) puts("符合"); else puts("不符合"); return0;}1.4程序運(yùn)行截圖JAVAC++1.5小結(jié) 通過JAVA自帶的類庫可以輕松完成動(dòng)態(tài)輸入【正則表達(dá)式】的程序,而C++的我目前不懂是否有這些類,如果要寫自帶構(gòu)圖的,代碼會(huì)比較復(fù)雜,所以這題我用C++寫的程序是固定的【正則表達(dá)式】的,這樣只需要在運(yùn)行核心代碼前用固定方式構(gòu)建好狀態(tài)轉(zhuǎn)換圖就可以了。

2LL(1)分析2.1LL(1)文法S→aDD→STe|εT→bH|HH→d|ε2.2LL(1)預(yù)測(cè)分析表aebd#SS→aDDD→STeD→εD→εD→εD→εTT→HT→bHT→HHH→εH→d2.3分析程序代碼#include<cstdio>#include<iostream>#include<string>#include<cstring>#include<iomanip>usingnamespacestd;strings,stack;stringLL[255][255];stringreverse(stringstr)//字符串倒置{ chart[100]={0}; intlen=str.length(); for(inti=0;i<len;i++) t[i]=str[len-i-1]; returnt;}voidinit(){ //"0"表示沒有這種轉(zhuǎn)化 //""表示ε for(inti=0;i<255;i++) for(intj=0;j<255;j++) LL[i][j]="0"; LL['S']['a']="aD"; LL['D']['a']="STe"; LL['D']['e']=""; LL['D']['b']=""; LL['D']['d']=""; LL['D']['#']=""; LL['T']['e']="H"; LL['T']['b']="bH"; LL['T']['d']="H"; LL['H']['e']=""; LL['H']['d']="d"; stack="S";}voidwork(){ puts("符號(hào)棧 輸入串 動(dòng)作"); cout<<left; inti=0; putchar('#'); cout<<setw(23)<<stack; cout<<setw(23)<<s.substr(i,s.length()); try{ while(!stack.empty()) { if(stack[stack.length()-1]==s[i])//執(zhí)行彈出 { cout<<"彈出棧頂符號(hào)"<<s[i]<<endl; i++; stack=stack.substr(0,stack.length()-1); } elseif(LL[stack[stack.length()-1]][s[i]]!="0")//執(zhí)行轉(zhuǎn)換 { cout<<stack[stack.length()-1]<<"→"; if(LL[stack[stack.length()-1]][s[i]]=="") puts("ε"); else cout<<LL[stack[stack.length()-1]][s[i]]<<endl; stack=stack.substr(0,stack.length()-1)+reverse(LL[stack[stack.length()-1]][s[i]]); } else throw0; putchar('#'); cout<<setw(23)<<stack; cout<<setw(23)<<s.substr(i,s.length()); } if(s[i]!='#') throw0; puts("\n匹配成功"); } catch(...) { puts("\n匹配不成功"); }}intmain(){ init(); puts("請(qǐng)輸入符號(hào)串"); cin>>s; s=s+"#"; work(); return0;}2.4程序運(yùn)行截圖2.5小結(jié)以【”0”】作為錯(cuò)誤輸入的標(biāo)志,把2.1中給定表格中無數(shù)據(jù)的項(xiàng)填入0,當(dāng)匹配到0時(shí),表示輸入的數(shù)據(jù)錯(cuò)誤。因?yàn)楸绢}要求顯示【符號(hào)棧】,所以我用string而不是用stack來表示符號(hào)棧,但運(yùn)用的仍然是棧的思想。這題我出錯(cuò)的地方在于循環(huán)條件寫成【s[i]!=’#’】(已改正),循環(huán)條件應(yīng)該為【!stack.empty()】,而成功判斷放在循環(huán)外,為【s[i]=='#'】。當(dāng)輸入錯(cuò)誤時(shí),一定會(huì)在循環(huán)內(nèi)部被找出,或者是程序運(yùn)行時(shí)拋出的異常都代表

3算符優(yōu)先分析3.1算符優(yōu)先文法E→E+T|TT→T*F|FF→(E)|i3.2算符優(yōu)先關(guān)系表+*i()#+><<<>>*>><<>>i>>>>(<<<<=)>>>>#<<<<=3.3分析程序代碼#include<cstdio>#include<iostream>#include<string>#include<cstring>#include<iomanip>#include<stack>#include<map>usingnamespacestd;charPrecedence[6][6]={ {'>','<','<','<','>','>'}, {'>','>','<','<','>','>'}, {'>','>','','','>','>'}, {'<','<','<','<','=',''}, {'>','>','','','>','>'}, {'<','<','<','<','','='}};charsymbol[255];strings;map<string,char>ex;voidinit()//構(gòu)造映射{ symbol['+']=0; symbol['*']=1; symbol['i']=2; symbol['(']=3; symbol[')']=4; symbol['#']=5; ex["E+T"]='E'; ex["T"]='E'; ex["T+T"]='E'; ex["F+T"]='E'; ex["T+F"]='E'; ex["F+F"]='E'; ex["E+F"]='E'; ex["T+F"]='E'; ex["T*F"]='T'; ex["F"]='T'; ex["F*F"]='T'; ex["(E)"]='F'; ex["i"]='F'; ex["(T)"]='F'; ex["(F)"]='F';}charcomp(chara,charb)//比較優(yōu)先級(jí)若ab無優(yōu)先關(guān)系則為非法輸入,拋出異常{ if(Precedence[symbol[a]][symbol[b]]=='') throw0; returnPrecedence[symbol[a]][symbol[b]];}voidwork(){ stringsymbolStack="";//用于輸出【符號(hào)棧】的字符串 puts("符號(hào)棧 輸入串"); cout<<left; inti=0; stack<char>ch;//符號(hào)棧【終結(jié)符】包括# stack<char>letter;//符號(hào)棧【非終結(jié)符號(hào)】 ch.push('#'); putchar('#'); cout<<setw(23)<<symbolStack; cout<<setw(23)<<s.substr(i,s.length())<<endl; try{ while(ch.top()!='#'||s[i]!='#') { switch(comp(ch.top(),s[i])) { case'<': symbolStack=symbolStack+s[i]; ch.push(s[i++]); break; case'>': if(ex[string("")+ch.top()]) { chart=ex[string("")+ch.top()]; ch.pop(); symbolStack=symbolStack.substr(0,symbolStack.length()-1)+t; letter.push(t); } elseif(ch.top()!=')') { charsc=letter.top(); letter.pop(); charfc=letter.top(); letter.pop(); chart=ex[string("")+fc+ch.top()+sc]; ch.pop(); symbolStack=symbolStack.substr(0,symbolStack.length()-3)+t; letter.push(t); } else { chart=ex[string("(")+letter.top()+")"]; ch.pop(); ch.pop(); letter.pop(); symbolStack=symbolStack.substr(0,symbolStack.length()-3)+t; letter.push(t); } break; case'=': symbolStack=symbolStack+s[i]; ch.push(s[i++]); break; } putchar('#'); cout<<setw(23)<<symbolStack; cout<<setw(23)<<s.substr(i,s.length())<<endl; } puts("合法輸入"); } catch(...) { puts("非法輸入"); }}intmain(){ init(); puts("請(qǐng)輸入符號(hào)串"); cin>>s; s=s+"#"; work(); return0;}3.4程序運(yùn)行截圖3.5小結(jié)這題遇到了些麻煩,在這題中【i>#】【+>#】,且【F→i】【E→E+T】,其中【i】可以單獨(dú)歸約,而【+】需要與另外2個(gè)非終結(jié)符一起歸約,我是直接判斷字符是否能夠單獨(dú)歸約,如果可以就歸約,不行就從【非終結(jié)符棧】中取出2個(gè),這是一點(diǎn)。而另一點(diǎn)因?yàn)椤綞→T】【T→F】,當(dāng)i進(jìn)行歸約時(shí),應(yīng)該把i歸約成F或T還是E就不明確了,所以我就在程序中添加例如【E→F】【E→F+F】等轉(zhuǎn)換。我這題的錯(cuò)誤在于把優(yōu)先級(jí)相等的符號(hào)直接進(jìn)行歸約而漏寫了入棧過程(已改正)。

4LR分析4.1LR文法(1)E→E+T(2)E→T(3)T→T*F(4)T→F(5)F→(E)(6)F→i4.2LR分析表狀態(tài)ACTIONGOTOi+*()#ETF0S5S41231S6acc2R2S7R2R23R4R4R4R44S5S48235R6R6R6R66S5S4937S5S4108S6S119R1S7R1R110R3R3R3R311R5R5R5R54.3分析程序代碼#include<iostream>#include<cstdio>#include<stack>#include<string>#include<cstring>#include<iomanip>#include<map>usingnamespacestd;structX{ chara; stringb;}ex[7];strings;stringACTION1[12][6]=//ACTION[狀態(tài)][符號(hào)]{ {"S5","","","S4","",""}, {"","S6","","","","acc"}, {"","R2","S7","","R2","R2"}, {"","R4","R4","","R4","R4"}, {"S5","","","S4","",""}, {"","R6","R6","","R6","R6"}, {"S5","","","S4","",""}, {"S5","","","S4","",""}, {"","S6","","","S11",""}, {"","R1","S7","","R1","R1"}, {"","R3","R3","","R3","R3"}, {"","R5","R5","","R5","R5"}};charACTION2[255];intGOTO1[12][3]=//GOTO[狀態(tài)][符號(hào)]{ {1,2,3}, {0,0,0}, {0,0,0}, {0,0,0}, {8,2,3}, {0,0,0}, {0,9,3}, {0,0,10}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},};intGOTO2[255];voidinit(){ for(inti=0;i<255;i++) ACTION2[i]=GOTO2[i]=-1; ACTION2['i']=0; ACTION2['+']=1; ACTION2['*']=2; ACTION2['(']=3; ACTION2[')']=4; ACTION2['#']=5; GOTO2['E']=0; GOTO2['T']=1; GOTO2['F']=2; ex[1].a='E'; ex[1].b="E+T"; ex[2].a='E'; ex[2].b="T"; ex[3].a='T'; ex[3].b="T*F"; ex[4].a='T'; ex[4].b="F"; ex[5].a='F'; ex[5].b="(E)"; ex[6].a='F'; ex[6].b="i";}voidpop(string&s)//若s為【0,5,10】,則把s改為【0,5】,即刪除最后一個(gè)逗號(hào)以后的數(shù)據(jù)。{ intl=s.length(); for(;s[l]!=',';l--); s=s.substr(0,l);}voidwork(){ puts("狀態(tài)棧 符號(hào)棧 輸入串"); inti=0; cout<<left; stack<int>state;//狀態(tài)棧 stack<char>ch;//符號(hào)棧 stringstateString="0";//狀態(tài)棧的顯示 stringchString="";//符號(hào)棧的顯示 state.push(0); cout<<setw(23)<<stateString; putchar('#'); cout<<setw(23)<<chString; cout<<setw(23)<<s.substr(i,s.length())<<endl; try{ while(1) { if('A'<=s[i]&&s[i]<='Z')//s[i]為非終結(jié)符 { intk=GOTO1[state.top()][GOTO2[s[i]]]; ch.push(s[i]); chString=chString+s[i]; state.push(k); if(k<10) stateString=stateString+","+char(k+'0'); else stateString=stateString+",1"+char(k%10+'0'); i++; } else//s[i]為終結(jié)符 { if(ACTION2[s[i]]==-1) throw0; stringt1=ACTION1[state.top()][ACTION2[s[i]]]; if(t1[0]=='S')//S { intk=t1[1]-'0'; if(t1[2]) k=k*10+t1[2]-'0'; state.push(k); stateString=stateString+","+t1[1]; if(t1[2]) stateString=stateString+t1[2]; ch.push(s[i]); chString=chString+s[i]; i++; } elseif(t1[0]=='R')//R { if(chString.substr(chString.length()-ex[t1[1]-'0'].b.length(),chString.length())==ex[t1[1]-'0'].b)//判斷是否能夠歸約 { for(inti=0;i<ex[t1[1]-'0'].b.length();i++) { state.pop(); pop(stateString); ch.pop(); } ch.push(ex[t1[1]-'0'].a); chString=chString.substr(0,chString.length()-ex[t1[1]-'0'].b.length())+ex[t1[1]-'0'].a; charchtop=ch.top(); intk=GOTO1[state.top()][GOTO2[chtop]]; state.push(k); if(k<10) stateString=stateString+","+char(k+'0'); else stateString=stateString+",1"+char(k%10+'0'); } else//失敗 throw0; } elseif(t1=="acc")//成功 { puts("分析成功"); return; } elseif(t1=="")//失敗 throw0; } cout<<setw(23)<<stateString; putchar('#'); cout<<setw(23)<<chString; cout<<setw(23)<<s.substr(i,s.length())<<endl; } } catch(...) { puts("分析失敗"); }}intmain(){ init(); puts("請(qǐng)輸入符號(hào)串"); cin>>s; s=s+"#"; work(); return0;}4.4程序運(yùn)行截圖4.5小結(jié)這道題和以前做過的表達(dá)式求值很像,但也有不一樣的地方,不同點(diǎn)在于表達(dá)式求值“規(guī)約”得到的任然是數(shù)字,并且也要把它壓入棧中,而這題“規(guī)約”得到的并不能再壓入同一個(gè)棧中(我另開了一個(gè)棧用于存儲(chǔ)這些規(guī)約完得到的東西)。我在這題出錯(cuò)的地方就是狀態(tài)棧的彈棧,彈棧次數(shù)應(yīng)該為歸約字符串的長(zhǎng)度。另一個(gè)錯(cuò)誤在于沒有考慮到輸入串中有非終結(jié)符(已改正),只需在每次循環(huán)的開始添加判斷即可。參考文獻(xiàn):[1]楊德芳主編.編譯原理實(shí)用教程[M].北京:中國水利水電出版社,2007基于C8051F單片機(jī)直流電動(dòng)機(jī)反饋控制系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的嵌入式Web服務(wù)器的研究MOTOROLA單片機(jī)MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對(duì)良率的影響研究基于模糊控制的電阻釬焊單片機(jī)溫度控制系統(tǒng)的研制基于MCS-51系列單片機(jī)的通用控制模塊的研究基于單片機(jī)實(shí)現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機(jī)控制的二級(jí)倒立擺系統(tǒng)的研究基于增強(qiáng)型51系列單片機(jī)的TCP/IP協(xié)議棧的實(shí)現(xiàn)基于單片機(jī)的蓄電池自動(dòng)監(jiān)測(cè)系統(tǒng)基于32位嵌入式單片機(jī)系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機(jī)的作物營(yíng)養(yǎng)診斷專家系統(tǒng)的研究基于單片機(jī)的交流伺服電機(jī)運(yùn)動(dòng)控制系統(tǒng)研究與開發(fā)基于單片機(jī)的泵管內(nèi)壁硬度測(cè)試儀的研制基于單片機(jī)的自動(dòng)找平控制系統(tǒng)研究基于C8051F040單片機(jī)的嵌入式系統(tǒng)開發(fā)基于單片機(jī)的液壓動(dòng)力系統(tǒng)狀態(tài)監(jiān)測(cè)儀開發(fā)模糊Smith智能控制方法的研究及其單片機(jī)實(shí)現(xiàn)一種基于單片機(jī)的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機(jī)的在線間歇式濁度儀的研制基于單片機(jī)的噴油泵試驗(yàn)臺(tái)控制器的研制基于單片機(jī)的軟起動(dòng)器的研究和設(shè)計(jì)基于單片機(jī)控制的高速快走絲電火花線切割機(jī)床短循環(huán)走絲方式研究基于單片機(jī)的機(jī)電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機(jī)的智能手機(jī)充電器基于單片機(jī)的實(shí)時(shí)內(nèi)核設(shè)計(jì)及其應(yīng)用研究基于單片機(jī)的遠(yuǎn)程抄表系統(tǒng)的設(shè)計(jì)與研究基于單片機(jī)的煙氣二氧化硫濃度檢測(cè)儀的研制基于微型光譜儀的單片機(jī)系統(tǒng)單片機(jī)系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機(jī)的液體點(diǎn)滴速度自動(dòng)檢測(cè)儀的研制基于單片機(jī)系統(tǒng)的多功能溫度測(cè)量?jī)x的研制基于PIC單片機(jī)的電能采集終端的設(shè)計(jì)和應(yīng)用基于單片機(jī)的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機(jī)單片機(jī)控制系統(tǒng)的研制基于單片機(jī)的數(shù)字磁通門傳感器基于單片機(jī)的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機(jī)的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機(jī)控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機(jī)的多生理信號(hào)檢測(cè)儀基于單片機(jī)的電機(jī)運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)Pico專用單片機(jī)核的可測(cè)性設(shè)計(jì)研究基于MCS-51單片機(jī)的熱量計(jì)基于雙單片機(jī)的智能遙測(cè)微型氣象站MCS-51單片機(jī)構(gòu)建機(jī)器人的實(shí)踐研究基于單片機(jī)的輪軌力檢測(cè)基于單片機(jī)的GPS定位儀的研究與實(shí)現(xiàn)基于單片機(jī)的電液伺服控制系統(tǒng)用于單片機(jī)系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機(jī)的時(shí)控和計(jì)數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機(jī)和CPLD的粗光柵位移測(cè)量系統(tǒng)研究單片機(jī)控制的后備式方波UPS提升高職學(xué)生單片機(jī)應(yīng)用能力的探究基于單片機(jī)控制的自動(dòng)低頻減載裝置研究基于單片機(jī)控制的水下焊接電源的研究基于單片機(jī)的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機(jī)的氚表面污染測(cè)量?jī)x的研制基于單片機(jī)的紅外測(cè)油儀的研究96系列單片機(jī)仿真器研究與設(shè)計(jì)基于單片機(jī)的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機(jī)的溫度智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)基于MSP430單片機(jī)的電梯門機(jī)控制器的研制基于單片機(jī)的氣體測(cè)漏儀的研究基于三菱M16C/6N系列單片機(jī)的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機(jī)和DSP的變壓器油色譜在線監(jiān)測(cè)技術(shù)研究基于單片機(jī)的膛壁溫度報(bào)警系統(tǒng)設(shè)計(jì)基于AVR單片機(jī)的低壓無功補(bǔ)償控制器的設(shè)計(jì)基于單片機(jī)船舶電力推進(jìn)電機(jī)監(jiān)測(cè)系統(tǒng)基于單片機(jī)網(wǎng)絡(luò)的振動(dòng)信號(hào)的采集系統(tǒng)基于單片機(jī)的大容量數(shù)據(jù)存儲(chǔ)技術(shù)的應(yīng)用研究基于單片機(jī)的疊圖機(jī)研究與教學(xué)方法實(shí)踐基于單片機(jī)嵌入式Web服務(wù)器技術(shù)的研究及實(shí)現(xiàn)基于AT89S52單片機(jī)的通用數(shù)據(jù)采集系統(tǒng)基于單片機(jī)的多道脈沖幅度分析儀研究機(jī)器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機(jī)控制系統(tǒng)基于單片機(jī)的控制系統(tǒng)在PLC虛擬教學(xué)實(shí)驗(yàn)中的應(yīng)用研究基于單片機(jī)系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機(jī)的莫爾斯碼自動(dòng)譯碼系統(tǒng)設(shè)計(jì)與研究基于單片機(jī)的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機(jī)沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機(jī)的μC/OS-Ⅱ的研究基于單片機(jī)的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機(jī)與Internet互聯(lián)的研究與實(shí)現(xiàn)變頻調(diào)速液壓電梯單片機(jī)控制器的研究基于單片機(jī)γ-免疫計(jì)數(shù)器自動(dòng)換樣功能的研究與實(shí)現(xiàn)基于單片機(jī)的倒立擺控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)單片機(jī)嵌入式以太網(wǎng)防盜報(bào)警系統(tǒng)基于51單片機(jī)的嵌入式Internet系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)單片機(jī)監(jiān)測(cè)系統(tǒng)在擠壓機(jī)上的應(yīng)用MSP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論