【大學課件】單片機原理及應用_第1頁
【大學課件】單片機原理及應用_第2頁
【大學課件】單片機原理及應用_第3頁
【大學課件】單片機原理及應用_第4頁
【大學課件】單片機原理及應用_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2021-7-20 1 單片機原理及應用 中南林業科技大學涉外學院單片機原理及應用 2021-7-202 總結 v第一章 51系列 v第二章 I/O口,CPU,存儲器 v第三章 尋址方式,各類指令的格式、功能 字節數、周期數 v第四章 子程序,查表程序,分支程序,循環程序 中南林業科技大學涉外學院單片機原理及應用 2021-7-203 v第五章 v v 1、中斷TCON、SCON、IE、IP v 各中斷源的入口地址、請求標志、撤消 v 中斷效勞程序 v 2、定時器/計數器 v TCON、TMOD v T0、T1的定時、計數初值,啟動,溢 出 v 4種工作方式 中南林業科技大學涉外學院單片機原理

2、及應用 2021-7-204 v第六章 1、 SCON、PCON 發送、接收的SBUF,指令,完成標志 4種工作方式的幀數據、波特率 2、存儲器的擴展:地址 3、I/O口擴展:8155 4、LED顯示,鍵盤 5、A/D、D/A 中南林業科技大學涉外學院單片機原理及應用 2021-7-205 【例【例1】 在程序存儲器中有一平方表,從在程序存儲器中有一平方表,從2000H單單 元開始存放,如下圖,試通過查表指令查找出元開始存放,如下圖,試通過查表指令查找出 6的平方。的平方。 解:采用解:采用DPTR作為基址存放器的查表程序比較簡作為基址存放器的查表程序比較簡 單,查表范圍大,也容易理解。只要預

3、先使用單,查表范圍大,也容易理解。只要預先使用 一條一條16位數據傳送指令,把表的首地址位數據傳送指令,把表的首地址2000H 送入送入DPTR,然后進行查表就可以了。,然后進行查表就可以了。 相應的程序如下:相應的程序如下: MOV A,#6 ;設定備查的表項設定備查的表項 MOV DPTR,#2000H ;設置設置DPTR為表始址為表始址 MOVC A,A+DPTR ;將將A的平方值查表后送的平方值查表后送A 如果需要查找其他數的平方,只需要將累加器如果需要查找其他數的平方,只需要將累加器 A的內容的內容(變址變址)改一下即可。改一下即可。 2000H0 2001H1 2002H4 200

4、3H9 2004H16 2005H25 2006H36 2007H49 2008H64 2009H81 中南林業科技大學涉外學院單片機原理及應用 2021-7-206 【例例2】 試編程計算試編程計算5678H1234H的值,結果保存在的值,結果保存在R6、 R5中。中。 解:減數和被減數都是解:減數和被減數都是16位二進制數,計算時要先進行低位二進制數,計算時要先進行低8 位的減法,然后再進行高位的減法,然后再進行高8位的減法,在進行低位的減法,在進行低8位減位減 法時,不需要考慮借位,所以要在減法指令之前將借位法時,不需要考慮借位,所以要在減法指令之前將借位 標志清標志清0。程序如下:。程

5、序如下: MOV A,#78H;被減數低被減數低8位送累加器位送累加器 CLR C;清進位標志位清進位標志位CY SUBB A,#34H;減去減數減去減數 MOV R5,A;保存低保存低8位位 MOV A,#56H;被減數高被減數高8位送累加器位送累加器 SUBB A,#12H;減去減數減去減數 MOV R6,A;保存高保存高8位位 中南林業科技大學涉外學院單片機原理及應用 2021-7-207 【例【例3】 拆字程序:在內部拆字程序:在內部RAM 40H單元保存有以壓縮單元保存有以壓縮BCD碼碼 表示的表示的2位十進制數,編程將它們拆開,分別保存在內部位十進制數,編程將它們拆開,分別保存在內

6、部 RAM的的41H、42H單元。單元。 解:程序如下:解:程序如下: MOV A,40H;壓縮壓縮BCD碼送累加器碼送累加器 ANL A,#0FH;高高4位清位清0,保存低保存低4位位 MOV 41H,A;保存低保存低4位位BCD碼碼 MOV A,40H;取數據取數據 MOV A,#0F0H;低低4位清位清0,保存高保存高4位位 SWAP A;上下位交換上下位交換 MOV 42H,A;保存高保存高4位位BCD碼碼 中南林業科技大學涉外學院單片機原理及應用 2021-7-208 【例【例4】 設設(SP)=30H,符號地址,符號地址PROG1指向程序存儲器的指向程序存儲器的 5678H單元,當

