看下面程式用中斷掃描顯示函式,然後用數碼管顯示出來

2021-05-15 18:32:00 字數 2649 閱讀 2544

1樓:匿名使用者

你這個bai程式,數碼管顯示du

效果怎樣啊。是zhi不是很閃的?

這個程式,我dao

覺得那是相當的回爛,相當答啊,相當,相當!那個中斷這樣用有意思嗎void time0() interrupt 1//中斷動態掃描顯示函式

}這樣寫倒還湊合,這樣的話

for(a=10;a>0;a--)

display(ad);//顯示測試電壓值這個也就不需要了

微控制器 數碼管動態顯示問題,下面程式要不要加個中斷程式來重新整理掃描,

2樓:匿名使用者

如果主程式不「忙」,你把顯示程式寫在大迴圈內,顯示是連續的沒有必要用中斷

如果大迴圈內有一些佔用時間很長的語句,肯定會影響顯示效果但用不用中斷,還要看是顯示重要,還是其它語句重要,有些過程是不允許被打斷的,這時就 要犧牲顯示效果

有時顯示程式可以分散在其它程式語句中,掃描顯示時每送一位數不是有延時嗎,可以用這個延時去幹其它事

同理,在程式的其它地方也會有延時語句,可以讓顯示語句來代替這個延時,不就二者兼顧了嗎?

3樓:匿名使用者

需要,一般用定時器來掃描顯示,否則顯示效果很不理想。

微控制器程式中如何做到延時不影響數碼管掃描顯示 10

4樓:匿名使用者

單片bai機程式,數碼管掃du描顯示,及計時 可以用一zhi個定時器中斷來

dao完成,回

比如 8 個數碼管 定時器用 2 ~ 2.5 ms,每次中答斷 重新整理 一個數碼管,同時可以 設定一個標誌位

在主程式 中記錄中斷 次數作為 定時 或者 延時,如 2.5ms 40次 就是 100ms,如果計時精度 要求高的 可以另外 用一個定時器,

學會使用定時器,很多問題很好解決的。

5樓:匿名使用者

程式設計問題,不要在程式裡採用死迴圈延時。

6樓:滄海海神

隨便寫的 蜂鳴器響的時間等於 beep_time*10ms#include

unsigned char beep_time = 0;

//unsigned char beep_en = 0;

void timer0interrupt(void) interrupt 1

else

}void main (void)}

7樓:匿名使用者

蜂鳴器的控制有個開關吧,用定時器每10ms判斷一次時間到100ms時關閉蜂鳴器就行了。

如果沒有內開關容,得自己分執行緒解決,就是在你的迴圈中加入分項任務,每個任務就是一個執行緒,每個執行緒在一次迴圈中所佔用的時間控制在1ms到5ms以內,各任務就可以輪流執行。

這個迴圈體就相當於一個多工作管理員。

8樓:汪穩

在你的延時程式中加入數碼管顯示程式,這樣就行了,望採納,謝謝

9樓:匿名使用者

最簡單的辦法就是在定時中斷程式中持行掃描輸出

用微控制器控制一個8段數碼管,其迴圈顯示數字0到9,每位數字顯示時間為一秒,定時功能用微控制器中斷顯示

10樓:瀋陽_大偉

有一個一模一樣的提問,好吧,俺再發布一次

給你一份我自己寫的,利用四位數碼管顯示模擬時鐘的程式吧,供你研究

另外,再給你一個一位數碼管的,是你要求的那種

這兩個都是利用微控制器的定時器中斷來產生秒訊號的

下面這個是 四位數碼管的,最下邊的是一位數碼管的,埠不一樣的話,自己改下

#include

sbit p20=p3^7; sbit p21=p3^6; sbit led=p2^7;//按鍵及led埠定義

sbit axs=p1^3; sbit bxs=p1^2; sbit cxs=p1^1; sbit dxs=p1^0;//數碼管位選埠

char table[10]=;//數碼管顯示編碼

unsigned int h,m,s,t,n;

void ys(char hs)//延時函式

void xs(int xh,int xm) //顯示子函式

void main(void)

}while(!p20)}

if(p21==0)}while(!p21)}

xs(h,m);//呼叫數碼管顯示函式}}

void int1() interrupt 1 //定時器中斷

//led閃爍

if(n>1000)//如果達到一秒,秒加一

if(s>59)//如果達到一分,分加一

if(m>59)//如果達到一小時,小時加一

if(h>23)//如果達到24小時,小時清零

#include

sbit axs=p1^3;//數碼管位選埠

char table[10]=;//數碼管顯示編碼

unsigned int h,m,s,t,n;

void ys(char hs)//延時函式

void main(void)

void int1() interrupt 1 //定時器中斷

//如果達到一秒,秒加一

if(m>9)//如果達到一小時,小時加一

請高手幫我看看下面的matlab程式,怎麼能提高執行速度,資料也不算大的,但執行了將近兩小時

程式覆沒有大的問題制 可以執行。有個問題n 1 1 1000 的步長太小了,所以執行很長。建議你改一下步長,如n 1 10 1000,用我電腦執行的時間為 237.718235 seconds.執行結果 哪位高手幫我看看下面這段matlab程式,幫我解析一下是什麼意思 r j b za rain.t...

什麼是C語言的中斷程式有什麼用啊

朋友打個比方就是今天晚上你知道有客人來 而這裡你就是cpu,開門就是cpu要做的事情而因為你不知道客人多少點來,所以第一你守在門口等,就好比cpu用個迴圈不斷檢測一樣 第二呢就是等客人按了門鈴再去開門,事實上大家都是用的第二種方式恰巧第二種方式就和中斷很像,這裡門鈴聲就是一箇中斷訊號,他要求你停下手...

用c語言編寫下面這個程式,求大神

這是一道應用題bai目,不要du以現在個人所得zhi稅扣除額3500元計算。dao.工資為x 500元收超過部分專的5 500 5 25元 x 500 2000 10 45 25x 2700元 應交個人所屬得稅額 工資薪金2700 個人交五險一金金額 個人所得稅扣除額2000元 適用稅率10 速算扣...