单片机试验三:跑马灯试验

发布者:快乐的旅程最新更新时间:2016-09-30 来源: eefocus关键字:单片机试验  跑马灯 手机看文章 扫描二维码
随时随地手机看文章
前面做了二极管的点亮与熄灭和二极管闪烁试验,在这基础上再来做一个跑马灯试验。所用到的器件也是试验板上的八只二极管,要让它们一个个的轮流循环点亮,需要该变P1口的值,即先送入11111110B给P1口,让第一只二级管点亮,由于程序执行时间很短(微秒级),所以我们需要它亮一段时间,就是所说的延时;然后再送入11111101B给P1口即第二只点亮,其它都是熄灭的,延时,再让第三只点亮。就这样不断的循环,这就成 跑马灯了。程序如下:

第一种:

       ORG   1000H

       LJMP  BEGIN

BEGIN: MOV   A,#11111110B  ;低电平对应的发光二极管亮

       MOV   P1,A         ;将值送到P1口,第一只点亮

       LCALL DL            ;调用延时

       MOV   A,#11111101B 

       MOV   P1,A         ;第二只点亮

       LCALL DL            ;调用延时

       MOV   A,#11111011B 

       MOV   P1,A         ;第三只点亮

       LCALL DL            ;调用延时

       MOV   A,#11110111B 

       MOV   P1,A         ;第四只点亮

       LCALL DL            ;调用延时

       MOV   A,#11101111B 

       MOV   P1,A         ;第五只点亮

       LCALL DL            ;调用延时

       MOV   A,#11011111B 

       MOV   P1,A         ;第六只点亮

       LCALL DL            ;调用延时

       MOV   A,#10111111B 

       MOV   P1,A         ;第七只点亮

       LCALL DL            ;调用延时

       MOV   A,#01111111B 

       MOV   P1,A         ;第八只点亮

       LCALL DL            ;调用延时

       LJMP  BEGIN         ;循环

DL:   MOV   R7,#0A3H     ;延时程序

DL1:   MOV   R6,#0FFH

DL2:   DJNZ  R6,DL2

       DJNZ  R7,DL1

       RET

       END

第二种:

       ORG 0100H

       LJMP BEGIN

BEGIN: MOV A,#11111110B

LOOP:  MOV P1,A

       MOV R5,#2

DEL0:  MOV R6,#250

DEL1:  MOV R7,#250

DEL2:  DJNZ R7,DEL2

       DJNZ  R6,DEL1

       DJNZ R5,DEL0

       RRC A            ;循环右移一位点亮下一个发光二极管 

       LJMP LOOP        ;循环

       END
两种区别在于第二种使用了RRC指令,这说明编程序要充分利用指令,这样效率才高。

关键字:单片机试验  跑马灯 引用地址:单片机试验三:跑马灯试验

上一篇:单片机试验四:认识数码管
下一篇:单片机试验二:闪烁的发光二极管

推荐阅读最新更新时间:2024-03-16 15:12

Alientek SMT32开发板 跑马灯实验
通过本节的学习,你将了解到STM32的IO口作为输出使用的方法。本节分为如下几个小节: 3.1.1 STM32 IO口简介 3.1.2 硬件设计 3.1.3 软件设计 3.1.4 仿真与下载 3.1.1 STM32 IO简介 作为所有开发板的经典入门实验,莫过于跑马灯了。ALIENTEKMiniSTM32开发板板载了2个LED,DS0和DS1,本实验将通过教你如何控制这两个灯实现交替闪烁的类跑马灯效果。 该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一节的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。
[单片机]
Alientek SMT32开发板 <font color='red'>跑马灯</font>实验
arm汇编和c混合编程的跑马灯程序
arm汇编和c混合编程的跑马灯程序:新建两个文件分别是init.s和main.c 汇编文件主要用于:跳转到Main函数入口和定义了一个汇编的延迟函数: 汇编函数名:init.s AREA Init,CO DE,READONLY ;该伪指令定义了一个代码段,段名为Init,属性只读 ENTRY ;程序的入口点标识 EXPORT __ENTRY __ENTRY ResetEntry mov sp,#0x0c700000 ;定义堆栈指针 IMP ORT Main ;声明主函数Main BL Main ;调用主函数 ;声明汇编的延迟函数 EXPORT delay dela
[单片机]
stm32学习1跑马灯程序之寄存器版本
1使能IO口时钟,配置相关寄存器RCC- AHB1ENR 2初始化IO口模式。配置四个寄存器GPIOX_MODER/GPIOX_OTYPER/OSPEEDER/PUPDR 3操作IO口,输出高低电平。配之寄存器GPIOX_ODR或BSRRL/BSRRH 1:RCC是一个结构体指针RCC- AHB1ENR使能寄存器AHB1,使能外部时钟第六位,位5,及设置这一位为1 ,c语言中利用或运算A|=B相当于A=A|B,32位及寄存器两种写法:1)RCC- AHB1ENR|=0x0020 2)RCC- AHB1ENR|=1 5;1左移5位比较直观 2:GPIOF- MODER= 32位寄存器,一组寄存器对应16个IO口,所以要配置9和10I
[单片机]
51单片机上实现控制跑马灯
在MCS一51单片机的控制系统中,它的四个并行8位输入输出端口P0一P3是我们经常使用的。在并行端口的编程学习中,“跑马灯”是单片机并行端口输出控制的典型实例。所谓跑马灯,是指将八个发光二极管分别连接到单片机的某一并行端口的八根线上,通过编程控制这八个发光二极管从低到高或从高到低依次点亮。 如图1所示,将8个发光二极管阴极接到MCS一51单片机P1端口的8根端口线上,阳极通过限流电阻接+5V电源。要让发光二极管点亮,则对应的端口线应该为低电平(‘’0’);而要让其熄灭,对应的端I=I线应该为高电平(“1”)。由此,我们假定“跑马灯”由端I=1的低位向高位轮流点亮.可以得到如下状态: 图1 跑马灯电路图
[单片机]
51<font color='red'>单片机</font>上实现控制<font color='red'>跑马灯</font>
STM32CubeMX学习教程之一:GPIO输出之跑马灯
完整源码下载: https://github.com/simonliu009/STM32CubeMX-GPIO-Control 软件版本: STM32CubeMX V4.25.0 System Workbench V2.4 固件库版本: STM32Cube FW_F1 V1.6.1 硬件:OneNet 麒麟座V2.3 在STM32CubeMX中新建项目,选择正确的MCU型号 首先设置RCC和SYS,如下图 然后根据板子实际情况设置时钟(麒麟座外部晶振是12M,STM32F103x的最高主频是72M),如下图 GPIO设置 PC7, PC8, PA12和 PC10为GPIO_OUTPUT, (这是麒麟座V2.3的四
[单片机]
使用STM32CubeMX开发一:跑马灯实验
硬件平台:stm32F407Zet6 软件平台:stm32cubeMX 4.7+MDK5.14 电路连接:PE8-LED0、PE9-LED1、PE10-LED2、PE11-LED3 第一步、使用stm32cubeMX创建工程 1、启动软件选择新建工程 2、选择芯片创建工程 第二步:配置芯片 1、配置RCC,时钟源选择 因为没有使用内部RTC所以是配置了外部高速时钟 2、配置下载接口,这里使用的是SWD方式下载 3、配置LED管脚为输出 4、配置时钟 5、配置端口 然后保存工程。 6、配置输出KEIL工程 第三步、编写程序,下载验证 这样一个最简单的实验就完成了
[单片机]
STM32日志之总结篇1--跑马灯实验
//======================================================// **基于学习STM32有一段时间了,特意写下一篇关于一个简单的跑马灯 的例程,梳理思路,也希望我自己的理解能帮到一些学习STM32的初学者 //======================================================// 首先,GPIO的配置种类有8种。分别为模拟输入、浮空输入,上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出、复用推挽输出。 下面将以实例的方式讲解GPIO的设置及实现过程。 事例1:跑马灯实验 跑马灯实验的功能:LED灯进行有规律闪烁。(下面的LED灯的数
[单片机]
汇编的51单片机跑马灯
话不多说,先上程序 ORG 0000H MAIN:MOV P1,#0O LCALL DELAY MOV A,#0FEH SETB C TO: MOV P1,A LCALL DELAY LCALL DELAY RLC A JC TO MOV P1,A LCALL DELAY LCALL DELAY TO1: RRC A MOV P1,A LCALL DELAY LCALL DELAY JC TO1 AJMP TO DELAY:MOV R2,#0FEH TC1:MOV R3,#0FEH TC2:DJNZ R3,TC2 DJNZ R2,TC1 RET END 这个程序的目的是使8个LED循环点亮,还有一个状态是都不亮,我的LED是搭在P
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved