锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

51单片机汇编语言

时间:2024-04-26 08:07:10

a) 单个与多个LED 灯,位操作与字节操作 输出
ORG 0000H ART: CLR C MOV P0.0,C MOV P1.1,C MOV P2.2,C MOV P3.3,C CLR A CPL A MOV P0,A MOV P1,A MOV P2,A MOV P3,A END 程序说明: 可以用7段 来代替各端口的8个LED灯,硬件的这种显示方式使得数字表达成为实用。数字显示由数码管的硬件结构与工作原理(7个LED灯的几何变形组合)和数字表达的数据格式确定。 如: 共阳极数码管显示数字3,则有P1口送数据#4 ; MOV P1, #0B0H 共阴极数码管显示数字8,则有P1口送数据#80H; MOV P1, #7F H 用数据表表示则有: TABshuziyang: //阳极管 (共阴极管取反即可 ) (数字 0~FC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H,83H,C6H,A1H,86H,8EH TABshuziyin: //阴极管 (共阳极管取反即可 ) DB(数字 0~F3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H b) 单个与多个LED 灯闪烁— 延时子程序 注意定时器


前边已经看到,通过改变位或字节的赋值,可以使得LED灯亮或灭,以此形成闪烁效果。但是硬件的响应时间太短,使得效果不佳。虽然可以通过改变单片机的时钟设置来改变效果。但时钟的改变极其不方便,因此需要利用延时指令(注意定时器功能)获得理想的效果。延时效果是利用单片机空转来实现的。 ACALL DELAY ;调延时子程序 ************************************************************************* DELAY:; 延时子程序—这是一个非常有用、而且常见的一个子程序 MOV R5,#04H ;将16进制数04H传递给寄存器R5 F3: MOV R6,#0FFH ;将16进制数0FFH传递给寄存器R6 F2: MOV R7,#0FFH ;将16进制数0FFH传递给寄存器R7 F1: DJNZ R7, F1;寄存器R7减1非0跳转到F1,直到减为0顺序执行下一指令 DJNZ R6, F2;寄存器R6减1非0跳转到F2,直到减为0顺序执行下一指令 DJNZ R5, F3;寄存器R5减1非0跳转到F3,直到减为0顺序执行下一指令 RET ;子程序结束,返回子程序入口处 ACALL DELAY ;调延时子程序 *************************************************************************** 应用实例 MAIN: CLR C MOV P0.0,C MOV P1.1,C MOV P2.2,C MOV P3.3,C ACALL DELAY ;调延时子程序 ; CLR A CPL A MOV P0,A MOV P1,A MOV P2,A MOV P3,A ACALL DELAY;调延时子程序 SJMP MAIN ;相对转移时间短,用AJMP绝对转移时间长, RET是用于子程序的返回 DELAY:;延时子程序 -这是一个非常有用、而且常见的一个子程序 MOV R5,#04H;16进制数 04H传递给寄存器 R5 F3: MOV R6,#0FFH;16进制数 0FFH传递给寄存器 R6 F2: MOV R7,#0FFH;16进制数 0FFH传递给寄存器 R7 F1: DJNZR7, F1 ;寄存器 R710跳转到 F1,直到减为 0顺序执行下一指令 DJNZR6, F2 ;寄存器 R610跳转到 F2,直到减为 0顺序执行下一指令 DJNZR5, F3 ;寄存器 R510跳转到 F3,直到减为 0顺序执行下一指令 RET;子程序结束,返回子程序入口处 ACALLDELAY;调延时子程序 END 程序说明: 注意延时子程序中的DJNZ R7, F1;DJNZ R6, F2;DJNZ R5, F3;通过 增加或减少循环数目控制或改变延时时间 c) 单个与多个LED 灯流动— 位循环、字节循环与延时子程序
ORG 0000H MAIN: ;****************位循环 扫描—流水灯—逐级增加灯的数目******************* CLR C MOV P0.0,C ACALL DELAY ;调延时子程序 MOV P0.1,C ACALL DELAY MOV P0.2,C ACALL DELAY MOV P0.3,C ACALL DELAY MOV P0.4,C ACALL DELAY MOV P0.5,C ACALL DELAY MOV P0.6,C ACALL DELAY MOV P0.7,C ACALL DELAY;注意前面各位状态一直持续。P0口各位电平保持不变 ;****************位循环—流水灯—逐个改变灯亮与灭******************* CLR C MOV P0.0,C ACALL DELAY ;调延时子程序 CPL C MOV P0.0,C ACALL DELAY CLR C MOV P0.1,C ACALL DELAY CPL C MOV P0.1,C ACALL DELAY CLR C
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章