久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

HOLTEK單片機-8LED霹靂燈

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年01月02日   【字體:

功能說明:

HT48F49E控制8個LED構成的霹靂燈

介紹:

本例以 HT48F49E 為例,模擬流水燈的功能,用 LED 顯示輸出。PA 口每一位輸出接一個   LED,串聯一個470Ω電阻到地,即可完成初步電路。

通過這個例子,用戶可以了解到 HT48XX 單片機輸入輸出口的基本用法。

電路設計:

PA0-PA7 用作輸出,每一位連接一個電阻來控制一個 LED。通過左移(RLC)、右移(RRC)指令來控制點亮的 LED 左右移動。電路圖如下:

 
完整版本的源程序下載地址: http://www.zg4o1577.cn/f/htpld.rar  

程序:

#include HT48F49E.inc

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

data .section 'data'                    ;定義數據寄存器

count1 db ?                              ;延時計數器0

count2 db ?                              ;延遲計數器1

lamp   db ?                             ;亮燈狀態記錄器

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

code .section at 0 'code'           ;程序段

   org 00h

    jmp start                               ;主程序開始

start:

    mov a,0;(1)

    mov pac,a                            ;PA口設為輸出

    cpl acc                                 ;ACC取反(為0FFH)

    mov pa,a                              ;設定PA口初始狀態

    mov a,1;(2)

    mov lamp,a           ;亮燈狀態值送到亮燈狀態記錄器

llamp:               ;亮燈左移循環

    mov a,lamp           ;累加器的值送到亮燈狀態記錄器

    cpl acc             ;累加器值取反

    mov pa,a          ;點亮與亮燈狀態記錄器相對應的燈

    call delay;(3) ;調用延時子程序

    clr c                  ;清除進位標志

    rlc lamp;(4)     ;亮燈狀態記錄器值左移一位

    sz lamp            ;判斷亮燈狀態記錄器是否為0

    jmp llamp;(5)    ;如果不是就繼續循環

    rrc lamp;(6)       ;如果是,亮燈狀態記錄器值右移一位

rlamp:                   ;亮燈右移循環

    mov a,lamp           ;將亮燈狀態記錄器值送到累加器

cpl acc             ;累加器值取反

    mov pa,a          ;點亮與亮燈狀態記錄器相對應的燈

    call delay          ;調用延時子程序

    clr c                  ;清除進位標志

    rrc lamp;(7)       ;亮燈狀態記錄器值右移一位

    sz lamp            ;判斷亮燈狀態記錄器是否為0

    jmp rlamp         ;如果不是就繼續循環

    rlc lamp            ;如果是,亮燈狀態記錄器值左移一位

    jmp llamp;(8)     ;跳到左移循環

    delay proc

    mov a,0ffh

    mov count1,a        ;定義延時計數器1的初值

    mov count2,a        ;定義延時計數器2的初值

d1:

    sdz count2            ;延時計數器2遞減,判斷是否為0

    jmp d1              ;如果不是,跳到d1循環

    sdz count1            ;延時計數器1遞減,判斷是否為0

    jmp d1              ;如果不是,跳到d1循環

    ret                    ;程序返回

    delay   endp            ;延時子程序結束

    end                  ;主程序結束

程序說明:

   這段小程序能夠使八個 LED 依次點亮,先從左向右,然后從右向左。程序開始時先設定輸入輸出口的狀態(1),在這里設定所有的口為輸出,將 PA 口的控制寄存器 PAC 設為 0。然后設定輸出的初始狀態,PA 口的第一位設為 0,點亮第一個 LED(2)。為了能觀察到 LED的閃亮,(3)設定了延時子程序。通過亮燈狀態記錄器和累加器,點亮的 LED 由左移指令控制左移(4)。為了判斷左移時所有的 LED 是否都依次點亮過,可以測試亮燈狀態記錄器是否為 0(5),如果是則恢復亮燈狀態記錄器左移時的終值(6),程序向下執行,控制 LED右移。這次用右移指令 RRC 來控制(7),重復類似的過程。最后同樣判斷亮燈狀態記錄器是否為 0,如果是,則表明右移時所有的 LED 都已經點亮過,程序跳到開始處,重新開始循環(8)。

關閉窗口

相關文章

主站蜘蛛池模板: 国产一区二区三区四区 | 精品在线一区 | 久久狠狠| 欧美日韩看片 | 欧美 日韩 亚洲91麻豆精品 | 成人a在线 | 波多野结衣一区二区三区 | 日韩在线播放一区 | 爱爱免费视频 | 国产精品乱码一区二区三区 | 精品视频一区二区三区四区 | 九一在线 | 国产日产欧产精品精品推荐蛮挑 | 超碰免费在线 | 欧美日韩高清一区 | 国产一级特黄真人毛片 | 日韩一区二区视频 | 欧美视频一区二区三区 | 久久精品高清视频 | ririsao久久精品一区 | 免费在线观看av的网站 | 97起碰| 日韩影院在线观看 | 亚洲字幕在线观看 | 91精品国产一区二区三区 | 久久99精品国产自在现线小黄鸭 | 一级全黄少妇性色生活免费看 | 三区四区在线观看 | 我爱操| 国产乱码精品一品二品 | 成人免费观看男女羞羞视频 | 免费 视频 1级| 久久久久久高潮国产精品视 | 蜜桃免费一区二区三区 | 欧美乱大交xxxxx另类电影 | 四虎免费视频 | 日韩久久久久 | 91高清视频在线 | 亚洲成av人影片在线观看 | 欧美久久一级 | 久久成人一区 |