单片机一个很简单的题,大神求详细程序!!!

单片机一个很简单的题,大神求详细程序!!!谢谢,必采纳!... 单片机一个很简单的题,大神求详细程序!!!谢谢,必采纳! 展开
 我来答
嵌入式知道
2016-12-26 · TA获得超过284个赞
知道小有建树答主
回答量:147
采纳率:100%
帮助的人:60.8万
展开全部

80C51


第一题:


中断方式:


ORG 0000H         ;主程序起始地址 

AJMP START      ;跳至主程序START

ORG 0003H         ;INT0中断子程序起始地址 AJMP SA2           ;跳至INT0中断子程序SA2

ORG 0013H         ;INT1中断子程序起始地址 AJMP SA1           ;跳至INT1中断子程序SA1  


START:

MOV  IE,#10000101B;INT0

、INT1中断使能

MOV IP,#00000100B ;INT1中断优先

MOV TCON,#00000000B;INT0

、INT1为电平触发

MOV SP,#70H            ;设定堆栈在(70H)  


MOV A,#FH                ;P1点亮

MOV P1,A

ACALL DELAY2             ;延迟2秒

MOV A,#0H                ;P1熄灭

MOV P1,A


LOOP: 

AJMP  LOOP                 ;重复循环直到中断


SA1:

MOV A,#1H                ;P1点亮一个

MOV P1,A

ACALL DELAY1             ;延迟1秒

RL A                                ;循环左移,P1点亮下一个

MOV P1,A

ACALL DELAY1             ;延迟1秒,中断自动循环

RET


SA2:

MOV A,#FH                ;P1点亮全部

MOV P1,A

ACALL DELAY1             ;延迟1秒

MOV A,#FH                ;P1熄灭全部

MOV P1,A

ACALL DELAY1             ;延迟1秒,中断自动循环

RET


DELAY2S:MOV R7,#10

D1:   MOV R6,#200

D2:   MOV R5,#250

      DJNZ R5,$

      DJNZ R6,D2

      DJNZ R7,D1

      RET


DELAY1S:MOV R7,#5

D1:   MOV R6,#200

D2:   MOV R5,#250

      DJNZ R5,$

      DJNZ R6,D2

      DJNZ R7,D1

      RET


轮询方式:


ORG 0000H         ;主程序起始地址 

AJMP START      ;跳至主程序START  


START:

MOV SP,#70H            ;设定堆栈在(70H)  MOV A,#FH                ;P1点亮

MOV P1,A

ACALL DELAY2             ;延迟2秒

MOV A,#0H                ;P1熄灭

MOV P1,A


LOOP:                          ;重复循环

MOV A,P3

ANL A,#8H                 ;读取P3.3

JNZ SKIP1

ACALL SA1                   ;如果是低电平,跳转到SA1

SKIP1:

MOV A,P3

ANL A,#4H                 ;读取P3.2

JNZ SKIP2

ACALL SA2                   ;如果是低电平,跳转到SA2

SKIP2:

AJMP LOOP


SA1:

MOV A,#1H                ;P1点亮一个

MOV P1,A

ACALL DELAY1             ;延迟1秒

RL A                                ;循环左移,P1点亮下一个

MOV P1,A

ACALL DELAY1             ;延迟1秒,中断自动循环

RET


SA2:

MOV A,#FH                ;P1点亮全部

MOV P1,A

ACALL DELAY1             ;延迟1秒

MOV A,#FH                ;P1熄灭全部

MOV P1,A

ACALL DELAY1             ;延迟1秒,中断自动循环

RET


DELAY2S:MOV R7,#10

D1:   MOV R6,#200

D2:   MOV R5,#250

      DJNZ R5,$

      DJNZ R6,D2

      DJNZ R7,D1

      RET


DELAY1S:MOV R7,#5

D1:   MOV R6,#200

D2:   MOV R5,#250

      DJNZ R5,$

      DJNZ R6,D2

      DJNZ R7,D1

      RET


第二题:



ORG 0000H         ;主程序起始地址 

AJMP START      ;跳至主程序START

ORG 0003H         ;INT0中断子程序起始地址 AJMP OFF           ;跳至INT0中断子程序OFF

ORG 0013H         ;INT1中断子程序起始地址 AJMP PROC        ;跳至INT1中断子程序PROC


START:

MOV  IE,#10000101B;INT0

、INT1中断使能

MOV IP,#00000100B ;INT1中断优先

MOV TCON,#00000000B;INT0

、INT1为电平触发

MOV SP,#70H            ;设定堆栈在(70H)  


OFF:

MOV A,#80H

MOV P2,A                    ;P2全部熄灭,除了停止位


READY:

MOV A,P1                   ;读取P1,0

ANL A,#01H

JNZ READY                   ;循环直到按下SA1


ON:

MOV A,#40H

MOV P2,A                   ;P2全部熄灭,除了开始位


LOOP: 

AJMP  LOOP                 ;重复循环直到中断


PROC:                         ;按照工序状态P4,点亮LED灯P2

MOV A,P4

MOV B,P2


ANL A,3FH                 ;复制高电平,首位要置零

ORL B,A                      ;然后再用或,复制高电平

ORL A,C0H                 ;复制低电平,首位要置一

ANL B,A                      ;然后再用与,复制低电平


MOV P2,B

RET

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式