此程序是用单片机的p1口接八个led灯作跑马灯试验

合集下载

实验2-最简单的八路跑马灯-实验说明

实验2-最简单的八路跑马灯-实验说明

实验2: 最简单的八路跑马灯1.0连接说明1.1用跳线帽将SP0排针连接;1.2依据ISP在线编程步骤将程序写到入芯片中;1.3打开电源程序即可运行。

1.4注意该实验结束后可将SP0上的跳线帽去掉,以减少开发板的功耗。

2.0相应原理图如下:3.0实验说明:本实验用到L1-8灯。

本例实验主要用到了延时子程序,clr,lcall,ajmp 指令,通过轮流点亮p1.0 …..P1.7 实现效果。

用户可以通过此程序的学习,初步掌握单片机的IO 端口操作。

练习1:怎样把延时的时间改为更短,或者更长?练习2:怎样用P0,P2,P3端口来操作?练习3:怎样实现不同的跑马花样?4.0程序范例:;//P1口控制跑马灯程序//ORG 0000HAJMP MAINORG 0030HMAIN:MOV P1,#0FFH;ACALL DELCLR P1.0 ;将P1.0送0指令ACALL DEL ;延时SETB P1.0CLR P1.1 ;将P1.1送0指令ACALL DEL ;延时SETB P1.1CLR P1.2 ;将P1.2送0指令ACALL DEL ;延时SETB P1.2CLR P1.3 ;将P1.3送0指令ACALL DEL ;延时SETB P1.3CLR P1.4 ;将P1.4送0指令ACALL DEL ;延时SETB P1.4CLR P1.5 ;将P1.5送0指令ACALL DEL ;延时SETB P1.5CLR P1.6;将P1.6送0指令ACALL DEL ;延时SETB P1.6CLR P1.7 ;将P1.7送0指令ACALL DEL ;延时SETB P1.7ACALL DELMOV P1,#00H;ACALL DELAJMP MAIN ;循环RET;//**************************//;//******延时子程序**********//;//**************************//ORG 0080HDEL: MOV R2,#255 ;想想为什么要这样?D1: MOV R3,#255D2: NOP ;延时2us秒,去掉几个NOP看结果怎样?NOPNOPNOPNOPDJNZ R3,D2DJNZ R2,D1RET。

单片机课程设计--跑马灯设计

单片机课程设计--跑马灯设计

