好文档 - 专业文书写作范文服务资料分享网站

(完整版)单片机汇编语言经典一百例

天下 分享 时间: 加入收藏 我要投稿 点赞

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

(完整版)单片机汇编语言经典一百例

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6HDB0EEH,3EH,9CH,7AH,9EH,8EH217.2十六进制两位数加法器(数码显示)程序介绍:将ADC0809输入的两个不同电压(相同电压也可相加,只是为举例说明,所以取不同电压)所对应的16进制数相加显示出来。实际应用例如
推荐度:
点击下载文档文档为doc格式
56hcj0zcxr3ef8l940oa3cwgi893hn006c8
领取福利

微信扫码领取福利

微信扫码分享