arduinods1302库文件|DS1302初始化和读取的程序(汇编语言)

|

A. DS1302初始化和读取的程序(汇编语言)

;DS1302汇编程序调用(单字节模式)2009年04月17日 下午 19:19;时钟芯片DS1302 的程序(汇编);时钟芯片DS1302 的程序(汇编);*********************************************************************; 公司名称:; 模块名称:DS1302.a51; 功 能:实时时钟模块 时钟芯片型号:DS1302; 说 明:(修改版); 程序设计:; 设计时间:2009.04.17; 版 本 号:20090417;*********************************************************************/T_CLK Bit P3.2 ;实时时钟时钟线引脚T_IO Bit P3.3 ;实时时钟数据线引脚T_RST Bit P3.4 ;实时时钟复位线引脚;**********************************************************SECOND EQU 50H ;秒寄存器MINUTE EQU 51H ;分寄存器HOUR EQU 52H ;时寄存器DAY EQU 53H ;号寄存器MONTH EQU 54H ;月寄存器WEEK EQU 55H ;星期寄存器YEAR EQU 56H ;年寄存器ORG 0000H SJMP STARTORG 0040H ;**************************************;功 能:给秒 分 时 日 月 星期 年赋初值;**************************************START: MOV SECOND,#00H MOV MINUTE,#06H MOV HOUR,#17H MOV DAY,#00H MOV MONTH,#00H MOV WEEK,#00H MOV YEAR,#00H LCALL SET1302 LCALL GET1302 LCALL DISPLAYMAIN: MOV R5,#25 MOV TMOD,#01H MOV TH0,#63H ;置定时器初值(定时40ms) MOV TL0,#0C0H SETB TR0 ;启动定时器0LP1: JBC TF0,LP2 ;查询计数溢出 SJMP LP1 ;未到40 ms继续计数LP2: MOV TH0,#63H ;重新置定时器初值 MOV TL0,#0C0H LCALL DISPLAY ;显示 DJNZ R5,LP1 ;未到1 S继续循环 LCALL GET1302 ;每过1s从DS1302读取一次时间 MOV R5,#25 SJMP LP1DISPLAY: MOV R3,SECOND LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段码 SETB P2.0 ;位码 NOP CLR P2.0 LCALL DELAY MOV P2,#0FFH MOV P0,R3 SETB P2.1 NOP CLR P2.1 LCALL DELAY MOV R3,MINUTE LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段码 SETB P2.2 ;位码 NOP CLR P2.2 LCALL DELAY MOV P2,#0FFH MOV P0,R3 SETB P2.3 NOP CLR P2.3 LCALL DELAY MOV R3,HOUR LCALL CHAG MOV P2,#0FFH MOV P0,R2 ;段码 SETB P2.4 ;位码 NOP CLR P2.4 LCALL DELAY MOV P2,#0FFH MOV P0,R3 SETB P2.5 NOP CLR P2.5 LCALL DELAY RETDELAY: MOV R7,#50 D1: MOV R6,#10 D2: DJNZ R6,$ DJNZ R7,D1 RETCHAG: PUSH ACC ;低字节放入R2,高字节放入R3 MOV A,R3 ANL A,#0FH MOV R2,A MOV A,R3 SWAP A ANL A,#0FH MOV R3,A MOV DPTR,#DATATAB MOV A,R2 MOVC A,@A+DPTR MOV R2,A MOV A,R3 MOVC A,@A+DPTR MOV R3,A POP ACC RETDATATAB: DB 0B7H,90H,3DH,0B9H,9AH,0ABH,0AFH,0B0H,0BFH,0BBH;**********************************************************;子程序名:Set1302;功 能:设置DS1302 初始时间,并启动计时。;说 明:;调 用:RTInputByte;入口参数:初始时间在:Second,Minute,Hour,Day,Month,Week.YearL(地址连续);出口参数:无;影响资源:A B R0 R1 R4 R7;设 计:Reuben 日 期:2009-04-17;修 改: 日 期:;**********************************************************SET1302: CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;控制寄存器 LCALL RTInputByte MOV B, #00H ;写操作前WP=0 LCALL RTInputByte SETB T_CLK CLR T_RST MOV R0, #Second; MOV R7, #7 ;秒 分 时 日 月 星期 年 MOV R1, #80H ;秒写地址S13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;写秒 分 时 日 月 星期 年 地址 LCALL RTInputByte MOV A, @R0 ;写秒数据 MOV B, A LCALL RTInputByte INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, S13021 CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;控制寄存器 LCALL RTInputByte MOV B, #80H ;控制,WP=1,写保护 LCALL RTInputByte SETB T_CLK CLR T_RST RET;**********************************************************;子程序名:Get1302;功 能:从DS1302 读时间;说 明:;调 用:RTInputByte,RTOutputByte;入口参数:时间保存在:Second,Minute,Hour,Day,Month,Week.YearL;出口参数:无;影响资源:A B R0 R1 R4 R7;设 计:Reuben 日 期:2009-04-17;修 改: 日 期:;**********************************************************GET1302: MOV R0, #SECOND; MOV R7, #7 MOV R1, #81H ;秒地址G13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;秒 分 时 日 月 星期 年 地址 LCALL RTInputByte LCALL RTOutputByte MOV @R0, A ;秒 INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, G13021 RET;**********************************************************;功 能:写1302一字节 (内部子程序);**********************************************************RTInputByte: MOV R4, #8 Inbit1: MOV A, B RRC A MOV B, A MOV T_IO, C SETB T_CLK CLR T_CLK DJNZ R4, Inbit1 RET;**********************************************************;功 能:读1302一字节 (内部子程序);**********************************************************RTOutputByte: MOV R4, #8 Outbit1: MOV C, T_IO RRC A SETB T_CLK CLR T_CLK DJNZ R4, Outbit1 RET END给你吧,刚完成不久。

B. 如何用ARDUINO UNO+1602+DS1302做电子时钟

让你说的我都不想回答你了。嘿嘿 可但是但可是可但是呢。。我还是回答了。 你再弄一个Arino 1602液晶的IIC转接板吧,要不1602占用的IO口过多 转接板也有相应的库,应用很方便。后续你整合你那几个模块时也容易。

C. arino 如何读取库文件

在文件选选里面好像有,你看看吧

D. 新人问一下关于Arino的问题,我已经将库文件放在libraries里面了,为啥还是找不到库文件啊

zip包不要解压,从工具菜单中安装库,自动把库考到相应位置,并安装sample

E. 如何为arino添加第三方库文件

库文件需要安装,Arino IDE才能够使用。 方法是,点菜单栏的Sketch—》导入库—》添加库 然后找到你要添加的库文件的位置,添加进去。(比如是xxxx.h) 随后,每次你要用xxxx.h的时候 输入: #include就行。 随后,才是调用xxxx.h中的函数。 …


赞 (0)