国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> Keil軟件延時

Keil軟件延時

作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:21
  C語言常用的延時辦法,有以下4種

單片機教程-C語言延時

圖1 C語言延時

  圖1是我們編程語言常用的4種延時方法,其中兩種非精確延時,兩種精確一些的延時。for語句和while語句都可以通過改變i的范圍值來改變延時時間,但是C語言的時間都是不能通過程序看出來的。

  精確延時有兩個方法,一個方法是用定時器來延時,這個方法我們后邊課程要詳細介紹,定時器是單片機的一個重點。另外一個就是用庫函數(shù)_nop_();,一個NOP的時間是一個機器周期的時間,這個后邊也要介紹。

  非精確延時,只是在我們做一些簡單的比如小燈閃爍,流水燈等簡單實驗中使用,而實際做實際開發(fā)程序中其實這種非精確延時用的極少,這里我們只是做演示功能使用。

  好了,介紹完了,我們就要實戰(zhàn)了。上節(jié)課的LED小燈閃爍的程序,我們用的延時方式是for(i=0;i<30000;i++);大家如果把這里的i改成100,下載進入單片機,會發(fā)現(xiàn)小燈一直亮,而不是閃爍狀態(tài),現(xiàn)在大家都把這個程序改一下,都改成100,然后下載觀察一下現(xiàn)象再繼續(xù)。

  觀察完了,毫無疑問,實際現(xiàn)象和我提到的理論是相符合的,這是為什么呢?這里介紹一個常識。我們?nèi)说娜庋蹖﹂W爍的光線有一個最低分辨能力,通常情況下當閃爍的頻率高于50Hz時,我們看到的信號就是常亮的。即,延時的時間低于20ms的時候,我們的肉眼是分辨不出來小燈是在閃爍的,可能最多看到的是小燈亮暗稍微變化了一下。要想清楚的看到小燈閃爍,延時的值必須大一點,大到什么程度呢,不同的亮度的燈不完全一樣,大家可以自己做實驗。

  那么如何觀察延時有多長時間呢?大家鼠標點Keil的Project-->Options for Target ‘Target1’,或點Target1右側(cè)圖標圖片,進入設(shè)置選項,如圖2所示

Options for Target-單片機教程

圖2 Options for Target

  首先我們打開Target這個選項卡,找到里邊的Xtal(MHz)這個位置,這是填寫我們進行模擬時間的晶振選項,從我們原理圖以及板子上都可以看到,我們單片機所配的晶振是11.0592MHz,所以這個地方我們要填上11.0592。然后找到Debug這個選項,選擇左側(cè)的Use Simulator,然后點擊最下邊的OK就可以了,如圖3所示。

單片機教程

圖3 Debug配置信息

  點擊Debug菜單里的Start/Stop Debug Session,或者鼠標點做左側(cè)的這個Debug圖標圖片,會進入一個新的頁面,如圖4所示。

Debug窗口顯示-單片機教程 
圖4 Debug窗口顯示

  最左側(cè)那一欄是單片機的一些寄存器和系統(tǒng)信息,最上邊那一欄是Keil將C語言轉(zhuǎn)換成匯編的代碼,下邊就是我們C語言的程序,還有各種窗口都可以打開,在view菜單可以打開或者關(guān)閉我們的各種窗口。這節(jié)課我們只關(guān)心我們需要的窗口,其他窗口用到再說。那么有時候我們覺得這種分布不是特別的好,所以我們想改變一下窗口分布怎么辦呢?比如Disassembly(匯編)窗口,我們先用鼠標拖動它,然后中間會出現(xiàn)一個方向符號,再用鼠標點那個方向符號,他就給我們分布了,如圖5所示。

Keil窗口移動(一)單片機教程

圖5 Keil窗口移動(一)

  我們點擊最右邊的那個箭頭,然后窗口變化成如6圖所示;蛘呶覀?nèi)绻貌坏絽R編的程序,也可以直接關(guān)掉。

單片機教程

