技术支持

应用方案

方案需求

Application Solutions

您的位置 : 首页  >  技术中心  >  应用方案  >  FeRAM 示范例程
代理品牌

样品申请

请简单描述您的需求,以便我们更精准的为您服务

样品申请 >

FM30C256汇编测试程序(8052)
日期:2007-07-24 来源:
;FM30c256 test program useing 8052

;data:2003/04/10
CHECDAT EQU 011H;
ADSAVE EQU 012H
ADSAVER EQU 013H
ADHIGH EQU 014H
ADLOW EQU 015H
FMDATA EQU 017H

SECOND EQU 30H
MINUTE EQU 31H
HOUR EQU 32H
DATE EQU 33H
DAY EQU 34H
MONTH EQU 35H
YEAR EQU 36H


WRONG_F BIT 00H

SDATA BIT P1.4
SCLK BIT P1.6


  ORG    0000H
       LJMP  STAR
        ORG  0003H
        LJMP  KINT
        ORG  000BH
        LJMP  ITXY
        ORG  100H
STAR: MOV  SP,#0C2H
CALL   CLRARE ;清楚单片机内部RAM
SETB SDATA
SETB SCLK
SETB P1.0
CALL FMREST

MAIN: CALL  SETCLK
MAIN1: ;CALL MEMORY
CALL RADCLK
JMP MAIN1

RADCLK: MOV A,#0D0H ;Slave Address – RTC Write
MOV ADSAVE,A
MOV A,#0D1H ;Slave Address – RTC Read
MOV ADSAVER,A
MOV A,#00H
MOV ADLOW,A
MOV A,#01H
MOV FMDATA,A
CALL WRITE ;
MOV R0,#SECOND
MOV R1,#06H
MOV A,#02H
MOV ADLOW,A
RADCLK1:CALL READ
MOV A,FMDATA
MOV @R0,A
INC R0
INC ADLOW
DJNZ R1,RADCLK1
MOV A,#00H
MOV ADLOW,A
MOV A,#00H
MOV FMDATA,A
CALL WRITE
RET
;2003 year 4 10 4 12 00 00 
SETCLK: CALL TIMESET
MOV A,#0D0H
MOV ADSAVE,A
MOV A,#0D1H
MOV ADSAVER,A
MOV A,#00H
MOV ADLOW,A
MOV A,#02H
MOV FMDATA,A
CALL WRITE
MOV A,#00H
MOV ADHIGH,A
MOV A,#02H
MOV ADLOW,A
MOV R0,#SECOND
MOV R1,#06H
SETCLK1:MOV A,@R0
MOV FMDATA,A
CALL WRITE
INC ADLOW
INC R0
DJNZ R1,SETCLK1
MOV A,#00H
MOV ADHIGH,A
MOV A,#00H
MOV ADLOW,A
MOV A,#00H
MOV FMDATA,A
CALL WRITE
MOV A,#00H
MOV ADHIGH,A
MOV A,#01H
MOV ADLOW,A
MOV A,#00H
MOV FMDATA,A
CALL WRITE
RET
;**********************************
TIMESET: ;Set clock
MOV A,#00H
MOV SECOND,A
MOV A,#00H
MOV MINUTE,A
MOV A,#12H
MOV HOUR,A
MOV A,#10H
MOV DATE,A
MOV A,#04H
MOV DAY,A
MOV A,#04H
MOV MONTH,A
MOV A,#03H
MOV YEAR,A
RET
;Memory Check
MEMORY: MOV A,#0A0H
MOV ADSAVE,A
MOV A,#0A1H
MOV ADSAVER,A
MOV A,#00H
MOV ADHIGH,A
MOV A,#00H
MOV ADLOW,A
MOV A,#055H
MOV FMDATA,A
CALL SWRITE
CALL SREAD
JB WRONG_F,RONG
CLR P1.0
RONG: RET

SREAD: MOV 00H,#00H
MOV 01H,#80H
CALL SSTAR
MOV A,ADSAVE;;;SAVE 地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV A,ADHIGH;HIGH地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV A,ADLOW ;LOW地址写入
MOV CHECDAT,A
CALL RLMOVE
CALL SSTAR
MOV A,ADSAVER
MOV CHECDAT,A
CALL RLMOVE
SREAD1: MOV A,#00H
MOV CHECDAT,A
CALL RRMOVE
MOV A,CHECDAT
CJNE A,FMDATA,IICRON
CLR SDATA
SETB SCLK
CLR SCLK
SETB SDATA
DJNZ 00H,SREAD1
DJNZ 01H,SREAD1
JMP SREAD2
IICRON: SETB WRONG_F
SREAD2: SETB SCLK
SETB SDATA
JNB SDATA,SREAD3
RET
SREAD3: CLR SCLK
JMP SREAD2

