单片机简单加法计算器

51单片机汇编

实现的是一个计算器,但是只能实现相加,写的比较简单,适合初学者使用。还要看具体开发板了

ORG 0000H					  
LJMP MAIN
MAIN:
	SETB P2.7
    CLR  P2.6
    MOV P0,#0F7H
    CLR P2.7
    SETB  P2.6
	CLR 30H

KEYDOWN:                 
 MOV P3,#0FH
 LCALL DELAY
 MOV A,P3
 CJNE A,#0F0H,KEYSCAN
 LJMP KEYDOWN
KEYSCAN:                       
 MOV A,P3
 CJNE A,#0EH,N1
 MOV R4,#00H
 LJMP NEXT
 N1: CJNE A,#0DH,N2
 MOV R4,#04H
 LJMP NEXT
 N2: CJNE A,#0BH,N3
 MOV R4,#08H
 LJMP NEXT
 N3: CJNE A,#07H,NEXT
 MOV R4,#0CH
 LJMP NEXT

NEXT:                          ;判断按键所在行
 MOV P3,#0F0H
 MOV A,P3
 CJNE A,#0E0H,N4
 MOV R3,#00H
 LJMP NEXT
 N4: CJNE A,#0D0H,N5
 MOV R3,#01H
 LJMP NEXT
 N5: CJNE A,#0B0H,N6
 MOV R3,#02H
 LJMP NEXT
 N6: CJNE A,#70H,DI
 MOV R3,#03H
 LJMP DI
 
 DI: MOV A,R4
     ADD A,R3
	 MOV B,A
     MOV DPTR,#LEDTAB
     MOVC A,@A+DPTR

	 CJNE A,#77H,D3 
	 MOV P0,00H
	 LJMP KEYDOWN



D3:  CJNE A,#7CH,D6	 
	 MOV A,31H
	 MOV B,32H
	 ADD A,B
	 MOV B,#10
	 DIV AB
     MOV DPTR,#LEDTAB
     MOVC A,@A+DPTR

     MOV P0,A
	 LCALL DELAY
	 SETB P2.7
     CLR  P2.6
     MOV P0,#0EFH
     CLR P2.7
     SETB  P2.6
	 MOV DPTR,#LEDTAB
	 MOV A,B
     MOVC A,@A+DPTR
	 MOV P0,A
	 LCALL DELAY
	 LJMP KEYDOWN

D6:  MOV P0,A
     JB 30H,D5
	 MOV 31H,B
	 SETB 30H

     LJMP KEYDOWN
D5:	 MOV 32H,B
     LJMP KEYDOWN 

DELAY:                 ;延时函数
MOV R6,#25
D2: MOV R7,#100
DJNZ R7,$
DJNZ R6,D2
RET
LEDTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
END  

还要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值