No.43453 作者:zxlzjk 邮件:zhaojiankaibj@sina.com ID:11428 登陆:7次 文章数:33篇 最后登陆IP:218.244.38.178 最后登陆:2004/3/2 9:54:20 注册:2003/4/21 10:37:03 财富:207 发帖时间:2003/10/15 10:27:33 发贴者IP:218.244.38.178 标题:zxlzjk:一个正确 Ds1302 汇编程序,那位可以用C51语言调用他?帮忙看看。 摘要:No.43453一个正确 Ds1302 汇编程序,那位可以用C51语言调用他?帮忙看看。 一个完全精简得 DS1302汇编程序(51得),可以稳定运行,那位朋友可以用C51语言调用 他,请帮忙给出一个这样得调用示例。 就是C调用汇编函数得常规问题。但结合该具体问题。 参数传递: CURRENCE_TIME data 50h 其下得6个字节,分别放年月日,时分秒。 但是汇编程序中,该参数传递用得是R0。 谢谢大家帮忙。 $MOD51 ORG 0000H LJMP START ORG 03H LJMP IntRet ORG 000BH ; LJMP CLOCK LJMP IntRet ORG 13H LJMP IntRet ORG 1BH LJMP IntRet ORG 23H LJMP IntRet ORG 2BH LJMP IntRet INTRET: NOP RETI ; ; ORG 100H START: MOV SP,#62H MOV PSW,#00 mov 87h,#00h ; PCON ;...initialize SIO and counter MOV 87H,#00H MOV TMOD,#21H ; working mode of timer1, timer2 ; MOV A,#B1200 ;; MOV TH1,A ; auto-reload for baud rate ; MOV TL1,A ; timer 1 ; MOV TL0,#TLL0 ; timer0 ; MOV TH0,#THH0 SETB TR0 SETB TR1 MOV SCON,#0D0H ; SIO working mode nop clr TI clr RI mov SCON, #0D0h lcall init_time CLR A mov r0,#CURRENCE_TIME mov @r0,#0 inc r0 mov @r0,#0 inc r0 mov @r0,#0 inc r0 mov @r0,#0 inc r0 mov @r0,#0 inc r0 mov @r0,#0 inc r0 mov @r0,#0 inc r0 lcall read_time mov a,r7 loop: ajmp loop ;******************* ;*** ADDING HERE *** ;******************* ;.................. ;......DS1302...... ;.................. ;input : @r0 ;output : no ;trash : no ; init_time: mov r0,#CURRENCE_TIME mov @r0,#30h inc r0 mov @r0,#31h inc r0 mov @r0,#16h inc r0 mov @r0,#21h inc r0 mov @r0,#12h inc r0 mov @r0,#02h mov r0,#CURRENCE_TIME lcall write_time ret ;input : @r0 ;output : no ;trash : r5 : counter r6 : address r7 : content ; write_time: mov a,r7 PUSH ACC mov a,r6 PUSH ACC mov a,r5 PUSH ACC mov r6,#8eh mov r7,#0 lcall send_t1 ;WP=0 mov a,@r0 mov r7,a mov r6,#80h lcall send_t1 ;sec inc r0 mov a,@r0 mov r7,a mov r6,#82h lcall send_t1 ;min inc r0 mov a,@r0 mov r7,a mov r6,#84h lcall send_t1 ;hour inc r0 mov a,@r0 mov r7,a mov r6,#86h lcall send_t1 ;dat inc r0 mov a,@r0 mov r7,a mov r6,#88h lcall send_t1 ;mon inc r0 mov a,@r0 mov r7,a mov r6,#8ch lcall send_t1 ;year mov r7,#0a0h mov r6,#90h lcall send_t1 ;trickle mov r7,#0 mov r6,#0beh lcall send_t1 ;burst ......
>>返回讨论的主题
|