//====================================================================////名称:流水灯//功能描述:发光二极管单向循环点亮。SPCE061A单片机汇编语言实现//===================================================================// .include SPCE061A.inc //包含头文件 .ram .var R_LEDControl //定义LED控制变量 .var R_DaleyControl //定义延时程序控制变量 .code .public _main //===================================================================////函数名:主函数//功能描述:控制发光二极管单向循环点亮//===================================================================//_main: r1=0x00ff //定义IOA口为同向输出,并输出低电平 [P_IOA_Dir]=r1 [P_IOA_Attrib]=r1 r1=0x0000 [P_IOA_Data]=r1 //IO口电平初始化,如果是接共阳极的LED,则选用高电平输出 r1=0x0001 [R_LEDControl]=r1L_MAINloop: //通过循环左移实现LED单向循环点亮程序段 r1=[R_LEDControl] [P_IOA_Data]=r1 //点亮第一个LED r1=r1 LSL 1 //循环左移语句 CMP r1,0x0100 //控制点亮的LED在IOA低八位之内。CMP指令进行做差比较 JNE NoOver //该指令的意思为:不等于转接到后边的程序段 r1=0x0001 //如果等于的话,则对IOA口的输出初始化NoOver: [R_LEDControl]=r1 r1=0x0000 //给延时函数的计数赋初值 [R_DaleyControl]=r1 CALL L_Daleyloop //转到延时子函数 JMP L_MAINloop //循环控制LED的点亮 //===================================================================////函数名:延时函数//功能描述:通过计数实现延时,不精确延时//===================================================================//L_Daleyloop: r1=0x0001 [P_Watchdog_Clear]=r1 //清看门狗 r1=[R_DaleyControl] r1+=1 //延时计数加1 [R_DaleyControl]=r1 JNZ L_Daleyloop //JNZ指令标示“非0则转到loop”。该语句的意思是“R_DaleyControl的值不为0则转到L_Daleyloop”。 RETF //一般情况下,循环加法的值到65535时为最大值,超过该值时则会从0算起,及65536标示0
导读:目前正在解读《基于SPCE061A单片机汇编语实现的流水灯》的相关信息,《基于SPCE061A单片机汇编语实现的流水灯》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于SPCE061A单片机汇编语实现的流水灯》的详细说明。
简介:本文给大家介绍了一个基于SPCE061A单片机汇编语实现的流水灯。
提醒:《基于SPCE061A单片机汇编语实现的流水灯》最后刷新时间 2024-03-14 01:01:27,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于SPCE061A单片机汇编语实现的流水灯》该内容的真实性请自行鉴别。