delay(int t)這個(gè)是延時(shí)子程序,如果采用20M晶振的話,調(diào)用一次延時(shí)t毫秒。display()是數(shù)碼管動態(tài)掃描顯示子程序,位控位為P0、P1,段碼控制為P1。掃描間隔時(shí)間為5毫秒左右。
創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元岳普湖做網(wǎng)站,已為上家服務(wù),為岳普湖各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
編譯有報(bào)錯(cuò)嗎?conrtalcar(1)后面沒有;conrtalcar(2)后面的分號是中文格式的吧。不對,我讀不懂了。你這整一個(gè)是都在Delay函數(shù)里的嗎?是這樣的話,就好像是死循環(huán)了。
這種代碼跟編譯器和具體的芯片綁定的,可移植性很差的。stc的芯片有個(gè)程序可以自動生成類似的代碼,其他芯片不太熟悉。
... //其他的一些定義省略 void main(){ int i;for(i=0;i9;I++){ P2=weila[i];P1=duanla[i];delay(1000);} } 這個(gè)很簡單的,用了鎖存器而已。沒看錯(cuò)的話,應(yīng)該是138?這個(gè)是3-8位選控制鎖存器。
C語言,沒有時(shí)間概念。能延時(shí)多少時(shí)間,全靠實(shí)驗(yàn),無法計(jì)算。
就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個(gè)指令周期。除一下可以算個(gè)大概。具體你可以結(jié)合硬件資料來算。
函數(shù)difftime();是double類型,用來計(jì)算運(yùn)行的時(shí)間,用第一個(gè)參數(shù)的時(shí)間減去第二個(gè)參數(shù)的時(shí)間,得到的值就是運(yùn)行用了多少時(shí)間。
簡單比喻一次振蕩需要1us,那1ms就是1000次振蕩,300ms就是300x1000次振蕩,這樣就能大概的計(jì)算出300ms delay;這得看你的CPU運(yùn)行一條指令得多久,像單片機(jī)89C51一般一條1us。C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。
這個(gè)跟的系統(tǒng)頻率有關(guān)系??纯茨愕木д袷嵌嗌佟A硗膺€跟指令集有關(guān)系。精確的時(shí)間你可以反匯編一下看看有多少條指令,根據(jù)指令周期算算延時(shí)時(shí)間。
算法是這樣的:這個(gè)用編譯軟件,如keil,編譯通過之后,進(jìn)入軟件調(diào)試功能,就可以測出來是延時(shí)多少秒。具體我?guī)湍阏{(diào)試過了,如果單片機(jī)接12mhz晶振的話,這個(gè)是延時(shí)0.2秒的子程序。你調(diào)用一次delay();就延時(shí)0.2秒。
1、說明:延時(shí)msec*4毫秒所以,delay的延遲時(shí)間是和你的cpu時(shí)鐘周期相關(guān)的。
2、delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。C語言定義延時(shí)函數(shù)主要通過無意義指令的執(zhí)行來達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
3、你要計(jì)算出這個(gè)函數(shù)用了多少時(shí)間就要用時(shí)間函數(shù),我很久沒用了。
4、就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個(gè)指令周期。除一下可以算個(gè)大概。具體你可以結(jié)合硬件資料來算。
低優(yōu)先級就有機(jī)會執(zhí)行了??傊瑂leep()可以使低優(yōu)先級的線程得到執(zhí)行的機(jī)會,當(dāng)然也可以讓同優(yōu)先級、高優(yōu)先級的線程有執(zhí)行的機(jī)會。
sleep()和wait()的區(qū)別 Java中的多線程是一種搶占式的機(jī)制而不是分時(shí)機(jī)制。線程主要有以下幾種狀態(tài):可運(yùn)行,運(yùn)行,阻塞,死亡。搶占式機(jī)制指的是有多個(gè)線程處于可運(yùn)行狀態(tài),但是只有一個(gè)線程在運(yùn)行。
C語言的延遲函數(shù)一般是利用無意義程序運(yùn)行來控制時(shí)間從而達(dá)到延時(shí)的目的 舉個(gè)例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時(shí)x毫秒的for循環(huán)語句。值得注意的是記得最后的;一定得記得寫。