基于51单片机的计算器设计程序代码(汇编).doc
上传人:王子****青蛙 上传时间:2024-09-14 格式:DOC 页数:7 大小:28KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

基于51单片机的计算器设计程序代码(汇编).doc

基于51单片机的计算器设计程序代码(汇编).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

DBUFEQUﻩ30HTEMPﻩEQUﻩ40HYJﻩEQU50Hﻩﻩﻩ;结果存放YJ1ﻩEQU51H;中间结果存放GONGEQU52H;功能键存放ﻩﻩORG00HSTART:MOVR3,#0;初始化显示为空ﻩﻩMOVﻩGONG,#0MOV30H,#10HﻩMOV31H,#10HﻩﻩMOV32H,#10HﻩMOVﻩ33H,#10HﻩﻩMOV34H,#10HMLOOP:CALLDISPﻩ;PAN调显示子程序WAIT:ﻩCALLTESTKEY;判断有无按键ﻩJZWAITﻩCALLGETKEY;读键ﻩINCR3;按键个数ﻩCJNEA,#0,NEXT1;判断就是否数字键ﻩLJMPE1ﻩ;转数字键处理NEXT1:CJNEA,#1,NEXT2ﻩﻩLJMPE1NEXT2:ﻩCJNEA,#2,NEXT3LJMPE1NEXT3:ﻩCJNEA,#3,NEXT4LJMPE1NEXT4:CJNEA,#4,NEXT5ﻩLJMPE1NEXT5:ﻩCJNEA,#5,NEXT6ﻩLJMPE1NEXT6:ﻩCJNEA,#6,NEXT7ﻩLJMPE1NEXT7:CJNEA,#7,NEXT8LJMPE1NEXT8:CJNEA,#8,NEXT9LJMPE1NEXT9:CJNEA,#9,NEXT10LJMPE1NEXT10:CJNEA,#10,NEXT11;判断就是否功能键ﻩLJMPE2;转功能键处理NEXT11:ﻩCJNEA,#11,NEXT12LJMPE2NEXT12:ﻩCJNEA,#12,NEXT13LJMPﻩE2NEXT13:CJNEA,#13,NEXT14ﻩﻩLJMPE2NEXT14:ﻩCJNEﻩA,#14,NEXT15ﻩLJMPﻩE2NEXT15:ﻩLJMPE3ﻩ;判断就是否清除键E1:CJNER3,#1,N1ﻩ;判断第几次按键ﻩLJMPE11ﻩ;为第一个数字N1:ﻩCJNER3,#2,N2ﻩLJMPE12;为第二个数字N2:ﻩCJNER3,#3,N3ﻩLJMPE13ﻩ;为第三个数字N3:ﻩLJMPE3ﻩ;第四个数字转溢出E11:ﻩMOVﻩR4,Aﻩ;输入值暂存R4ﻩMOVﻩ34H,Aﻩ;输入值送显示缓存ﻩMOVﻩ33H,#10HﻩMOVﻩ32H,#10HﻩﻩLJMPﻩMLOOP;等待再次输入E12:MOVR7,Aﻩ;个位数暂存R7MOVB,#10MOVﻩA,R4ﻩMULﻩABﻩﻩﻩ;十位数ﻩADDﻩﻩA,R7ﻩﻩMOVﻩR4,A;输入值存R4ﻩﻩMOV32H,#10H;输入值送显示缓存ﻩMOV33H,34HﻩMOVﻩ34H,R7LJMPMLOOPE13:ﻩMOVR7,AMOVB,#10ﻩMOVﻩA,R4ﻩﻩMULﻩABﻩJBOV,E3;输入溢出ﻩADDA,R7ﻩJBﻩCY,E3;输入溢出ﻩﻩMOVR4,AﻩMOVﻩ32H,33Hﻩﻩ;输入值送显示缓存ﻩMOV33H,34HﻩMOV34H,R7ﻩLJMPﻩMLOOPE3:ﻩMOVR3,#0;按键次数清零MOVR4,#0;输入值清零ﻩﻩMOVﻩYJ,#0ﻩ;计算结果清零ﻩMOVGONG,#0ﻩ;功能键设为零MOVﻩ30H,#10Hﻩ;显示清空MOV31H,#10HMOV32H,#10HﻩMOV33H,#10HﻩMOVﻩ34H,#10HﻩLJMPﻩMLOOPE2:ﻩMOV34H,#10HﻩﻩMOVﻩ33H,#10HﻩMOV32H,#10HﻩMOVﻩR0,GONG;与上次功能键交换ﻩMOVﻩGONG,AﻩﻩMOVﻩA,R0ﻩCJNEA,#10,N21ﻩ;判断功能键ﻩLJMPJIAﻩ;"+"N21:ﻩCJNEﻩA,#11,N22ﻩLJMPJIANﻩ;”-”N22:CJNEA,#12,N23LJMPﻩCHENG;”*”N23:ﻩCJNEA,#13,N24ﻩLJMPCHUﻩ;”/"N24:ﻩCJNEﻩA,#0,N25ﻩﻩLJMPFIRST;首次按功能键N25:LJMPﻩDENﻩ;”="N4:ﻩLJMPE3FIRST:MOVﻩYJ,R4ﻩ;输入值送结果ﻩﻩMOVR3,#0;按键次数清零LJMPDISP1;结果处理JIA:MOVA,YJﻩ