国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2025年05月07日(星期三)

正在發(fā)生

2018年05月07日 | PWM --真正的流水燈

發(fā)布者:BoldDreamer 來源: eefocus關(guān)鍵字:PWM  流水燈 手機看文章 掃描二維碼
隨時隨地手機看文章

很早以前,在某個論壇上就看到下面的題目:


單片機的 I/O 口控制 8 個 LED,要求編寫程序,實現(xiàn)下面的功能。

1.第 1、3、5、7 個燈半亮,其余的全亮。

2.第1個亮1/8、第2個亮2/8、第3個亮3/8、第4個亮4/8、第5個亮5/8、第6個亮6/8、第7個亮7/8、第8個全亮。

3.所有的燈逐漸從暗到全亮,再由全亮到暗。

4.8 個燈從第一個開始依次漸亮,直到最后一個。再從最后一個起漸暗,直到第一個。如此循環(huán)。


好像是用來搞競賽的,只是沒有看到像樣的結(jié)果。


這些個要求,都是要使用 PWM 來解決。下面,做而論道依次寫出程序,大家看看是否能夠滿足題目的要求。


------------------------------------------


1.第 1、3、5、7 個燈半亮,其余的全亮。


這就太簡單了。就是要求 LED 如下顯示:


PWM --真正的流水燈 - 非著名博主 - 電子信息角落


程序,都沒有什么好編的,就是下面的幾行就行。

;-----------------------------------------

    ORG   0000H

START:

    MOV   P0, #0

    XRL   P0, #55H     ;第 1、3、5、7 取反

    DJNZ  R7, $        ;延時

    SJMP  $ - 5        ;再去取反

END

;-----------------------------------------


------------------------------------------


2.第1個亮1/8、第2個亮2/8、第3個亮3/8、第4個亮4/8、第5個亮5/8、第6個亮6/8、第7個亮7/8、第8個全亮。


這個小題,要求 LED 的顯示如下:


PWM --真正的流水燈 - 非著名博主 - 電子信息角落


程序的思路也不難,只要按照下面的形式,輸出數(shù)據(jù)到接口就行了。


○○○○○○○○  全亮

○○○○○○○●  D0滅

○○○○○○●●    D1又滅了

○○○○○●●●

○○○○●●●●

○○○●●●●●

○○●●●●●●

○●●●●●●●  D6~D0都滅了


反復(fù)循環(huán)的輸出上述 8 個數(shù)據(jù),那么 D7 就永遠是亮的,D6 有 7/8 的時間是亮的,... D0 只亮了 1/8 的時間。


程序如下:

;-----------------------------------------

    ORG   0000H


    JMP   START

    ORG   000BH

    JMP   T0_INT


    ORG   0030H

START:

    MOV   TH0, #220    ;1250us@11.0592MHz, T0定時方式0

    SETB  TR0

    MOV   IE, #82H


    MOV   30H, #00H    ;準(zhǔn)備數(shù)據(jù)

    MOV   31H, #03H

    MOV   32H, #0FH    ;這些數(shù)據(jù)是交錯存放的

    MOV   33H, #3FH    ;類似“隔行掃描”

    MOV   34H, #01H    ;顯示起來就顯得平滑、穩(wěn)定

    MOV   35H, #07H

    MOV   36H, #1FH

    MOV   37H, #7FH

/*

○○○○○○○○

○○○○○○●●

○○○○●●●●

○○●●●●●●

○○○○○○○●

○○○○○●●●

○○○●●●●●

○●●●●●●●

*/

    MOV   R0, #30H     ;設(shè)定指針

    SJMP  $

;-----------------------------------------

T0_INT:                ;1.25ms中斷一次

    MOV   TH0, #220    ;220: 1250us@11.0592MHz

    MOV   P0, @R0      ;輸出一個數(shù)據(jù)

    INC   R0           ;修改指針

    CJNE  R0, #38H, $ + 5

    MOV   R0, #30H

    RETI

;-----------------------------------------

END

;-----------------------------------------


------------------------------------------


3.所有的燈逐漸從暗到全亮,再由全亮到暗。


這個就是呼吸燈,看看做而論道的前一篇博文吧,這里就不重復(fù)了。


------------------------------------------


4.8 個燈從第一個開始依次漸亮,直到最后一個。再從最后一個起漸暗,直到第一個。如此循環(huán)。


這個才是真正的流水燈。LED 顯示的一部分截圖如下:


PWM --真正的流水燈 - 非著名博主 - 電子信息角落


程序也不長,全部的代碼,都在下面:

;-----------------------------------------

    ORG   0000H

    JMP   START

    ORG   000BH

    JMP   T0_INT

    ORG   0030H

