单片机原理及应用实验代码(汇编版)

博主最近刚考完单片机理论和实验,现把代码啥的汇总了一下,希望有需要的小伙伴能用得上。(均编译通过,亲测可用)

实验一:两数相加

ORG 00H
LJMP START
ORG 100H
START:MOV SP,#50H
           MOV 30H,#39H
           MOV 32H,#89H
           MOV 31H,#02H
           MOV A,#05H
           MOV 33H,A
           MOV A,32H
           ADD A,30H
           DA  A
           MOV 40H,A
           MOV A,33H
           ADDC A,31H
           DA  A
           MOV 41H,A
           SIMP  $

实验二:信号灯控制

1.P1口循环点亮
ORG 00H
LJMP START
ORG 0100H
START:MOV R2,#8
           MOV A,#01H
           MOV SP,#60H
LOOP:MOV P1,A
          LCALL DELAY
          RL  A
          DJNZ  R2,LOOP
          LJMP  START
DELAY:MOV  R5,#15
DEL0 :MOV  R6,#200
DEL1:MOV  R7,#125
DEL2:DJNZ  R7,DEL2
         DJNZ  R6,DEL1
         DJNZ  R5,DEL0
         RET
         END
2.P1口输入输出
ORG  0000H
LOOP:SETB  P1.0
          SETB  P1.1
          MOV  C,P1.0
          MOV  P1.2,C
          MOV  C,P1.1
          MOV  P1.3,C
          SJMP  LOOP
          RET
          END

实验三:继电器控制

ORG  00H
LJMP  START
ORG  03H
LJMP  INT0
ORG  0100H
START:MOV  SP,#60H
           SETB  IT0
           SETB  EA
           SETB  EX0
HRER:SJMP  HERE
INTO:CLR  EA
         PUSH  PSW
         PUSH  ACC
         SETB  EA
         CPL  P1.0
         CLR  EA
         POP  ACC
         POP  PSW
         SETB  EA
         RETI
         END

实验四:8255输入、输出

1.开关控制

ORG  00H
LJMP  START
ORG  0100H
START:MOV  SP,#60H
           MOV  DPTR,#8003H
           MOV  A,#82H
           MOVX  @DPTR,A
LOOP:MOV  DPTR,#8001H
          MOVX  A,@DPTR
          MOV  DPTR,#8000H
          MOVX  @DPTR,A
          SJMP  LOOP
          END

2.循环点亮

ORG  00H
LJMP  START
ORG  0100H
START:MOV  SP,#60H
           MOV  DPTR,#8003H
           MOV  A,82H
           MOVX  @DPTR,A
           MOV  A,#1H
LOOP:MOV  DPTR,#8000H
          MOVX  @DPTR,A
          LCALL  DELAY
          RL  A
          SJMP  LOOP
DELAY:MOV  R3,#0FH
D1:MOV  R4,#200
D2:MOV  R5,#100
D3:DJNZ  R5,D3
     DJNZ  R4,D2
     DJNZ  R3,D1
     RET
     END

实验五:定时器

ORG  0000H
RESET:LJMP  MAIN
ORG  000BH
LJMP  IT0P
ORG  1000H
MAIN:MOV  SP,#60H
          MOV  B,#100
          MOV  TMOD,#01H
          MOV  TL0,#03EH
          MOV  TH0,#5DH
          SETB  ET0
          SETB  EA
          SETB  TR0
HERE:SJMP  HERE
IT0P:MOV  TL0,#03EH
        MOV  TH0,#5DH
        DJNZ  B,RTURN
        MOV  B,#014H
        CPL  P1.0
RTURN:RETI

实验六:A/D转换

1.寻址方式

ORG 0000H
LJMP START
ORG 0100H
START:MOV SP,#60H
           MOV DPTR,#9000H
LOOP:MOVX @DPTR,A
          LCALL DELAY
          MOVX A,@DPTR
          MOV P1,A
          SJMP LOOP
DELAY:MOV R5,#41H
D1:DJNZ R5,D1
      RETI
      END

2.中断方式

ORG  00H
LJMP  START
ORG  03H
LJMP  PINT0
ORG  100H
START:MOV  SP,#60H
           SETB  IT0
           SETB  EX0
           SETB  EA
           MOV  DPTR,#9001H
           MOVX  @DPTR,A
           SJMP  $
LOOP:MOV  C,P3.0
          CPL  C
          MOV  P3.2,C
          SJMP  LOOP
PINT0:PUSH  ACC
          PUSH  PSW
          MOVX  A,@DPTR
          MOV  P1,A
          MOVX  @DPTR,A
          DJNZ  R2,PRET
          CLR  EA
PRET:POP  PSW
         POP  ACC
         RETI
         END

实验七-电子时钟

ORG 00H
LJMP START
ORG 0BH
LJMP TIME
ORG 0100H

START:
MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R3,#20
CLR A
MOV 40H,A
MOV 41H,A
MOV 42H,A
SETB ET0
SETB EA
SETB TR0
MOV 40H,#23H
MOV 41H,#59H
MOV 42H,#45H

LP:
MOV R7,#01H
MOV R0,#42H

LOOP:
MOV A,@R0
ANL A,#0FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#8004H
MOVX @DPTR,A
MOV A,R7
MOV DPTR,#8002H
MOVX @DPTR,A
RL A
MOV R7,A
LCALL DELLAY
MOV A,@R0
SWAP A
ANL A,#0FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#8004H
MOVX @DPTR,A

实验八--单片机的应用

(1)	ORG 00H
	LJMP START
	ORG 0100H
START: 	MOV A, #90H
	ADD A, #87H
	DA A
	MOV 40H, A
	MOV A,#78H
	ADDC A, #56H
	DA A
	MOV 41H,A
	SETB 01H
	SJMP $
	END
(2)
	ORG 00H
	LJMP START
	ORG 0100H
START:	MOV R1,#30H
	MOV R2,#10H
	CLR C
LOOP:	MOV @R1, A
	INC A
	INC R1
	DJNZ R2, LOOP
	SJMP $
	END 

实验五:定时器

ORG  0000H
RESET:LJMP  MAIN
ORG  000BH
LJMP  IT0P
ORG  1000H
MAIN:MOV  SP,#60H
          MOV  B,#014H
          MOV  TMOD,#01H
          MOV  TL0,#03EH
          MOV  TH0,#5DH
          SETB  ET0
          SETB  EA
          SETB  TR0
HERE:SJMP  HERE
IT0P:MOV  TL0,#03EH
        MOV  TH0,#5DH
        DJNZ  B,RTURN
        MOV  B,#014H
        CPL  P1.0
RTURN:RETI

好咯 完事咯,有需要的自取吧~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

篱笆外的xixi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值