综合设计实验报告

设计课题:基于8086的简易电子琴设计   

摘  要

在学习《微机原理与接口设计》的基础上,针对课程设计要求,综合运用相关软件、硬件知识,设计一个简易电子琴,使之具有音区切换、数码管显示音区及当前音符、记录音符与音符持续时间、播放录制的音乐等功能。

关键词:8086;电子琴;仿真调试;汇编

目  录

第1章  总体方案设计    1

1.1 系统整体架构图    1

1.2 功能介绍    1

第2章  硬件设计    2

2.1 硬件资源    2

2.2 硬件接线图    3

2.2.1  8254接线图    3

2.2.2  8255及键盘、数码管接线图    3

第3章  软件设计    4

3.1 程序框图    4

3.1.1 整体框图    4

3.1.2 延时函数    5

3.1.3 键盘扫描    5

3.1.4 数码管显示    6

3.1.5 声音及时间录制    6

3.1.6 选择音区(高、中、低)    7

3.1.7 播放音乐    7

第4章  实验结果及演示    8

第5章  遇到的问题及改进措施    10

5.1 条件转移指令报错    10

5.2 无法使用8254作为录音时间计数器    10

附  录    11

程序源码    11

第1章  总体方案设计

1.1 系统整体架构图

系统整体架构图如图1-1所示。

https://wkrtcs.bdimg.com/rtcs/image?w=541&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A541.86666666667%2C%22h%22%3A480.53333333333%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage1.png%22%2C%22imgOriW%22%3A777%2C%22imgOriH%22%3A689%2C%22t%22%3A%22img%22%7D

图1-1

1.2 功能介绍

本实验设计实现了音区切换、数码管显示当前音区及音符、记录音符与音符持续时间、播放录制的音乐等功能。功能具体说明如下。

按键0-6为音符键,按下后会有对应的音符音调响起,按键弹起后音符终止,此时,按下的音符以及时间将被记录。按键12,13,14可以选择低音,中音,高音区。按下按键15后开始播放录制的音符(不超过16个)。另外数码管0显示音符,数码管2显示音区。


第2章  硬件设计

2.1 硬件资源

TD-PITE 实验教学系统,其主要系统构成如表2-1 所示。

 
CPUIntel 386EX 
 
存储器系统程序存储器:Flash ROM (128KB) 
数据存储器:SRAM (128KB)
 
 
信号源单次脉冲:消抖动脉冲 2 组 
 
逻辑电平开关与显示16 组电平开关,16 组电平显示 LED 灯(正逻辑) 
 
8259、8237、8254、8255、8251、DAC0832、ADC0809、SRAM 、键盘扫描及数 
接口实验单元码管显示、电子发声、点阵 LED、液晶 LCD(可选)、步进电机(可选)、直流电 
机、温度控制 
 
实验扩展单元2 组 40 线通用集成电路扩展单元、扩展模块总线单元 
 
系统电源+5V/2A,±12V/0.2A 
 
 

表 2-1  TD-PITE 系统构成

系统硬件结构如图 2-1 所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A308.66666666667%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage2.png%22%2C%22imgOriW%22%3A1596%2C%22imgOriH%22%3A790%2C%22t%22%3A%22img%22%7D

图2-1

2.2 硬件接线图

2.2.1  8254接线图

8254芯片接线如图2-2所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A297.2%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage3.png%22%2C%22imgOriW%22%3A831%2C%22imgOriH%22%3A396%2C%22t%22%3A%22img%22%7D

图2-2

2.2.2 8255及键盘、数码管接线图

8255及键盘、数码管接线方法如图2-3所示。

https://wkrtcs.bdimg.com/rtcs/image?w=577&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A577.66666666667%2C%22h%22%3A378.13333333333%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage4.png%22%2C%22imgOriW%22%3A799%2C%22imgOriH%22%3A523%2C%22t%22%3A%22img%22%7D

图2-3

第3章  软件设计

3.1 程序框图

3.1.1 整体框图

https://wkrtcs.bdimg.com/rtcs/image?w=504&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A504%2C%22h%22%3A704.93333333333%2C%22dataType%22%3A%22jpeg%22%2C%22c%22%3A%22word%2Fmedia%2Fimage5.png%22%2C%22imgOriW%22%3A3150%2C%22imgOriH%22%3A4406%2C%22t%22%3A%22img%22%7D

图3-1

