Presentation is loading. Please wait.

Presentation is loading. Please wait.

單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日

Similar presentations


Presentation on theme: "單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日"— Presentation transcript:

1 單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
國立大甲高工 電機科 單晶片微電腦控制實習 計時器的基礎實習 使用計時中斷作走馬燈 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

2 了解計時中斷的應用方法 熟悉中斷服務程式的寫法 實習 11-2 使用計時中斷作走馬燈 2018年11月21日
微電腦控制實習 E0902霹靂燈 2018年11月21日 實習 11-2 使用計時中斷作走馬燈 了解計時中斷的應用方法 熟悉中斷服務程式的寫法 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈 電機科 飛鴿製作

3 動作情形 電路圖 流程圖 程式 習題 實習 11-2 使用計時中斷作走馬燈 2018年11月21日
回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

4 計時中斷走馬燈的動作: 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

5 計時中斷走馬燈的電路圖: 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

6 計時中斷走馬燈的流程圖: 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

7 計時中斷走馬燈的程式 MAIN: ORG 0000H MOV A,#11111110B AJMP MAIN MOV P1,A ;
MOV R4,#10 MOV TMOD,# B MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 SETB TR0 PAUSE: AJMP PAUSE ; END ORG H AJMP MAIN ; ORG BH MOV TH0,#3CH MOV TL0,#0B0H DJNZ R4,CONT MOV R4,#10 RL A MOV P1,A CONT: RETI 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

8 載入程式碼至單晶片程式記憶體起始位址 0000H 中
指令介紹: ORG H ORG H 載入程式碼至單晶片程式記憶體起始位址 0000H 中 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

9 跳躍至位址標名為 MAIN 處去執行下一指令
指令介紹: AJMP MAIN AJMP MAIN 跳躍至位址標名為 MAIN 處去執行下一指令 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

10 指令介紹: MOV A,#11111110B MOV A,#11111110B 預定先亮最右邊的燈(P1.0)
將常數 二進制 B複製至 累積器 A # B 中 #符號後面的數字表示為常數(資料) B表示二進制,二進制 B = 十六進制 FEH = 十進制 254 回動作圖 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

11 把累積器(A)的內容,複製一份(輸出)至輸出埠 p1 LOOP: 在此表示指令 MOV p1,A 的位址名稱(標名)
回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

12 指令介紹: RL A 把累積器(A)的內容向左旋轉一個位元 RL A 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈
回動作圖 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

13 呼叫(跳躍至)副程式的起始位址 DELAY 處去執行,等到指令 RET 後再返回主程式原ACALL的下一個指令處繼續執行主程式
指令介紹: ACALL DELAY ACALL DELAY 呼叫(跳躍至)副程式的起始位址 DELAY 處去執行,等到指令 RET 後再返回主程式原ACALL的下一個指令處繼續執行主程式 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

14 跳躍至位址標名為LOOP處去執行下一指令
指令介紹: AJMP LOOP AJMP LOOP 跳躍至位址標名為LOOP處去執行下一指令 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

15 指令介紹: MOV R4,#10 DELAY: MOV R4,#10 將常數 10 複製至 R4 內部暫存器
#10 中,#符號後面的數字表示為常數(資料) 10 的數字表示為十進制 若寫為十六進制,則改寫為 0AH 若寫為二進制,則改寫為 B DELAY: 在此表示指令 MOV R4,#10 的位址名稱(標名) 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

16 計時中斷副程式介紹: MOV TMOD,#00000001B TIMER: MOV TH0,#3CH MOV TL0,#0B0H
DELAY: MOV R4,#10 MOV TMOD,# B TIMER: MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 WAIT: JB TF0,OK AJMP WAIT OK: CLR TF0 DJNZ R4,TIMER RET 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

17 TMOD 計時/計數器模式控制暫存器 GATE :決定計時/計數器由軟體程式或硬體開關啟動 C/T :決定計時/計數器當作計時器或計數器使用
計時/計數器 1 計時/計數器 0 GATE :決定計時/計數器由軟體程式或硬體開關啟動 C/T :決定計時/計數器當作計時器或計數器使用 M1 & M0 :決定計時/計數器如何工作 (工作模式選擇) TMOD = 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

18 TMOD 計時/計數器模式控制暫存器=00000001B 由程式中知本例主要選用計時/計數器 0
GATE C/T M1 M0 1 由程式中知本例主要選用計時/計數器 0 GATE : = 0 →(吃軟不吃硬), 僅由軟體程式中 TRx 被指令設定為1,計時/計數器 0 就會動作 C/T : = 0→當作計時器 0 使用,計時脈波為石英晶體振盪頻率的 1/12 M1 & M0 : = 01→模式1,計時器 0為16位元的計時器 TMOD 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

