找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7551|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

學(xué)51單片機(jī)-指令周期與LED閃爍

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:74835 發(fā)表于 2015-3-20 22:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
      
           忽然發(fā)現(xiàn),想系統(tǒng)的寫點(diǎn)東西,還真不是那么容易的事,不過(guò)已經(jīng)開始了,我就硬著頭皮上了。
      之前講了如何點(diǎn)亮LED,包括硬件電路和程序,今天說(shuō)一下如何讓LED閃爍。單片機(jī)控制LED閃爍有兩種方法,一種是軟件延時(shí),另一種是定時(shí)器中斷。因?yàn)樯婕暗絾纹瑱C(jī)指令集的問(wèn)題,還有一些簡(jiǎn)單的C語(yǔ)言,今天只講第一種。
      先說(shuō)指令集,早期的51單片機(jī)都是復(fù)雜指令集,因?yàn)檠赜玫牧?xí)慣現(xiàn)在用的STC89C52單片機(jī)也是復(fù)雜指令集,和復(fù)雜指令集對(duì)應(yīng)的,就是精簡(jiǎn)指令集,常見(jiàn)的有AVR和430單片機(jī)。
      這兩種指令集的區(qū)別是啥?最明顯的就是一條指令執(zhí)行的時(shí)間,舉個(gè)例子:51單片機(jī)和AVR單片機(jī)都外接一個(gè)12M的晶體,一個(gè)時(shí)鐘周期是1/12M=1/12US,執(zhí)行一條單周期指令(多周期指令不考慮)需要多少時(shí)間?
      51單片機(jī)用的時(shí)間是 (1/12M)*12=1US.
      AVR單片機(jī)用的時(shí)間是 1/12M = 1/12US
      同理,如果接8M的晶體,那么時(shí)間就是
      51: (1/8M)*12 = 1.5US
      AVR:  1/8M = 0.125US
      由上可見(jiàn),精簡(jiǎn)指令集比復(fù)雜指令集快了12倍。
      既然外接晶體速度越高,指令周期時(shí)間就越短,是不是晶體頻率越大越好?當(dāng)然不是!一個(gè)人的心跳速率越快,自然泵血越多,能提供更多的能量,但是如果超出極限,自然就崩潰了。
      51單片機(jī)能外接多大的晶體?這個(gè)值要看器件手冊(cè)了,像ATMEL的,最大可以到24M,STC的STC89C52能到35M,如下圖:
      那么常說(shuō)的1T,4T,6T,12T是什么意思?因?yàn)楹芏鄦纹瑱C(jī)以MCS-51內(nèi)核為核心,隨著工藝的提高,指令周期的速度也會(huì)有所提升。12T就是12個(gè)時(shí)鐘周期為一個(gè)指令周期,也就是最原始的,維持不變。同理,1T就是一個(gè)時(shí)鐘周期為一個(gè)指令周期,4T就是四個(gè)時(shí)鐘周期為一個(gè)指令周期。
      好了,說(shuō)了那么多廢話,開始說(shuō)LED閃爍的事,今天說(shuō)的是軟件延時(shí),軟件延時(shí)就是單片機(jī)在主程序里面計(jì)時(shí),當(dāng)時(shí)間到了,打開或者關(guān)閉LED,計(jì)時(shí)的過(guò)程中不能做別的事。
      示例程序如下:
      程序已經(jīng)上傳到這里: LED延時(shí)閃爍.zip (20.83 KB, 下載次數(shù): 33)
      好了,今天就這樣,給大家留個(gè)思考題,程序中的delay(3000) 延時(shí)0.85S是如何算出來(lái)的。
     感謝浪豆兄弟的指正,這一篇確實(shí)有些錯(cuò)誤,已經(jīng)改正。


   




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:61950 發(fā)表于 2019-8-31 12:04 來(lái)自手機(jī) | 只看該作者
講的很明白清晰,學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表