51单片机:LED灯亮灯灭程序设计_第1页
51单片机:LED灯亮灯灭程序设计_第2页
51单片机:LED灯亮灯灭程序设计_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.1.功能说明:控制单片机 P1 端口输出,使 P1.0 位所接的 LED点亮,其他 7 只灯熄灭。程序 :1: MOV A , #11111110B ; 存入欲显示灯的位置数据02:MOV P1, A;点亮第一只灯03:JMP $;保持当前的输出状态04:END; 程序结束2.功能说明:单片机P1 端口接 8 只 LED,点亮第 1、3、4、6、7、8 只灯。程序 :01: START: MOV A , #00010010B; 存入欲显示灯的位置数据02:MOV P1, A; 点亮灯03:JMP START; 重新设定显示值04:END;程序结束3.功能说明:单片机 P1 端口接 8 只 L

2、ED,每次点亮一只,向左移动点亮,重复循环。程序 :01:START: MOV R0, #8;设左移8 次02:MOV A,#11111110B;存入开始点亮灯位置03:LOOP: MOV P1, A;传送到 P1 并输出04:RL A;左移一位05:DJNZ R0, LOOP;判断移动次数06:JMP START;重新设定显示值07:END;程序结束4.功能说明:单片机 P1 端口接 8 只 LED,每次点亮一只,向右移动点亮,重复循环。程序 :01: START: MOV R0, #8;设右移 8 次02:MOV A,#01111111B;存入开始点亮灯位置03: LOOP:MOV P1,

3、 A;传送到 P1 并输出04:ACALL DELAY;调延时子程序05:RR A;右移一位06:DJNZR0, LOOP;判断移动次数07:JMP START;重新设定显示值08: DELAY:MOVR5,#50;09:DLY1: MOVR6,#100;10: DLY2: MOV R7,#100;11:DJNZ R7,$;12:DJNZ R6,DLY2;13:DJNZ R5,DLY1;14:RET;子程序返回15:END;程序结束5.功能说明:单片机 P1 端口接 8 只 LED,每次点亮一只,先把右边的第一只点亮, 0.5 秒后点亮右数的第二只灯,第一只熄灭,再过0.5 秒点亮右数的第三只

4、灯,第二只熄灭,亮灯按此顺序由右向左移动。当亮灯移到左侧后,开始与'.上述反方向移动,即亮灯由左向右移动,重复循环。程序 :01:START: MOV R0, #8;设左移8 次02:MOV A,#0FEH ;存入开始亮灯位置03:LOOP: MOV P1, A;传送到 P1 并输出04:ACALL DELAY;调延时子程序05:RL A;左移一位06:DJNZ R0, LOOP;判断移动次数07:MOV R1, #8 ;设右移 8 次08;LOOP1: RR A;右移一位09:MOV P1, A;传送到 P1 并输出10:ACALL DELAY;调延时子程序11:DJNZ R1,LO

5、OP1;判断移动次数12:JMP START;重新设定显示值13: DELAY: MOV R5,#25;延时 0.5 秒子程序14: DLY1: MOVR6,#100 ;15: DLY2: MOVR7,#100 ;16:DJNZ R7,$;17:DJNZ R6,DLY2;18:DJNZ R5,DLY1;19:RET;子程序返回20:END;6.功能说明:单片机 P1 端口接 8 只 LED,每次点亮两只,先从右边向左边移动点亮;再从左边向右边移动点亮,然后闪烁两次,重复循环。程序 :01:START: MOV R0, #7;设左移 7 次02:MOV A,#0FCH;存入开始亮灯位置03:LO

6、OP: MOVP1, A;传送到 P1 并输出04:ACALLDELAY;调延时子程序05:RLA;左移一位06:DJNZR0, LOOP;判断移动次数07:MOVR1, #7;设右移 7 次08: LOOP1: RRA;右移一位09:MOVP1, A;传送到 P1 并输出10:ACALLDELAY;调延时子程序11:DJNZR1, LOOP1;判断移动次数12:MOVR2, #3;设置闪烁次数13:MOVA, #00H;设初始值14: LOOP2: MOVP1, A; P1 端口灯亮15:ACALLDELAY;调用延时子程序16:CPLA;A 取反值17:DJNZR2, LOOP2;判断闪烁

7、次数18:JMPSTART;重新设定显示值19: DELAY: MOVR5, #25'.20: DLY1:MOVR6, #10021: DLY2:MOVR7, #10022:DJNZR7, $23:DJNZR6, DLY224:DJNZR5, DLY125:RET;子程序返回26:END;程序结束7.功能说明单片机端口接八只LED,编程时利用取表的方法,使端口P1 做单一灯的变化:先向左移 2 次,然后向右移2 次,再闪烁 4 次 ,不断循环。程序 :01:START: MOVDPTR, #TABLE;存表02:LOOP: CLR A;A 清零03:MOVCA, A+DPTR ;取表代

8、码04:CJNEA, #01H, LOOP1;不是 01H,循环05:JMP START;重新设定06:LOOP1: MOV P1, A;送 P1 输出07:ACALL DELAY;调延时程序08:INC DPTR;数据指针加 109:JMP LOOP;转移到 LOOP处10:DELAY: MOVR5,#25;延时0.5 秒11:DLY1: MOVR6,#100;12:DLY2: MOVR7,#100;13:DJNZ R7,$;14:DJNZ R6,DLY2;15:DJNZ R5,DLY1;16:RET;17: TABLE: DB 0FEH,0FDH,0FBH,0F7H ;18:DB 0EFH

9、,0DFH,0BFH,7FH;左移19:DB 0FEH,0FDH,0FBH,0F7H;20:DB 0EFH,0DFH,0BFH,7FH; 左移21:DB 7FH,0BFH,0DFH,0EFH;22:DB 0F7H,0FBH,0FDH,0FEH; 右移23:DB 7FH,0BFH,0DFH,0EFH;24:DB 0F7H,0FBH,0FDH,0FEH; 右移25:DB 00H,0FFH,00H,0FFH ;26:DB 00H,0FFH,00H,0FFH ; 闪烁27:DB 01H; 结束码28:END;8:功能说明:单片机 P1 端口接 8 只 LED,依次点亮且前面保持不灭,再依次熄灭 ;延时

10、 0.5s,重复循环。程序:ORG00HSTART:MOV P1,#0FFH'.CALL DELAYMOV P1,#7FHCALL DELAYMOV P1,#3FHCALL DELAYMOV P1,#1FHCALL DELAYMOV P1,#0FHCALL DELAYMOV P1,#07HCALL DELAYMOV P1,#03HCALL DELAYMOV P1,#01HCALL DELAYMOV P1,#00HCALL DELAYMOV P1,#01HCALL DELAYMOV P1,#03HCALL DELAYMOV P1,#07HCALL DELAYMOV P1,#0FHCALL DELAYMOV P1,#1FHCALL DEL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论