2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  XXX大學(xué)</b></p><p>  嵌入式程序設(shè)計 課程設(shè)計 </p><p>  設(shè)計名稱 數(shù)字溫度計 </p><p>  專業(yè)班級 </p><p>  學(xué) 號

2、 </p><p>  姓 名 </p><p><b>  一設(shè)計要求:</b></p><p>  1.設(shè)計溫度傳感器接口電路;</p><p>  2.設(shè)計LED顯示電路;</p><p>  3.設(shè)計按鍵接口電路;</p>

3、<p>  4.設(shè)計數(shù)據(jù)采集及顯示程序。</p><p><b>  二:硬件電路設(shè)計:</b></p><p>  基于單片機(jī)的數(shù)字溫度計</p><p>  根據(jù)系統(tǒng)功能要求,系統(tǒng)原理結(jié)構(gòu)框圖如下:</p><p>  圖1:系統(tǒng)原理結(jié)構(gòu)圖</p><p><b>  

4、單片機(jī)的選擇</b></p><p>  AT89C51作為溫度測試系統(tǒng)設(shè)計的核心器件。該器件是INTEL公司生產(chǎn)的MCS一5l系列單片機(jī)中的基礎(chǔ)產(chǎn)品,采用了可靠的CMOS工藝制造技術(shù),具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS—51的CMOS產(chǎn)品。不僅結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征,而且繼承和擴(kuò)展了MCS—48單片機(jī)的體系結(jié)構(gòu)和指令系統(tǒng)。單片機(jī)小系統(tǒng)的電路圖如圖2所示。<

5、;/p><p><b>  圖2:</b></p><p>  圖2 單片機(jī)小系統(tǒng)電路</p><p>  AT89C51單片機(jī)的主要特性:</p><p>  (1)與MCS-51 兼容,4K字節(jié)可編程閃爍存儲器;</p><p>  (2)靈活的在線系統(tǒng)編程,掉電標(biāo)識和快速編程特性;</p

6、><p>  (3)壽命為1000次寫/擦周期,數(shù)據(jù)保留時間可10年以上;</p><p>  (4)全靜態(tài)工作模式:0Hz-33Hz;</p><p>  (5)三級程序存儲器鎖定;</p><p>  (6)128*8位內(nèi)部RAM,32可編程I/O線;</p><p>  (7)兩個16位定時器/計數(shù)器,6個中斷源;&

7、lt;/p><p>  (8)全雙工串行UART通道,低功耗的閑置和掉電模式;</p><p>  (9)看門狗(WDT)及雙數(shù)據(jù)指針;</p><p>  (9)片內(nèi)振蕩器和時鐘電路;</p><p><b>  溫度傳感器介紹</b></p><p>  DS18B20可以程序設(shè)定9~12位的分辨

8、率,精度為±0.5°C??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EPROM中,掉電后依然保存。</p><p>  溫度傳感器DS18B20引腳如圖3所示。</p><p>  8引腳封裝 TO-92封裝</p><p><b>  圖3 溫度傳感器

9、</b></p><p><b>  引腳功能說明:</b></p><p>  NC :空引腳,懸空不使用;</p><p>  VDD :可選電源腳,電源電壓范圍3~5.5V。當(dāng)工作于寄生電源時,此引腳必須接地。</p><p>  DQ :數(shù)據(jù)輸入/輸出腳。漏極開路,常態(tài)下高電平。</p>

10、<p><b>  GND :為電源地</b></p><p>  DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。</p><p>  光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著

11、的48位是該DS18B20自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。 </p><p>  DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號位。 </p&g

12、t;<p>  這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字

13、輸出為FC90H。 </p><p>  DS18B20溫度傳感器的內(nèi)部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發(fā)器TH、TL和結(jié)構(gòu)寄存器。 </p><p>  暫存存儲器包含了8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH、TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄

14、存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計算。第九個字節(jié)是冗余檢驗字節(jié)。 </p><p>  該字節(jié)各位的意義如下:</p><p>  TM R1 R0 1 1 1 1 1</p><p>  低五位一直都是1 ,TM是測試模式位,用于設(shè)置DS18B20在工作模式還是在測試模式。在DS18B20出廠時該位被設(shè)置為0,

