8051 MCU 60秒定時程式

發布 科技 2024-02-08
13個回答
  1. 匿名使用者2024-02-05

    簡單地說,它可以是這樣的:

    setb k1 ;K1 始終有效。

    loop:setb k2 ;中午 12 點前

    clr k3

    clr k4

    call delay60s ;延遲 60 秒。

    clr k2

    setb k3

    clr k4

    call delay60s ;延遲 60 秒。

    clr k3

    setb k4

    clr k2

    call delay60s ;延遲 60 秒。

    SJMP$ 完成。

  2. 匿名使用者2024-02-04

    8051 MCU時鐘電路如下:

    電容C2和C3具有微調頻率的作用,電容的選擇範圍為30pf和10pf。 **頻率範圍如下: 時鐘週期 = 石英振盪器頻率的倒數。

    MCU是一種積體電路晶元,它是由乙個小型而完美的微機系統組成的小型完美的微機系統,該系統採用超大規模積體電路技術,整合了最好的處理器CPU、隨機存取RAM、只讀儲存器ROM、各種IO埠和中斷系統、定時器計數器等功能(也可以包括顯示驅動電路, 將脈寬調變電路、模擬多路復用器、AD轉換器等電路)製成矽片,廣泛應用於工業控制領域。

  3. 匿名使用者2024-02-03

    回到樓上,沒有乙個畢業設計是那麼簡單。

    如果這個時間精度不高,可以用微控制器的內部定時器來實現,我試過用組裝來做,一天結束時時間誤差小於3秒。

    1。元件非常簡單,是51臺微控制器的最小系統,連線兩個4段數碼管和幾個按鍵開關就足夠了。

    2。電路簡單省略。

    3。程式從 org 00h 開始

    初始化用於小時、分鐘和秒的儲存單元 - >設定定時計數器的初始值(可以中斷一次 50 毫秒,然後重複 20 次 1 秒 OK) - 然後是無限迴圈,其中檢測按鍵是否按下按鈕,如果按下了鍵, 跳轉到相應的按鈕以設定相應的時、分、秒儲存單元加 1(Inc A)。如果沒有按下按鈕,無限迴圈將繼續等待中斷。 中斷程式從秒開始檢測,計數器迴圈20次後,加到秒的記憶體單元上加1到59,分鐘的記憶加1,當分鐘達到59時,加到時間上,當小時為12時, 分鐘達到 59 分鐘後,恢復為 0:

    0:0 足夠一天了。

    4。這個程式,自己動手,非常簡單。

  4. 匿名使用者2024-02-02

    呵呵,這個不是很難。 實現時鐘有兩個選項:

    1。實現8051的計時器,計時器為1s,每1s加乙個,滿60加一,分鐘加1,滿60清零,小時加一。

    2。搭載8051+時間晶元,如DS1302、DS12887等。

    我手上沒有現成的例子。 不過,可以參考郭天翔的十天學習微控制器和C語言程式設計。 第 10 講介紹了第乙個選項,第 11 講介紹了第二個選項。 你可以參考它,希望它能幫助你。

  5. 匿名使用者2024-02-01

    可以使用 8051 的計時器實現它。

  6. 匿名使用者2024-01-31

    哥哥,這不都是給你的嗎,看來你要做你的畢業設計了。

  7. 匿名使用者2024-01-30

    1.時鐘頻率為6MHz,12個時鐘週期為1個機器週期,即1個機器週期為2us,計數一次為乙個機器週期,如果定時為2ms,則需要計數1000次,即累加器A需要加1000次並溢位,從0到th0和tl0總共有65536個數字, 所以這個初始值是65536-1000=64536,th0=64536 256=252=0xfc;tl0=64536%256=24=0x18;

    2.定時器0載入初始值後,開啟中斷(EA=1,ET0=1),啟動定時器0(TR0=1),使定時器0開始定時,當累加器A溢位產生中斷時,執行定時器0中斷,在中斷過程中再次載入初始值, 因為開路中斷(EA=1,ET0=1)啟動定時器0(TR0=1)始終有效,定時器0在中斷執行後再次定時,迴圈一直在迴圈。

    3. while(1)是乙個無限迴圈,即讓微控制器一直工作,這裡最主要的是讓微控制器等待中斷。

  8. 匿名使用者2024-01-29

    我也想學這個,我對微控制器一無所知。

  9. 匿名使用者2024-01-28

    16 位,即 0-2 的 16 次方 = (十六進製) 0000h-ffffh = (十進位) 0-65536 = (二進位) 00000000000000000-111111111111111111111

    所以最大計數不是 216,而是 2 的 16 次方。

  10. 匿名使用者2024-01-27

    因為計數器是 16 位。

  11. 匿名使用者2024-01-26

    它不是 216 脈衝,而是 2 的 16 次方。

  12. 匿名使用者2024-01-25

    它不是 216 個脈衝,而是 2 16,即 2 的 16 次方 = 65536 個脈衝。

  13. 匿名使用者2024-01-24

    微控制器。 12M晶體振盪器。

    下乙個機器週期為1us;

    2. tmod=0x02,表示定時器 0 在模式 2(自動重新載入初始值)下工作。 TL0為每機週期+1,當其數數達到255(0xff)時,再乙個機週期+1會產生溢位(0x100),造成定時中斷,同時MCU會自動將TH0的值分配給TL0,繼續開始下一輪定時。

    3.TL0的初始值為6,因此經過250個計數週期後,TL0的值將達到256(0x100溢位),導致中斷。

    250*1us = 250us =。春天已經老了。

    初始值可以理解和分配如下:th0 = tl0 = 256-250; ( 6)

相關回答
8個回答2024-02-08

void key0()

if(p1_0!=1) *如果按下鍵 0。 >>>More

6個回答2024-02-08

崩潰,可能是現場干擾太嚴重。 無論如何,甚至已經放棄了沒有內部程式儲存器和EEPROM的晶元。 究其原因,往往不是程式問題,而是板卡和PCB設計問題。 >>>More

6個回答2024-02-08

一點也不矛盾。 微控制器每個埠的用途都不一樣,結構也不同,你說LED的MA電平的電流可以讓它更亮,指的是額定亮度,不同的功率有不同的亮度,你不能把1mm的貼片和10mm的貼片比較,你能理解嗎? 如果要在 P2 埠使用 LED,有兩種方法。 >>>More

5個回答2024-02-08

對於如何學習微控制器,我覺得還是需要掌握它的硬體、儲存結構,組裝必須熟練,因為介紹組裝對硬體很有幫助和了解,如果你學了微控制器,再學習其他的,比如arm,這個時候你只能熟悉組裝, 但是第一次學習微控制器,彙編,一定要熟練,我的意思是一開始不要用c寫程式,用sinks寫,寫可以10到20個彙編器,你的彙編會更上一層樓,以後你會用C進行開發,你會看到用堅實的彙編基礎優化C是多麼的舒服。關於微控制器的研究,我認為有必要: >>>More