READ: CALL SSTAR
MOV A,ADSAVE;;;SAVE 地址写入
MOV CHECDAT,A
CALL RLMOVE
;MOV A,ADHIGH;HIGH地址写入
;MOV CHECDAT,A
;CALL RLMOVE
MOV A,ADLOW ;LOW地址写入
MOV CHECDAT,A
CALL RLMOVE
CALL SSTAR
MOV A,ADSAVER
MOV CHECDAT,A
CALL RLMOVE
READ1: MOV A,#00H
MOV CHECDAT,A
CALL RRMOVE
MOV A,CHECDAT
MOV FMDATA,A
CLR SDATA
SETB SCLK
CLR SCLK
SETB SDATA
READ2: SETB SCLK
SETB SDATA
JNB SDATA,READ3
RET
READ3: CLR SCLK
JMP READ2


SWRITE: CALL SSTAR
MOV A,ADSAVE;;;SAVE 地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV A,ADHIGH;HIGH地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV A,ADLOW;LOW地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV R1,#00H
MOV R2,#80H
SWRITE1:MOV A,FMDATA
MOV CHECDAT,A
CALL RLMOVE
DJNZ R1,SWRITE1
DJNZ R2,SWRITE1
CALL SSTOP
RET

WRITE: CALL SSTAR
MOV A,ADSAVE;;;SAVE 地址写入
MOV CHECDAT,A
CALL RLMOVE
;MOV A,ADHIGH;HIGH地址写入
;MOV CHECDAT,A
;CALL RLMOVE
MOV A,ADLOW;LOW地址写入
MOV CHECDAT,A
CALL RLMOVE
MOV A,FMDATA
MOV CHECDAT,A
CALL RLMOVE
CALL SSTOP
RET

RLMOVE: PUSH 00H
PUSH 01H
MOV R1,#08H
CLR C
RLMOVE1:MOV A,CHECDAT
RLC A
MOV CHECDAT,A
JC RLMOVE2
CLR SDATA
JMP RLMOVE3
RLMOVE2:SETB SDATA
RLMOVE3:SETB SCLK
CLR SCLK
DJNZ R1,RLMOVE1
SETB SDATA
SETB SCLK
JB SDATA,$
CLR SCLK
POP 01H
POP 00H
RET
RRMOVE: PUSH 00H
PUSH 01H
MOV R1,#08H
RRMOVE1:MOV A,CHECDAT
CLR SCLK
JB SDATA,RRMOVE2
CLR C
JMP RRMOVE3
RRMOVE2:SETB C
RRMOVE3:RLC A
MOV CHECDAT,A
SETB SCLK
DJNZ R1,RRMOVE1
CLR SCLK
SETB SDATA
POP 01H
POP 00H
RET

YSCX: PUSH ACC
PUSH 00H
PUSH 01H
MOV 00H,#00H
MOV 01H,#00H
YSCX1: DJNZ 01H,$
DJNZ 00H,YSCX1
POP 01H
POP 00H
POP ACC
RET


SSTAR: SETB SCLK
CLR SDATA
CLR SCLK
RET

SSTOP: SETB SCLK
SETB SDATA
RET
;*********************************************************
CLRARE: MOV 01H,#0C0H
MOV 00H,#02H
CLRARE1:MOV A,#000H
MOV @R0,A
INC R0
DJNZ R1,CLRARE1
RET
FMREST: CALL SSTAR ;Set Start Condition
MOV A,ADSAVER ;Save Address Transfer for read
MOV CHECDAT,A
CALL RLMOVE
MOV A,#00H
MOV CHECDAT,A
CALL RRMOVE ; Read the data from FRAM
CLR SDATA
CALL SSTOP
RET

KINT: RETI
ITXY: RETI
END



相关咨询

销售服务专线:0755-82127888

技术支持专线:0755-82127938

投诉专线:0755-82127989

深圳市华胄科技有限公司 版权所有 © 2005-2024  粤ICP备12085565号-1  销售服务专线:0755-82127888  技术支持专线:0755-82127938  投诉专线:0755-82127989

微信咨询

关注微信公众号咨询客服

客服热线

客服热线

0755-82127888

服务时间

工作日9:00~18:00

在线留言