📄 cs5522.src
字号:
; .\cs5522.SRC generated from: .\cs5522.c
$NOMOD51
NAME CS5522
P0 DATA 080H
P1 DATA 090H
P2 DATA 0A0H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
IE DATA 0A8H
EXF2 BIT 0C8H.6
RD BIT 0B0H.7
ES BIT 0A8H.4
IP DATA 0B8H
RI BIT 098H.0
INT0 BIT 0B0H.2
CY BIT 0D0H.7
TI BIT 098H.1
INT1 BIT 0B0H.3
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
WR BIT 0B0H.6
RCLK BIT 0C8H.5
sclk BIT 0A0H.3
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
IE0 BIT 088H.1
IE1 BIT 088H.3
sdi BIT 0A0H.2
B DATA 0F0H
CP_RL2 BIT 0C8H.0
sdo BIT 0A0H.0
ACC DATA 0E0H
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TH2 DATA 0CDH
P BIT 0D0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
SM1 BIT 098H.6
TL1 DATA 08BH
SM2 BIT 098H.5
TL2 DATA 0CCH
PT0 BIT 0B8H.1
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
cs BIT 0A0H.1
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
DPH DATA 083H
DPL DATA 082H
EXEN2 BIT 0C8H.3
REN BIT 098H.4
T2CON DATA 0C8H
RXD BIT 0B0H.0
TXD BIT 0B0H.1
F0 BIT 0D0H.5
PSW DATA 0D0H
?PR?_Se_Cs_W?CS5522 SEGMENT CODE INBLOCK
?PR?ReadW?CS5522 SEGMENT CODE INBLOCK
?PR?_Sen_Rec?CS5522 SEGMENT CODE INBLOCK
?PR?_F_Word?CS5522 SEGMENT CODE INBLOCK
?DT?_F_Word?CS5522 SEGMENT DATA OVERLAYABLE
?PR?initserial?CS5522 SEGMENT CODE INBLOCK
?PR?InitCs?CS5522 SEGMENT CODE INBLOCK
EXTRN CODE (eight_dis)
EXTRN DATA (dis_data)
EXTRN DATA (main_temp)
EXTRN BIT (main_temp_7)
EXTRN CODE (bcd_change)
PUBLIC InitCs
PUBLIC initserial
PUBLIC ?_F_Word?BYTE
PUBLIC _F_Word
PUBLIC _Sen_Rec
PUBLIC ReadW
PUBLIC _Se_Cs_W
RSEG ?DT?_F_Word?CS5522
temp1?344: DS 1
temp2?345: DS 1
temp3?346: DS 1
; #include<reg52.h>
; //***********************************
; #define unch unsigned char
; //***********************************
; sbit cs=P2^1; //和cs5522有关的端口
; sbit sdi=P2^2;
; sbit sdo=P2^0;
; sbit sclk=P2^3;
; //************************************
; extern unsigned char data t_d[8]; //当前显示数的BCD码。
; void eight_dis(void);
; //*************************************
; extern unsigned char bdata main_temp; //全局缓冲变量
; extern bit main_temp_7;
; extern unsigned char dis_data[3]; //cs5522读出数据的暂时存放处
; //***********************************
; void eight_dis(void);
; void bcd_change(void);
; //***********************************
; //向CS5522发送一个字节
; void Se_Cs_W(unsigned char Cs_Word)
RSEG ?PR?_Se_Cs_W?CS5522
_Se_Cs_W:
USING 0
;---- Variable 'Cs_Word?040' assigned to Register 'R7' ----
; SOURCE LINE # 21
; {
; SOURCE LINE # 22
; unsigned char data Cs_i=8;
; SOURCE LINE # 23
;---- Variable 'Cs_i?041' assigned to Register 'R6' ----
MOV R6,#08H
; main_temp=Cs_Word;
; SOURCE LINE # 24
MOV main_temp,R7
?C0001:
; while(Cs_i)
; SOURCE LINE # 25
; {
; SOURCE LINE # 26
; sdi=main_temp_7;
; SOURCE LINE # 27
MOV C,main_temp_7
MOV sdi,C
; sclk=1;
; SOURCE LINE # 28
SETB sclk
; main_temp<<=1;
; SOURCE LINE # 29
MOV A,main_temp
ADD A,ACC
MOV main_temp,A
; sclk=0;
; SOURCE LINE # 30
CLR sclk
; Cs_i--;
; SOURCE LINE # 31
DJNZ R6,?C0001
;
; }
; SOURCE LINE # 33
; }
; SOURCE LINE # 34
?C0003:
RET
; END OF _Se_Cs_W
; //*****************************************
; //***********************************
; //向CS5522读一个字节。
; unsigned char ReadW(void)
RSEG ?PR?ReadW?CS5522
ReadW:
USING 0
; SOURCE LINE # 38
; {
; SOURCE LINE # 39
; unsigned char Read_i;
; main_temp=0;
; SOURCE LINE # 41
CLR A
MOV main_temp,A
; Read_i=8;
; SOURCE LINE # 42
;---- Variable 'Read_i?142' assigned to Register 'R7' ----
MOV R7,#08H
?C0004:
; while(Read_i)
; SOURCE LINE # 43
; {
; SOURCE LINE # 44
;
; main_temp>>=1;
; SOURCE LINE # 46
MOV A,main_temp
CLR C
RRC A
MOV main_temp,A
; main_temp_7=sdo;
; SOURCE LINE # 47
MOV C,sdo
MOV main_temp_7,C
; sclk=1;
; SOURCE LINE # 48
SETB sclk
; sclk=0;
; SOURCE LINE # 49
CLR sclk
; Read_i--;
; SOURCE LINE # 50
DJNZ R7,?C0004
;
; }
; SOURCE LINE # 52
?C0005:
; return(main_temp);
; SOURCE LINE # 53
MOV R7,main_temp
;
;
; }
; SOURCE LINE # 56
?C0006:
RET
; END OF ReadW
;
;
; //***********************************
; //写1字节读3字节。
; void Sen_Rec(unsigned char Sen_Rec_tem)
RSEG ?PR?_Sen_Rec?CS5522
_Sen_Rec:
USING 0
;---- Variable 'Sen_Rec_tem?243' assigned to Register 'R7' ----
; SOURCE LINE # 61
; {
; SOURCE LINE # 62
;
; cs=0;
; SOURCE LINE # 64
CLR cs
; Se_Cs_W(Sen_Rec_tem);
; SOURCE LINE # 65
ACALL _Se_Cs_W
; dis_data[2]=ReadW();
; SOURCE LINE # 66
ACALL ReadW
MOV dis_data+02H,R7
; dis_data[1]=ReadW();
; SOURCE LINE # 67
ACALL ReadW
MOV dis_data+01H,R7
; dis_data[0]=ReadW();
; SOURCE LINE # 68
ACALL ReadW
MOV dis_data,R7
; cs=1;
; SOURCE LINE # 69
SETB cs
; }
; SOURCE LINE # 70
RET
; END OF _Sen_Rec
; //************************************
; //直接写4字节。
; void F_Word(unch temp1,unch temp2,unch temp3,unch temp4)
RSEG ?PR?_F_Word?CS5522
_F_Word:
USING 0
;---- Variable 'temp1?344' assigned to Register 'R6' ----
;---- Variable 'temp2?345' assigned to Register 'R5' ----
;---- Variable 'temp3?346' assigned to Register 'R4' ----
MOV R4,AR3
; SOURCE LINE # 73
; {
; SOURCE LINE # 74
; cs=0;
; SOURCE LINE # 75
CLR cs
; Se_Cs_W(temp1);
; SOURCE LINE # 76
ACALL _Se_Cs_W
; Se_Cs_W(temp2);
; SOURCE LINE # 77
MOV R7,AR5
ACALL _Se_Cs_W
; Se_Cs_W(temp3);
; SOURCE LINE # 78
MOV R7,AR4
ACALL _Se_Cs_W
; Se_Cs_W(temp4);
; SOURCE LINE # 79
MOV R7,temp4?347
ACALL _Se_Cs_W
; cs=1;
; SOURCE LINE # 80
SETB cs
;
; }
; SOURCE LINE # 82
RET
; END OF _F_Word
;
;
; //***********************************
; //起动串口。
; void initserial(void)
RSEG ?PR?initserial?CS5522
initserial:
USING 0
; SOURCE LINE # 87
; {
; SOURCE LINE # 88
; unsigned char data Init_Tem=15;
; SOURCE LINE # 89
;---- Variable 'Init_Tem?448' assigned to Register 'R5' ----
MOV R5,#0FH
; cs=0;
; SOURCE LINE # 90
CLR cs
?C0009:
; while(Init_Tem)
; SOURCE LINE # 91
; {
; SOURCE LINE # 92
; Se_Cs_W(0xff);
; SOURCE LINE # 93
MOV R7,#0FFH
ACALL _Se_Cs_W
; Init_Tem--;
; SOURCE LINE # 94
DJNZ R5,?C0009
; }
; SOURCE LINE # 95
?C0010:
; Se_Cs_W(0xfe);
; SOURCE LINE # 96
MOV R7,#0FEH
ACALL _Se_Cs_W
; cs=1;
; SOURCE LINE # 97
SETB cs
; }
; SOURCE LINE # 98
RET
; END OF initserial
;
;
;
;
; //***************************************************
;
; //配置CS5522
; void InitCs(void)
RSEG ?PR?InitCs?CS5522
InitCs:
USING 0
; SOURCE LINE # 106
; {
; SOURCE LINE # 107
; unsigned char i,j;
; //===================设置配置寄存器=======================
; //配置RS位寄存器写一
;
; F_Word(0x03,0x00,0x00,0x80); //直接写4字节?
; SOURCE LINE # 112
MOV ?_F_Word?BYTE+03H,#080H
CLR A
MOV R3,A
MOV R5,A
MOV R7,#03H
ACALL _F_Word
; //读配置寄存器
;
; //*************************************
; //判断RV是否为“1若RV为1,向RS写0
; /* do
; {
;
; // F_Word(0x03,0x00,0x00,0x80); //直接写4字节.
; //读配置寄存器
;
; Sen_Rec(0x0b); } //写1字节读3字节。
; while(~dis_data[0]&0x40); */
; //*************************************
; i=0xff;
; SOURCE LINE # 126
;---- Variable 'i?549' assigned to Register 'R7' ----
MOV R7,#0FFH
?C0012:
; while(i)
; SOURCE LINE # 127
; {
; SOURCE LINE # 128
; j=0xff;
; SOURCE LINE # 129
;---- Variable 'j?550' assigned to Register 'R6' ----
MOV R6,#0FFH
?C0014:
; while(j)
; SOURCE LINE # 130
; {j--;}
; SOURCE LINE # 131
DJNZ R6,?C0014
?C0015:
; i--;
; SOURCE LINE # 132
DJNZ R7,?C0012
;
; }
; SOURCE LINE # 134
?C0013:
; Sen_Rec(0x0b);
; SOURCE LINE # 135
MOV R7,#0BH
ACALL _Sen_Rec
; bcd_change();
; SOURCE LINE # 136
ACALL bcd_change
; eight_dis();
; SOURCE LINE # 137
ACALL eight_dis
?C0016:
; while(1)
; SOURCE LINE # 138
; {}
; SOURCE LINE # 139
SJMP ?C0016
; END OF InitCs
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -