返回雅虎首页
雅虎数码 > 业界 > IT产业 > 正文

DS1302+AT89S51构成的万年历四(1)

  • 2007-05-22 13:51:55
  • 点击:0
  • 评论:0
  • 好评:0
  • 坏评:0
  • 第1页/共5页 << 上一页 | 下一页 >>
侠客:yanchen.zhu
“雅虎侠客”经典推荐文章
专题:足球明星都用什么手机?
专题:搜寻电影中的明星手机
专题:谴责五大品牌坑人手机
专题:数码!美女!谁更诱惑?
专题:诺基亚全面展开夏季攻势
【参赛】五一电脑城购物心得
【参赛】美丽的青海湖 清凉一夏的诱惑
【参赛】恒基伟业手机—又一胡师傅?
【参赛】如何鉴别行、欧水、港行机子
【参赛】睁开慧眼,看服务提供商的黑招

DS1302+AT89S51构成的万年历(源程序四)

;*********************************************************
; 减一以后个位是F的数应该变成9的子程序
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;*********************************************************
NUMBER_F_9: DEC R3;
MOV A,R3;
CJNE A,#00H,LOOP1_1;
SJMP LOOP1;
LOOP1_1: CLR AC;
CLR C;

SUBB A,#0FH;
ANL A,#00001111B;
JNZ LOOP1;

MOV A,R3;
CLR C;
CLR AC;
SUBB A,#6;
MOV R3,A;
LOOP1: RET;
;******************************************************
; * * * 温度检测子程序 * * *
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;入口条件:程序调用TEMP_UTER
;出口信息:温度值存于STEMP单元中
;影响资源:A PSW R1 DPTR C P1.4 P1.5
;*****************************************************
TEMP_UTER: MOV DPTR,#TAB_TEMP;
MOV R1,#00H
CLR EA;
CLR ET1;
BOOK3: MOV TMOD,#11H;
MOV TH1,#0FFH
MOV TL1,#0F0H ;#0F0
SETB TR1
SETB P1.4
BOOK2: JB P1.5,BOOK1
JNB TF1,BOOK2
CLR TF1
INC R1 ;加初始值
SJMP BOOK3
BOOK1: MOV A,R1
ADD A,#0DH;
CLR TR1
CLR P1.4
PUSH ACC;
SUBB A,#32H ;超过50度按50度处理
POP ACC;
JC NEST;
MOV TEMP_SG,#32H;
SJMP NEST2;
NEST: MOVC A,@A+DPTR;
MOV TEMP_SG,A;
NEST2: RET;
;-9 -8 -7 -6 -5 -4 -3 -2 -1
TAB_TEMP: DB 0B9H,0B8H,0B7H,0B6H,0B5H,0B4H,0B3H,0B2H,0B1H
DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,10H
DB 11H,12H,13H,14H,15H,16H,17H,18H,19H,20H,21H
DB 22H,23H,24H,25H,26H,27H,28H,29H,30H,31H,32H
DB 33H,34H,35H,36H,37H,38H,39H,40H,41H,41H,43H
DB 44H,45H,46H,47H,48H,49H,50H
;*********************************************************
;以下子程序用于从当前公历日期,推算星期, 子程序
;入口信息:
;出口信息:
;影响资源:
;占用资源:
;入口:YEAR_SG,MONTH_SG ,DATE_SG ,定义公历年月日,BCD 码,其中月的
;BIT7 表示世纪,0 表示20 世纪,1 表示19 世纪,与PCF8563 一致
;出口WEEK, 0-6 表示星期日-星期六,与PCF8563 一致,程序不改变入口数据
;使用资源:ACC,B,PSW,TEMP_BYTE1,TEMP_BYTE2,TEMP_BYTE3
;***********************************************************
GET_WEEK: MOV A,YEAR_SG
MOV B,#16
DIV AB
MOV TEMP_BYTE1,B
MOV B,#10
MUL AB
ADD A,TEMP_BYTE1
MOV TEMP_BYTE1,A ;TEMP_BYTE1=年

MOV A,MONTH_SG
JNB ACC.4,GETW04
ADD A,#10
CLR ACC.4
GETW04: MOV TEMP_BYTE2,A ;TEMP_BYTE2=

MOV A,DATE_SG

  • 点击:0
  • 评论:0
  • 好评:0
  • 坏评:0

最新评论

内容 网友 时间

发表评论

您必须登陆后发表评论
登录  新用户?注册