版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)課程設(shè)計報告</b></p><p> 設(shè)計課題:遠(yuǎn)程智能溫度采集和顯示系統(tǒng) </p><p> 專業(yè)班級: 08電子工程(2)班 </p><p> 學(xué)生姓名: xxx</p><p> 指導(dǎo)教師: xxx </p><p> 設(shè)計
2、時間:2011.4.7—2011.6.7 </p><p><b> 物理與電子工程學(xué)院</b></p><p> 遠(yuǎn)程智能溫度采集和顯示系統(tǒng)設(shè)計</p><p><b> 一、設(shè)計任務(wù)與要求</b></p><p> 1.設(shè)計一個小型溫度采集系統(tǒng),具體要求如下:用數(shù)字溫度傳感器檢測溫度。單
3、片機(jī)STC89C52從溫度傳感器讀取溫度數(shù)據(jù),并送數(shù)碼管顯示,單片機(jī)再把數(shù)據(jù)傳給MAX232進(jìn)行電平轉(zhuǎn)換,MAX232把轉(zhuǎn)換后的數(shù)據(jù)傳給PC機(jī)。數(shù)據(jù)可以雙向傳送,即PC機(jī)可以從單片機(jī)接收數(shù)據(jù),也可以發(fā)送數(shù)據(jù)給單片機(jī)。溫度采集系統(tǒng)可以設(shè)置溫度的上、下限,當(dāng)溫度達(dá)到上、下限時能通過蜂鳴器和發(fā)光二極管報警。設(shè)計一個+5V的穩(wěn)壓電源給溫度采集系統(tǒng)供電。</p><p> 2.掌握PCB制板技術(shù)、焊接技術(shù)、電路檢測以及單
4、片機(jī)等集成電路的使用方法;</p><p> 3.掌握遠(yuǎn)程智能溫度采集顯示系統(tǒng)的設(shè)計,組裝與調(diào)試方法;</p><p><b> 二、方案設(shè)計與論證</b></p><p> 采用STC89C52芯片,該芯片內(nèi)部有8K的ROM, STC89C52系列單片機(jī)是宏推出的新一代超強(qiáng)抗干擾、高速、低功耗的單片機(jī),這個系列單片機(jī)在片內(nèi)含有FLAH
5、存儲器,因此有十分廣泛的用途。特別是在便攜式、省電和特殊信息保存的儀器中顯得更為有用。</p><p> 由于STC89C52系列單片機(jī)的ISP在線編程功能優(yōu)勢在于改寫單片機(jī)存儲器的內(nèi)的程序而不需要把芯片從工作環(huán)境中剝離,這是一個強(qiáng)大易用的功能,易于調(diào)試和修改。</p><p><b> ?。?)、電源模塊</b></p><p> 用三端
6、穩(wěn)壓芯片7805,即可為單片機(jī)提供穩(wěn)定的5V電源。且成本低,接線方便。</p><p><b> (3)顯示模塊</b></p><p> 選用四位數(shù)碼管作為顯示輸出。</p><p> 由于本系統(tǒng)僅需要顯示溫度值,故選用四位數(shù)碼管作為顯示輸出,操作方便。相比1602的操作繁瑣,對時序要求嚴(yán)格,采用數(shù)碼管動態(tài)掃描方式顯示簡單數(shù)據(jù)顯得更加方
7、便和靈活。降低了編程的難度,故選擇用數(shù)碼管作為顯示輸出。</p><p><b> ?。?)溫度檢測模塊</b></p><p> 采用集成溫度傳感器DS18B20作為溫度測量的核心,具有接線簡單,操作簡單的優(yōu)點。DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,具有獨特的優(yōu)點:</p><p> 采用單總線的接口方式 與微處理器連接時
8、僅需要一條口線即可實現(xiàn)微處理器與 DS18B20 的雙向通訊。 </p><p> 測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C 范圍內(nèi),精度為 ± 0.5°C 。</p><p> 鑒于方案二的電路更簡單,成本也低,并且性能較好,故本設(shè)計采用此方案。</p><p
9、><b> 三、硬件電路設(shè)計</b></p><p> 設(shè)計的硬件電路主要包括以下幾個部分:單片機(jī)、DS18B20測溫電路、串口通信電路模塊、MAX232電平轉(zhuǎn)換電路、蜂鳴器報警及數(shù)碼管顯示電路</p><p> 圖1電路設(shè)計總體方框圖</p><p><b> ?。?)、測溫電路:</b></p>
10、<p> DS18B20的測溫原理:內(nèi)部計數(shù)器內(nèi)部計數(shù)器對一個受溫度影響的振蕩器的脈沖計數(shù),低溫時振蕩器的脈沖可以通過門電路,而當(dāng)?shù)竭_(dá)某一設(shè)置高溫時,振蕩器的脈沖無法通過門電路。計數(shù)器設(shè)置為-55℃時的值,如果計數(shù)器到達(dá)0之前門電路未關(guān)閉,則溫度寄存器的值將增加,這表示當(dāng)前溫度高于-55℃。同時,計數(shù)器復(fù)位在當(dāng)前溫度值上,電路對振蕩器的溫度系數(shù)進(jìn)行補(bǔ)償,計數(shù)器重新開始計數(shù)直到回零。如果門電路仍然未關(guān)閉,則重復(fù)以上過程。溫
11、度轉(zhuǎn)換所需時間不超過750ms,得到的溫度值的位數(shù)因分辨率不同而不同。</p><p><b> 硬件電路圖如下:</b></p><p> 圖2 DS18B20測溫電路</p><p><b> ?。?)復(fù)位電路</b></p><p> 單片機(jī)工作之后,只要在他的RST引線上加載10ms以
12、上的高點平,單片機(jī)就能有效地復(fù)位。CS-51單片機(jī)通常采用自動復(fù)位和按鍵復(fù)位兩種方式。這里采用按鍵復(fù)位和上電復(fù)位兩種電路結(jié)合,電路圖如下:</p><p><b> 圖3 復(fù)位電路</b></p><p> (3)、數(shù)碼管顯示電路</p><p> 使用四位共陽數(shù)碼管動態(tài)掃描的方式來顯示溫度值,數(shù)碼管由PNP三級管9012來驅(qū)動。單片機(jī)與
13、數(shù)碼管間加限流電阻。電路圖如下:</p><p><b> 圖4、顯示電路</b></p><p> (4)報警與狀態(tài)指示電路</p><p> 由蜂鳴器與LED燈組成,指示溫度狀態(tài)及報警,電路圖如下:</p><p> 圖5 報警及狀態(tài)指示電路</p><p><b> 四、
14、軟件設(shè)計</b></p><p> 本次設(shè)計的軟件部分主要在于STC89C52,主要包括溫度采集,溫度顯示,串口通信,狀態(tài)指示等。軟件部分主要實現(xiàn)的功能是通過DS18B20將溫度值采集進(jìn)來,并顯示在數(shù)碼管上,同時判斷當(dāng)前的溫度狀態(tài)并指示或報警,同時由PC機(jī)通過串口進(jìn)行溫度讀取,上下限設(shè)置等功能。</p><p><b> 五、安裝與調(diào)試</b><
15、/p><p><b> 1.焊接 </b></p><p> 查閱各種資料結(jié)合所學(xué)知識,規(guī)劃好硬件設(shè)計與軟件設(shè)計以后,就可以根據(jù)設(shè)計思路畫出電路原理圖。仔細(xì)檢查,看是否與設(shè)計思路相同。畫出原理圖,再將原理圖生成PCB圖,調(diào)整元器件的位置,使整塊PCB看起來更緊湊一些,盡量縮小板子的空間大小,再把元器件的各個管腳連接在一起,最后在適當(dāng)?shù)恼{(diào)整PCB圖使圖看起來更完美[14
16、]。在畫PCB圖中遇到的最大問題就是:有些元器件的封裝形式?jīng)]有那要需要自己畫。</p><p> 電路的可靠性以及抗干擾問題非常重要必須采取一定的措施。首先應(yīng)考慮到元器件的選擇,一定要選擇抗干擾能力強(qiáng)的合適的元器件。當(dāng)元器件確定之后,印刷電路板設(shè)計的好壞則直接影響著系統(tǒng)的穩(wěn)定性和可靠性,規(guī)劃電路板時應(yīng)該做到:電路板的總體布局要合理;布線時走線盡可能的短、相鄰線距離盡可能寬、過孔盡可能少;接地線應(yīng)盡可能粗,要盡可
17、能放在電路板的邊緣部分;對于會產(chǎn)生干擾的元件,如按鍵、繼電器等,應(yīng)盡量放置在電路板的最邊沿[15,16]。在焊接的時候要特別注意不要虛焊,焊接的溫度不宜過高,若注意到在焊接的線路板附近有白煙冒出,說明溫度偏高了。這個時候最好接觸一些松香,等溫度降下了再繼續(xù)焊接。這樣完成后的實物往往還存在著缺陷,在使用前應(yīng)先進(jìn)行硬件電路的調(diào)試。</p><p><b> 2調(diào)試</b></p>
18、<p> 調(diào)試對設(shè)計的完成來說無疑是非常重要的。這部分主要分為硬件調(diào)試和軟件的調(diào)試。</p><p><b> ?。?).硬件部分</b></p><p> 硬件正常是軟件調(diào)試及運(yùn)行的前提,所以在硬件調(diào)試這一塊要非常仔細(xì)認(rèn)真。先大致觀察整塊板子有沒有短路、虛焊、極性接錯,核對元器件規(guī)格、型號,檢查芯片間連線是否正確,尤其應(yīng)該注意芯片放置時方向是否有誤。
19、再對照原理圖和PCB圖更加仔細(xì)的觀察有沒有地方漏焊或斷路。最后用數(shù)字萬用表進(jìn)一步進(jìn)行檢測是否有虛焊、短路的情況。如果發(fā)現(xiàn)虛焊、短路、極性接錯要及時撲救。加上電源進(jìn)一步判斷電路是否正常,并判斷設(shè)計的電路是否正確。測量輸出端的電壓是否符合設(shè)計要求。一般情況下電路多很難設(shè)計的很完美,一次成功,往往需要不斷的改進(jìn),不斷完善。</p><p><b> (2).軟件部分</b></p>
20、<p> 在某些電路中用小程序來檢測硬件電路的好壞,會使硬件電路檢測變的很簡單,大大減少工作量。如:時鐘顯示電路、報警與狀態(tài)指示電路等。時鐘顯示電路的檢測小程序如下:</p><p> P2=0x00;P0=0x00;</p><p> 假如數(shù)碼管的第一位不亮就說明控制第一位數(shù)碼管的線路有問題。只要檢查P2-0的輸出電路就可以了。假如8個數(shù)碼管的A段都不亮說明控制A段的線
21、路有問題,只要檢查P0-0就可以了。這樣就可以使電路檢測一目了然,方便硬件電路檢測,達(dá)到軟硬結(jié)合。</p><p> 軟件的調(diào)試是最后階段。由于程序的編寫的結(jié)構(gòu)型的,一個個模塊清清楚楚分開的,所以在調(diào)試的時候也按照這種方法調(diào)試。</p><p> 先獨立地調(diào)試各個程序模塊,如數(shù)碼管顯示程序、延時子程序、溫度檢測程序等。在確保這些獨立的子程序沒有出錯或遺漏的情況下在主程序中調(diào)用它們,將它
22、們連接在一起工作。</p><p> 在軟件調(diào)試的過程中主要遇到以下一些問題:</p><p> ?。?).芯片的引腳較多,容易搞混,所以在程序中的輸入輸出口要寫清楚,仔細(xì)檢查。</p><p> ?。?). 數(shù)碼管顯示程序、溫度檢測等程序多應(yīng)放在循環(huán)中,不來就會出錯。</p><p> 打開串口調(diào)試助手,建立溫度采集系統(tǒng)的連接。設(shè)置相關(guān)
23、的參數(shù),設(shè)置通道為COM4,波特率為9600,數(shù)據(jù)位8,無奇偶校驗,1位停止位,數(shù)據(jù)流控制為無。串口調(diào)試助手如圖所示:</p><p> 向單片機(jī)發(fā)送命令字符‘w’,獲取當(dāng)前溫度值,發(fā)送‘h’和‘l‘,分別設(shè)置溫度的上下限值,發(fā)送’g‘獲取當(dāng)前的上下限值。</p><p><b> 六、性能測試與分析</b></p><p> 本次設(shè)計的
24、結(jié)果能比較準(zhǔn)確的顯示實時溫度。能正常的設(shè)置溫度報警的上下限值,并能復(fù)位,重新顯示實時溫度值。而且可以完成的比較好,蜂鳴器報警的正常。能正常的與PC機(jī)進(jìn)行通信。</p><p><b> 七、結(jié)論與心得</b></p><p> 本次課程設(shè)計是利用STC89C52的優(yōu)良性能開發(fā)了一款經(jīng)濟(jì)實用的遠(yuǎn)程智能溫度采集和顯示系統(tǒng)。實現(xiàn)了時鐘顯示,報警監(jiān)控,溫度采集,報警輸出功
25、能。</p><p> 通過在互聯(lián)網(wǎng)上和書本上參考過其它一些相關(guān)方面的設(shè)計,并自己重新將主要部分的電路設(shè)計好且畫好了,所以在剛接到這個設(shè)計的時候,感到這個設(shè)計應(yīng)該會很快就能完成。但是結(jié)果卻不是我們預(yù)料的那么順利。從中我發(fā)現(xiàn),在設(shè)計之前認(rèn)真且比較完整得閱讀相關(guān)芯片資料是非常關(guān)鍵的。不管是中文也好,英文也好(英文更是能提高閱讀外文資料的能力),都要仔細(xì)研讀。這樣做對設(shè)計是百利而無害的。</p><
26、;p> 此次的課程設(shè)計讓我了解了自己在設(shè)計方面的不足,尤其是需要更多的設(shè)計實踐的經(jīng)驗來充實自己。但這次的設(shè)計總算是比較順利地完成了,它是我在大學(xué)所學(xué)的知識的回顧和鞏固,讓我綜合地系統(tǒng)地去復(fù)習(xí)并應(yīng)用一些所學(xué)的理論知識,同時也為今后做畢業(yè)設(shè)計做了一個很好的熱身和充分的準(zhǔn)備,起到了非常大的幫助。</p><p><b> 八、參考文獻(xiàn)</b></p><p>
27、[1] 胡輝.單片機(jī)原理與應(yīng)用[M].中國水利水電出版社,2007.</p><p> [2] 萬光毅,嚴(yán)義,邢春香.單片機(jī)實驗與實踐教程[M].北京:北京航空航天大學(xué)出版社,2006.4</p><p> [3] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:航空航天出版社,2003.</p><p> [4]譚浩強(qiáng),C程序設(shè)計(第三版).清華大學(xué)出版社,2005.<
28、;/p><p><b> 附 件</b></p><p><b> 附件1 總原理圖</b></p><p><b> 附件2 PCB圖</b></p><p><b> 附件3 元器件清單</b></p><p><
29、;b> 附件4 程序清單</b></p><p> #include "reg51.h"</p><p> #include "intrins.h" </p><p> #define Disdata P0
30、 </p><p> #define discan P2 </p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> sbit DQ=P1^4
31、; </p><p> sbit DIN=P0^7; </p><p> sbit h_led=P1^0; </p><p> sbit n_led=P1^1; </p><p> sbit l_led=P1^2; </p&
32、gt;<p> sbit beep=P1^3; </p><p> uint h,bcount=0,count=0; </p><p> uchar flag,bug=1,p=0;uchar cn;</p><p> unsigned char tmp,bs=5;</
33、p><p> float tc,ht=30,lt=-5;</p><p> uchar code word[]="Wrong Cmd ";</p><p> uchar code htemp[]="please input ceiling temperature! ";</p><p> uchar
34、 code ltemp[]="please input floor temperature! ";</p><p> uchar code ntemp[]="now the temperature is : ";</p><p> uchar code cf[]="ceiling and floor temperature is: &q
35、uot;;</p><p> uchar code ts[]="wrong input";</p><p> char b[5]={'+','3','0','.','0'};</p><p> char k[5]={'-','0
36、','5','.','0'};</p><p> char ss[5],sm[5];</p><p> uchar code ditab[16]={0x00,0x01,0x01,0x02,</p><p> 0x03,0x03,0x04,0x04,</p><p> 0x05,0
37、x06,0x06,0x07,</p><p> 0x08,0x08,0x09,0x09};</p><p> uchar code dis_7[12]={0xc0,0xf9,0xa4,0xb0,</p><p> 0x99,0x92,0x82,0xf8,</p><p> 0x80,0x90,0xff,0xbf};</p>
38、<p> uchar code scan_con[4]={0xf7,0xfb,0xfd,0xfe}; </p><p> uchar data temp_data[2]={0x00,0x00}; </p><p> uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; </p>
39、;<p> void delay(uint t)</p><p><b> {</b></p><p> for(;t>0;t--);</p><p><b> }</b></p><p> void scan()</p><p><b&g
40、t; {</b></p><p><b> char k;</b></p><p> for(k=0;k<4;k++) </p><p><b> {</b></p><p> Disdata=0xff;</p><p> Dis
41、data=dis_7[display[k]];</p><p><b> if(k==1)</b></p><p><b> {</b></p><p><b> DIN=0;</b></p><p><b> }</b></p>&
42、lt;p> discan=scan_con[k];delay(90);</p><p> discan=0xff;</p><p><b> }</b></p><p><b> }</b></p><p> void ow_reset(void)</p><p&
43、gt;<b> {</b></p><p> char presence=1;</p><p> while(presence)</p><p><b> {</b></p><p> while(presence)</p><p><b> {<
44、/b></p><p><b> DQ=1;</b></p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> DQ=0;</b></p><p>
45、; delay(50);</p><p><b> DQ=1;</b></p><p> delay(6); </p><p> presence=DQ;</p><p><b> }</b></p><p> delay(45); </p>
46、<p> presence = ~DQ;</p><p><b> }</b></p><p><b> DQ=1;</b></p><p><b> } </b></p><p> void write_byte(uchar val)</p>
47、<p><b> { </b></p><p><b> uchar i;</b></p><p> for (i=8; i>0; i--) </p><p><b> {</b></p><p> DQ=1;_nop_();_nop_(); <
48、;/p><p> DQ = 0;_nop_();_nop_();</p><p> _nop_();_nop_();_nop_();</p><p> DQ = val&0x01;</p><p> delay(6); </p><p> val=val/2; </p>
49、<p><b> }</b></p><p><b> DQ = 1;</b></p><p><b> delay(1);</b></p><p><b> }</b></p><p> uchar read_byte(void)&l
50、t;/p><p><b> { </b></p><p><b> uchar i;</b></p><p> uchar value = 0;</p><p> for (i=8;i>0;i--)</p><p><b> {</b><
51、;/p><p><b> DQ=1;</b></p><p> _nop_();_nop_();</p><p> value>>=1;</p><p> DQ = 0; </p><p> _nop_();_nop_();</p><
52、p> _nop_();_nop_(); </p><p><b> DQ = 1;</b></p><p> _nop_();_nop_();</p><p> _nop_();_nop_(); </p><p> if(DQ)value|=0x80;</p><p><
53、;b> delay(6);</b></p><p><b> }</b></p><p><b> DQ=1;</b></p><p> return(value);</p><p><b> }</b></p><p>
54、void read_temp()</p><p><b> { </b></p><p> ow_reset(); </p><p> write_byte(0xCC); </p><p> write_byte(0xBE); </p><p> temp_data[0]=r
55、ead_byte(); </p><p> temp_data[1]=read_byte();</p><p> ow_reset();</p><p> write_byte(0xCC); </p><p> write_byte(0x44); }</p><p> void work_temp()<
56、/p><p><b> {</b></p><p> uchar n=0;</p><p> uchar doth,dotl;</p><p> uchar flag3=1,flag2=1; </p><p> if((temp_data[1]&0xf8)!=0x00)&
57、lt;/p><p><b> {</b></p><p> temp_data[1]=~(temp_data[1]);</p><p> temp_data[0]=~(temp_data[0])+1;</p><p> n=1;flag=1;</p><p><b> }</
58、b></p><p> if(temp_data[0]>255)</p><p> {temp_data[1]++; }</p><p> display[4]=temp_data[0]&0x0f;</p><p> display[0]=ditab[display[4]];</p><p>
59、; doth=display[0]/10;</p><p> dotl=display[0]%10;</p><p> display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x07)<<4);</p><p> display[3]=display[4]/100;<
60、;/p><p> display[2]=display[4]/10%10;</p><p> display[1]=display[4]%10;</p><p> if(!display[3])</p><p><b> {</b></p><p><b> flag3=0;<
61、;/b></p><p> if(!display[2])</p><p><b> {</b></p><p> display[2]=0x0a;</p><p><b> flag2=0;</b></p><p><b> }</b>
62、</p><p><b> }</b></p><p><b> if(n)</b></p><p><b> {</b></p><p> display[3]=0x0b;</p><p><b> flag3=0;</b&g
63、t;</p><p><b> }</b></p><p><b> }</b></p><p> void send_char(unsigned char txd)</p><p><b> {</b></p><p> SBUF = tx
64、d;</p><p> while(!TI);</p><p><b> TI = 0;</b></p><p><b> }</b></p><p><b> main()</b></p><p><b> { <
65、;/b></p><p><b> P1=0xff;</b></p><p> TMOD = 0x20;</p><p> TH1 = 0xFD;</p><p> TL1 = 0xFD;</p><p> SCON = 0x50;</p><p
66、> PCON &= 0xef;</p><p> ES = 1; </p><p> TR1 = 1; Disdata=0xff; </p><p> discan=0xff;</p><p> for(h=0;h<4;h++){display[h]=8;}&
67、lt;/p><p> ow_reset(); </p><p> write_byte(0xCC); </p><p> write_byte(0x44); </p><p> for(h=0;h<500;h++)</p><p> {scan();} </p>
68、<p><b> while(1)</b></p><p><b> {</b></p><p> read_temp(); work_temp(); tc=display[0]*1.0/10+display[1]+display[2]*10+display[3]*100 ;</p
69、><p><b> if(tc>ht)</b></p><p> {h_led=0;l_led=1;n_led=1;beep=0;}</p><p> else if(tc<lt)</p><p> {l_led=0;h_led=1;n_led=1;beep=0;}</p><p>
70、; else {n_led=0;h_led=1;l_led=1;beep=1;}</p><p> if(bug==1)</p><p><b> {</b></p><p> if(RI)</p><p> { tmp = SBUF;</p><p> if(tmp==&
71、#39;w')</p><p><b> {</b></p><p><b> RI=0;</b></p><p> for(cn=0;cn<24;cn++)</p><p> send_char(ntemp[cn]);</p><p> se
72、nd_char(display[3]+48);</p><p> send_char(display[2]+48);</p><p> send_char(display[1]+48);</p><p> send_char('.');</p><p> send_char(display[0]+48);</p&
73、gt;<p> send_char(' ');</p><p> send_char('\n');</p><p><b> }</b></p><p> else if(tmp=='h')</p><p><b> {p='h
74、39;;</b></p><p><b> RI=0;</b></p><p> for(cn=0;cn<34;cn++)</p><p> send_char(htemp[cn]);</p><p> send_char('\n');</p><p>
75、 EA = 1; //開總中斷</p><p><b> bug=0;</b></p><p><b> } </b></p><p> else if(tmp=='l')</p><p><b> {</b></p><p>
76、<b> RI=0;</b></p><p><b> p='l';</b></p><p> for(cn=0;cn<32;cn++)</p><p> send_char(ltemp[cn]);</p><p> send_char('\n');
77、</p><p><b> EA = 1;</b></p><p><b> bug=0;</b></p><p><b> }</b></p><p> else if(tmp=='g')</p><p><b>
78、{</b></p><p><b> RI=0;</b></p><p> for(cn=0;cn<34;cn++)</p><p> send_char(cf[cn]);</p><p> for(cn=0;cn<bs;cn++)</p><p> {send_
79、char(b[cn]); }</p><p> send_char(' ');</p><p> for(cn=0;cn<5;cn++)</p><p> {send_char(k[cn]);}</p><p> send_char('\n');}</p><p><
80、b> else </b></p><p><b> {</b></p><p><b> RI=0;</b></p><p> for(cn=0;cn<10;cn++)</p><p> send_char(word[cn]);</p><p&g
81、t; send_char('\n');</p><p> }}}scan(); }}</p><p> void INT_UartRcv(void) interrupt 4</p><p><b> { </b></p><p><b> RI=0;</b><
82、;/p><p> if(p=='l')</p><p> {ss[count]=SBUF;}</p><p> if(p=='h')</p><p> { sm[count]=SBUF;}</p><p><b> count++;</b></p>
83、<p> if(count==5)</p><p><b> {count=0;</b></p><p><b> bug=1;</b></p><p> if(p=='h') </p><p> {if(sm[0]=='+')</
84、p><p> {ht=(sm[4]-48)*1.0/10+(sm[2]-48)+(sm[1]-48)*10;bs=5; }</p><p><b> else</b></p><p> {ht=-1*((sm[4]-48)*1.0/10+(sm[2]-48)+(sm[1]-48)*10);bs=5; }</p><p>
85、;<b> if(ht<lt)</b></p><p><b> {</b></p><p> for(cn=0;cn<11;cn++)</p><p> {send_char(ts[cn]);}</p><p> send_char('\n');</p&
86、gt;<p><b> }</b></p><p><b> else</b></p><p> { for(cn=0;cn<bs;cn++)</p><p> {send_char(sm[cn]);}</p><p> send_char('\n');
87、</p><p> for(cn=0;cn<5;cn++)</p><p> {b[cn]=sm[cn];}}</p><p><b> EA=0;</b></p><p> p=0; } </p><p> else if(p=='l')</p>
88、<p><b> {</b></p><p> if(ss[0]=='+')</p><p> {lt=(ss[4]-48)*1.0/10+(ss[2]-48)+(ss[1]-48)*10; }</p><p><b> else</b></p><p> {
89、lt=-1*((ss[4]-48)*1.0/10+(ss[2]-48)+(ss[1]-48)*10); }</p><p><b> if(ht<lt)</b></p><p><b> {</b></p><p> for(cn=0;cn<11;cn++)</p><p> {
90、send_char(ts[cn]);}</p><p> send_char('\n');</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>
91、 for(cn=0;cn<5;cn++)</p><p> {send_char(ss[cn]);}</p><p> send_char('\n'); </p><p> for(cn=0;cn<5;cn++)</p><p> {k[cn]=ss[cn];}</p><p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遠(yuǎn)程溫度控制課程設(shè)計--單片機(jī)的溫度遠(yuǎn)程檢測與顯示設(shè)計
- 單片機(jī)課程設(shè)計報告--遠(yuǎn)程溫度采集系統(tǒng)
- 單片機(jī)課程設(shè)計報告--遠(yuǎn)程溫度采集系統(tǒng)
- 單片機(jī)課程設(shè)計--遠(yuǎn)程溫度采集系統(tǒng)
- 溫度采集顯示系統(tǒng)課程設(shè)計
- 單片機(jī)課程設(shè)計報--遠(yuǎn)程溫度采集系統(tǒng)
- 溫度采集及顯示課程設(shè)計
- dsp課程設(shè)計-- 溫度采集與顯示系統(tǒng)設(shè)計
- 溫度顯示控制系統(tǒng)課程設(shè)計
- 溫度顯示控制系統(tǒng)課程設(shè)計
- 溫度控制顯示課程設(shè)計
- 溫度采集與控制課程設(shè)計報告
- 單片機(jī)課程設(shè)計-智能溫度控制顯示
- 遠(yuǎn)程溫度采集儀的設(shè)計【開題報告】
- 單片機(jī)課程設(shè)計--遠(yuǎn)程溫度監(jiān)控系統(tǒng)
- 溫度采集系統(tǒng)課程設(shè)計
- 溫度顯示控制系統(tǒng)課程設(shè)計.doc
- 溫度采集附顯示課程設(shè)計課題論文
- 課程設(shè)計報告--溫度顯示儀
- 遠(yuǎn)程無線溫度控制系統(tǒng)設(shè)計開題報告
評論
0/150
提交評論