单片机课程设计(跑马灯设计)专业:电气自动化摘要AT89C51是一种带4K字节闪存可编程可擦除只读存储器)(FPEROM—Flash Programmable and Erasable Read Only Memory 的低电压、高性能CMOS 8位微处理器,即单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

该设计使用A T89C51芯片作为控制芯片,利用P1口连接8个发光二极管,通过I/O的值控制“跑马灯”的亮灭,以达到显示效果。

开始时所有灯全亮,按下按键S时开始跑马灯,再按下按键S时停止,再按下S时继续,并要求有多种亮暗组合。

时继续,并要求有多种亮暗组合。

按键跑马灯 按键单片机 跑马灯关键词:A T89C51单片机目录摘要 (I)第一章芯片分析和设计概述 (3)第一节 AT89C51芯片分析 (3)第一节第二节 设计概述 (8)第二节第二章硬件电路设计 (9)第三章程序部分设计 (10)参考文献 (18)第一章 芯片分析和设计概述第一节 AT89C51芯片分析ATMEL 的AT89S51是一种高效微控制器,将多功能8位CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

且价廉的方案。

AT89C51AT89C51的芯片引脚图如下:的芯片引脚图如下:图1.1 AT89C51引脚图引脚图各引脚的说明和功能分析如下:各引脚的说明和功能分析如下:VCC VCC:供电电压。

:供电电压。

:供电电压。

GND GND:接地。

:接地。

:接地。

P0口:口:P0P0口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL 门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

时,被定义为高阻输入。

P0P0能够用于外部程序数据存储器,它可以被定义为数据外部程序数据存储器,它可以被定义为数据//地址的第八位。

控制P1口的8只LED灯每0.5秒闪亮一次

控制P1口的8只LED灯每0.5秒闪亮一次

单片机课程设计论文题目:控制P1口的8只LED灯每0.5秒闪亮一次系部电子信息工程学院专业通信工程学号姓名指导教师程亮亮2015年6月25日摘要现当今,单片机的应用无处不在。

利用单片机控制灯具的实例也不胜枚举,可控制灯具的芯片也相当之多,而利用单片机控制灯具,达到人们预想效果的方法最为广泛。

它有功能多、价格优、外部电路简单的特点,深受单片机爱好者及灯具控制制造商的青昧,用80C51 单片机及少数外部电路控制LED灯光,使LED灯产生明暗效果,并在灯光达到最亮与最暗时伴随响亮的告警音。

通过硬件电路的制作以及软件程序的编制,使灯光的亮度与告警音配合得当。

LED又称为发光二极管,是一种新型光源,具有高效节能、绿色环保、使用寿命长等其他光源无法比拟的优点。

作为绿色照明光源产品,国家绿色照明推广使用的产品,代表着未来照明技术的发展方向。

本文介绍了以STC89C52为控制核心,利用PWM调光技术,通过调整PWM的周期、PWM的占空比从而控制电流,进而达到对LED进行光度亮暗的控制调节的效果,实现对LED灯的PWM调光控制。

关键词:单片机;LED灯;软件程序AbstractNowadays, the application of single chip microcomputer. SCM is used to control the lamps and lanterns of examples are numerous, control the lamps and lanterns of chip is quite much, and using single chip computer control lamps and lanterns, achieve expected effect of the method is the most widely used. It has multi functions, excellent prices, the characteristics of the external circuit is simple, by the Qing Mei single-chip lovers and lamp control manufacturers, with 80C51 microcontroller and a few external circuit to control the LED light, LED lamp has the effect of light and shade, and the light to the brightest and darkest with loud alarm sound. Through the production of the hardware circuit and software program, the brightness of the lighting and sound alarm.LED is also known as light-emitting diode, is a new type of light source, with high efficiency, energy saving, environmental protection, long service life and other light source can not match the advantages. As a green light source products, national green lighting to promote the use of products, representing the development direction of future lighting technology. STC89C52 as control core, using PWM dimming technology, by adjusting the PWM cycle, PWM accounted for empty than to control electric current, thus achieving the photometric light and dark control and regulation of the effect of the LED, LED lamp dimming with PWM control is introduced in this paper.Key words: single chip microcomputer; LED; software program目录摘要 (Ⅱ)Abstract (Ⅲ)目录 (Ⅳ)前言 (1)1:制P1口8只LED灯每0.5秒闪亮一次原理图 (2)1.1原理图 (2)1.2原理图器件 (2)1.3原理图参数设置说明 (3)1.4 PCB板图 (4)2:制P1口8只LED灯每0.5秒闪亮一次程序 (5)2.1 程序 (5)2.2 程序原理详细介绍 (5)3:件流程图 (7)3.1流程图的优点 (7)3.2流程图采用的符号 (7)3.3软件流程图制作软件 (7)3.4流程图 (7)4:软件仿真 (9)4.1 Proteus仿真原理图 (9)参考文献 (11)前言:单片机技术飞速发展,单片机的应用已经渗透到了国民经济的各个领域,处处影响着人们的生活,它的出现给现代工业测控领域带来了一次新的技术革命。

51单片机8个跑马灯程序汇编设计思路

51单片机8个跑马灯程序汇编设计思路

【51单片机8个跑马灯程序汇编设计思路】1. 引言在嵌入式系统中,跑马灯程序是一个非常常见且基础的程序设计。

通过控制LED灯的亮灭顺序,实现灯光在一组灯中顺序轮流亮起的效果。

其中,51单片机是一种常用的嵌入式系统开发评台,本文将探讨如何通过汇编语言设计实现8个跑马灯程序的思路和方法。

2. 分析题目我们需要对题目进行细致的分析。

51单片机8个跑马灯程序要求我们设计并实现一个程序,能够控制8个LED灯依次轮流亮起的效果。

这意味着我们需要对LED灯进行控制,并且需要考虑如何实现循环、延时等功能。

3. LED灯控制在实现跑马灯程序时,首先需要考虑如何控制LED灯的亮灭。

一种常见的方法是通过I/O口控制LED灯的高低电平,从而实现灯的亮灭。

我们需要了解51单片机的I/O口控制方式,并结合LED灯的连接方式进行设计。

4. 循环控制跑马灯程序的核心在于实现LED灯的依次轮流亮起。

这就需要我们设计循环控制的程序结构。

在汇编语言中,可以通过跳转指令和计数器来实现循环效果,我们需要考虑如何设计循环的次数和顺序。

5. 延时控制为了让人眼能够观察到LED灯的亮灭效果,我们需要在程序中添加延时控制。

这需要我们了解51单片机的定时器控制和时钟频率,并根据LED灯的亮度要求设计合适的延时程序。

6. 汇编设计思路在进行汇编设计时,可以按照以下步骤进行:1)设置I/O口控制LED灯的引脚,确定LED的连接方式;2)设计循环控制结构,确定LED灯的顺序和次数;3)添加延时程序,控制LED灯亮灭的时间间隔;4)编写中断程序,处理定时器中断等事件;5)调试程序,验证跑马灯效果是否符合要求。

