版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 智能儀器設(shè)計(jì)課程設(shè)計(jì)</p><p> 題目:全自動(dòng)豆?jié){機(jī)控制系統(tǒng)的設(shè)計(jì)</p><p><b> 班級(jí):</b></p><p><b> 學(xué)號(hào):</b></p><p><b> 姓名: </b></p><p&g
2、t; 時(shí)間: 2012年1月</p><p><b> 目錄</b></p><p> 第一章 系統(tǒng)分析…………………………………………………3</p><p> 1.1方案分析與論證………………………………………3</p><p> 1.2設(shè)計(jì)框圖………………………………………………4</p>
3、<p> 第二章 系統(tǒng)調(diào)試…………………………………………………8</p><p> 2.1軟件模擬………………………………………………8</p><p> 2.2硬件調(diào)試………………………………………………10</p><p> 2.2.1調(diào)試圖………………………………………………10</p><p> 2.2.2問(wèn)
4、題歸納……………………………………………10</p><p> 第三章 心得體會(huì)…………………………………………………11</p><p> 第四章 參考文獻(xiàn)…………………………………………………11</p><p> 附錄一……………………………………………………………12</p><p> 附錄二……………………………………………
5、………………13</p><p><b> 第一章 系統(tǒng)分析</b></p><p> 此次課程設(shè)計(jì)的題目是:全自動(dòng)豆?jié){機(jī)。我們采用AT89S51來(lái)完成其設(shè)計(jì),用不同顏色的LED燈模擬加熱與粉碎功能,還有就是用蜂鳴器來(lái)完成其報(bào)警功能,以中斷方式采用撥碼開(kāi)關(guān)來(lái)實(shí)現(xiàn)液位的控制等。</p><p> 1.1方案分析與論證 </p>
6、<p> (1)模式選擇模塊:</p><p> 方案一:鍵盤(pán)選擇模式方法。通過(guò)按下鍵的鍵值判斷,來(lái)跳轉(zhuǎn)到不同的模式。鍵盤(pán)有九個(gè)鍵,最多可以設(shè)計(jì)九中模式,設(shè)計(jì)時(shí)設(shè)計(jì)三種模式即可。該方案可行。</p><p> 方案二:定時(shí)計(jì)數(shù)模式方法。設(shè)計(jì)一個(gè)三循環(huán)的計(jì)數(shù)。通過(guò)按一下,外部給單片機(jī)一個(gè)低電平,計(jì)數(shù)一次。按兩下,計(jì)數(shù)加二,按三下計(jì)數(shù)加三。按四下后回到按一下的狀態(tài)。然后通過(guò)
7、計(jì)數(shù)后的數(shù)值來(lái)選擇不同的模式。該方案可行。</p><p> 方案選擇:總體來(lái)講,兩種方案都挺好。最后,選擇模塊選擇方案一,由于板上有鍵盤(pán),可以加以運(yùn)用,也方便實(shí)現(xiàn)。計(jì)數(shù)口可以留著擴(kuò)展外部事件中斷用。 </p><p> ?。?)加熱粉碎完成報(bào)警模塊:</p><p> 方案一:加熱和粉碎時(shí)都有一定的時(shí)間,用延時(shí)實(shí)現(xiàn)。</p><p>
8、; 方案二:加熱和粉碎需要的時(shí)間可以用定時(shí)實(shí)現(xiàn)。</p><p> 方案選擇:選擇方案二,因?yàn)榧訜岷头鬯榈臅r(shí)間需要用動(dòng)態(tài)掃描的方式顯示出來(lái),因此定時(shí)可以實(shí)現(xiàn)加熱和粉碎時(shí)的顯示,而延時(shí)方式不行。</p><p> ?。?)液位控制模塊:</p><p> 液位控制模塊可用外部事件中斷方式實(shí)現(xiàn)。燒干,液體溢出容器功能采用外部事件中斷(INTO,P3.2)實(shí)現(xiàn),設(shè)為
9、高優(yōu)先級(jí)的中斷。加熱液位控制功能也采用外部事件(INT1,P3.3)中斷實(shí)現(xiàn),設(shè)為低優(yōu)先級(jí)。</p><p> ?。?)擴(kuò)展計(jì)時(shí)模塊:</p><p> 計(jì)時(shí)用來(lái)動(dòng)態(tài)計(jì)量在某種模式下工作了多久,以此來(lái)觀察還需要多久完成全過(guò)程。并且工作過(guò)程中有兩個(gè)報(bào)警的狀態(tài),由計(jì)時(shí)的時(shí)間大概可以判斷屬于那種情況。計(jì)時(shí)還可以檢測(cè)豆?jié){機(jī)工作的時(shí)間是否正常。</p><p> 最后,我
10、采用正計(jì)時(shí)的方式來(lái)實(shí)現(xiàn)。</p><p><b> 1.2設(shè)計(jì)框圖</b></p><p> ?。?)矩陣式鍵盤(pán)實(shí)現(xiàn)的模式選擇框圖</p><p><b> N</b></p><p><b> Y</b></p><p><b> Y
11、</b></p><p><b> N</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> Y</b></p><p><b> N</
12、b></p><p><b> Y</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b>
13、</p><p><b> Y</b></p><p><b> N</b></p><p> ?。?) 加熱粉碎完成報(bào)警及液位控制模塊框圖</p><p> ?。?)液位溢出或者過(guò)低報(bào)警框圖</p><p><b> N</b></p>
14、;<p><b> Y </b></p><p><b> ?。?)顯示程序框圖</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> ?。?)定時(shí)程序框圖</b&
15、gt;</p><p><b> N</b></p><p><b> Y</b></p><p><b> (6)主程序框圖</b></p><p><b> N</b></p><p><b> Y</
16、b></p><p><b> 中斷返回</b></p><p><b> YY</b></p><p><b> N</b></p><p><b> 第二章 系統(tǒng)調(diào)試</b></p><p><b>
17、 2.1軟件模擬</b></p><p><b> (1)初始化</b></p><p> 其初始值為090124,上電復(fù)位后顯示</p><p><b> ?。?)模式1</b></p><p> 其中第一個(gè)1表示工作在模式一,后面的09為加熱和粉碎各維持9s,后三位為計(jì)時(shí)部分
18、</p><p><b> ?。?)模式二</b></p><p> 其中和模式一相同,不同的是加熱和粉碎時(shí)間不同,還有就是模式三也是相同的方式。</p><p> ?。?)液位溢出報(bào)警和液位過(guò)低報(bào)警</p><p> 其中用撥碼開(kāi)關(guān)模擬液位的變化,進(jìn)行聲光報(bào)警,液位過(guò)低也是這種模式。</p><
19、p><b> (5)溫度</b></p><p> 當(dāng)按下4號(hào)鍵,就會(huì)顯示溫度</p><p><b> 2.2硬件調(diào)試:</b></p><p><b> 2.2.1調(diào)試圖</b></p><p><b> 見(jiàn)附錄</b></p&g
20、t;<p><b> 2.2.2問(wèn)題歸納</b></p><p> ?。?)中斷時(shí),返回的不是原來(lái)的狀態(tài)?</p><p> 解決方案:因?yàn)橹袛嗬锩娴某绦蚋淖兞酥鞒绦蚶锩娴亩丝跔顟B(tài),所以返回時(shí)不時(shí)原來(lái)的狀態(tài)。需要對(duì)影響主程序的量進(jìn)行保護(hù)和還原就行了。</p><p> (2)通過(guò)鍵盤(pán)選擇某模式,復(fù)位后,必須復(fù)位后的瞬間選擇其
21、它模式,否則就無(wú)法選擇其他模式了?</p><p> 解決方案:這是因?yàn)殒I盤(pán)掃描程序里沒(méi)有對(duì)無(wú)按鍵時(shí)的狀態(tài)進(jìn)行操作。只要讓無(wú)按鍵時(shí),執(zhí)行重新掃描鍵盤(pán)即可。</p><p> ?。?)在軟件里模擬沒(méi)有問(wèn)題,但是下載板子里就不行了?</p><p> 解決方案:軟件、硬件的靈敏度不同,軟件里都是理想的,和實(shí)際存在一定差距,要結(jié)合硬件來(lái)調(diào)試。在延時(shí)、端口方面應(yīng)該多注意
22、。</p><p> (4)數(shù)碼管顯示不要穩(wěn)定,一直在閃?</p><p> 解決方案:改變延時(shí)長(zhǎng)短,多調(diào)試幾次,直至穩(wěn)定。</p><p> ?。?)溫度一直是85度?</p><p> 解決方案:18b20在運(yùn)行過(guò)程中,其第一次讀數(shù)就是85,應(yīng)該舍棄第一次讀數(shù),讓其循環(huán)調(diào)用。</p><p><b>
23、; 第三章 心得總結(jié)</b></p><p> 家里很早就有豆?jié){機(jī),一直覺(jué)得很有意思,把豆子打碎,加熱,就變成了美味的豆?jié){,但是又不能打開(kāi)看是什么原理。這次課程設(shè)計(jì)終于有機(jī)會(huì)知道豆?jié){機(jī)的真正原理了。也再一次讓我熟悉了 keil和protuse這兩個(gè)軟件,大大的提高了動(dòng)手能力。在之前的單片機(jī)課程設(shè)計(jì)中就用到過(guò)的兩個(gè)軟件,這次又熟悉了一遍,印象更深刻了。課程設(shè)計(jì)過(guò)程中,遇到問(wèn)題是在所難免的,最終那份
24、通過(guò)尋求各種幫助將問(wèn)題解決后的興奮是令人難忘的。不斷地的用軟件調(diào)試運(yùn)行,仿真,直到達(dá)到設(shè)計(jì)要求,那份喜悅是無(wú)法代替的。在此感謝老師,感謝在此次課程設(shè)計(jì)過(guò)程中幫助我的同學(xué)。大家共同學(xué)習(xí),共同增長(zhǎng)知識(shí),為以后的工作奠定了基礎(chǔ)。</p><p><b> 第四章 參考文獻(xiàn)</b></p><p> 夏路易.單片機(jī)原理及其應(yīng)用-基于51與高速SoC51.北京電子工業(yè)出版
25、社</p><p><b> 附錄一:電路原理圖</b></p><p><b> 軟件模擬原理圖</b></p><p><b> 附錄二:程序清單</b></p><p><b> ORG 0000H</b></p><p&
26、gt;<b> LJMP MAIN</b></p><p><b> ORG 0003H</b></p><p> LJMP P_T0 </p><p><b> ORG 0013H</b></p><p><b> LJMP P_T1<
27、/b></p><p> ORG 0030H </p><p> MAIN: MOV SP,#60H ;開(kāi)辟棧區(qū)</p><p> CLR IT0 ;INT0低電平觸發(fā)</p><p> CLR IT1 ;INT1低電平觸發(fā)</p>&l
28、t;p> SETB EA ;開(kāi)CPU中斷</p><p> SETB EX0 ;允許INT0中斷</p><p> SETB EX1 ;允許INT1中斷</p><p> SETB PX0 ;設(shè)置INT0為高優(yōu)先級(jí)</p><p>
29、; CLR PX1 ;設(shè)置INT1為低優(yōu)先級(jí)</p><p> CLR P3.6 ; 加熱指示燈清零</p><p> CLR P3.7 ;粉碎指示燈清零</p><p> MOV 20H,#0 ;賦初始值</p><p> MOV 2
30、1H,#9</p><p> MOV 22H,#0</p><p> MOV 25H,#1</p><p> MOV 26H,#2</p><p> MOV 27H,#4</p><p> LCALL DSPLY1 ;調(diào)顯示程序</p><p> LCALL DSP
31、LY2</p><p> LCALL SCAN_KEYB ;點(diǎn)鍵盤(pán)掃描程序</p><p> MOV 25H,#00H ;高三位清零 </p><p> MOV 26H,#00H</p><p> MOV 27H,#00H</p><p> MOV A,R5
32、 ;鍵盤(pán)返回值在然中</p><p> NEXT: CJNE A,#01H,NEXT1 ;判斷是否為1鍵按下</p><p> LCALL FUNCTION_1 ;調(diào)1鍵處理程序</p><p> LCALL LOOP4 ;調(diào)用計(jì)時(shí)程序和完成之后的報(bào)警程序</p><p> LCALL LOO
33、P6</p><p><b> RET</b></p><p> NEXT1:CJNE A,#02H,NEXT2 ;判斷是否2鍵按下</p><p> LCALL FUNCTION_2 ;和第一種模式相同</p><p> LCALL LOOP6</p><p> LCALL
34、 LOOP4</p><p><b> RET</b></p><p> NEXT2: CJNE A,#3,NEXT3 ;3鍵按下?</p><p> LCALL FUNCTION_3 ;同前兩種</p><p> LCALL LOOP6 </p><p> LC
35、ALL LOOP4</p><p> NEXT3: CJNE A,#4,NEXT4 ;4鍵按下否?</p><p> LCALL PRO_18B20 ;調(diào)溫度處理程序</p><p> NEXT4:LJMP MIAN ;若無(wú)鍵按下,返回</p><p> ??;#######中斷處理程序,
36、液位溢出##########</p><p><b> ORG 0100H</b></p><p> P_T0:PUSH ACC ;保護(hù)現(xiàn)場(chǎng)</p><p><b> PUSH PSW</b></p><p> CLR P3.6 ;停止
37、加熱,粉碎</p><p><b> CLR P3.7</b></p><p> LCALL ALARM ;報(bào)警</p><p> POP PSW ;恢復(fù)現(xiàn)場(chǎng)</p><p><b> POP ACC</b></p><
38、p><b> RETI</b></p><p> ?。?#######液位過(guò)低處理程序#############</p><p><b> ORG 0200H</b></p><p> P_T1:CLR EA ;關(guān)中斷</p><p> PUSH AC
39、C ;保護(hù)現(xiàn)場(chǎng)</p><p> PUSH PSW </p><p> SETB EA ;開(kāi)中斷</p><p> SETB RS0 ;將工作寄存器切換</p><p> CLR P3.6
40、 ;停止加熱停止粉碎 </p><p><b> CLR P3.7</b></p><p> LCALL A LARM ;報(bào)警 </p><p> SETB P3.6 ;恢復(fù)中斷前狀態(tài)</p><p> CLR EA
41、 ;關(guān)中斷</p><p> POP PSW ;恢復(fù)現(xiàn)場(chǎng)</p><p><b> POP ACC</b></p><p> SETB EA ;開(kāi)中斷</p><p><b> RETI</b></p>
42、<p><b> ;按鍵處理程序</b></p><p> FUNCTION_1: MOV 20H,#01H ;</p><p> MOV 21H,#0</p><p> MOV 22H,#9</p><p> MOV 30H,#03H</p><p>
43、 MOV 31H,#03H</p><p> LCALL DSPLY1</p><p><b> RET</b></p><p><b> S2_PRESS:</b></p><p> MOV 20H,#02H</p><p> MOV 21H,#1</p
44、><p> MOV 22H,#2</p><p> MOV 30H,#04H</p><p> MOV 31H,#04H</p><p> LCALL DSPLY1</p><p><b> RET</b></p><p><b> S3_PRESS:
45、</b></p><p> MOV 20H,#03H</p><p> MOV 21H,#1</p><p> MOV 22H,#5</p><p> MOV 30H,#05H</p><p> MOV 31H,#05H</p><p> LCALL DSPLY1&
46、lt;/p><p><b> RET</b></p><p> DSPLY1: MOV R0,#20H</p><p> MOV R2,#00H</p><p> REDO:ACALL DISP</p><p><b> INC R2</b></p>&l
47、t;p><b> MOV A, R2</b></p><p><b> INC R0</b></p><p> XRL A, #03H</p><p><b> JNZ REDO</b></p><p><b> RET</b></p
48、><p> DSPLY2: MOV R0,#25H</p><p> MOV R2,#03H</p><p> REDO2:ACALL DISP</p><p><b> INC R2</b></p><p><b> MOV A, R2</b></p>
49、<p><b> INC R0</b></p><p> XRL A, #06H</p><p><b> JNZ REDO2</b></p><p><b> RET</b></p><p> DISP: MOV P1,R2</p>&l
50、t;p> MOV DPTR,#LED_SEG</p><p> MOV A ,@R0</p><p> MOVC A ,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DL1MS</p><p><b> RET<
51、/b></p><p> LED_SEG:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p> LOOP6: LCALL DL1S</p><p><b> MOV A,27H</b></p><p> CJNE A,#09H,GOON1</p>
52、;<p> MOV 27H,#00H</p><p> MOV A,26H</p><p> CJNE A,#05H,GOON2</p><p> MOV 26H,#00H</p><p><b> INC 25H</b></p><p><b> RET&l
53、t;/b></p><p> GOON1: INC 27H</p><p><b> RET</b></p><p> GOON2: INC 26H</p><p><b> RET</b></p><p> DL20MS: MOV TMOD,#01H&l
54、t;/p><p> MOV TH0,#0DBH</p><p> MOV TL0,#00H</p><p><b> SETB TR0</b></p><p> CONT1:JBC TF0,OVERF1</p><p> SJMP CONT1</p><p> OV
55、ERF1:RET</p><p><b> LOOP4:</b></p><p> LCALL JIARE</p><p> LCALL FENSUI</p><p> LCALL JIARE</p><p> LCALL FENSUI</p><p> LCA
56、LL JIARE</p><p><b> CLR P3.6</b></p><p><b> CLR P3.7</b></p><p> LCALL ALARM</p><p><b> RET</b></p><p> JIARE:
57、 MOV 23H,30H</p><p><b> CLR P3.7</b></p><p><b> SETB P3.6</b></p><p> LOOP1: LCALL DL1MIN</p><p> DJNZ 23H,LOOP1</p><p><b&
58、gt; RET</b></p><p> FENSUI: MOV 24H,31H</p><p><b> CLR P3.6</b></p><p><b> SETB P3.7</b></p><p> LOOP2: LCALL DL1MIN</p><
59、p> DJNZ 24H,LOOP2</p><p><b> RET</b></p><p><b> ALARM:</b></p><p> LOOP5: MOV R1,#20</p><p> MOV A,#06H</p><p><b> M
60、OV P1,A</b></p><p> LCALL DL1MS</p><p> LCALL DL1MS</p><p><b> INC A</b></p><p><b> MOV P1,A</b></p><p> LCALL DL1MS<
61、/p><p> LCALL DL1MS</p><p> LCALL DSPLY1</p><p> LCALL DSPLY2</p><p> DJNZ R1, LOOP5</p><p><b> RET</b></p><p> DL1MIN: MOV R
62、7,#3</p><p> DL1: LCALL LOOP6</p><p> DJNZ R7,DL1</p><p><b> RET</b></p><p> DL1MS: MOV R1,#200</p><p><b> DL2: NOP</b></p
63、><p><b> NOP</b></p><p><b> NOP</b></p><p> DJNZ R1,DL2</p><p><b> RET</b></p><p> DL1S: MOV R6,#20</p><p
64、> WAIT: MOV TMOD,#01H</p><p> MOV TH0,#3CH</p><p> MOV TL0,#0B0H</p><p><b> SETB TR0</b></p><p> CONT2: JBC TF0,OVERF2</p><p> LCALL
65、 DSPLY1</p><p> LCALL DSPLY2</p><p> SJMP CONT2</p><p> OVERF2: DJNZ R6,WAIT</p><p><b> RET</b></p><p> SCAN_KEYB:</p><p>
66、MOV P2,#0F0H</p><p><b> MOV A,P2</b></p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p><b> JZ NO_KEY</b></p><p> ACALL DL20MS<
67、/p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p><b> JZ NO_KEY</b></p><p> MOV R2,#11110111B</p><p> SCAN:MOV A,R2</p><p><b>
68、; MOV P2,A</b></p><p><b> MOV A,P2</b></p><p> ANL A,#11110000B</p><p><b> MOV R3,A</b></p><p> CJNE A,#0F0H,KEY_PRSD</p><
69、p><b> MOV A,R2</b></p><p><b> RR A</b></p><p><b> MOV R2,A</b></p><p> XRL A,#01111111B</p><p><b> JNZ SCAN</b>&
70、lt;/p><p> NO_KEY :LJMP MAIN</p><p> KEY_PRSD:MOV A ,R2</p><p> ANL A ,#00001111B</p><p><b> ORL A ,R3</b></p><p><b> MOV R4,A</b>
71、;</p><p> MOV R5,#01H</p><p> MOV DPTR,#KEY_TAB</p><p> CAL_VAL:MOV A ,R5</p><p> MOVC A,@A+DPTR</p><p><b> XRL A,R4</b></p><p&
72、gt;<b> JZ FIXED</b></p><p><b> INC R5</b></p><p> SJMP CAL_VAL</p><p> FIXED:MOV A ,P2</p><p> ANL A ,#0F0H</p><p> XRL A,#0F
73、0H</p><p><b> JNZ FIXED</b></p><p> ACALL DL20MS</p><p><b> MOV A ,P2</b></p><p> ANL A ,#0F0H</p><p> XRL A,#0F0H</p>
74、<p><b> JNZ FIXED</b></p><p><b> INC A</b></p><p><b> RET</b></p><p> KEY_TAB: DB 77H,77H,7BH,7DH,0B7H,0BEH,0BDH</p><p>
75、DB 0D7H,0DBH,0DDH</p><p><b> RET </b></p><p> ;WENDUXIANSHI </p><p> FLAG1 BIT F0 ;DS18B20存在標(biāo)志位</p><p> DQ BIT P1.3</p><
76、p> TEMPER_L EQU 27H</p><p> TEMPER_H EQU 26H </p><p> PRO_18B20: MOV 30H,#250</p><p> REPLY: LCALL INIT_18B20</p><p> LCALL RE_CONFIG</p>
77、;<p> LCALL GET_TEMPER</p><p> LCALL CHANGE ;將18B20讀的16位溫度轉(zhuǎn)換8位數(shù)據(jù)</p><p> LCALL DISPLAY ;調(diào)用數(shù)碼管顯示子程序</p><p> DJNZ 30H,REPLY</p><p>
78、;**********DS18B20復(fù)位程序*****************</p><p> INIT_18B20: SETB DQ </p><p><b> NOP</b></p><p><b> NOP</b></p>&
79、lt;p><b> CLR DQ</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV R0,#0FBH</p><p> TSR1: DJNZ R0,TSR1 ;延時(shí)&l
80、t;/p><p><b> SETB DQ</b></p><p> MOV R0,#25H</p><p> TSR2: JNB DQ ,TSR3</p><p> DJNZ R0,TSR2</p><p> TSR3: SETB FLAG1 ;置標(biāo)志位,
81、表明DS18B20存在</p><p> CLR P2.0 ;二極管指示</p><p> AJMP TSR5</p><p> TSR4: CLR FLAG1</p><p> LJMP TSR7</p><p> TSR5: MOV R0,#06BH</p>
82、<p> TSR6: DJNZ R0,TSR6</p><p> TSR7:SETB DQ ;表明不存在</p><p><b> RET</b></p><p> ;********************設(shè)定DS18B20暫存器設(shè)定值**************</p><
83、p> RE_CONFIG: JB FLAG1,RE_CONFIG1</p><p><b> RET</b></p><p> RE_CONFIG1: MOV A,#0CCH ;放跳過(guò)ROM命令</p><p> LCALL WRITE_18B20</p><p> MOV A,
84、#4EH</p><p> LCALL WRITE_18B20 ;寫(xiě)暫存器命令</p><p> MOV A,#00H ;報(bào)警上限中寫(xiě)入00H</p><p> LCALL WRITE_18B20</p><p> MOV A,#00H ;報(bào)警下限中寫(xiě)入00H</p>&l
85、t;p> LCALL WRITE_18B20</p><p> MOV A,#1FH ;選擇九位溫度分辨率</p><p> LCALL WRITE_18B20</p><p><b> RET</b></p><p> ;*****************讀轉(zhuǎn)換后的溫度值**
86、**************</p><p> GET_TEMPER: SETB DQ</p><p> LCALL INIT_18B20</p><p> JB FLAG1,TSS2</p><p> RET ;若不存在則返回</p><p> TSS2: M
87、OV A,#0CCH ;跳過(guò)ROM</p><p> LCALL WRITE_18B20</p><p> MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令</p><p> LCALL WRITE_18B20</p><p> ; LCALL DISPLAY
88、 ;延時(shí)</p><p> LCALL INIT_18B20</p><p> MOV A,#0CCH ;跳過(guò)ROM</p><p> LCALL WRITE_18B20</p><p> MOV A,#0BEH ;發(fā)出讀溫度換命令</p><p> LCA
89、LL WRITE_18B20</p><p> LCALL READ2_18B20 ;讀兩個(gè)字節(jié)的溫度</p><p><b> RET</b></p><p> ;***************寫(xiě)ds18b20匯編程序************</p><p> WRITE_18B20:MOV
90、 R2,#8</p><p><b> CLR C</b></p><p> WR1: CLR DQ</p><p> MOV R3,#6</p><p> DJNZ R3,$</p><p><b> RRC A</b></p>&
91、lt;p> MOV DQ,C</p><p> MOV R3,#23</p><p> DJNZ R3,$</p><p> SETB DQ</p><p><b> NOP</b></p><p> DJNZ R2,WR1</p><
92、;p><b> SETB DQ</b></p><p><b> RET</b></p><p> ;***********讀18B20程序,讀出兩個(gè)字節(jié)的溫度*********</p><p> READ2_18B20:MOV R4,#2 ;低位存在29 H,高位存在28H&
93、lt;/p><p> MOV R1,#29H</p><p> RE00: MOV R2,#8</p><p> RE01: CLR C</p><p><b> SETB C</b></p><p><b> NOP</b></p><
94、;p><b> NOP</b></p><p><b> CLR DQ</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p
95、><p><b> SETB DQ</b></p><p> MOV R3,#7</p><p> DJNZ R3,$</p><p> MOV C,DQ</p><p> MOV R3,#23</p><p> DJNZ R3,$<
96、/p><p><b> RRC A</b></p><p> DJNZ R2,RE01</p><p> MOV @R1,A</p><p><b> DEC R1</b></p><p> DJNZ R4,RE00</p><
97、;p><b> RET</b></p><p> ;************讀出的溫度進(jìn)行數(shù)據(jù)轉(zhuǎn)換**************</p><p> CHANGE: MOV A,29H</p><p> MOV C,28H.0 ;將28H中的最低位移入C</p><p><b&
98、gt; RRC A</b></p><p> MOV C,28H.1</p><p><b> RRC A</b></p><p> MOV C,28H.2</p><p><b> RRC A</b></p><p> MOV C,28H.3<
99、/p><p><b> RRC A</b></p><p><b> MOV 29H,A</b></p><p><b> RET</b></p><p> DISPLAY: mov a,29H;將29H中的十六進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制</p><p
100、> mov b,#100</p><p><b> div ab</b></p><p><b> mov 34H,A</b></p><p><b> MOV A,B</b></p><p> MOV B,#10</p><p>&
101、lt;b> DIV AB</b></p><p> MOV 35H,A</p><p> MOV 36H,B</p><p> mov DPTR,#TAB ;指定查表啟始地址</p><p> mov A,36H ;取個(gè)位數(shù)</p><p> MOVC A,@A+DPTR ;查個(gè)位數(shù)
102、的7段代碼</p><p> mov P0,A ;送出個(gè)位的7段代碼</p><p> MOV P1,#05;開(kāi)個(gè)位顯示</p><p><b> NOP</b></p><p><b> NOP</b></p><p> LCALL DELAYNMS</
103、p><p> MOV P1,#0FFH</p><p><b> NOP</b></p><p><b> NOP</b></p><p> mov A,35H ;取十位數(shù)</p><p> MOVC A,@A+DPTR ;查十位數(shù)的7段代碼</p>&l
104、t;p> mov P0,A;送出十位的7段代碼</p><p> MOV P1,#04;開(kāi)十位顯示</p><p><b> NOP</b></p><p><b> NOP</b></p><p> LCALL DELAYNMS</p><p> MO
105、V P1,#0FFH</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> RET</b></p><p> DELAYNMS: MOV R6,#8</p><p> D11:
106、 MOV R7,#200</p><p> DJNZ R7,$</p><p> DJNZ R6,D11</p><p><b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 豆?jié){機(jī)課程設(shè)計(jì)
- 豆?jié){機(jī)課程設(shè)計(jì)設(shè)計(jì)
- 家用豆?jié){機(jī)全自動(dòng)控制裝置-畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的豆?jié){機(jī)控制系統(tǒng)設(shè)計(jì)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)
- 全自動(dòng)豆?jié){機(jī)改良設(shè)計(jì)的研究與實(shí)踐.pdf
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)控制系統(tǒng)
- 全自動(dòng)洗衣機(jī)plc控制系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)plc控制系統(tǒng)設(shè)計(jì)
- 自動(dòng)控制系統(tǒng)課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)控制系統(tǒng)的設(shè)計(jì)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)控制系統(tǒng)
- 自動(dòng)豆?jié){機(jī)
- 全自動(dòng)洗衣機(jī)機(jī)電控制系統(tǒng)設(shè)計(jì)(單片機(jī))課程設(shè)計(jì)
- 課程設(shè)計(jì)--全自動(dòng)雙面鉆的電氣控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的自動(dòng)豆?jié){機(jī)控制電路設(shè)計(jì)設(shè)計(jì)
- 基于-單片機(jī)的自動(dòng)豆?jié){機(jī)控制電路設(shè)計(jì)
- 智能儀器課程設(shè)計(jì)---基于dsp的溫度控制系統(tǒng)的設(shè)計(jì)
- 智能定時(shí)遙控多功能豆?jié){機(jī)的系統(tǒng)設(shè)計(jì)-畢業(yè)設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)plc控制課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論