3.1.2 延时函数

https://wkrtcs.bdimg.com/rtcs/image?w=288.53333333333&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A288.53333333333%2C%22h%22%3A334.4%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage6.png%22%2C%22imgOriW%22%3A459%2C%22imgOriH%22%3A532%2C%22t%22%3A%22img%22%7D

图3-2

3.1.3 键盘扫描

https://wkrtcs.bdimg.com/rtcs/image?w=302.13333333333&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A302.13333333333%2C%22h%22%3A375.46666666667%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage7.png%22%2C%22imgOriW%22%3A540%2C%22imgOriH%22%3A671%2C%22t%22%3A%22img%22%7D

图3-3

3.1.4 数码管显示

图3-4

3.1.5 声音及时间录制

https://wkrtcs.bdimg.com/rtcs/image?w=311.06666666667&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A311.06666666667%2C%22h%22%3A471.66666666667%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage9.png%22%2C%22imgOriW%22%3A513%2C%22imgOriH%22%3A778%2C%22t%22%3A%22img%22%7D

图3-5

3.1.6 选择音区(高、中、低)

https://wkrtcs.bdimg.com/rtcs/image?w=445&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A445%2C%22h%22%3A247.53333333333%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage10.png%22%2C%22imgOriW%22%3A712%2C%22imgOriH%22%3A396%2C%22t%22%3A%22img%22%7D

图3-6

3.1.7 播放音乐

图3-7

第4章  实验结果及演示

具体演示效果可参看以下视频截图。

系统初始运行状体如图4-2所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A350.8%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage13.png%22%2C%22imgOriW%22%3A1280%2C%22imgOriH%22%3A720%2C%22t%22%3A%22img%22%7D

图4-2

选择中音区,如图4-3所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A350.8%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage14.png%22%2C%22imgOriW%22%3A1280%2C%22imgOriH%22%3A720%2C%22t%22%3A%22img%22%7D

图4-3

按下音符健,如图4-4所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A350.8%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage15.png%22%2C%22imgOriW%22%3A1280%2C%22imgOriH%22%3A720%2C%22t%22%3A%22img%22%7D

图4-4

音乐播放,如图4-5所示。

https://wkrtcs.bdimg.com/rtcs/image?w=623&md5sum=9617fc6584d35925c557681e90bd2c0c&sign=3bb0aced3c&rtcs_flag=1&rtcs_ver=3.1&l=webapp&bucketNum=83&ipr=%7B%22w%22%3A623.6%2C%22h%22%3A350.8%2C%22dataType%22%3A%22png%22%2C%22c%22%3A%22word%2Fmedia%2Fimage16.png%22%2C%22imgOriW%22%3A1280%2C%22imgOriH%22%3A720%2C%22t%22%3A%22img%22%7D

图4-5

第5章  遇到的问题及改进措施

5.1 条件转移指令报错

在编写程序时曾多次遇到使用条件转移指令时编译出错的情况。查阅书本后发现条件转移指令只能在代码段的-128~+127字节内进行跳转。

解决办法:使用条件转移指令转移到一个较近程序段,并在这程序段使用无条件转移指令JMP进行转移。

5.2 无法使用8254作为录音时间计数器

在进行设计的过程中,曾多次按照使用8254作为时间计数器的方案进行编程,但经过多次尝试后均以失败告终。

解决办法:使用软件延时进行计时,每次延时执行完毕后进行计数,该计数值就是音符的相对持续时间。在播放时只需要调用同样时间长度的延时函数即可。

缺点:使用软件延时与计数,占用了CPU计算资源,导致数码管扫描频率降低,亮度变暗。同时对于录音时间的记录不精确,存在一定的误差。


附  录

程序源码

;=======================================================

; 文件名: Hypo.asm

; 功能描述: 按键0-6为音符键,按下后会有对应的音调响起,

;          按键弹起后音符终止。

;          按键12,13,14可以选择低音,中音,高音区。

;          按下按键15后开始播放之前按下的音符(不超过16个)

;          数码管0显示音符,数码管2显示音区

;=======================================================

IOY3            EQU 06C0H

MY8254_COUNT0    EQU IOY3+00H  ;8254计数器0端口地址

MY8254_COUNT1    EQU IOY3+02H  ;8254计数器1端口地址

MY8254_COUNT2    EQU IOY3+04H  ;8254计数器2端口地址

MY8254_MODE        EQU IOY3+06H  ;8254控制寄存器端口地址

MY8255_A    EQU  0600H        ;8255A端口地址

MY8255_B    EQU  0602H          ;8255B端口地址

MY8255_C    EQU  0604H        ;8255C端口地址

MY8255_CON    EQU  0606H        ;8255控制端口地址

SSTACK    SEGMENT STACK          ;定义堆栈段

DW 256 DUP(?)

SSTACK    ENDS       

DATA      SEGMENT

DTABLE    DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H;数码管的段选数据

DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H

FREQ_LIST1  DW  248,278,312,330,371,416,467      ;低音频率表

FREQ_LIST2  DW  495,556,624,661,742,833,935        ;中音频率表

FREQ_LIST3  DW  990,1112,1248,1322,1484,1665,1869 ;高音频率表

REC_DATA  DW 000,000,000,000,000,000,000,000    ;录音储存段

DW 000,000,000,000,000,000,000,000

SB        DB 00H,00H                            ;过渡段

REC_TIME  DB 00H,00H,00H,00H,00H,00H,00H,00H    ;时间储存段

DB 00H,00H,00H,00H,00H,00H,00H,00H

SAVE_SI    DW ?  ;录音储存地址储存

SI_FREQ    DW ?  ;频率表地址储存

SAVE_SI_TIME DW ? ;时间储存表地址储存

SAVE_TIME DB 01H  ;时间技术储存

CHOOSE_FLAG DW 01H;频率表选择标志位

DATA      ENDS

CODE     SEGMENT

ASSUME CS:CODE,DS:DATA  ;初始化数据段、代码段

START:  MOV AX,DATA

MOV DS,AX

MOV DX,MY8254_MODE          ;初始化8254工作方式

MOV AL,36H                  ;定时器0、方式3

OUT DX,AL

MOV SI,OFFSET REC_DATA    ;装入录音表初始地址

MOV SAVE_SI,SI

MOV CL,0EH

CLEAN_REC:                        ;录音表清零

MOV AX,0000H

MOV [SI],AX

ADD SI,2

LOOP CLEAN_REC

MOV SI,OFFSET REC_TIME    ;装入时间表起始地址

MOV SAVE_SI_TIME,SI

MOV SI,OFFSET FREQ_LIST1    ;装入频率表默认起始地址

MOV SI_FREQ,SI   

MOV SI,3000H

MOV AL,00H

MOV [SI],AL                ;清显示缓冲

MOV [SI+1],AL

MOV [SI+2],AL

MOV [SI+3],AL

MOV [SI+4],AL

MOV [SI+5],AL

MOV DI,3005H

MOV DX,MY8255_CON        ;写8255控制字

MOV AL,81H

OUT DX,AL

BEGIN:  CALL DIS                ;调用显示子程序

CALL DIS_FREQ          ;调用音区显示子程序

CALL CLEAR                ;清屏

CALL CCSCAN                ;键盘扫描

JNZ INK1

JMP BEGIN

INK1:  CALL DIS

CALL DALLY

CALL DALLY

CALL CLEAR

CALL CCSCAN

JNZ INK2                ;有键按下,转到INK2

JMP BEGIN

;===============蜂鸣器关闭子程序==================

SILENT:

MOV DX,MY8254_MODE          ;初始化8254工作方式

MOV AL,36H                  ;定时器0、方式3

OUT DX,AL

RET

;===============远程跳转过渡=================   

PLAY2_JUMP:    JMP PLAY2

CHOOSE_JUMP1:  JMP CHOOSE1

CHOOSE_JUMP2:  JMP CHOOSE2

CHOOSE_JUMP3:  JMP CHOOSE3

;========================================

;确定按下键的位置

;========================================

INK2:  MOV CH,0FEH

MOV CL,00H

COLUM:  MOV AL,CH

MOV DX,MY8255_A

OUT DX,AL

MOV DX,MY8255_C

IN AL,DX

L1:    TEST AL,01H        ;is L1?

JNZ L2              ;如果不是的话跳转到L2

MOV AL,00H          ;L1

JMP KCODE

L2:    TEST AL,02H        ;is L2?

JNZ L3

MOV AL,04H          ;L2

JMP KCODE

L3:    TEST AL,04H        ;is L3?

JNZ L4

MOV AL,08H          ;L3

JMP KCODE

L4:    TEST AL,08H        ;is L4?

JNZ NEXT

MOV AL,0CH          ;L4

;=================================

;确认按键的值

;=================================

KCODE:  ADD AL,CL

CALL PUTBUF

PUSH AX

;=========================

;键值存在AX中

;========================

CMP AX,12      ;选择音区1

JZ CHOOSE_JUMP1

CMP AX,13      ;选择音区2

JZ CHOOSE_JUMP2

CMP AX,14      ;选择音区3

JZ CHOOSE_JUMP3

CMP AX,15      ;播放录制的音乐

JZ PLAY2_JUMP  ;jump to play2

POP AX

PUSH AX

CALL PLAY  ; 播放音符

POP AX

PUSH AX

;=====================

;松手检测

;=====================       

KON:    CALL DIS 

CALL DIS_FREQ

CALL CLEAR

CALL CNT_TIME ;按键没有弹起,执行时间计数

POP AX

PUSH AX

CALL CCSCAN

JNZ KON  ;判断是否弹起,如果没有弹起,继续检测。

;按键弹起后:

CALL SILENT ;蜂鸣器静音

MOV SI,SAVE_SI_TIME 

MOV AL,SAVE_TIME

MOV [SI],AX  ;按下的时间进入时间表

INC SAVE_SI_TIME;时间表地址+1

MOV SAVE_TIME,00H;时间计数清零

INC SAVE_SI ;录音表地址+1

INC SAVE_SI

POP AX

NEXT:  INC CL

MOV AL,CH

TEST AL,08H

JZ KERR

ROL AL,1

MOV CH,AL

JMP COLUM

KERR:  JMP BEGIN

CNT_TIME:              ;时间计数

CALL DALLY3

INC SAVE_TIME

RET

;========================================

;键盘扫描子程序,有按键按下,返回1

;========================================

CCSCAN: MOV AL,00H

MOV DX,MY8255_A 

OUT DX,AL

MOV DX,MY8255_C

IN  AL,DX

NOT AL

AND AL,0FH

RET

;========================================

;清屏子程序

;========================================

CLEAR:  MOV DX,MY8255_B

MOV AL,00H

OUT DX,AL

RET

;========================================

;显示子程序

;========================================

DIS:    PUSH AX

MOV SI,3000H;数码管地址

MOV DL,0FEH ;数码管位选

MOV AL,DL

AGAIN:  PUSH DX

MOV DX,MY8255_A

OUT DX,AL  ;数码管位选输出

MOV AL,[SI]

MOV BX,OFFSET DTABLE

AND AX,00FFH

ADD BX,AX  ;得到数码管段选数据

MOV AL,[BX]

MOV DX,MY8255_B

OUT DX,AL  ;数码管段选输出

CALL DALLY

POP DX

MOV AL,DL

MOV DL,AL

JMP OUT1

OUT1:  POP AX

RET

;====== 延时子程序 ======       

DALLY:  PUSH CX

MOV CX,0006H

T1:    MOV AX,009FH

T2:    DEC AX

JNZ T2

LOOP T1

POP CX

RET

;========================================

;存键盘值到相应位的缓冲中

;========================================

PUTBUF:

MOV [SI],AL

CMP DI,3005H

JNZ GOBACK

GOBACK: RET

CHOOSE1:

MOV SI,OFFSET FREQ_LIST1    ;装入频率表1起始地址

MOV SI_FREQ,SI

MOV CHOOSE_FLAG,01H       

JMP BEGIN

CHOOSE2:

MOV SI,OFFSET FREQ_LIST2    ;装入频率表2起始地址

MOV SI_FREQ,SI

MOV CHOOSE_FLAG,02H           

JMP BEGIN

CHOOSE3:

MOV SI,OFFSET FREQ_LIST3    ;装入频率表3起始地址

MOV SI_FREQ,SI

MOV CHOOSE_FLAG,03H           

JMP BEGIN

;==========================

;音区数码管显示

;==========================

DIS_FREQ:

PUSH AX

MOV SI,3003H

MOV DL,0FBH

MOV AL,DL

AGAIN1:  PUSH DX

MOV DX,MY8255_A

OUT DX,AL

MOV AL,[SI]

MOV BX,OFFSET DTABLE

AND AX,00FFH

ADD BX,CHOOSE_FLAG

MOV AL,[BX]

MOV DX,MY8255_B

OUT DX,AL

CALL DALLY

POP DX

MOV AL,DL

MOV DL,AL

JMP OUT2

OUT2:  POP AX

RET

PLAY: 

MOV SI,SI_FREQ              ;装入频率表起始地址

ADD SI,AX

ADD SI,AX

MOV DX,0FH                  ;输入时钟为1MHz,1M = 0F4240H 

MOV AX,4240H               

DIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率 

MOV SI,SAVE_SI    ;将计数初值存入录音音符段

MOV [SI],AX

MOV DX,MY8254_COUNT0    ;蜂鸣器播放音符

OUT DX,AL                 

MOV AL,AH

OUT DX,AL

RET

PLAY2: 

MOV SI,OFFSET REC_DATA    ;装入录音表计数初值起始地址

MOV DI,OFFSET REC_TIME    ;装入录音时间表起始地址

PLAY2_1:

MOV AX,[SI]

MOV DX,MY8254_COUNT0

OUT DX,AL                  ;装入计数初值并播放

MOV AL,AH

OUT DX,AL

MOV DL,[DI]                ;取出演奏相对时间,调用延时子程序

CALL DALLY2

ADD SI,2

INC DI

CALL SILENT                    ;停止播放0.1秒

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CALL DALLY3

CMP WORD PTR [SI],0        ;判断是否到曲末?

JE  XXX                    ;如果来到曲末跳转到开始

JMP PLAY2_1                    ;否则继续播放下一个音符

XXX:    JMP START ;远程跳转过渡

DALLY2    PROC                        ;延时子程序2

D0:        MOV CX,0015H

D1:        MOV AX,00F0H

D2:        DEC AX

JNZ D2

LOOP D1

DEC DL

JNZ D0

RET

DALLY2    ENDP

DALLY3    PROC                        ;延时子程序3

D00:    MOV CX,0010H

D11:    MOV AX,00F0H

D22:    DEC AX

JNZ D22

LOOP D11

RET

DALLY3    ENDP

CODE    ENDS

END START

前往百度app查看全文,
体验更佳

取消

立即查看

点击加载更多

加载失败,请重试

小米和华为哪个质量好-京东手机,世界在手,精彩掌控

小米和华为哪个质量好,「京东手机」高清质感大屏,无限视界。内存大充电快,超长待机享乐不停!

广告

查看详情

开通VIP,免费获得本文

本文立即免费保存

赠百度阅读VIP精品版

100W文档免费下载

5100W文档VIP专享

分享

收藏

下载

转存

打开文库App,查看更多同类文档

小米和华为哪个质量好-京东手机…

http://www.weijiyuanli.cn/wp-content/uploads/2023/06/part-00245-1891.jpg

m.jd.com

提供的广告

查看详情

活动图片

立即领取

VIP教育大礼包

热门小说免费读

相关推荐文档

  • 8086简易电子琴设计程序清单

用App查看

  • 汇编语言课程设计之电子琴源代码

用App查看

  • 基于8086的电子时钟设计(汇编语音)

好评

  • 汇编课设 简易电子琴
  • 电子琴汇编源码
  • 汇编语言,单片机设计简易电子琴

推荐

  • 汇编语言(简易电子琴)
  • 基于FPGA的电子琴设计(源程序)
  • 基于单片机和汇编语言的简易电子琴

热门

  • 电子琴设计论文(汇编)123

为你推荐

mmv胶原蛋白多少钱 五年制大专院校

春节彩灯中国节 婴儿能买保险吗

零食多食品 苹果xr价格

炸弹斗地主下载 恢复录音数据恢复

太不可思议了!她没节食没运动,用了这个方法,瘦出迷人S型身材!

https://aod-image-material.cdn.bcebos.com/5/pic/ef31eda3d744d0b961ae36654b0ecdc8.jpg@s_2,w_370,h_245
http://www.weijiyuanli.cn/wp-content/uploads/2023/06/ea80ff194cdeebaa90ca4cc6459154d7.jpg
http://www.weijiyuanli.cn/wp-content/uploads/2023/06/0748f6cd91abf01a2f9cf32cb78dcbf0.jpg

伊美 广告

下载文档

加入VIP免券下载 低至0.30元/天

发送至邮箱

收件人:

输入的邮箱格式错误

取消

发送

已发送

已发送至邮箱

*若未收到邮件,请查看您的广告/垃圾邮件

知道了

类似文章