回覆列表
  • 1 # 買買買fg

    步驟如下所示:

    1、在編譯器下建立一個新專案,也可以利用已有專案。此過程中需要注意,微控制器晶振的選擇,因為for迴圈裡指令的執行時間和晶振有直接關係,本例中晶振使用11.0592M。

    2、編寫一段關於延時的函式,主要利用for迴圈,程式碼如下:

    void delay_ms(unsigned int ms)

    {

    unsigned int i;

    unsigned char j;

    for(i=0;i<ms;i++)

    {

    for(j=0;j<200;j++);

    for(j=0;j<102;j++);

    }

    }

    其中ms是輸入引數,如果輸入1,就是要求程式延時1ms。j變數是調整程式執行的時間引數。調整j的數值,使1次迴圈的時間在1ms。

    3、將此程式編譯透過,然後利用軟體模擬,調整時間。

    4、兩次時間差就是延時函式使用的時間,如果與1ms相差比較多,使用者可以調整j引數的值,使延時時間儘量接近1ms。如增大j的值for(j=0;j<105;j++);此方法得出延時函式,在晶振不同的情況下,延時時間會不準。另外這種方法不是完全精確的延時,所以不要太深研究誤差的問題。軟體除錯結果,這個程式的延時時間為:1.01779ms,一般的微控制器系統中都可以應用。

  • 中秋節和大豐收的關聯?
  • 女生喜歡兩個人有什麼表現?