微控制器高手給點撥下,led燈只讓偶數閃爍,奇數不亮,程式如何寫

時間 2022-05-08 19:05:11

1樓:胖大海君

很好實現的 就是讓偶數led燈亮 延時一段時間後 讓偶數led燈滅 再延時一段時間 迴圈不斷地重複這2個過程。

整個過程中,奇數led燈不亮。 這樣就會產生偶數led燈閃爍現象。即就是由亮、滅交替產生的。

lll: mov p1,#10101010b; 偶數led燈亮

lcall ys ;延時mov p1,#11111111b ;偶數led燈滅sjmp lll

ys: mov r5,#2ysll1: mov r4,#200ysll2:

mov r3,#250djnz r3,$

djnz r4,ysll2

djnz r5,ysll1

ret呵呵 滿意就選滿意回答

2樓:匿名使用者

直接對p0賦值,段操作

三個led燈就在工作。每個led燈的工作狀態為下 (亮是-高電平。滅是低電平)微控制器高手:能不能寫個程式

3樓:匿名使用者

我最近做了個測溫電路,通過串列埠傳到上位機led不亮表示溫度過低,長滅短亮表示偏低常亮表示正常長亮短滅表示偏高用定時器計數實現閃爍。一般不用延時,儘量用定時中斷。

4樓:魔方傻

這個程式很簡單的,孩子,你還是自己來完成吧,自己動手才能學到知識,大學的時光很寶貴,要好好珍惜啊。

微控制器高手給點撥下,定時器這個不太理解,定時器初始化有幾種方法啊??比如說定時1毫秒

5樓:做而論道

51 微控制器中定時器,是個 16 位的加法計數器。

其內容是 0000h ~ ffffh,即:0 ~ 65535。

每隔一個機器週期,加一次一。加到 65536,就會溢位,產生中斷。

在外部振盪器頻率 = 11.0592 mhz 時,機器週期=1085.06944...us。

要想定時 1000us,這就有點困難了。

在外部振盪器頻率 = 12 mhz 時,機器週期=1us。

要想定時 1000us,就可以設初始值為:65536 - 1000 = 64536。

分成高、低八位後,寫入 thx、tlx,即可。

求出:初始值、分成高低八位,可以人工計算,那麼,程式就是:

th1 = 0xfc;

tl0 = 0x67;

也可以由編譯軟體來算,程式中,寫出公式,這就是:

th0 = (65535 - 1000)/256;

tl0 = (65535 - 1000)%256;

-------

又因為,中斷響應,是不會及時發生的,通常,都會遲到 3 ~ 8 個機器週期。

用 c 語言程式設計,會耽誤更多吧。

所以,定時時間,應該縮短一些,定時才準確。

因此,才有+ 28 的演算法。

加上這個數之後,初始值,就大了一些,更接近 65536,定時時間,就短了。

這是個經驗資料。

6樓:匿名使用者

你將具體的數形成的表示式寫入c語言的程式時,編譯器在編譯的時候會把表示式計算出來,然後編譯到程式中,所以這兩個是一種方法。

7樓:匿名使用者

定時器初始化的 設定方法,其實就是一種,你所說的二種,只是 第一 先計算出結果 ,

後一種是 直接 用了計算公式(注這個公式是用12mhz晶振)才是 1ms ,

用11.0592mhz 就大於 1 ms 了。

所以 要得到 精確計時精度,還是要計算正確 定時器初始值。

8樓:匿名使用者

這不是一種方法麼?

定時器使用步驟

(1)根據需要選擇定時器的模式(考慮定時最大定時時長和某些固定用途和功能),寫入相應暫存器。

(2)根據你要定時的長短和時脈頻率計算初值,寫入th,tl(3)看看是否需要定時器中斷,按需要配置

(4)啟動定時器

定時器其實就是計數頻率固定的計數器

那位高手會用微控制器t0定時器的中斷來控制led發光二極體的閃爍啊?請教了啊!本人實在是不會編這樣的程式啊

9樓:匿名使用者

找找書啦~很多這種程式的~~可以在中斷子程式中重新裝載初值和將控制led的埠取反就ok啦!很簡單的~~如果要控制閃爍次數可以引入一個用於計數的引數~

10樓:一萬光年

寫個偽**,你去翻譯為彙編或c**:

中斷服務程式:

定時器初值賦值;(假如定時50毫秒)

判斷是否到了1秒,到了就把led狀態取反;否則中斷返回中斷返回

11樓:做而論道

有個成功的範例。

急求高手給寫一個51微控制器程式~注意:只要組合語言~不要c語言~~急急急~~~~~~~~

12樓:匿名使用者

好像沒有免費的午餐啊。這麼簡單的東西自己查查資料搞搞就完了,一點腦子都不想動,只想吃現成的 。先自己做,做的不成功可以發上來大家給你找找原因!

13樓:高科生活

可以啊,郵箱,再麼總得給錢吧!

14樓:匿名使用者

雖然學過微控制器,不過現在還不知道c語言是怎麼回事?....

15樓:地球很危險

你的意思是你會用c語言寫···········你編譯出來 反彙編一下就可以了····

關於微控制器點亮led燈的問題

你的程式,燈一直是在開關狀態 0與1 只是眼睛看不出來,記得先初始化再進入迴圈,不然程式會跑飛,然後再看看電路圖,確認電路和你的程式是否一至。include sbit d1 p1 0 sbit d2 p1 5 void main zhxiufan正解,while 1 是必須要有的。否則微控制器會繼續...

微控制器1秒延時閃爍的LED燈程式,如果不加延時或者去掉其中延時delay,效果會怎樣?求大神謝謝

1 同時去掉兩個delay,會導致led引腳的電平持續在0 1之間變化,變化頻率非常快,在mhz量級,導致的結果就是直接看不到燈閃爍,如果燈的初始狀態是滅的,則燈會基本看不到亮度。2 見上一條,見不到閃爍。3 去掉第一個delay,實際燈會持續表現出led 1指令的狀態,該狀態與硬體中led燈的控制...

利用微控制器控制led燈,要求 全亮全滅,四亮四滅,以從

include define led p0 巨集定義led接於p0口 void delay int 宣告延遲子函式 main for i 0 i 7 i led 0xff for i 0 i 4 i 因為我知道這是你微控制器實習報告,老師李歡歡。org 0100hjmp start start mo...