國立大甲高工 電機科 單晶片微電腦控制實習 輸出埠基礎實習 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈
練習左旋轉指令的用法 練習右旋轉指令的用法 實習 9-2 霹靂燈 2018年11月7日 8051 單晶片實習---E0902霹靂燈 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈 電機科 飛鴿製作
實習 9-2霹靂燈 動作情形 電路圖 流程圖 程式 習題 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
霹靂燈的動作: 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
閃爍燈的電路圖: 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
霹靂燈的流程圖: 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
霹靂燈的程式 START: MOV R1,#07H MOV A,#11111110B LEFT: MOV P1,A ACALL DELAY ORG 0000H START: MOV R1,#07H MOV A,#11111110B LEFT: MOV P1,A ACALL DELAY RL A DJNZ R1,LEFT ; MOV R1,#07H MOV A,#01111111B RIGHT: MOV P1,A ACALL DELAY RR A DJNZ R1,RIGHT AJMP START ; DELAY: MOV R6,#250 DL1: MOV R7,#250 DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET END 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
載入程式碼至單晶片程式記憶體起始位址 0000H 中 指令介紹: ORG 0000H ORG 0000H 載入程式碼至單晶片程式記憶體起始位址 0000H 中 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: MOV R1,#07H START: MOV R1,#07H 將常數 07 複製至 R1 內部暫存器 #07H 中 #符號後面的數字表示為常數(資料) H表示16進制,十六進制 07H = 十進制 07 START: 在此表示指令 MOV R1,#07H 的位址名稱(標名) 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: MOV A,#11111110B MOV A,#11111110B 將常數 二進制111 11110B複製至 累積器 A #符號後面的數字表示為常數(資料) B表示二進制,二進制 11111110B = 十六進制 FEH = 十進制 254 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
把累積器(A)的內容,複製一份(輸出)至輸出埠 p1 LEFT: 在此表示指令 MOV p1,A 的位址名稱(標名) 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: RL A 把累積器(A)的內容向左旋轉一個位元 RL A 2018年11月7日 8051 單晶片實習---E0902霹靂燈 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: DJNZ R1,LEFT DJNZ R1,LEFT 將 R1 內部暫存器內的數字減1,再判斷是否為0 若為0,則繼續執行本指令的下一個指令 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: MOV A,01111111B MOV A,01111111B 將常數 二進制01111111B複製至 累積器 A #符號後面的數字表示為常數(資料) B表示二進制,二進制 01111111B = 十六進制 7FH = 十進制 127 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
把累積器(A)的內容,複製一份(輸出)至輸出埠 p1 RIGHT: 在此表示指令 MOV p1,A 的位址名稱(標名) 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
呼叫(跳躍至)副程式的起始位址 DELAY 處去執行,等到指令 RET 後再返回主程式原ACALL的下一個指令處繼續執行主程式 指令介紹: ACALL DELAY ACALL DELAY 呼叫(跳躍至)副程式的起始位址 DELAY 處去執行,等到指令 RET 後再返回主程式原ACALL的下一個指令處繼續執行主程式 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: RR A 把累積器(A)的內容向右旋轉一個位元 RR A 2018年11月7日 8051 單晶片實習---E0902霹靂燈 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: DJNZ R1,RIGHT DJNZ R1,RIGHT 將 R1 內部暫存器內的數字減1,再判斷是否為0 若為0,則繼續執行本指令的下一個指令 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
跳躍至位址標名為START處去執行下一指令 指令介紹: AJMP START AJMP START 跳躍至位址標名為START處去執行下一指令 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
指令介紹: MOV R6,#250 DELAY: MOV R6,#250 將常數 250 複製至 R6 內部暫存器 #250 中,#符號後面的數字表示為常數(資料) 250 的數字表示為十進制 若寫為十六進制,則改寫為 FAH 若寫為二進制,則改寫為 11111010B DELAY: 在此表示指令 MOV R6,#250 的位址名稱(標名) 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
副程式介紹: DELAY: MOV R6,#250 DL1: MOV R7,#200 DL2: DJNZ R7,DL2 流程圖解說 DELAY: MOV R6,#250 DL1: MOV R7,#200 DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
延時0.1秒副程式: OSC解說 副程式介紹 延遲時間計算 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
延遲時間計算: 內廻圈 外廻圈 DELAY: MOV R6,#250 T1=1週 DL1: MOV R7,#200 T2=1週 指令執行時間=1週 內廻圈 計數用內部暫存器: R7 計數初始值: R7=200 執行1指令所需時間 =T3=2us 執行完內廻圈所需時間 =200XT3=400us 外廻圈 計數用內部暫存器: R6 計數初始值: R6=250 執行一廻圈(3指令)所需時間 =T2+200XT3+T4=1+400+2=403us 每執行一廻圈所需時間 =T1+250x403+T5=1+100750+2 =100753us DELAY: MOV R6,#250 T1=1週 DL1: MOV R7,#200 T2=1週 DL2: DJNZ R7,DL2 T3=2週 DJNZ R6,DL1 T4=2週 RET T5=2週 指令執行時間=2週 指令執行時間=2週 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
12MHz石英晶體在MCS-51內部動作方塊圖: 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
習題: 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈
本單元完畢 電機科 製作 回程式 2018年11月7日 8051 單晶片實習---E0902霹靂燈