19 TMOD----GATE 腳之功能 GATE=1時→(軟硬兼施)
當特殊功能暫存器 TCON裡的TRx 被指令設定為1,而且接腳 INTx 為高電位時,計時/計數器x 才會動作 GATE=0時→ (吃軟不吃硬) 當特殊功能暫存器 TCON裡的TRx 被指令設定為1,計時/計數器x 就會動作 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

20 TMOD----C/T 腳之功能 C/T=1時 當作計數器使用,計數脈波由接腳 Tx 輸入 C/T=0時
當作計時器使用,計時脈波為石英晶體振盪頻率的 1/12 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

21 TMOD----M1 & M0 腳之功能 M1 M0=00時 → 模式0 M1 M0=01時 → 模式1 M1 M0=10時 → 模式2
為13位元的計時/計數器 M1 M0=01時 → 模式1 為16位元的計時/計數器 M1 M0=10時 → 模式2 為8位元的自動再載入型計時/計數器 M1 M0=11時 → 模式3 僅計時/計數器 0有用: TL0:8位元計時/計數器 TH0:8位元計時器 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

22 計時/計數器的基本認識之(1) 被規劃成計時功能時 被規劃成計數功能時 計時單位為外接石英晶體振盪頻率除12後之週期值
如 OSC = 12MHz →計時單位 = 1uS 被規劃成計數功能時 每當 Tx 輸入一脈波 →計數器x的計數值就+1 TH&TL 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

23 計時/計數器的基本認識之(2) TRx 計時/計數器x的起動控制位元 THx & TLx 計時/計數暫存器 →內存計時/計數初始值
→計時/計數值溢位 → TFx = 1 TFx 計時/計數器x的溢位旗標 TFx = 1時 →向cpu提出中斷要求 →程式跳至中斷副程式執行 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

24 計時/計數器暫存器 THx & TLx THx & TLx 計時/計數暫存器 →內存計時/計數初始值 當THx & TLx 計時/計數完成時
→TH0=3CH=3x x256= =15360 →TL0=B0H=11x16+0x1=176 →計時初始值= =15536 當THx & TLx 計時/計數完成時 →計時/計數值溢位 → TFx = 1 →溢位值=65536 →要溢位須計時 =溢位值 - 計時初始值 =65536 – = (us) 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈 T/C 回程式

25 計時/計數器x的起動控制位元 TRx TR0 計時/計數器x的起動控制位元 TR0 = 0 →計時/計數器0不動作
SETB TR0 設定 TR0 = 1 計時/計數器0動作 TH0 & TL0 由計時初始值開始往上計時 TH&TL 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

26 IE 中斷致能暫存器 EA :決定所有的中斷為 致能/或除能 ET2 :決定計時/計數器2的中斷為 致能/或除能
- ET2 ES ET1 EX1 ET0 EX0 EA :決定所有的中斷為 致能/或除能 ET :決定計時/計數器2的中斷為 致能/或除能 ES :決定串列埠的中斷為 致能/或除能 ET :決定計時/計數器1的中斷為 致能/或除能 EX :決定外部1的中斷為 致能/或除能 ET :決定計時/計數器1的中斷為 致能/或除能 EX :決定外部1的中斷為 致能/或除能 IE 方塊圖 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

27 中斷來源及相對應之中斷副程式的位址 中斷來源 中斷副程式的位址 外部中斷0 INT0 0003H 計時/數器中斷0 TF0 000BH
外部中斷1 INT1 0013H 計時/數器中斷1 TF1 001BH 串列中斷 0023H IE 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

28 計時/計數器溢位旗標 TFx THx & TLx 計時/計數暫存器 →內存計時/計數初始值 當THx & TLx 計時/計數完成時
→TH0=3CH,TL0=B0H →計時初始值 = 15536 當THx & TLx 計時/計數完成時 →計時/計數值溢位 → TFx = 1 →溢位值=65536 →要溢位須計時 =溢位值 - 計時初始值 =65536 – = (us) 每滿50000us,即跳至OK位址執行 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

29 延時時間: DJNZ R4,CONT DJNZ R4,CONT
若不為0,則跳至標名位址CONT去執行RETI,返回主程式(在PAUSE指令空等) 若為0,則繼續執行本指令的下一個指令 因 R4 =10 ,計時中斷副程式將會執行 10 次,故延時時間將為 = 10 x 50000us = us = 500ms,然後左移一燈 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

30 習題: 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈

31 本單元完畢 電機科 王銘輝 製作 回程式 2018年11月21日 8051 單晶片實習---使用計時中斷作走馬燈


Download ppt "單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日"

Similar presentations


Ads by Google