圖6 所示 Keil窗口移動(二)

  細心的同學會看到在C語言的程序里有個黃色的箭頭,這個箭頭代表的就是這個程序當前運行的位置,在這個Debug里邊,我們可以看到我們的程序運行的過程。在左上角有這三個圖標圖片,第一個是復(fù)位,點擊一下之后,程序就會跑到最開始的位置運行,第二個圖標是全速運行圖標,點擊一下程序就會全速運行跑起來,第三個圖標是停止圖標,當程序全速運行跑起來后,我們可以通過點擊第三個圖標來讓程序停止,觀察程序運行到哪里了。點擊一下復(fù)位后,我們會發(fā)現(xiàn)C語言程序左側(cè)有的灰色或者綠色,有的地方還是保持原來的白色,我們可以在我們灰色的位置雙擊鼠標設(shè)置斷點,就是比如程序一共20行,在第十行設(shè)置斷點后,點全速運行,程序就會運行到第十行停止,方便我們觀察運行到這個地方的情況。

  同學們會發(fā)現(xiàn),有的位置可以設(shè)置斷點,有的地方不可以設(shè)置斷點,這是為什么呢?Keil軟件本身具備優(yōu)化我們程序的功能,如果大家想在所有的位置設(shè)置斷點,可以把優(yōu)化選項設(shè)置到0位置,就是程序不進行優(yōu)化。如圖7所示。

單片機教程  

圖7 優(yōu)化選項設(shè)置

  這節(jié)課我們重點是看看C語言代碼的運行時間,在最左側(cè)的register那個框內(nèi),有一個sec選項,這個選項就是單片機運行時間的統(tǒng)計選項,大家點一下復(fù)位按鈕,會發(fā)現(xiàn)這個sec變成了0,然后我們在LED = 0; 這一句加一個斷點,在LED = 1;這個位置加一個斷點,我們點擊全速運行按鈕,會直接停留在LED = 0;我們會看到我們的時間變化成0.000197秒,如圖8所示。

單片機教程

圖8 斷點設(shè)置

   我們再點一下全速運行,會發(fā)現(xiàn)sec變成了0.07530650秒,那么這樣一個for循環(huán)的時間大概有75ms左右,我們也可以通過改變30000這個數(shù)字來改變這個間隔時間。當然了,大家要注意i的變量范圍,你如果寫成了大于65535的值以后,程序就會一直運行不下去了,因為i無論如何變化,都不會大于這個值,如果要大于這個值正常運行,必須改變i定義的類型了。后邊如果我們要求看一段程序運行多長時間,都可以通過這種方式來看。

編輯:admin  最后修改時間:2018-05-25

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

一区二区在线激情视频| 亚洲最新中文字幕在线视频| 老鸭窝精彩从这里蔓延| 青青操在线视频精品视频| 日韩精品中文字幕亚洲| 91亚洲人人在字幕国产| 黑色丝袜脚足国产一区二区| 亚洲欧美日韩综合在线成成| 97人妻精品一区二区三区男同| 国产精品亚洲欧美一区麻豆| 福利在线午夜绝顶三级| 亚洲中文在线观看小视频| 欧美午夜国产在线观看| 香蕉久久夜色精品国产尤物| 国产中文字幕一区二区| 久久这里只有精品中文字幕| 国产日韩综合一区在线观看| 国产精品日韩欧美一区二区| 亚洲精品一区三区三区| 一区二区日本一区二区欧美| 久久久精品区二区三区| 中文字字幕在线中文乱码二区| 深夜日本福利在线观看| 久热青青草视频在线观看| 暴力性生活在线免费视频| 日韩欧美综合中文字幕| 日本高清视频在线播放| 日韩一区二区免费在线观看| 日韩蜜桃一区二区三区| 国产欧美日本在线播放| 国产欧美日韩不卡在线视频| 加勒比系列一区二区在线观看| 激情五月天免费在线观看| 五月婷婷亚洲综合一区| 老司机精品视频免费入口| 黑丝国产精品一区二区| 麻豆精品视频一二三区 | 国产综合欧美日韩在线精品| 亚洲日本加勒比在线播放| 国产欧美另类激情久久久| 精品一区二区三区免费看|