您的位置 首页 模拟

HOLTEK单片机-8LED响雷灯

功能说明:HT48F49E控制8个LED构成的霹雳灯介绍:本例以HT48F49E为例,模拟流水灯的功能,用LED显示输出。PA口每一位输出接一个

功用阐明:

HT48F49E操控8个LED构成的响雷灯

介绍:

本例以 HT48F49E 为例,模仿流水灯的功用,用 LED 显现输出。PA 口每一位输出接一个 LED,串联一个470Ω电阻到地,即可完结开端电路。

经过这个比如,用户能够了解到 HT48XX 单片机输入输出口的根本用法。

电路设计

PA0-PA7 用作输出,每一位衔接一个电阻来操控一个 LED。经过左移(RLC)、右移(RRC)指令来操控点亮的 LED 左右移动。电路图如下:

完好版别的源程序下载地址:http://www.51hei.com/f/htpld.rar

程序:#include HT48F49E.inc;-------------------------------data .section data                    ;界说数据寄存器count1 db ?                              ;延时计数器0count2 db ?                              ;推迟计数器1lamp   db ?                             ;亮灯状况记录器;-------------------------------code .section at 0 code           ;程序段org 00hjmp 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            ;判别亮灯状况记录器是否为0jmp llamp;(5)    ;假如不是就持续循环rrc lamp;(6)       ;假如是,亮灯状况记录器值右移一位rlamp:                   ;亮灯右移循环mov a,lamp           ;将亮灯状况记录器值送到累加器cpl acc             ;累加器值取反mov pa,a          ;点亮与亮灯状况记录器相对应的灯call delay          ;调用延时子程序clr c                  ;铲除进位标志rrc lamp;(7)       ;亮灯状况记录器值右移一位sz lamp            ;判别亮灯状况记录器是否为0jmp rlamp         ;假如不是就持续循环rlc lamp            ;假如是,亮灯状况记录器值左移一位jmp llamp;(8)     ;跳到左移循环delay procmov a,0ffhmov count1,a        ;界说延时计数器1的初值mov count2,a        ;界说延时计数器2的初值d1:sdz count2            ;延时计数器2递减,判别是否为0jmp d1              ;假如不是,跳到d1循环sdz count1            ;延时计数器1递减,判别是否为0jmp 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)。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/255283.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部