15、用戶不要去改動。R1和R0用來設(shè)置分辨率,如表1所示:(DS18B20出廠時被設(shè)置為12位) </p><p>  表1 DS18B20溫度轉(zhuǎn)換時間表</p><p>  根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)

16、位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。</p><p>  溫度傳感器與單片機(jī)的連接</p><p>  溫度傳感器的單總線(1-Wire)與單片機(jī)的P2.0連接,P2.0是單片機(jī)的高位地址線A8。P2端口是一個帶內(nèi)部上拉電阻的8位雙向I/O,其輸出緩沖級可驅(qū)動(吸

17、收或輸出電流)4個TTL邏輯門電路。對該端口寫“1”,可通過內(nèi)部上拉電阻將其端口拉至高電平,此時可作為輸入口使用,這是因為內(nèi)部存在上拉電阻,某一引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時。如執(zhí)行MOVX DPTR指令,則表示P2端口送出高8位的地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,可執(zhí)行MOVX RI指令,P2端口內(nèi)容即為特殊功能寄存器(SFR)區(qū)中R2寄存器內(nèi)容,整個訪問期間不改變。在

18、Flash編程和程序校驗時,P2端口也接收高位地址和其他控制信號。圖4為DSl8820內(nèi)部結(jié)構(gòu)。圖5為DSl8820與單片機(jī)的接口電路。</p><p>  圖4 DS18B20內(nèi)部結(jié)構(gòu)圖 </p><p>  圖5 DS18B20和單片機(jī)的接口連接</p><p>  復(fù)位信號及外部復(fù)位電路</p><p>  單片機(jī)的P1.6端口是M

19、AX813看門狗電路中喂狗信號的輸入端,即單片機(jī)每執(zhí)行一次程序就設(shè)置一次喂狗信號,清零看門狗器件。若程序出現(xiàn)異常,單片機(jī)引腳RST將出現(xiàn)兩個機(jī)器周期以上的高電平,使其復(fù)位。該復(fù)位信號高電平有效,其有效時間應(yīng)持續(xù)24個振蕩脈沖周期即兩個機(jī)器周期以上。若使用頻率為12 MHz的晶體振蕩器,則復(fù)位信號持續(xù)時間應(yīng)超過2μs才完成復(fù)位操作。</p><p><b>  單片機(jī)與報警電路</b><

20、/p><p>  系統(tǒng)中的報警電路是由發(fā)光二極管和限流電阻組成,并與單片機(jī)的P1.2端口連接。P1端口的作用和接法與P2端口相同,不同的是在Flash編程和程序校驗期間,P1接收低8位地址數(shù)據(jù)。</p><p><b>  電源電路</b></p><p>  由于該系統(tǒng)需要穩(wěn)定的5 V電源,因此設(shè)計時必須采用能滿足電壓、電流和穩(wěn)定性要求的電源。該

21、電源采用三端集成穩(wěn)壓器LM7805。它僅有輸入端、輸出端及公共端3個引腳,其內(nèi)部設(shè)有過流保護(hù)、過熱保護(hù)及調(diào)整管安全保護(hù)電路.由于所需外接元件少,使用方便、可靠,因此可作為穩(wěn)壓電源。圖6為電源電路連接圖。</p><p>  圖6 電源電路連接圖</p><p><b>  顯示電路</b></p><p>  采用技術(shù)成熟的74HCl64實現(xiàn)

22、串并轉(zhuǎn)換。LED顯示分為靜態(tài)顯示和動態(tài)顯示。這里采用靜態(tài)顯示,系統(tǒng)通過單片機(jī)的串行口來實現(xiàn)靜態(tài)顯示。串行口為方式零狀態(tài),即工作在移位寄存器方式,波特率為振蕩頻率的1/12。當(dāng)器件執(zhí)行任何一條將SBUF作為目的寄存器的命令時,數(shù)據(jù)便開始從RXD端發(fā)送。在寫信號有效時,相隔一個機(jī)器周期后發(fā)送控制端SEND有效,即允許RXD發(fā)送數(shù)據(jù),同時允許從TXD端輸出移位脈沖。圖7為顯示電路的連接圖。</p><p>  圖7

23、顯示電路的連接圖(附在最后)</p><p><b>  看門狗電路</b></p><p>  系統(tǒng)中把P1.6作為看門狗的“喂狗”信號;將MAX813的RESET與單片機(jī)的復(fù)位信號RST連接。由于單片機(jī)每執(zhí)行一次程序,就會給看門狗器件一個復(fù)位信號,這樣也可以用手工方式實現(xiàn)復(fù)位。當(dāng)按鍵按下時,SW—SPST就會在MAX813引腳產(chǎn)生一個超過200 ms的低電平,其實

24、看門狗器件在1.6 s時間內(nèi)沒有復(fù)位,使7引腳輸出一個復(fù)位信號的作用是相同的,其連接圖如圖8所示。</p><p>  圖8 看門狗器件的MAX813的連接圖</p><p><b>  軟件設(shè)計</b></p><p>  DSl8820的主要數(shù)據(jù)元件有:64位激光Lasered ROM,溫度靈敏元件和非易失性溫度告警觸發(fā)器TH和TL。DS

25、Bl820可以從單總線獲取電源,當(dāng)信號線為高電平時,將能量貯存在內(nèi)部電容器中;當(dāng)單信號線為低電平時,將該電源斷開,直到信號線變?yōu)楦唠娖街匦陆由霞纳?電容)電源為止。此外,還可外接5 V電源,給DSl8820供電。DSl8820的供電方式靈活,利用外接電源還可增加系統(tǒng)的穩(wěn)定性和可靠性。圖9為讀取數(shù)據(jù)流程圖。</p><p>  圖9 讀取數(shù)據(jù)的流程圖</p><p>  讀出溫度數(shù)據(jù)后,L

26、OW的低四位為溫度的小數(shù)部分,可以精確到0.0625℃,LOW的高四位和HIGH的低四位為溫度的整數(shù)部分,HIGH的高四位全部為1表示負(fù)數(shù),全為0表示正數(shù)。所以先將數(shù)據(jù)提取出來,分為三個部分:小數(shù)部分、整數(shù)部分和符號部分。小數(shù)部分進(jìn)行四舍五入處理:大于0.5℃的話,向個位進(jìn)1;小于0.5℃的時候,舍去不要。當(dāng)數(shù)據(jù)是個負(fù)數(shù)的時候,顯示之前要進(jìn)行數(shù)據(jù)轉(zhuǎn)換,將其整數(shù)部分取反加一。還因為DS18B20最低溫度只能為-55℃,所以可以將整數(shù)部分的

27、最高位換成一個“-”,表示為負(fù)數(shù)。圖10為溫度數(shù)據(jù)處理程序的流程圖。</p><p>  圖10 溫度數(shù)據(jù)處理流程圖</p><p><b>  三:軟件設(shè)計:</b></p><p>  DATA_ BUS BITP3.3</p><p>  FLAGBIT00H;標(biāo)志位</p><

28、p>  TEMP_LEQU 30H;溫度值低字節(jié)</p><p>  TEMP_HEQU31H;溫度值高字節(jié)</p><p>  TEMP_DPEQU32H;溫度小數(shù)</p><p>  TEMP_INTEQU33H;溫度值整數(shù)</p><p>  TEMP_BAIEQU34H;溫度百位數(shù)&

29、lt;/p><p>  TEMP_SHIEQU35H;溫度十位數(shù)</p><p>  TEMP_GEEQU36H;溫度個位數(shù)</p><p>  DIS_BAIEQU37H;顯示百位數(shù)</p><p>  DIS_SHIEQU38H;顯示十位數(shù)</p><p>  DIS_GEEQ

30、U39H;顯示個位數(shù)</p><p>  DIS_DPEQU3AH;顯示小數(shù)位</p><p>  DIS_ADDEQU3BH;顯示地址</p><p><b>  上機(jī)調(diào)試程序:</b></p><p>  ORG 0000H

31、

32、

33、 </p><p>  AJMPSTART</p><p>  ORG 0050H;初始化</p><p><b>  START:</b></p><p>  MOVSP,#40H</p><p>  MAIN:LCALLREAD_TE

34、MP;調(diào)讀溫度程序</p><p>  LCALLPROCESS;調(diào)數(shù)據(jù)處理程序</p><p>  AJMP MAIN</p><p><b>  ;讀溫度程序</b></p><p>  READ_TEMP:</p><p>  LCALLRESET_PULSE ;

35、調(diào)用復(fù)位脈沖程序</p><p>  MOV A,#0CCH;跳過ROM命令</p><p>  LCALL WRITE</p><p>  MOVA,#44H;讀溫度</p><p>  LCALL WRITE</p><p>  LCALLDISPLAY;顯示溫度

36、</p><p>  LCALLRESET_PULSE;調(diào)用復(fù)位脈沖程序</p><p>  MOVA,#0CCH;跳過ROM命令</p><p>  LCALLWRITE</p><p>  MOVA,#0BEH;讀緩存命令</p><p>  LCALL WRITE</p>

37、;<p>  LCALLREAD</p><p><b>  RET</b></p><p><b>  ;復(fù)位脈沖程序</b></p><p>  RESET_PULSE:</p><p>  RESET:SETBDATA_BUS</p><p><

38、;b>  NOP</b></p><p><b>  NOP</b></p><p>  CLRDATA_BUS</p><p>  MOVR7,#255</p><p>  DJNZR7,$</p><p>  SETB DATA_BUS</p>&l

39、t;p>  MOVR7,#30</p><p><b>  DJNZR7,$</b></p><p>  JNB DATA_BUS,SETB_FLAG</p><p><b>  CLRFLAG</b></p><p><b>  AJMPNEXT</b>&

40、lt;/p><p>  SETB_FLAG:</p><p>  SETB FLAG</p><p>  NEXT:MOV R7,#120</p><p>  DJNZR7,$</p><p>  SETB DATA_BUS</p><p>  JNBFLAG,RESET</

41、p><p><b>  RET</b></p><p><b>  ;寫命令</b></p><p>  WRITE:SETBDATA_BUS</p><p>  MOVR6,#8</p><p><b>  CLRC</b></p>

42、<p><b>  WRITING:</b></p><p>  CLRDATA_BUS</p><p>  MOVR7,#5</p><p>  DJNZR7,$</p><p><b>  RRCA</b></p><p>  MOVDATA_B

43、US, C</p><p>  MOVR7,#30H</p><p>  DJNZR7,$</p><p>  SETBDATA_BUS</p><p><b>  NOP</b></p><p>  DJNZR6,WRITING</p><p><b&

44、gt;  RET</b></p><p><b>  ;循環(huán)顯示段位</b></p><p><b>  DISPLAY:</b></p><p>  MOV R4,#200</p><p><b>  DIS_LOOP:</b></p><

45、p>  MOVA,DIS_DP</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b></p><p><b>  CLRP2.7</b></p><p>  LCALLDELAY2MS</p><p>  MOV

46、A,DIS_GE</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b></p><p><b>  SETBP0.7</b></p><p>  CLRP2.6</p><p>  LCALLDELAY2MS&l

47、t;/p><p>  MOVA,DIS_SHI</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b></p><p><b>  CLRP2.5</b></p><p>  LCALLDELAY2MS</p>

48、<p>  MOVA,DIS_BAI</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b></p><p>  MOVA,TEMP_BAI</p><p>  CJNEA,#0,SKIP</p><p>  AJMPNEX

49、TT</p><p>  SKIP:CLRP2.4</p><p>  LCALLDELAY2MS</p><p>  NEXTT:NOP</p><p>  DJNZR4,DIS_LOOP</p><p><b>  RET</b></p><p><

50、b>  ;讀命令</b></p><p>  READ:SETBDATA_BUS</p><p>  MOVR0,#TEMP_L</p><p>  MOV R6,#8</p><p>  MOVR5,#2</p><p><b>  CLRC</b></

51、p><p><b>  READING:</b></p><p>  CLRDATA_BUS</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  SETBDATA_BUS</p>&l

52、t;p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOVC,DATA_BUS</p><

53、p><b>  RRCA</b></p><p>  MOVR7,#30H</p><p>  DJNZR7,$</p><p>  SETBDATA_BUS</p><p>  DJNZR6,READING</p><p>  MOV@R0,A</p>&

54、lt;p><b>  INC R0</b></p><p>  MOVR6,#8</p><p>  SETBDATA_BUS</p><p>  DJNZR5,READING</p><p><b>  RET</b></p><p><b> 

55、 ;數(shù)據(jù)處理</b></p><p><b>  PROCESS:</b></p><p>  MOV R7,TEMP_L</p><p>  MOVA,#0FH</p><p><b>  ANLA,R7</b></p><p>  MOVTEMP

56、_DP,A</p><p>  MOV R7,TEMP_L</p><p>  MOVA,#0F0H</p><p><b>  ANLA,R7</b></p><p><b>  SWAPA</b></p><p>  MOVTEMP_L,A</p&

57、gt;<p>  MOVR7,TEMP_H</p><p>  MOVA,#0FH DATA_BUSBITP3.3</p><p>  FLAGBIT00H;標(biāo)志位</p><p>  TEMP_LEQU 30H;溫度值低字節(jié)</p><p>  TEMP_HEQU31H;溫度值高字節(jié)&

58、lt;/p><p>  TEMP_DPEQU32H;溫度小數(shù)</p><p>  TEMP_INTEQU33H;溫度值整數(shù)</p><p>  TEMP_BAIEQU34H;溫度百位數(shù)</p><p>  TEMP_SHIEQU35H;溫度十位數(shù)</p><p>  TEMP_GEEQ

59、U36H;溫度個位數(shù)</p><p>  DIS_BAIEQU37H;顯示百位數(shù)</p><p>  DIS_SHIEQU38H;顯示十位數(shù)</p><p>  DIS_GEEQU39H;顯示個位數(shù)</p><p>  DIS_DPEQU3AH;顯示小數(shù)位</p><p>

60、  DIS_ADDEQU3BH;顯示地址</p><p>  ORG 0000H

61、

62、 </p><p>  AJMPSTART</p><p>  ORG 0050H;初始化</p><p><b>  STA

63、RT:</b></p><p>  MOVSP,#40H</p><p>  MAIN:LCALLREAD_TEMP;調(diào)讀溫度程序</p><p>  LCALLPROCESS;調(diào)數(shù)據(jù)處理程序</p><p><b>  AJMPMAIN</b></p><p&

64、gt;<b>  ;讀溫度程序</b></p><p>  READ_TEMP:</p><p>  LCALLRESET_PULSE ;調(diào)用復(fù)位脈沖程序</p><p>  MOV A,#0CCH;跳過ROM命令</p><p>  LCALL WRITE</p>

65、<p>  MOVA,#44H;讀溫度</p><p>  LCALL WRITE</p><p>  LCALLDISPLAY;顯示溫度</p><p>  LCALLRESET_PULSE;調(diào)用復(fù)位脈沖程序</p><p>  MOVA,#0CCH;跳過ROM命令</p>&

66、lt;p>  LCALLWRITE</p><p>  MOVA,#0BEH;讀緩存命令</p><p>  LCALL WRITE</p><p>  LCALLREAD</p><p><b>  RET</b></p><p><b>  ;復(fù)位脈沖程序<

67、;/b></p><p>  RESET_PULSE:</p><p>  RESET:SETBDATA_BUS</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  CLRDATA_BUS</p>

68、<p>  MOVR7,#255</p><p>  DJNZR7,$</p><p>  SETB DATA_BUS</p><p>  MOVR7,#30</p><p><b>  DJNZR7,$</b></p><p>  JNB DATA_BUS,SE

69、TB_FLAG</p><p><b>  CLRFLAG</b></p><p><b>  AJMPNEXT</b></p><p>  SETB_FLAG:</p><p>  SETB FLAG</p><p>  NEXT:MOV R7,#120<

70、/p><p>  DJNZR7,$</p><p>  SETB DATA_BUS</p><p>  JNBFLAG,RESET</p><p><b>  RET</b></p><p><b>  ;寫命令</b></p><p>  WR

