DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H, 0FEH,0F6H
DB 0EEH,3EH,9CH,7AH,9EH,8EH 21
7.2 十六进制两位数加法器(数码显示)
程序介绍:将ADC0809输入的两个不同电压(相同电 压也可相加,只是为举例说明,所以取不同电压)所对应 的16进制数相加显示出来。实际应用例如:取代加法运放 电路。
程序操作:程序写完上电运行后,用本机配带的钟表 起微调图16所示电位器,输入两个不同电压,数码管会显 示两个不同的对应16进制数,随后数码管会显示两个16 进制数相加的值。 程序实例(add2.asm): ORG 0000H MAIN:
ADNUMBER EQU 30H ;AD转换值 ADDNUMBER EQU 31H ;加数值1 ADL EQU 32H ;//
ADH EQU 33H ;ADL转换高低位值 DISL EQU 34H ;//
DISH EQU 35H ;显示高低位值
ADDTOTAL EQU 36H ;第一次AD转换值 ADDJW EQU 37H ;加法进位数 ADDHOLD EQU 38H
;赋初值//////////////////////////////////////////// MOV ADDHOLD,#00H MOV ADDNUMBER,#00H MOV ADL,#00H MOV ADH,#00H MOV DISL,#00H 22
MOV DISH,#00H MOV ADDJW,#00H MOV ADDTOTAL,#00H
;////////////////////////////////////////////////// MAIN1:
ACALL AD ;呼叫AD子程序 ACALL DELAY ;延时
ACALL CAIFEN ;呼叫AD值拆分为高 低的程序
ACALL DISPLAY ;呼叫显示子程序 MOV A,ADNUMBER ;取AD值
CJNE A,ADDHOLD,ADD3 ;与上次AD值比
较,不相等,即输入了新的AD值,去AD3执行 AJMP MAIN1 ;是相等的,证
明没有输入新的AD值,回去显示老的AD值 ADD3: MOV A,ADDHOLD CJNE A,#00H,ADD4
MOV ADDHOLD,ADNUMBER ;有一种情况就
是是第一次进来,AD保持值里面是放的初值00,与取的AD值 不同,是这种情况,也返回去 AJM MAIN1
ADD4: MOV ADDNUMBER,ADDHOLD ;是真的输入
了新的AD值,将上次AD值给加数,为调加法程序做准备 MOV ADDHOLD,ADNUMBER ;将这次的AD 值也保持起来。准备与上一个AD值相加
;显示这次输入的AD值//////////////////////////////// ACALL DELAY ACALL CAIFEN 23
ACALL DISPLAY
;////////////////////////////////////////////////// DISPLAY1: ACALL DELAY ;延时
ACALL ADD1 ;呼叫加法子程序
ACALL DISPLAY ;显示 LOOP: AJMP LOOP ;返回主程序
;///////////////////////////////////////AD转换 AD:
MOV DPTR,#7F00H;指向转换地址 MOV A,#03H ;指向转换口 MOVX @DPTR,A ;转换 MOV R1,#64H
D1: DJNZ R1,D1 ;等100微秒转换完 MOVX A,@DPTR ;转换后的值给A MOV ADNUMBER,A ;转换的值给30H RET
;////////////////////////////////////////////////// ;拆分AD值程序////////////////////////////////////// CAIFEN: MOV A,ADNUMBER ANL A,#0FH MOV ADL,A ;取低位 MOV A,ADNUMBER ANL A,#0F0H SWAP A
MOV ADH,A ;取高位
MOV DISL,ADL 24
MOV DISH,ADH ;给显示值 RET
;////////////////////////////////////////////////// ;显示////////////////////////////////////////////// DISPLAY: MOV A,DISL MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D3: JNB TI,D3 CLR TI MOV A,DISH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D4: JNB TI,D4 CLR TI MOV A,ADDJW MOV DPTR,#SETTAB MOVC A,@A+DPTR
(完整版)单片机汇编语言经典一百例