7. 个人观点和理解通过设计这个跑马灯程序,我深切体会到了汇编语言的精妙之处。

通过对硬件的直接控制和对程序结构的精心设计,我感受到了嵌入式系统开发中的乐趣和挑战。

而对于初学者来说,设计跑马灯程序也是一个很好的学习过程,可以加深对于51单片机结构和编程思想的理解。

八路发光二极管轮流点亮的实验

八路发光二极管轮流点亮的实验

八路发光二极管轮流点亮的实验八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦~~~下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。

ORG 0000HSTART:MOV P1,#01111111B;最下面的LED点亮LCALL DELAY;延时1秒MOV P1,#10111111B;最下面第二个的LED点亮LCALL DELAY;延时1秒MOV P1,#11011111B;最下面第三个的LED点亮(以下省略)LCALL DELAYMOV P1,#11101111BLCALL DELAYMOV P1,#11110111BLCALL DELAYMOV P1,#11111011BLCALL DELAYMOV P1,#11111101BLCALL DELAYMOV P1,#11111110BLCALL DELAYMOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒AJMP START;反复循环;延时子程序,12M晶振延时约250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2DJNZ R2 ,L1DJNZ R4 ,L3RETEND这是上面程序汇编以后获得的编程器烧写文件:201.hex下载烧写文件的方法:将鼠标移到烧写文件的超级键连处,点击鼠标的右键,选择“目标另存为(A)...”保存文件类型中不要选择“文本文件”,应该选择“所有文件”,这样就能获得*.hex文件了。

任务9 用自制的跑马灯电路实现8只LED循环点亮

任务9  用自制的跑马灯电路实现8只LED循环点亮

