51學習歷程-第二章keil軟體的使用以及流水燈
阿新 • • 發佈:2018-12-31
第二章 keil軟體的使用以及流水燈的實現
2.3 while語句
- 在程式的最後加上“while(1);”這樣的語句就可以讓程式停止。
- 微控制器是無法停止工作的,只要它有電,有晶振在起振,就不會停止工作,每過一個時間週期,它內部的程式指標就要加1,程式指標就指向下一個程式
- 完整的點亮第一個發光二極體的程式
#include<reg52.h>
void main()
{
P1=01fe;
while(1);
}
2.5 keil模擬以及延時語句的精確計算
#include <reg52.h> #define uint unsigned int sbit led1=P1^0; uint i,j; void main() { while(1) { led1=0; for(i=1000;i>0;i--) for(i=110;j>0;j--); led1=1; for(i=1000;i>0;j--) for(j=110;j>0;j--); } }
-
如何模擬出延時語句是延長了多長時間呢?
回到keil編輯介面,開啟工程設定對話方塊,在【Target】標籤下的【Xtal(MHz):】後面將後面的預設值修改成實驗板上面的晶振頻率值 -
進行除錯
①在這裡有個I/O PORT的選項,可以檢視埠的資訊
②左下角可以檢視變數的大小
③這裡可以檢視各個暫存器的狀況和時間
- 知識點 微控制器的幾個週期介紹
- 時鐘週期:也稱震盪週期,定義為時鐘頻率的倒數,可以理解為微控制器外接晶振的倒數,比如12MH真的晶振,它的時鐘週期為1/12μs,它是微控制器最基本的、最小的時間單位。對於同一種微控制器,時鐘頻率越高,微控制器的速度也就越快。
- 狀態週期:它是時鐘週期的兩倍
- 機器週期:微控制器的基本操作週期,在一個操作週期內,微控制器完成一項基本操作,如取指令、儲存器讀/寫等,它由12個時鐘週期組成
- 指令週期:它是指CPU執行一條指令所需要的時間
- 在兩端設定埠斷點可以快速知道時間