📄 cs5532.lis
字号:
.module cs5532.c
.area text(rom, con, rel)
0000 .dbfile G:\CS5532\firmware\cs5532.c
0000 .dbfunc e cs5532_wr_byte _cs5532_wr_byte fV
0000 ; i -> R20
0000 ; dat -> R16
.even
0000 _cs5532_wr_byte::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 27
0004 ; /****************************************Copyright (c)**************************************************
0004 ; **
0004 ; **
0004 ; **
0004 ; ** 文 件 名: ca5532.c
0004 ; ** 最后修改日期: 2007-10-8 9:40
0004 ; ** 描 述: cs5532驱动程序
0004 ; ** 版 本: V1.0
0004 ; ** 主 控 芯 片:M16 晶振频率:7.37MHZ,
0004 ; ** IDE:ICCAVR 6.31
0004 ; **********************************************************************************************************/
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ;
0004 ; #include "DEFINE.H"
0004 ; #include "CS5532.H"
0004 ; #include "DELAY.H"
0004 ;
0004 ; uint08 cs5532_buf[4];
0004 ;
0004 ;
0004 ; /**********************************************************************
0004 ; functionName:void cs5532_wr_byte(uint08 dat)
0004 ; description:
0004 ; **********************************************************************/
0004 ; void cs5532_wr_byte(uint08 dat)
0004 ; {
0004 .dbline 30
0004 ; uint08 i;
0004 ;
0004 ; for(i=0;i<8;i++)
0004 4427 clr R20
0006 0EC0 xjmp L5
0008 L2:
0008 .dbline 31
0008 ; {
0008 .dbline 32
0008 ; if(dat&0x80)
0008 07FF sbrs R16,7
000A 02C0 rjmp L6
000C .dbline 33
000C ; SET_SDI();
000C D89A sbi 0x1b,0
000E 01C0 xjmp L7
0010 L6:
0010 .dbline 35
0010 ; else
0010 ; CLR_SDI();
0010 D898 cbi 0x1b,0
0012 L7:
0012 .dbline 36
0012 0000 nop
0014 .dbline 36
0014 0000 nop
0016 .dbline 37
0016 D99A sbi 0x1b,1
0018 .dbline 38
0018 0000 nop
001A .dbline 38
001A 0000 nop
001C .dbline 39
001C D998 cbi 0x1b,1
001E .dbline 40
001E 000F lsl R16
0020 .dbline 41
0020 0000 nop
0022 .dbline 42
0022 L3:
0022 .dbline 30
0022 4395 inc R20
0024 L5:
0024 .dbline 30
0024 4830 cpi R20,8
0026 80F3 brlo L2
0028 .dbline 43
0028 ; NOP();NOP();
0028 ; SET_SCK();
0028 ; NOP();NOP();
0028 ; CLR_SCK();
0028 ; dat<<=1;
0028 ; NOP();
0028 ; }
0028 ; SET_SDI();
0028 D89A sbi 0x1b,0
002A .dbline -2
002A L1:
002A 0E940000 xcall pop_gset1
002E .dbline 0 ; func end
002E 0895 ret
0030 .dbsym r i 20 c
0030 .dbsym r dat 16 c
0030 .dbend
0030 .dbfunc e cs5532_rd_byte _cs5532_rd_byte fc
0030 ; temp -> R16
0030 ; i -> R18
.even
0030 _cs5532_rd_byte::
0030 .dbline -1
0030 .dbline 55
0030 ; }
0030 ;
0030 ;
0030 ;
0030 ;
0030 ;
0030 ; /**********************************************************************
0030 ; functionName:uint08 cs5532_rd_byte(void)
0030 ; description:
0030 ; **********************************************************************/
0030 ; uint08 cs5532_rd_byte(void)
0030 ; {
0030 .dbline 57
0030 ; uint08 i;
0030 ; uint08 temp=0;
0030 0027 clr R16
0032 .dbline 59
0032 ;
0032 ; for(i=0;i<8;i++)
0032 2227 clr R18
0034 0AC0 xjmp L12
0036 L9:
0036 .dbline 60
0036 ; {
0036 .dbline 61
0036 ; temp<<=1;
0036 000F lsl R16
0038 .dbline 62
0038 ; SET_SCK();
0038 D99A sbi 0x1b,1
003A .dbline 63
003A ; NOP();NOP();
003A 0000 nop
003C .dbline 63
003C 0000 nop
003E .dbline 64
003E ; if(STU_SDO)
003E .dbline 65
003E ; temp|=1;
003E 0160 ori R16,1
0040 L13:
0040 .dbline 66
0040 D998 cbi 0x1b,1
0042 .dbline 67
0042 0000 nop
0044 .dbline 67
0044 0000 nop
0046 .dbline 67
0046 0000 nop
0048 .dbline 68
0048 L10:
0048 .dbline 59
0048 2395 inc R18
004A L12:
004A .dbline 59
004A 2830 cpi R18,8
004C A0F3 brlo L9
004E .dbline 69
004E ; CLR_SCK();
004E ; NOP();NOP();NOP();
004E ; }
004E ; return temp;
004E .dbline -2
004E L8:
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbsym r temp 16 c
0050 .dbsym r i 18 c
0050 .dbend
0050 .dbfunc e cs5532_soft_rst _cs5532_soft_rst fV
0050 ; i -> R20
.even
0050 _cs5532_soft_rst::
0050 0E940000 xcall push_gset1
0054 .dbline -1
0054 .dbline 78
0054 ; }
0054 ;
0054 ;
0054 ; /**********************************************************************
0054 ; functionName:void cs5532_soft_rst(void)
0054 ; description:
0054 ; **********************************************************************/
0054 ; void cs5532_soft_rst(void)
0054 ; {
0054 .dbline 80
0054 ; uint08 i;
0054 ; for(i=0;i<15;i++)
0054 4427 clr R20
0056 03C0 xjmp L19
0058 L16:
0058 .dbline 81
0058 .dbline 82
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -