《单片机应用》_教材各项目中的源程序.docxVIP

  • 0
  • 0
  • 约2.1万字
  • 约 20页
  • 2026-01-22 发布于广东
  • 举报

《单片机应用》_教材各项目中的源程序.docx

各项目中的源程序

项目二中流水灯的源程序如下:

ORG0000H;程序的起始地址0000H

MAIN:MOVP2, ;点亮第1个LED

LCALLDELAY ;调用延时子程序

MOVP2, ;点亮第2个LED

LCALLDELAY

MOVP2, ;点亮第3个LED

LCALLDELAY

MOVP2, ;点亮第4个LED

LCALLDELAY

MOVP2, ;点亮第5个LED

LCALLDELAY

MOVP2, ;点亮第6个LED

LCALLDELAY

MOVP2, ;点亮第7个LED

LCALLDELAY

MOVP2, ;点亮第8个LED

LCALLDELAY

SJMPMAIN ;跳转回程序起始位置,开始下一循环

DELAY:MOVR2,#0FFH;延时子程序,

DEL1:MOVR3,#0FFH;更改R2、R3数值控制延时时间的长短

DEL2:DJNZR3,DEL2

DJNZR2,DEL1

RET

END

项目二中的流水灯优化程序:

ORG0000H;程序的起始地址0000H

MAIN:MOVA, ;对A赋初值

LOOP:MOVP2,A;点亮第1个LED

LCALLDELAY ;调用延时子程序

RLA ;将A的内容左移1位,变

SJMPLOOP;程序跳转至LOOP处,开始循环

DELAY:MOVR2,#0FFH;延时子程序

DEL1:MOVR3,#0FFH;更改R2、R3数值控制延时时间的长短

DEL2:DJNZR3,DEL2

DJNZR2,DEL1

RET;子程序返回指令

END

项目三任务1并行输出显示器源程序:

ORG00H

LJMPMAIN

ORG0030H

MAIN:MOVP0,#00H;字段全灭

MOVDPTR,#TAB;给DPTR赋字段码首地址

KAISHI:MOVR2,#0;R2是按键号即键码,初值为0

MOVP3,#0F0H;给P3口赋行\列值

MOVA,P3;行\列值存到累加器

CJNEA,#0F0H,XIAODOU

SJMPKAISHI

XIAODOU:ACALLDELAY;消抖

MOVA,P3

CJNEA,#0F0H,PDLIE;若10ms后高4位仍不全为1,说明的确有按键按下,接着判断是哪一列有按下

SJMPKAISHI;是抖动,返回开始继续等待按键按下

PDLIE:MOVP3,#0FEH;先给第一列置低电平,高4位仍置高电平

MOVR1,P3;R1存当前P3口状态,主要是存低4位列码

PANDUAN:MOVA,P3;开始判断按键号

ANLA,#0F0H;屏蔽低4位

CJNEA,#0F0H,PDHANG;若高位不全为1,说明按键就在当前列

MOVA,R1

RLA;置0下一列,继续读取行状态

MOVR1,A;R1存当前P3口状态

MOVP3,R1;改变P3口状态

MOVA,R2;每切换一列扫描,按键号增加4

ADDA,#4

MOVR2,A

SJMPPANDUAN;重复判断过程

PDHANG:SWAPA;行\列码互换,开始判断按键所在行

SETBC

文档评论(0)

1亿VIP精品文档

相关文档