单片机简单加法计算器
51单片机汇编
实现的是一个计算器,但是只能实现相加,写的比较简单,适合初学者使用。还要看具体开发板了
ORG 0000H
LJMP MAIN
MAIN:SETB P2.7CLR P2.6MOV P0,#0F7HCLR P2.7SETB P2.6CLR 30HKEYDOWN: MOV P3,#0FHLCALL DELAYMOV A,P3CJNE A,#0F0H,KEYSCANLJMP KEYDOWN
KEYSCAN: MOV A,P3CJNE A,#0EH,N1MOV R4,#00HLJMP NEXTN1: CJNE A,#0DH,N2MOV R4,#04HLJMP NEXTN2: CJNE A,#0BH,N3MOV R4,#08HLJMP NEXTN3: CJNE A,#07H,NEXTMOV R4,#0CHLJMP NEXTNEXT: ;判断按键所在行MOV P3,#0F0HMOV A,P3CJNE A,#0E0H,N4MOV R3,#00HLJMP NEXTN4: CJNE A,#0D0H,N5MOV R3,#01HLJMP NEXTN5: CJNE A,#0B0H,N6MOV R3,#02HLJMP NEXTN6: CJNE A,#70H,DIMOV R3,#03HLJMP DIDI: MOV A,R4ADD A,R3MOV B,AMOV DPTR,#LEDTABMOVC A,@A+DPTRCJNE A,#77H,D3 MOV P0,00HLJMP KEYDOWND3: CJNE A,#7CH,D6 MOV A,31HMOV B,32HADD A,BMOV B,#10DIV ABMOV DPTR,#LEDTABMOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P2.7CLR P2.6MOV P0,#0EFHCLR P2.7SETB P2.6MOV DPTR,#LEDTABMOV A,BMOVC A,@A+DPTRMOV P0,ALCALL DELAYLJMP KEYDOWND6: MOV P0,AJB 30H,D5MOV 31H,BSETB 30HLJMP KEYDOWN
D5: MOV 32H,BLJMP 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
还要
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
