用单片机的定时器设计一个秒表程序,运行该程序后,内部RAM单元DEC的内容按1,2,3......,59,1的顺序每秒

作者&投稿:底虏 (若有异议请与网页底部的电邮联系)
关于单片机的问题 高悬赏 速度的来!!!~

1.何为单片机?
单片机又称单片微控制器,它是把一个计算机系统集成到一个芯片上。它是一种在线式实时控制计算机.
2.MCS51单片机能位寻址的内部RAM字节地址 20h到2fh ,这些地址的范围是 00h到 7fh
3.MCS51的定时器/计数器0的入口地址是0003H
4.MCS8032有2个定时器/数计器
5.MCS8031有一个内部RAM MCS8032有一个内部RAM
6.MCS51有4组通用寄存器 位于f0h
7.MCS51(40脚的)的Po口可作 集成器、数据传送器 、
8.MCS51单片机系统有2种存储器 ,对应片内和片外
9.当MCS51的管脚/EA接触低电平时,复位后从pc取指令执行
10.简述MCS51的P3口各引脚的变异功能 p3.0串行数据接收 p3.1 串行数据发送 p3.2 外中断0输入 p3.3 外中断1输入 p3.4计算器0计算输入 p3.5 计算器1计算输入 p3.6外部RAM写选通信号
p3.7 外部RAM读选通信号
11.MCS51寻址方式有 寄存器寻址 ,相对寻址,直接寻址,立即寻址 寄存器间址,变址寻址,位寻址
12.MCS51 ri dptr寄存器可以做间接寻址
13.MCS51的堆栈在81h 执行POP指令时,SP是后减
二、问执行下列程序段的每条指令后填空
MOV SP , #15H ; SP= 15h
MOV A , #13 ; A = 13
MOV R0 , #15H ; R0= 15h
MOV @R0 , #16 ; @R0= 16
POP ACC ; A = 14 SP= 16h
三、问执行下列程序段的每条指令后,填空
MOV A , #30H ; A= 30h
SWAP A ; A= 30h
ADD A , ACC ; A= 60h
INC A ; A= 31h


呵呵 N多年没有摸书了 也不知道了。是对是错自己把握!

做了一个4位数码管的,可以计时到9分59.9秒
KEYVAL EQU 30HDAT EQU 33HSCANLED EQU 39HCLK EQU 77HSEC EQU 78HSEC1 EQU 79HSEC2 EQU 7AHDOT BIT 00HORG 0000HLJMP MAINORG 0003HLJMP EXTINT0ORG 000BHLJMP T0ISR ;50ms定时ORG 001BHLJMP T1ISR ;扫描显示ORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#11H MOV TH0,#03CH MOV TL0,#0B0H MOV TH1,#0ECH MOV TL1,#078H MOV KEYVAL,#2 MOV 33H,#10H MOV 34H,#10H MOV 35H,#10H MOV 36H,#10H MOV CLK,#0 SETB IT0 SETB EX0 CLR TR0 CLR ET0 MOV R2,#0 SETB TR1 SETB ET1 SETB EALOOP: MOV A,KEYVALLOOP1: JNZ LOOP2 ;启动 SETB TR0 SETB ET0 SJMP LOOPLOOP2: DEC A JNZ LOOP3 ;暂停 CLR TR0 CLR ET0 SJMP LOOPLOOP3: DEC A JNZ LOOP ;清零 MOV 36H,#0 MOV 35H,#0 MOV 34H,#0 MOV 33H,#0 SJMP LOOPEXTINT0: PUSH ACC INC KEYVAL MOV A,KEYVAL CJNE A,#3,EXT00EXT00: JC EXT01 MOV KEYVAL,#0EXT01: POP ACC RETIT0ISR: PUSH ACC CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 INC CLK MOV A,CLK CJNE A,#2,T0ISRE MOV CLK,#0 INC 36H MOV A,36H CJNE A,#10,T0ISRE MOV 36H,#0 INC 35H MOV A,35H CJNE A,#10,T0ISRE MOV 35H,#0 INC 34H MOV A,34H CJNE A,#6,T0ISRE MOV 34H,#0 INC 33H MOV A,33H CJNE A,#10,T0ISRE MOV 33H,#0T0ISRE: POP ACC RETIT1ISR: PUSH ACC CLR TR1 MOV TH1,#0ECH MOV TL1,#78H SETB TR1 MOV DPTR,#LEDTABT100: MOV R0,#DAT MOV A,SCANLED ADD A,R0 MOV R0,A MOV A,SCANLED JNZ T101 MOV P2,#01H SETB DOT SJMP T1DIST101: DEC A JNZ T102 MOV P2,#02H CLR DOT SJMP T1DIST102: DEC A JNZ T103 MOV P2,#04H SETB DOT SJMP T1DIST103: MOV P2,#08H CLR DOTT1DIS: MOV A,@R0 MOVC A,@A+DPTR JNB DOT,T1DIS1 ORL A,#01HT1DIS1: CPL A MOV P0,A INC SCANLED MOV A,SCANLED CJNE A,#4,T1END MOV SCANLED,#0T1END: POP ACC RETILEDTAB: DB 0FCH ;"0" 00H DB 60H ;"1" 01H DB 0DAH ;"2" 02H DB 0F2H ;"3" 03H DB 66H ;"4" 04H DB 0B6H ;"5" 05H DB 0BEH ;"6" 06H DB 0E0H ;"7" 07H DB 0FEH ;"8" 08H DB 0F6H ;"9" 09H DB 0EEH ;"A" 0AH DB 3EH ;"B" 0BH DB 9CH ;"C" 0CH DB 7AH ;"D" 0DH DB 9EH ;"E" 0EH DB 8EH ;"F" 0FH DB 00H ;" " 10H

END

$NOMOD51
$INCLUDE(F:\c51\ASM\Reg51GB.inc)

ADDRDISPLAY EQU 30H
DATADISPLAY EQU 31H
datahour equ 32h
dishour_H equ 33h
dishour_L equ 34h
datamin equ 35h
dismin_H equ 36h
dismin_L equ 37h
datasec equ 38h
datasec_H equ 39h
datasec_L equ 3ah
SYM_L EQU 3BH
SYM_H EQU 3CH
FLAG EQU 3DH
DLY1 EQU 3EH
DLY2 EQU 3FH
DLY3 EQU 40H
SETHOUR EQU 41H
SETMIN EQU 42H

ORG 0000H
SJMP MAIN
ORG 000BH ;timer0 overflow int vector
AJMP TP0
ORG 0030H
;INITIALIZE PROGRAM
MAIN:
CLR P1.7
CLR 02H ;1s计时到标志
CLR 03H
CLR 04H
CLR 05H
CLR 06H
CLR 07H
clr 08h
CLR 09H
CLR 10H
CLR 11H;定时模式标志位
clr psw.7
mov datahour,#00H
mov datamin,#00H
mov datasec, #00H
MOV SYM_L,#00H ;2500次定时器中断计数
MOV SYM_H,#00H ;2500次定时器中断计数
MOV FLAG,#00H ;闪烁标志
MOV SETHOUR,#08H
MOV SETMIN,#08H
MOV TMOD,#82H
MOV TL0,#38H
MOV TL0,#38H
SETB TR0
SETB EA
SETB ET0

;Main Program
LOOPMAIN:
JNB 11H, pan1 ;判断定时模式标志位是否为1
mov a,SETMIN
cjne a,datamin,pan1
mov a,SETHOUR
cjne a,datahour,pan1
SETB P1.7
pan1:
JNB 10H,SLT
JNB 08H,SLT
SETB P1.7
SLT:
JNB 09H,ZHUAN1
MOV R3,SETHOUR
MOV R4, SETMIN
MOV datasec,#00H
SJMP showhour
ZHUAN1:
MOV R3,datahour
MOV R4,datamin
showhour:
mov a, R3
mov b,#10
div ab
mov dishour_H, a
mov dishour_L, b
showmin:
mov a, R4
mov b,#10
div ab
mov dismin_H,a
mov dismin_L,b
showsec:
mov a, datasec
mov b,#10
div ab
mov datasec_H,a
mov datasec_L,b

;Display #00 at #6 LED
SHOWTIME:
JB 03H,FLH_L
MOV ADDRDISPLAY,#06H
MOV DATADISPLAY,dishour_H
CALL SUBDISPLAY

FLH_L:
JB 04H,FLM_H
MOV ADDRDISPLAY,#05H
MOV DATADISPLAY,dishour_L
CALL SUBDISPLAY

FLM_H:
JB 05H,FLM_L
MOV ADDRDISPLAY,#04H
MOV DATADISPLAY, dismin_H
CALL SUBDISPLAY
FLM_L:
JB 06H,FLS
MOV ADDRDISPLAY,#03H
MOV DATADISPLAY,dismin_L
CALL SUBDISPLAY
FLS:
JB 07H,KEY
MOV ADDRDISPLAY,#02H
MOV DATADISPLAY,datasec_H
CALL SUBDISPLAY

MOV ADDRDISPLAY,#01H
MOV DATADISPLAY,datasec_L
CALL SUBDISPLAY
SJMP KEY

SUBDISPLAY:
;Select address
MOV P0,#0FFH
MOV A,#01H
DJNZ ADDRDISPLAY,LOOPDIS
CPL A
CLR ACC.7
MOV P1,A
SJMP LOOPDISB

LOOPDIS:
RL A
DJNZ ADDRDISPLAY,LOOPDIS
CPL A
CLR ACC.7
MOV P1,A

;Select Data
LOOPDISB:
MOV DPTR,#DISPLAYTAB
MOV A,DATADISPLAY
MOVC A,@A+DPTR
MOV P0,A
RET

;Table
DISPLAYTAB:
DB 040H,079H,024H,030H,19H,12H,02H,078H,00H,10H

KEY:
MOV A,P2
JNB ACC.0,Q0
CLR 11H
KEY1:
JNB ACC.1,Q1
CLR 10H
KEY2:
JNB ACC.2,Q2
JNB ACC.3,Q3
JNB ACC.4,Q4
LJMP LOOPMAIN
Q0:
SETB 11H
SJMP KEY1
Q1:
SETB 10H
SJMP KEY2
Q2:
ACALL DELAY
JNB ACC.2,PROM2
CLR 09H
LJMP LOOPMAIN

PROM2:
SETB 09H
MOV A,P2
JNB ACC.3,Q3
JNB ACC.4,Q4
LJMP LOOPMAIN
Q3:
ACALL DELAY
JNB ACC.3,PROM3
LJMP LOOPMAIN
Q4:
ACALL DELAY
JNB ACC.4,PROM4
LJMP LOOPMAIN

PROM3:
;ACALL DELAY
INC FLAG
MOV A,FLAG
CJNE A,#06H,over1
mov FLAG,#00H
CLR 03H
CLR 04H
CLR 05H
CLR 06H
CLR 07H
OVER1:LJMP LOOPMAIN
PROM4:
MOV A,FLAG
CJNE A,#00H,JIAO1
LJMP LOOPMAIN

JIAO1:
CJNE A,#01H,JIAO2
JNB 09H,EXCHANGE1
MOV R0,SETHOUR
SJMP JIAO11
EXCHANGE1:
MOV R0,datahour
JIAO11:
mov a,R0
add a,#10
mov R0,a
mov b,#10
div ab
cjne a,#03h,JXB1
mov a,R0
anl a,#0fh
mov R0,a
JNB 09H,over2
mov SETHOUR,R0
LJMP SHOWHOUR
JXB1:
JNB 09H,over2
MOV SETHOUR,R0
LJMP SHOWHOUR
over2:
MOV datahour,R0
LJMP SHOWHOUR
JIAO2:
MOV A,FLAG
CJNE A,#02H,JIAO3
JNB 09H,EXCHANGE2
MOV R0,SETHOUR
SJMP JIAO22
EXCHANGE2:
MOV R0,datahour
JIAO22:
mov a,R0
ADD a,#01h
mov R0,a
mov b,#10
div ab
cjne a,#02h,JXB2
mov a,b
cjne a,#04h,JXB2
mov a,R0
anl a,#0f0h
mov R0,a
JNB 09H,over3
mov SETHOUR,R0
LJMP showhour
JXB2:
JNB 09H,over3
mov SETHOUR,R0
LJMP showhour
over3:
MOV datahour,R0
LJMP showhour
JIAO3:
MOV A,FLAG
CJNE A,#03H,JIAO4
JNB 09H,EXCHANGE3
MOV R1,SETMIN
SJMP JIAO33
EXCHANGE3:
MOV R1,datamin
JIAO33:
mov a,R1
ADD a,#10
mov R1,a
mov b,#10
div ab
cjne a,#06h,JXB3
mov a,R1
anl a,#0fh
mov R1,a
JNB 09H,over4
mov SETMIN,R1
LJMP showmin
JXB3:
JNB 09H,over4
MOV SETMIN,R1
LJMP showmin
over4:
MOV datamin,R1
LJMP showmin
JIAO4:
MOV A,FLAG
CJNE A,#04H,JIAO5
JNB 09H,EXCHANGE4
MOV R1,SETMIN
SJMP JIAO44
EXCHANGE4:
MOV R1,datamin
JIAO44:
INC R1
JNB 09H,over5
mov SETMIN,R1
LJMP showmin
over5:
MOV datamin,R1
LJMP showmin
JIAO5:
CJNE A,#05H,over6
MOV datasec,#00h
over6:
LJMP showsec

;------------timer0 overflow ISR-----------------------------
TP0:
PUSH ACC ;保护现场
PUSH PSW
PUSH DPH
PUSH DPL
JNB 02H,COUNT ;判断是否需要修改时间寄存器
clr 02h ;(02h)=1 处理时间寄存器
inc datasec
mov A,datasec
CJNE A,#60,COUNT
mov datasec,#00h
inc datamin
CLR 08H
CLR P1.7
mov a,datamin
cjne a,#60,COUNT
mov datamin,#00h
inc datahour
SETB 08H
mov a,datahour
cjne a,#24,COUNT
mov datahour,#00h
COUNT: ;(02h)=0;中断计数器加1
MOV A,SYM_L
ADDC A,#01H
MOV SYM_L,A
JNB PSW.7,COMP ;判断进位
MOV SYM_L,#00H
INC SYM_H
COMP: ;判断进入中断的次数是否达到2500(09C4H)次
MOV A,SYM_H
CJNE A,#09H,OVER
MOV A,SYM_L
CJNE A,#0C4H,OVER
SETB 02H ;置时间标识位
MOV SYM_L,#00H
MOV SYM_H,#00H
MOV A,FLAG ;判断是否需要闪烁
CJNE A,#00H,TIAO

OVER: ;恢复现场
CLR PSW.7
POP DPL
POP DPH
POP PSW
POP ACC
RETI

TIAO: ;闪烁的程序
CJNE A,#01H,TIAO1
CPL 03H
SJMP OVER
TIAO1:
CJNE A,#02H,TIAO2
CLR 03H
CPL 04H
SJMP OVER
TIAO2:
CJNE A,#03H,TIAO3
CLR 04H
CPL 05H
SJMP OVER
TIAO3:
CJNE A,#04H,TIAO4
CLR 05H
CPL 06H
SJMP OVER
TIAO4:
CJNE A,#05H,OVER
CLR 06H
CPL 07H
SJMP OVER
;---------------------------------------

DELAY:
MOV DLY1,#01H
DELAYA:
MOV DLY2,#0FFH
DELAYB:
MOV DLY3,#0FFH
DELAYC:
NOP
DJNZ DLY3,DELAYC
DJNZ DLY2,DELAYB
DJNZ DLY1,DELAYA
RET
END
这个是源程序,不错的,我试过的


如何在单片机上设置定时器?
大概可以按照以下方式设置:配置定时器:选择一个合适的定时器,比如TIM3。根据定时器的时钟频率和预分频系数,计算所需的定时周期。假设定时器的时钟频率为72MHz,预分频系数为72,那么定时周期为1ms,即1kHz的频率。配置定时器的自动重装载寄存器(ARR):将ARR值设置为定时周期减1,即ARR = 1000 - ...

51单片机定时器设置:
51单片机定时器设置中,TMOD寄存器的模式设置至关重要。表达式TMOD = (TMOD & 0XF0) | 0X01实际上是一个巧妙的操作,用于控制定时器0的工作模式。首先,& 0XF0是一个逻辑与操作,它将TMOD寄存器的高4位与0XF0进行按位与运算。由于0XF0的二进制形式是11110000,这个操作的结果是保留TMOD的高4位不变...

51单片机如何配置定时器2?
1. 确定定时器2的寄存器配置 首先,需要查看51单片机的数据手册或参考手册,以了解定时器2的相关寄存器和控制位。这些寄存器通常包括定时器模式控制寄存器、定时器初值寄存器、定时器控制寄存器等。了解这些寄存器的位定义和功能是实现定时器2配置的关键。2. 设置定时器2的模式 定时器2通常具有多种工作模式,...

单片机定时器\/计数器有哪几种工作方式?
1. 8051单片机内置两个定时器\/计数器,分别是T0和T1。2. T0和T1各有四种工作模式。方式0为13位定时\/计数模式,其最大计数值为2^13,即8192,对应于8192个机器周期。此模式为兼容旧单片机而设计,初学者无需深入掌握。3. 方式1是16位定时\/计数模式,其最大计数值为2^16,即65536,能够实现最大...

51系列单片机内部定时\/计数常用的两种工作方式,各有说明特点?
51系列单片机内部定时\/计数常用的两种工作方式分别是模式1(16位定时器)和模式2(8位自动重装载定时器)。它们的特点如下:1. 模式1(16位定时器):- 该模式下,定时器\/计数器T0和T1均以16位的方式运作。- 每次达到预设的计数值后(即溢出),需要重新设置初值以继续计数。2. 模式2(8位自动重...

单片机中,定时器如何初值计算?
1、计算定时器计数频率:定时器T0在方式2下,每个计数周期为12个晶振周期,因此计数频率为6MHz \/ 12 = 500 kHz。2、计算定时器初值:要实现0.5ms定时,需要定时器T0计数500次,因此初值为 65536 - 500 = 65036 (0xFC1C)。对于定时器T1,由于题目中没有给出需要实现的定时时间,无法直接计算出...

51单片机的定时器是怎么设置的
单片机定时器的设置步骤为:1、设置定时器的工作模式,共4种工作方式,两种模式(计数器\/定时器)。比如:MOV TMOD,#01;设置定时器0位定时器模式,工作方式1 2、根据定时时间赋初值。比如定时10毫秒,那么如果12M晶振的话是10000个机器周期。定时器是溢出申请中断,所以用溢出值减去定时周期为初值。MOV ...

.MCS-51单片机的定时器\/计数器有哪几种操作模式?各有什么特点?
2. 方式1的操作模式是16位计数模式,由TL0作为低8位和TH0作为高8位,共同构成了16位加1计数器。3. 方式2的操作模式是8位自动重装初值计数方式。这种方式特别适合用作精确的脉冲信号发生器。4. 方式3的操作模式只适用于定时\/计数器T0。当T1处于方式3时,相当于TR1=0,停止计数。5. 工作方式3将...

单片机中定时器的作用是什么?
51单片机定时器T1有3种工作模式:方式0,方式1,方式2。当INT0引脚为高电平时且TR0置位,TR0=1;启动定时器T0;当INT1引脚为高电平时且TR1置位,TR1=1;启动定时器T1。MCS-51的定时器T0有4种工作方式:方式0,方式1,方式2,方式3。MCS-51的定时器T1有3种工作方式:方式0,方式1,方式2。

单片机定时器设计程序中IE表示什么意思?
void int_server(void) interrupt 1 using 1 的含义 \\x0d\\x0avoid←这里的void表示函数类型\\x0d\\x0ainterrupt 0 ←这里的0表示中断源编号\\x0d\\x0ausing 1 ←这里的1表示选用的寄存器组别\\x0d\\x0a在MCS-51单片机中,单片机类型不同,中断源个数也有差别.例如8051有5个中断源,8052有6个中断...

环县15120529655: 用单片机的定时器设计一个秒表程序,运行该程序后,内部RAM单元SEC的内容按1,2,3...59,1 -
闾枯独圣: /*------秒表显示为00.00~99.99s , 一个开关功能为开始和停止,使用了外部中断0; 另一个开关功能为复位,使用了外部中断1.------*/ #include<regx51.h>unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管 ...

环县15120529655: 用单片机的定时器设计一个秒表程序,运行该程序后,内部RAM单元DEC的内容按1,2,3......,59,1的顺序每秒 -
闾枯独圣: $NOMOD51$INCLUDE(F:\c51\ASM\Reg51GB.inc) ADDRDISPLAY EQU 30H DATADISPLAY EQU 31H datahour equ 32h dishour_H equ 33h dishour_L equ 34h datamin equ 35h dismin_H equ 36h dismin_L equ 37h datasec equ 38h datasec_H ...

环县15120529655: 单片机的秒表设计的程序 -
闾枯独圣: 这个程序本身思路都已经非常清晰了呀,主要就是再把流程优化下即可了.定时器T0只负责产生秒信号,用两个计数单元来计数需要显示的内容,在低位秒信号满100后清零同时把高位单元加一,还有就是对按键的处理和显示的处理问题上,比如两个键同时按下如何处理,显示是用锁位来实现,还是不停的动态扫描实现等等

环县15120529655: 单片机秒表功能设计 -
闾枯独圣: 采用51的单片机即可实现.用定时器计时,每秒进位,输出到LED数码管上显示即可.利用一个外部中断,按键决定何时显示秒和分(也可在LED上同时显示分和秒).

环县15120529655: 51单片机:写一个10s的秒表程序,用一个按键分别控制秒表启动、停止、清零.(要求:使用定时器1定时,定时20中断一次)问题就在开关上,谁能给我说怎么处理 最好有代码 10 -
闾枯独圣: 设立一个标志变量,初始化时,变量=0.定时器中断函数写成若标志变量为1则time++启动过程:扫描按键,若扫到,去抖延时,若扫到,标志变量取反.停止过程:同上.清零:扫描按键,若扫到,去抖延时,若扫到,且标志变量为0(停止状态),再循环扫描按键几个来回,具体时间可以用for来控制,目的就是实现一个长按清零.直接求代码很无聊,要自己写出来,做出来,才能体会到成功的酸爽.难点在长按与短按的区分,加油.

环县15120529655: 单片机秒表程序 -
闾枯独圣:以下程序使用定时器1计数,定时10ms,60H为妙计数单元,4FH单元为秒标示位,一秒时间到,置位4FH ***********************************************************************************************************************ORG 0000H ;程序从0地址开始 ...

环县15120529655: 51单片机完成简易秒表的设计 -
闾枯独圣: 设计思路:1.定时器计时 设置秒表最小单位(如ms)设置定时器的寄存器初始值,定时器溢出显示等.2.键盘扫描 可设置中断也可直接键盘扫描,因键较少可以不必接成矩阵.可以只用三个键来实现. 键1:功能选择,包括功能设置、准备计时等 键2:计时开始,向上调整时间 键3:计时停止,向下调整时间3.显示 看单片机引脚多少,可以直接静态显示,可以用移位寄存器增加管脚功能.

环县15120529655: 用51单片机做秒表设计 -
闾枯独圣: 遇到懒学生了,这个不就是一个定时器加显示吗,有什么难的,自己翻翻微机原理书就可以做 了,也就四五十行汇编语言就行了,用C就更加简单,具体的方法:用定时器定时0.2ms,定时到了就给固定的一个变量加1,然后判断这个变量是不是到了500,到了就清零然后把秒的变量加1,就是1s了,(分和时也是如此,秒为60,秒清零,分加1);主程序就只管显示和按键,按键随便用中断还是查询,我建议你查询,因为程序简单,显示程序就是查个表,自己把数码显示的断码表编好就可以了,把秒的数值查表对应显示,完了就查询按键,按键累加,值为0是没按,1是按1次,2是按2次,3是按3次,同时清零,很简单的

环县15120529655: 你好,请教一下怎么用单片机知识、汇编语言设计一个秒表计时器,
闾枯独圣: 这个程序对于初学者来说综合性比较高.由于程序比较长,就不一一写出了.首先你可以定义三个8位寄存器如R2,R3,R4作为计数的分,秒,百分之一秒为、十分之一秒位.程序初始化设置相应的定时器模式和外部中断方式,打开相应的中断.用定时器产生一个10ms的中断开始计数.用外部中断控制计时,你可以设置一个标志位,没按下一次按键,标志位取反,就能控制计数的继续和暂停.至于时间清零,就很简单了,判断某一管脚为1或0时,上面三个8位寄存器如R2,R3,R4全部清零就行了.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网