71、ITE:SETBDATA_BUS</p><p>  MOVR6,#8</p><p><b>  CLRC</b></p><p><b>  WRITING:</b></p><p>  CLRDATA_BUS</p><p>  MOVR7,#5<

72、/p><p>  DJNZR7,$</p><p><b>  RRCA</b></p><p>  MOVDATA_BUS, C</p><p>  MOVR7,#30H</p><p>  DJNZR7,$</p><p>  SETBDATA_BUS&l

73、t;/p><p><b>  NOP</b></p><p>  DJNZR6,WRITING</p><p><b>  RET</b></p><p><b>  ;循環(huán)顯示段位</b></p><p><b>  DISPLAY:<

74、/b></p><p>  MOV R4,#200</p><p><b>  DIS_LOOP:</b></p><p>  MOVA,DIS_DP</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b><

75、/p><p><b>  CLRP2.7</b></p><p>  LCALLDELAY2MS</p><p>  MOVA,DIS_GE</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b></p>&l

76、t;p><b>  SETBP0.7</b></p><p>  CLRP2.6</p><p>  LCALLDELAY2MS</p><p>  MOVA,DIS_SHI</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,

77、A</b></p><p><b>  CLRP2.5</b></p><p>  LCALLDELAY2MS</p><p>  MOVA,DIS_BAI</p><p>  MOVP2,#0FFH</p><p><b>  MOVP0,A</b&g

78、t;</p><p>  MOVA,TEMP_BAI</p><p>  CJNEA,#0,SKIP</p><p>  AJMPNEXTT</p><p>  SKIP:CLRP2.4</p><p>  LCALLDELAY2MS</p><p>  NEXTT:NOP&

79、lt;/p><p>  DJNZR4,DIS_LOOP</p><p><b>  RET</b></p><p><b>  ;讀命令</b></p><p>  READ:SETBDATA_BUS</p><p>  MOVR0,#TEMP_L</p>

80、<p>  MOV R6,#8</p><p>  MOVR5,#2</p><p><b>  CLRC</b></p><p><b>  READING:</b></p><p>  CLRDATA_BUS</p><p><b> 

81、 NOP</b></p><p><b>  NOP</b></p><p>  SETBDATA_BUS</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP

82、</b></p><p><b>  NOP</b></p><p>  MOVC,DATA_BUS</p><p><b>  RRCA</b></p><p>  MOVR7,#30H</p><p>  DJNZR7,$</p>

83、<p>  SETBDATA_BUS</p><p>  DJNZR6,READING</p><p>  MOV@R0,A</p><p><b>  INC R0</b></p><p>  MOVR6,#8</p><p>  SETBDATA_BUS</p

84、><p>  DJNZR5,READING</p><p><b>  RET</b></p><p><b>  ;數(shù)據(jù)處理</b></p><p><b>  PROCESS:</b></p><p>  MOV R7,TEMP_L</p&

85、gt;<p>  MOVA,#0FH</p><p><b>  ANLA,R7</b></p><p>  MOVTEMP_DP,A</p><p>  MOV R7,TEMP_L</p><p>  MOVA,#0F0H</p><p><b>  A

86、NLA,R7</b></p><p><b>  SWAPA</b></p><p>  MOVTEMP_L,A</p><p>  MOVR7,TEMP_H</p><p>  MOVA,#0FH</p><p><b>  ANLA,R7</b

87、></p><p><b>  SWAPA</b></p><p>  ORLA,TEMP_L</p><p>  MOV B,#64H</p><p><b>  DIVAB</b></p><p>  MOVTEMP_BAI,A</p>

88、<p>  MOVA,#0AH</p><p><b>  XCHA,B</b></p><p><b>  DIVAB</b></p><p>  MOVTEMP_SHI,A</p><p>  MOVTEMP_GE,B</p><p>  MOV

89、A,TEMP_DP</p><p>  MOV DPTR,#TABLE_DP</p><p>  MOVCA,@A+DPTR</p><p>  MOVDPTR,#TABLE_INTER</p><p>  MOVC A,@A+DPTR</p><p>  MOVDIS_DP,A</p>

90、;<p>  MOVA,TEMP_GE</p><p>  MOV DPTR,#TABLE_INTER</p><p>  MOVCA,@A+DPTR</p><p>  MOV DIS_GE,A</p><p>  MOVA,TEMP_SHI</p><p>  MOV DPTR,

91、#TABLE_INTER</p><p>  MOVCA,@A+DPTR</p><p>  MOVDIS_SHI,A</p><p>  MOVA,TEMP_BAI</p><p>  MOV DPTR,#TABLE_INTER</p><p>  MOVCA,@A+DPTR</p>

92、<p>  MOV DIS_BAI,A</p><p><b>  RET</b></p><p><b>  DELAY2MS:</b></p><p>  MOVR6,#3</p><p>  LOOP3:MOVR5,#250</p><p>

93、  DJNZR5,$</p><p>  DJNZR6,LOOP3</p><p><b>  RET</b></p><p><b>  TABLE_DP:</b></p><p>  DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H</p>

94、<p>  DB06H,07H,08H,08H,09H,09H</p><p>  TABLE_INTER:</p><p>  DB03FH,006H,05BH,04FH,066H</p><p>  DB06DH,07DH,07H,07FH,06FH</p><p><b>  END</b>&l

95、t;/p><p><b>  ANLA,R7</b></p><p><b>  SWAPA</b></p><p>  ORLA,TEMP_L</p><p>  MOV B,#64H</p><p><b>  DIVAB</b><

96、/p><p>  MOVTEMP_BAI,A</p><p>  MOVA,#0AH</p><p><b>  XCHA,B</b></p><p><b>  DIVAB</b></p><p>  MOVTEMP_SHI,A</p><p&

97、gt;  MOVTEMP_GE,B</p><p>  MOVA,TEMP_DP</p><p>  MOV DPTR,#TABLE_DP</p><p>  MOVCA,@A+DPTR</p><p>  MOVDPTR,#TABLE_INTER</p><p>  MOVC A,@A+DPTR

98、</p><p>  MOVDIS_DP,A</p><p>  MOVA,TEMP_GE</p><p>  MOV DPTR,#TABLE_INTER</p><p>  MOVCA,@A+DPTR</p><p>  MOV DIS_GE,A</p><p>  MOV

99、A,TEMP_SHI</p><p>  MOV DPTR,#TABLE_INTER</p><p>  MOVCA,@A+DPTR</p><p>  MOVDIS_SHI,A</p><p>  MOVA,TEMP_BAI</p><p>  MOV DPTR,#TABLE_INTER<

100、;/p><p>  MOVCA,@A+DPTR</p><p>  MOV DIS_BAI,A</p><p><b>  RET</b></p><p><b>  DELAY2MS:</b></p><p>  MOVR6,#3</p><p&

101、gt;  LOOP3:MOVR5,#250</p><p>  DJNZR5,$</p><p>  DJNZR6,LOOP3</p><p><b>  RET</b></p><p><b>  TABLE_DP:</b></p><p>  DB00H,

102、01H,01H,02H,03H,03H,04H,04H,05H,06H</p><p>  DB06H,07H,08H,08H,09H,09H</p><p>  TABLE_INTER:</p><p>  DB03FH,006H,05BH,04FH,066H</p><p>  DB06DH,07DH,07H,07FH,06FH&l

103、t;/p><p><b>  END</b></p><p>  四:課程設(shè)計總結(jié)與心得: </p><p>  一周半的課程設(shè)計結(jié)束了,在這次的課程設(shè)計中不僅檢驗了我所學(xué)習(xí)

104、的知識,也培養(yǎng)了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在設(shè)計過程中,與同學(xué)分工設(shè)計,和同學(xué)們相互探討,相互學(xué)習(xí),相互監(jiān)督。學(xué)會了合作,學(xué)會了運籌帷幄,學(xué)會了寬容,學(xué)會了理解,也學(xué)會了做人與處世。</p><p>  課程設(shè)計是我們專業(yè)課程知識綜合應(yīng)用的實踐訓(xùn)練,著是我們邁向社會,從事職業(yè)工作前一個必不少的過程.”千里之行始于足下”,通過這次課程設(shè)計,我深深體會到這句千古名言的真正含義.我今天

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論