START:

    MOV   TH0, #220    ;1250us@11.0592MHz, T0定時方式0

    SETB  TR0

    MOV   IE, #82H


    MOV   R2, #100

    MOV   R3, #0

    MOV   R4, #0


    SJMP  $            ;此處可以編寫主程序

;-----------------------------------------

T0_INT:                ;1.25ms中斷一次

    MOV   TH0, #220    ;220: 1250us@11.0592MHz

    DJNZ  R2, T0_2

    MOV   R2, #100

    INC   R3

    CJNE  R3, #33, T0_2

    MOV   R3, #0

T0_2: 

    MOV   A, R3        ;R3:0~32

    ADD   A, R4        ;R4:0~7

    ADD   A, #TAB - $ - 3

    MOVC  A, @A + PC

    MOV   P0, A

    INC   R4

    CJNE  R4, #08H, $ + 5

    MOV   R4, #0

    RETI               ;本程序用不上 15us

;-----------------------------------------

TAB: DB   255,255,255,255,255,255,255,255

    DB    127, 63, 31, 15,  7,  3,  1,  0

    DB      0,  0,  0,  0,  0,  0,  0,  0

    DB      0,  1,  3,  7, 15, 31, 63,127

    DB    255,255,255,255,255,255,255,255

;-----------------------------------------

END

;-----------------------------------------


這個小題,做而論道是用查表的方法解決的,程序相當(dāng)?shù)暮喍蹋疫€比較通用,改成別的花樣也很容易。


也有另外的方法,畢竟 LED 變化還是有明顯的規(guī)律的,所以也可以用計算的方法來解決。

有網(wǎng)友確實是這樣弄的,可以參考:http://www.eehome.cn/read-htm-tid-5208.html。

他這種編程的思路,編寫起來就難多了,恐怕,幾天也弄不出來。

------------------------------------------

上述各個程序,都在硬件系統(tǒng)中,通過了驗證。圖中的 8 個電容,做硬件試驗時,就不用了。


關(guān)鍵字:PWM  流水燈 引用地址:PWM --真正的流水燈

上一篇:51 單片機擴充外部中斷
下一篇:用 74HC595 把 LCD1602 改成串行數(shù)據(jù)接口

推薦閱讀

5月7日消息,專注于晶圓級光芯片公司鯤游光電宣布完成A+輪融資,本輪由元璟資本、華登國際以及中科院旗下基金中科創(chuàng)星共同投資。據(jù)品途商業(yè)評論消息,專注于晶圓級光芯片公司鯤游光電宣布完成A+輪融資,本輪由元璟資本、華登國際以及中科院旗下基金中科創(chuàng)星共同投資。公開資料顯示,鯤游光電成立于2016年,是一家專注于晶圓級光芯片的研發(fā)與應(yīng)用的高科技企...
鴻海董事長郭臺銘上周赴美,先后與美國總統(tǒng)川普、威斯康星州州長艾佛斯見面后,威州廠建設(shè)加速動起來,鴻海集團旗下設(shè)備廠東捷、 帆宣負責(zé)威州廠廠務(wù)與設(shè)備供應(yīng)等重責(zé),藉由集團力量總動員,加快完成威州廠建設(shè)。由于威州一年有將近一半的時間都在下雪,不利工程進行,鴻海集團董事長郭臺銘已下令,要趕在今年5月至11月的七個月內(nèi)完成主體建筑,目標(biāo)威州六...
據(jù)外媒報道,沃爾沃近日宣布,將于2022年開始在產(chǎn)品上裝配激光雷達技術(shù),以進一步實現(xiàn)真正的自動駕駛。根據(jù)規(guī)劃,首款技術(shù)將率先裝配在XC90車型上。據(jù)了解,沃爾沃將與激光雷達技術(shù)公司Luminar合作,將這項技術(shù)整合到汽車上。與目前市面上很多安裝在保險杠上看到的傳感器和雷達設(shè)備不同,沃爾沃的這款激光雷達系統(tǒng)安裝在車輛頂部。該設(shè)備的設(shè)計造型看起來...
LG電子退出智能手機業(yè)務(wù)而導(dǎo)致的專利技術(shù)外流已影響了韓國手機制造商。etnews報道指出,一家全球?qū)@芾砉荆∟PE)獲得了LG Innotek的無線充電專利,并在三個月后對三星電子提起了專利侵權(quán)訴訟。據(jù)悉,總部位于愛爾蘭的NPE “Scramoge”日前向美國得克薩斯州韋科市西部地區(qū)法院提起訴訟,指控三星電子侵犯了其與無線充電相關(guān)的三項專利,并把Galaxy S...

史海拾趣

小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved