delay(int t)這個(gè)是延時(shí)子程序,如果采用20M晶振的話,調(diào)用一次延時(shí)t毫秒。display()是數(shù)碼管動(dòng)態(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è)夢(mèng)想脫穎而出為使命,1280元岳普湖做網(wǎng)站,已為上家服務(wù),為岳普湖各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
編譯有報(bào)錯(cuò)嗎?conrtalcar(1)后面沒(méi)有;conrtalcar(2)后面的分號(hào)是中文格式的吧。不對(duì),我讀不懂了。你這整一個(gè)是都在Delay函數(shù)里的嗎?是這樣的話,就好像是死循環(huán)了。
這種代碼跟編譯器和具體的芯片綁定的,可移植性很差的。stc的芯片有個(gè)程序可以自動(dòng)生成類似的代碼,其他芯片不太熟悉。
... //其他的一些定義省略 void main(){ int i;for(i=0;i9;I++){ P2=weila[i];P1=duanla[i];delay(1000);} } 這個(gè)很簡(jiǎn)單的,用了鎖存器而已。沒(méi)看錯(cuò)的話,應(yīng)該是138?這個(gè)是3-8位選控制鎖存器。
C語(yǔ)言,沒(méi)有時(shí)間概念。能延時(shí)多少時(shí)間,全靠實(shí)驗(yàn),無(wú)法計(jì)算。
就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個(gè)指令周期。除一下可以算個(gè)大概。具體你可以結(jié)合硬件資料來(lái)算。
函數(shù)difftime();是double類型,用來(lái)計(jì)算運(yùn)行的時(shí)間,用第一個(gè)參數(shù)的時(shí)間減去第二個(gè)參數(shù)的時(shí)間,得到的值就是運(yùn)行用了多少時(shí)間。
簡(jiǎn)單比喻一次振蕩需要1us,那1ms就是1000次振蕩,300ms就是300x1000次振蕩,這樣就能大概的計(jì)算出300ms delay;這得看你的CPU運(yùn)行一條指令得多久,像單片機(jī)89C51一般一條1us。C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,應(yīng)用廣泛。
這個(gè)跟的系統(tǒng)頻率有關(guān)系。看看你的晶振是多少。另外還跟指令集有關(guān)系。精確的時(shí)間你可以反匯編一下看看有多少條指令,根據(jù)指令周期算算延時(shí)時(shí)間。
算法是這樣的:這個(gè)用編譯軟件,如keil,編譯通過(guò)之后,進(jìn)入軟件調(diào)試功能,就可以測(cè)出來(lái)是延時(shí)多少秒。具體我?guī)湍阏{(diào)試過(guò)了,如果單片機(jī)接12mhz晶振的話,這個(gè)是延時(shí)0.2秒的子程序。你調(diào)用一次delay();就延時(shí)0.2秒。
1、說(shuō)明:延時(shí)msec*4毫秒所以,delay的延遲時(shí)間是和你的cpu時(shí)鐘周期相關(guān)的。
2、delay函數(shù)是一般自己定義的一個(gè)延時(shí)函數(shù)。C語(yǔ)言定義延時(shí)函數(shù)主要通過(guò)無(wú)意義指令的執(zhí)行來(lái)達(dá)到延時(shí)的目的。下面給出一個(gè)經(jīng)典的延時(shí)函數(shù)。
3、你要計(jì)算出這個(gè)函數(shù)用了多少時(shí)間就要用時(shí)間函數(shù),我很久沒(méi)用了。
4、就是用晶振頻率算cpu指令周期,再算Delay循環(huán)中有幾條代碼,需要多少個(gè)指令周期。除一下可以算個(gè)大概。具體你可以結(jié)合硬件資料來(lái)算。
低優(yōu)先級(jí)就有機(jī)會(huì)執(zhí)行了。總之,sleep()可以使低優(yōu)先級(jí)的線程得到執(zhí)行的機(jī)會(huì),當(dāng)然也可以讓同優(yōu)先級(jí)、高優(yōu)先級(jí)的線程有執(zhí)行的機(jī)會(huì)。
sleep()和wait()的區(qū)別 Java中的多線程是一種搶占式的機(jī)制而不是分時(shí)機(jī)制。線程主要有以下幾種狀態(tài):可運(yùn)行,運(yùn)行,阻塞,死亡。搶占式機(jī)制指的是有多個(gè)線程處于可運(yùn)行狀態(tài),但是只有一個(gè)線程在運(yùn)行。
C語(yǔ)言的延遲函數(shù)一般是利用無(wú)意義程序運(yùn)行來(lái)控制時(shí)間從而達(dá)到延時(shí)的目的 舉個(gè)例子:for(i=0;ix;i++)for(j=0;j120;j++);這是延時(shí)x毫秒的for循環(huán)語(yǔ)句。值得注意的是記得最后的;一定得記得寫。
分享文章:c語(yǔ)言函數(shù)有delay C語(yǔ)言函數(shù)有多個(gè)參數(shù)
網(wǎng)站路徑:http://chinadenli.net/article0/dehpdoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、做網(wǎng)站、定制網(wǎng)站、商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容