万年历汇编语言程序.doc

上传人:s9****2 文档编号:551661781 上传时间:2023-07-23 格式:DOC 页数:6 大小:33KB
返回 下载 相关 举报
万年历汇编语言程序.doc_第1页
第1页 / 共6页
万年历汇编语言程序.doc_第2页
第2页 / 共6页
万年历汇编语言程序.doc_第3页
第3页 / 共6页
万年历汇编语言程序.doc_第4页
第4页 / 共6页
万年历汇编语言程序.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《万年历汇编语言程序.doc》由会员分享,可在线阅读,更多相关《万年历汇编语言程序.doc(6页珍藏版)》请在金锄头文库上搜索。

1、程序在下面源程序:单路采集程序:MOV DPTR,#0F8FFH MOV R0,#00H ;将存储器的首地址存在R0,R1两个寄存器中 MOV R1,#00H MOV R2,#200D ;设置循环 MOV R3,#4 MOV R4,#8DMAIN: CLR P1.1 ;选中ADC0809 PUSH DPL ;DPTR入栈 PUSH DPH MOVX DPTR,A ;启动AD转换 ACALL DELAY ;延时5ms 保证采集数据频率为200HZ MOVX A,DPTR ;读数据 SETB P1.1 ;选中存储器 MOV DPL,R0 ;将存储器的地址给DPTR MOV DPH,R1 MOVX

2、DPTR,A ;存数据 INC DPTR ;指向下一存储单元 MOV R0,DPL ;将该单元地址重新存入寄存器中 MOV R1,DPH POP DPH ;DPTR出栈 POP DPL DJNZ R2,MAIN DJNZ R3,MAIN DJNZ R4,MAIN SJMP $ DELAY: ;延时程序 延时5ms MOV R5,#100D MOV R6,#24DLA:DJNZ R5,$ DJNZ R6,LA RET END 循环采集程序:MOV 30H,#00H ;将八块存储器的首地址分别存在30-3F共16个内部存储单元 MOV 31H,#00H MOV 32H,#00H MOV 33H,#

3、20H MOV 30H,#00H ;将八块存储器的首地址分别存在30-3F共16个内部存储单元 MOV 31H,#00H MOV 32H,#00H MOV 33H,#20H MOV 34H,#00H MOV 35H,#40H MOV 36H,#00H MOV 37H,#60H MOV 38H,#00H MOV 39H,#80H MOV 3AH,#00H MOV 3BH,#0A0H MOV 3CH,#00H MOV 3DH,#0C0H MOV 3EH,#00H MOV 3FH,#0E0H MOV R2,#200D ;设置外循环200*40共8000次 MOV R3,#40D MAIN: MOV

4、DPTR,#0F8FFH ;0通道的地址 MOV R0,#30H ;R0,R1作为存储器地址的中间变量 MOV R1,#31H MOV R4,#8 ;设置内循环 LOOP: CLR P1.1 ;选中ADC0809 PUSH DPL ;DPTR入栈 PUSH DPH MOVX DPTR,A ;输入一个数启动AD转换 ACALL DELAY ;等待延时以达到每秒采集200个数据 MOVX A,DPTR ;读数据 SETB P1.1 ;选中存储器 MOV DPL,R0 ;将存储器的地址给DPTR MOV DPH,R1 MOVX DPTR,A ;存数据 INC DPTR ;指向下一存储单元 MOV R

5、0,DPL ;将该单元地址重新存入内部数据存储单元 MOV R1,DPH INC R0 ;指向下一块存储器的地址 INC R0 INC R1 INC R1 POP DPH ;DPTR出栈 POP DPL INC DPH ;指向下一通道地址 DJNZ R4,LOOP ;内循环 DJNZ R2,MAIN ;外循环 DJNZ R3,MAIN SJMP $ DELAY: ;延时程序 延时600us MOV R5,#100 MOV R6,#3 LA:DJNZ R5,$ DJNZ R6,LA RET END 基于单片机的万年历汇编语言程序时间:2011-03-27 22:19:52 来源: 作者:;真正的

6、万年历:84bytes的51ASM;=SUB_WNL=万年历=*DengMiao*2004-06-01*GuangZhou*SJDATA30H;世纪BCD00TO99NHDATA31H;年号BCD00TO990000TO9999年YFDATA32H;月份BCD01TO12org000hMOVSP,#40HMOVSJ,#21H;2004-05MOVNH,#01HMOVYF,#4HACALLSUB_WNLSJMP$;=SUB_WNL=;入口:;SJDATA30H;世纪BCD00TO99;NHDATA31H;年号BCD00TO990000TO9999年;YFDATA32H;月份BCD01TO12;出

7、口;ACC-本月天数BCD28to31;B-本月1日的星期数1to6=星期1to星期6;0-星期日;使用:ACC,B,R5,R6;STACK:3bytes(不包括调用)ORG50HSUB_WNL:PUSHPSWMOVA,SJACALLBCD2BIN_MOD4;x400年:(大周期);=146097天=7*20871+0天;x100年:;000年=7*0+0+1-11=0*2+1*;100年=7*5217+7+1-22=1*2;200年=7*10435+7+1-44=2*2;300年=7*15653+7+1-66=3*2;1,2,4,6MOVA,R6;A=R6=SJ_BINMOD4RLCA;A=

8、A*2+CA=1,2,4,6*XRLA,#10000111B;A=87H-A;边界调整MOVR5,A;A=86H,85H,83H,81H;R5:星期MOVA,NHJZWNL_1ACALLBCD2BIN_MOD4XCHA,R5SUBBA,R5;0年;0=0+0+1+(-1)*MOVR5,AWNL_1:MOVA,YFADDA,#(WNL_TAB-$-4)MOVCA,A+PCMOVR6,ASWAPAACALLWNL_F0;大年对=3月调整准备ADDCA,R5;月调整MOVB,#7DIVAB;B=AMOD7MOVA,R6ACALLWNL_F0;大年调整准备ADDCA,#28POPPSWRETWNL_T

9、AB:DB3*2+5*32+0;1BIT0:2月标志DB0*2+1+1*32+0;2*BIT1.2:月大小DB3*2+1*32+16;300:28天DB2*2+4*32+16;401:-DB3*2+6*32+16;510:30天DB2*2+2*32+16;611:31天DB3*2+4*32+16;7BIT3:0-DB3*2+7*32+16;8BIT4:0:1/2月DB2*2+3*32+16;91:=3月WNL_F0:;6BYTES;大年调整准备RRCA;0AHANLA,#07H;0BH;0CHANLC,F0;0DH;0EHRET;0FHDB3*2+5*32+16;10HBIT5.7:星期调整数DB2*2+1*32+16;11H

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号