任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
• (2)短调用指令ACALL addr11 ;;PC←PC+2 • ;SP←SP+1 • ;(SP)←PC7-0 • ;SP←SP+1 • ;(SP)←PC15-8 • ; PC10-0←addr10-0
9.1.2 跟我想 1. 编写跑马灯程序思路 该任务要求通过编写程序,使连接P0口的8个LED灯循环点亮(跑马灯), 每个灯点亮的时间为0.5秒。怎样来编写程序呢?我们用一个寄存器R1存储 用于点亮P0口的LED灯的数据,R1首先存储点亮与P0.0相连的LED灯D0 (数据为:0000001H),可以通过指令MOV P0,R1将与P0.0相连的 LED0点亮,然后调用延时0.5秒的程序,延时时间到后,可以带进位位左移 指令RR A,将R1中的数据左移一位(数据为:00000010),再送给P0口, 点亮与P0.1相连的LED灯D1,依次类推;用寄存器R2存储LED灯从D0移动 到D7的移动次数为8次,每移一次减1,R2的值为0时,表示第1次循环结束, 接下来又从点亮D0开始下一个循环,就这样反复循环点亮,达到跑马灯的效 果。 在编写程序之前,让我们学一学相关指令的功能和用法。
任务9 用自制的跑马灯电路实现8只 任务 用自制的跑马灯电路实现 只LED循环点亮 循环点亮
• • 2)移位指令 ) 移位指令的功能是对累加器A的内容进行循环移位,除了带进位标 志位CY的移位指令会影响CY外,其它指令都不影响CY、AC、OV等标志 位。 RL A ;循环左移指令;
图6-1 RL A指令示意图
• • • • • • • • • • • • • • • • • • • • • • ORG 0000H AJMP START ;转移至标号START ORG 0030H ;以下程序下载到单片机的ROM时,从ROM的0030地址开始存储 START: MOV R1, #00000001B ;将立即数01H送R1 MOV R2, #08 ;将立即数8送R2,循环8次(8个灯) LOOP: MOV A, R1 ;将R1中的数送A MOV P0, A ;将A中的数送P0口,点亮LED灯 CALL DEL1S ;调用延时子程序,控制亮灯时间 RL A ;A中的数据左移一位,为下一次亮灯作准备 MOV R1, A ;左移后的数据存放在R1 DJNZ R2, LOOP ;循环了8次吗?没有则继续 AJMP START ;完成8次循环,转移至START重新开始 ;***************1秒钟延时子程序************************************* DEL1S: MOV R3, #5 DEL: MOV R4, #100 DEL1: MOV R5, #250 DEL2: NOP DJNZ R5, DEL2 DJNZ R4, DEL1 DJNZ R3, DEL RET END

单片机 跑马灯实验精选全文

单片机 跑马灯实验精选全文

可编辑修改精选全文完整版实验一跑马灯实验一、实验内容1、基本的流水灯根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。

每点亮一个LED,采用软件延时一段时间。

2、简单键控的流水灯不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。

松手后,又按正序点亮流水灯。

3、键控的流水灯上电,不点亮LED,按一下K1键,按正序点亮流水灯。

按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。

二、实验方案1、总体方案设计考虑到K4键未被使用,所以将实验内容中的三项合并到一个主函数中:K4键代替实验内容第二项中的K1键;单片机一开机即执行实验内容第一项;K1、K2、K3键实现实验内容第三项。

所用硬件:AT89C52、BUTTON、LED-BLUE、电源输入:P2.0-K1;P2.1-K2;P2.2-K3;P2.3-K4。

低电平有效输出:P0.0~P0.7-D0~D7。

LED组连线采用共阳极,低电平有效软件设计:软件延时采用延时函数delay(t),可调整延迟时间:void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}由于涉及到按键变化所以要设置一个变量oldK保留按键键值,要在延时程序中检测是否按键,当按键后立即设置oldK的值。

按键判断采用在while循环中利用条件语句判断P2的值然后执行该键对应的代码段,达到相应的响应。

为了让K4键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点亮,利用全局变量n来记录灯号,利用算法即可实现。

主要算法:1、全局变量的定义:uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;2、顺序、逆序点亮流水灯:void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}3、实验内容第二项流水灯灯亮顺序变换:void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){out=D[n];n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}4、对应实验内容第一项,开机顺序点亮流水灯:while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}2、实验原理图图2-1 实验原理图3、程序流程图图2-2 程序流程图三、源程序#include"reg51.h"#define uchar unsigned char#define uint unsigned int#define out P0uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;//记录当前亮的灯号void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}void delay10ms(){uint i;for(i=0;i<10000;i++);}void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}int delay4(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK){ //按键变化退出循环return 1;}}return 0;}void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}void main(){oldK=K[0];while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}while(1){out=AllOff;if((P2&0x0f)!=0x0f){//检测有键按下delay10ms();//延时10ms再去检测//P2.0_K1键按下正序点亮流水灯if(P2==K[1]){oldK=K[1];while(1){forward();if(P2!=K[1]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.1_K2键按下逆序点亮流水灯if(P2==K[2]){while(1){backward();if(P2!=K[2]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.2_K3键按下关闭全部LEDif(P2==K[3]){oldK=K[3];out=AllOff;}//P2.3_K4键按下长按逆序点亮流水灯,不按正序点亮流水灯,直到其他键按下停止if(P2==K[4]){hold();}}}}四、实验结果1、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。

实验三:跑马灯实验

实验三:跑马灯实验

微控制器综合设计与实训实验名称:实验三跑马灯实验实验三:跑马灯实验1 实训任务(1) 编写程序,实现对LED1~LED8的轮流点亮;(2) 仿真调试,调整延时时间,利用仿真示波器观察延时时间长短;(3) 下载程序,观察跑马灯运行状况。

1.1 实验说明本实验将要实现的是控制实训平台上的8个LED灯实现一个类似跑马灯的效果,LED通过控制IO口的高低电平工作,因此实验的关键在于如何控制STM32的IO口输出。

1.2 实验步骤(1) 在实训平台上将IO口与LED(LED1~LED8)连接;(2) 复制工程模板文件夹,新建led.c和led.h文件,并将新建文件加入工程中;(3) 编写led.h文件,声明void LED_Init(void)初始化函数,宏定义LED1~LED8;(4) 编写led.c文件,建立void LED_Init(void)初始化函数,实现对LED灯用到的IO端口的配置,配置为推挽输出,速度为50MHZ;(5) 编写main()函数,实现对LED1~LED8的轮流点亮;(6) 软件仿真,调整延时时间,利用仿真示波器观察延时时间长短;(7) 下载程序,观察跑马灯的运行状况。

2 程序设计2.1 通过数组实现流水灯:2.2 通过宏定义实现流水灯:2.3 通过函数实现流水灯:2.4 通过SYSTICK中断实现流水灯:3硬件原理图设计4 总结通过数组实现流水灯:通过宏定义实现流水灯:通过函数实现流水灯:通过SYSTICK中断实现流水灯:实验心得:本次实验通过四种方法来实现流水灯,分别是通过数组实现流水灯,通过宏定义实现流水灯,通过函数实现流水灯,通过SYSTICK中断实现流水灯。

让我体会到单片机代码的多样性及强大的拓展功能。

MCU通过控制IO口的高低电平来直接控制LED的亮灭,所以本实验的关键是如何控制STM32的IO口输出,来达到我们想要的效果。

就比如灯光秀。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

拆字程序
Org 0000h
Mov A , 2000H
Add A ,#F0H
MOV 2001H ,A
MOV A ,2000H
ADD A , #0FH
MOV 2002H , A
MOV A , 2001H
ADD A , 2002H
END
拆分BCD 码

***************************************************************************
;此程序是用单片机的p1口接八个led灯作跑马灯试验,八个led依次亮了又熄灭,形成漂亮;的跑马灯。

本人已经试验成功。

;单片机教程网 原创
;该8路单片机跑马灯程序代码简单,电路也容易搭建,只需把led接在p1口上就可以了,希望大家能试验成功顺利的完成跑马灯报告
;***************************************************************************
org 0000h
loop0:cjne r0 ,#01h,rel,loop0 ;判断开关打开情况
ajmp start;跳转到程序开始
org 0030h;定义起始汇编地址
start:
mov a,#0ffh ;
clr c ;
mov r2,#08h ;循环八次。

loop: rlc a ;带进位左移。

mov p1,a ;此时led灯开始有反映了。

call delay ;延时
djnz r2,loop ;循环(djnz条件判断)
mov r2,#07h ;
loop1: rrc a ;带进位右移
mov p1,a ;此时led灯开始有反映了。

call delay ;
djnz r2,loop1 ;反复循环
jmp start ;回到程序的开头
delay: mov r3,#20 ;延时子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
```````````````````````````````````````````````---------3路单片机跑马灯程序---------------------------------------
ORG 0000H
LJMP MAIN
ORG 030H
MAIN: MOV P1,#0DBH ;化为2进制为11011011--0状态时led灯亮ACALL DELay
MOV P1,#06DH ;化为2进制为01101101
ACALL DELay ;
MOV P1,#0B6H ;化为2进制为10110110
ACALL DELay
AJMP MAIN
delay: mov r7,#255
d1: mov r6,#255
d2: djnz r6,d2
djnz r7,d1
ret
end。

相关文档
最新文档