7、前單元,當前PC值為值為0123H。從。從0123H處執行指令處執行指令 “LCALL PROG1,分析執行后,分析執行后PC、SP的值和相關存儲的值和相關存儲 器的內容。器的內容。 解:執行過程為:解:執行過程為: (PC)+3=0123H+3=0126H。 將將PC內容壓入堆棧:向內容壓入堆棧:向(SP)+1=31H中壓入中壓入26H,向,向 (SP)+1=32H中壓入中壓入01H,(SP)=33H。 將將PROG1=5678H送入送入PC,即,即(PC)=5678H。程序轉向以。程序轉向以 5678H為首地址的子程序執行。為首地址的子程序執行。 最終執行結果是:最終執行結果是:(PC)=

8、5678H、(SP)=33H、(31H)=26H、 (32H)=01H。 中南林業科技大學涉外學院單片機原理及應用 2021-7-209 【例【例5】 比較內部比較內部RAM中中40H、41H兩個單元中的數據大小,兩個單元中的數據大小, 將大的數送至將大的數送至42H單元。單元。 解:程序如下:解:程序如下: MOV A,40H ;取第一個數取第一個數 CJNE A,41H,NEQU;比較比較,不相等轉移至不相等轉移至NEQU 處處 MOV 42H,40H ;相等相等, (40H)42H SJMP TOOFF;完成完成,轉移至結尾退出轉移至結尾退出 NEQU: JC LESS ;假設假設CY=

9、1,說明說明(40H)(41H)轉轉 移移 MOV 42H,40H;(40H)(41H),(40H)40H SJMP TOOFF;完成完成,轉移至結尾退出轉移至結尾退出 LESS: MOV 42H,41H;(40H)(41H),(41H)40H TOOFF: RET 中南林業科技大學涉外學院單片機原理及應用 2021-7-2010 【例例1】 P1口做輸出口,控制口做輸出口,控制8盞燈盞燈(P1口輸出低電平時燈被點口輸出低電平時燈被點 亮亮),編程使燈按以下規律顯示:同一時間只有兩盞燈點亮,編程使燈按以下規律顯示:同一時間只有兩盞燈點亮, 從、控制的燈開始,每盞燈閃爍從、控制的燈開始,每盞燈閃

10、爍5次,再移向下兩盞燈,次,再移向下兩盞燈, 同樣閃爍同樣閃爍5次,循環往復,延時時間次,循環往復,延時時間1s。晶振頻率。晶振頻率6MHz。 解:主程序是雙重循環程序,循環移位是外循環,燈閃爍解:主程序是雙重循環程序,循環移位是外循環,燈閃爍5次次 是內循環,內循環程序不能與外循環程序交叉。是內循環,內循環程序不能與外循環程序交叉。 延時延時1S采用三重循環程序。晶振頻率為采用三重循環程序。晶振頻率為6MHz時,機器周時,機器周 期為期為2 s,延時程序的延時時間計算方法如下:,延時程序的延時時間計算方法如下: 1+1+(1+(1+1+2)1+1+(1+(1+1+2)125+2)125+2)

11、200+2200+25+25+22 2 s s =1006036 =1006036 中南林業科技大學涉外學院單片機原理及應用 2021-7-2011 地址地址機器碼機器碼程序程序注釋注釋 ORG 0000H 0000H02 00 30 LJMP MAIN ORG 0030H 0030H74 5FMAIN: MOV A,#5FH;燈點亮初始狀態燈點亮初始狀態 0032H79 05 LP1: MOV R1,#5;循環閃爍次數循環閃爍次數 0034HF5 90 LP2: MOV P1,A 0036H12 01 00 LCALL DELAY;延時延時1s 0039H75 90 FF MOV P1,#0

12、FFH 003CH12 01 00 LCALL DELAY;延時延時1s 003FH D9 F3 DJNZ R1,LP2;循環閃爍次數不夠循環閃爍次數不夠5次次,繼繼 續續 0041H03 RR A;右移一位右移一位 0042H03 RR A;再右移一位再右移一位 0043H80 ED SJMP LP1 主程序: 中南林業科技大學涉外學院單片機原理及應用 2021-7-2012 地址地址機器碼機器碼程序程序注釋注釋 ORG 0100H 0100H7B 05DELAY: MOV R3,#5;延時延時1s的循環次數的循環次數 0102H7C C8DEL3: MOV R4,#200;延時延時200m

13、s的循環次數的循環次數 0104H7D 7DDEL2: MOV R5,#125;延時延時1ms的循環次數的循環次數 0106H00DEL1: NOP 0107H00 NOP 0108HDD FE DJNZ R5,DEL1 010AHDC F9 DJNZ R4,DEL2 010CHDB F5 DJNZ R3,DEL3 010EH22 RET;子程序返回子程序返回 END 延時子程序: 中南林業科技大學涉外學院單片機原理及應用 2021-7-2013 【例【例1】 P1口做輸出口,控制八只燈口做輸出口,控制八只燈(P1口輸出低電口輸出低電 平時燈被點亮平時燈被點亮),利用手控單脈沖信號作為外部中,

14、利用手控單脈沖信號作為外部中 斷信號,控制八只燈按一定的規律循環點亮。斷信號,控制八只燈按一定的規律循環點亮。 解:手控單脈沖信號作為外部中斷信號由解:手控單脈沖信號作為外部中斷信號由INT0(P3.2) 管腳輸入,設置中斷允許存放器管腳輸入,設置中斷允許存放器IE中的中的EA、EX0 位為位為1;只有一個中斷源可不設置優先級別;中斷;只有一個中斷源可不設置優先級別;中斷 觸發方式設為邊沿觸發,控制位觸發方式設為邊沿觸發,控制位IT0應設置為應設置為1。 中南林業科技大學涉外學院單片機原理及應用 2021-7-2014 ORG 0000H;程序入口程序入口 0000H02 00 50 LJMP

15、 MAIN;轉向主程序轉向主程序 ORG 0003H;外部中斷外部中斷0的入口地址的入口地址 0003H02 01 00 LJMP INT;轉向中斷服務程序轉向中斷服務程序 ORG 0050H 0050HD2 AFMAIN: SETB EA 0052HD2 A8 SETB EX0 0054HD2 88 SETB IT0;中斷觸發方式為邊沿觸中斷觸發方式為邊沿觸 發發 0056H74 FE MOV A,#0FEH 0058HF5 90 MOV P1,A 005AH80 FE SJMP $ ORG 0100H 0100H23 INT:RL A;中斷服務程序中斷服務程序 0101HF5 90 MOV

16、 P1,A 0103H32 RETI END 參考程序: 中南林業科技大學涉外學院單片機原理及應用 2021-7-2015 【例【例2】 在輸出周期為在輸出周期為1 ms(頻率頻率1kHz)的方波,采用定時器的方波,采用定時器1方式方式0 設計程序,晶振頻率為設計程序,晶振頻率為12MHz。 解:根據題意,只要使每隔解:根據題意,只要使每隔500s取反一次即可得到周期取反一次即可得到周期1 ms的的 方波,因而方波,因而T1的定時時間為的定時時間為500s。 用定時器用定時器1方式方式0時,定時器時,定時器/計數器方式存放器計數器方式存放器TMOD高高4位中位中 的的M1M0應取應取00;可設

17、定為軟件啟動定時器,故;可設定為軟件啟動定時器,故GATE取取0;因;因 為用定時功能,為用定時功能,C/T取取0;定時器方式存放器;定時器方式存放器TMOD低低4位為無位為無 關位,一般都取關位,一般都取0,所以,所以TMOD應為應為00H。 晶振頻率為晶振頻率為12MHz,T機機=12/fosc=12/(12106)=1s 定時初值定時初值 X=213-T/T機機=213-500/1=8192-500=7692 因因TL1的高的高3位未用,對計算出的定時初值位未用,對計算出的定時初值X要進行修正,即在要進行修正,即在 低低5位前插入位前插入3個個0,修正后的定時初值,修正后的定時初值 中南

18、林業科技大學涉外學院單片機原理及應用 2021-7-2016 地址地址機器碼機器碼程序程序注釋注釋 ORG 0000H 0000H02 00 50 LJMP MAIN ORG 0050H 0050HD2 90MAIN: SETB P1.0;置置P1.0初始狀態初始狀態 0052H75 89 00 MOV TMOD,#00H;置定時器置定時器1為工作方式為工作方式0 0055H75 8D F1 MOV TH1,#0F0H;置置500 s定時初值定時初值 0058H75 8B 0C MOV TL1,#0CH 005BHD2 8E SETB TR1;啟動定時器啟動定時器1 005DH10 8F 02

19、 LP1: JBC TF1,LP2;查詢計數溢出查詢計數溢出 0060H80 FB SJMP LP1;未到未到500 s繼續計數繼續計數 0062H75 8D F1 LP2: MOV TH1,#0F0H;重新置重新置500 s定時初值定時初值 0065H75 8B 0C MOV TL1,#0CH 0068HB2 90 CPL P1.0;輸出取反輸出取反 006AH80 E4 SJMP LP1;重復循環重復循環 END 參考程序: 中南林業科技大學涉外學院單片機原理及應用 2021-7-2017 串行口應用舉例串行口應用舉例 【例例3 3】設甲乙機以串行方式設甲乙機以串行方式1 1進行數據傳送,

20、波進行數據傳送,波 特率為特率為1200b/s1200b/s。甲機發送的。甲機發送的1616個數據存在內個數據存在內RAM RAM 40H40H4FH4FH單元中,乙機接收后存在內單元中,乙機接收后存在內RAM 50HRAM 50H為首地為首地 址的區域中址的區域中。 T1T1初值初值 = 256 - = 256 - = 232 = E8H = 232 = E8H 3232121212001200 解:解: 串行方式串行方式1 1波特率取決于波特率取決于T1T1溢出率溢出率( (設設SMOD=0),SMOD=0), 計算計算T1T1定時初值:定時初值: 11059200110592002 20

21、 0 中南林業科技大學涉外學院單片機原理及應用 2021-7-2018 甲機發送子程序:甲機發送子程序: MOV TMOD,#20HMOV TMOD,#20H; ;置置T1T1定時器工作方式定時器工作方式2 2 MOV TL1,#0E8HMOV TL1,#0E8H; ;置置T1T1計數初值計數初值 MOV TH1,#0E8HMOV TH1,#0E8H; ;置置T1T1計數重裝值計數重裝值 CLR ET1CLR ET1; ;禁止禁止T1T1中斷中斷 SETB TR1SETB TR1;T1;T1啟動啟動 MOV SCON,#40HMOV SCON,#40H; ;置串行方式置串行方式1,1,禁止接收

22、禁止接收 MOV PCON,#00HMOV PCON,#00H; ;置置SMOD=0(SMODSMOD=0(SMOD不能位操作不能位操作) ) CLR ESCLR ES; ;禁止串行中斷禁止串行中斷 MOV R0,#40HMOV R0,#40H; ;置發送數據區首地址置發送數據區首地址 MOV R2,#16MOV R2,#16; ;置發送數據長度置發送數據長度 MOVMOVA,R0A,R0; ;讀一個數據讀一個數據 MOVMOVSBUF,ASBUF,A; ;發送發送 JNBJNBTI,$TI,$; ;等待一幀數據發送完畢等待一幀數據發送完畢 CLRCLRTITI; ;清發送中斷標志清發送中斷標

23、志 INCINCR0R0; ;指向下一字節單元指向下一字節單元 DJNZDJNZR2,TRSAR2,TRSA; ;判判1616個數據發完否個數據發完否? ?未完繼續未完繼續 RET RET ; ; TXDA:TXDA: TRSA:TRSA: 中南林業科技大學涉外學院單片機原理及應用 2021-7-2019 MOV TMOD,#20HMOV TMOD,#20H; ;置置T1T1定時器工作方式定時器工作方式2 2 MOV TL1,#0E8HMOV TL1,#0E8H; ;置置T1T1計數初值計數初值 MOV TH1,#0E8HMOV TH1,#0E8H; ;置置T1T1計數重裝值計數重裝值 CLR ET1CLR ET1; ;禁止禁止T1T1中斷中斷 SETB TR1SETB TR1;T1;T1啟動啟動 MOV SCON,#4

溫馨提示

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

評論

0/150

提交評論