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

下载本文档

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

文档简介

1、1.功能 明:控制 片机 p1 端口 出,使 p1.0 位所接的 led点亮,其他 7 只灯熄 。程序 :01: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 只

2、led,每次点亮一只,向左移 点亮,重复循 。程序 :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:

3、 mov p1, a;传送到 p1 并输出04:acall delay;调延时子程序05:rr a;右移一位06:djnz r0, 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.

4、5 秒点亮右数的第三只灯,第二只熄 ,亮灯按此 序由右向左移 。当亮灯移到左 后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。程序 :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:djn

5、z r1,loop1;判断移动次数12:jmp start;重新设定显示值13: delay: mov r5,#25;延时 0.5秒子程序14: dly1: mov r6,#100;15: dly2: mov r7,#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;存入开始亮

6、灯位置03: loop: 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,

7、loop2;判断闪烁次数18:jmpstart;重新设定显示值19: delay: movr5, #2520: dly1: mov r6, #10021: dly2: mov r7, #10022: djnz r7, $23: djnz r6, dly224: djnz r5, dly125:ret;子程序返回26:end;程序结束7. 功能说明单片机端口接八只led,编程时利用取表的方法,使端口p1 做单一灯的变化:先向左移 2 次,然后向右移2 次,再闪烁 4 次 , 不断循环。程序 :01:start: movdptr, #table;存表02:loop: clr a; a 清零03:m

8、ovca, a+dptr;取表代码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,0f7

9、h;18:db 0efh,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 ,重复循环。程序:org 00hstart:mov p1,#0ffhcall 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 delaymov p1,#3fhcall delaymov p1,#7fhcall delaymov p1,

温馨提示

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

评论

0/150

提交评论