收藏 分销(赏)

数字钟在单片机上的实现(汇编语言).doc

上传人:a199****6536 文档编号:2577940 上传时间:2024-06-01 格式:DOC 页数:40 大小:371.04KB 下载积分:12 金币
下载 相关 举报
数字钟在单片机上的实现(汇编语言).doc_第1页
第1页 / 共40页
数字钟在单片机上的实现(汇编语言).doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
数字钟在单片机上的实现(汇编语言) ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 武汉大学电子信息学院 电子系统综合设计课程论文 数字钟在单片机上的实现(汇编语言) 专 业: 年 级: 作 者: _____________ _____________ 指导教师: 2012年 06 月 29 日 3 目 录 1 作品的背景与意义 1 2 功能指标设计 1 2.1设计要求 1 2.1.1 基本要求 1 2。1。2 拓展要求 1 2.2 功能设计方案 1 3 作品方案设计 2 3.1总体方案的选择 2 3.2模块划分及分析 3 3。3 单模块设计流程图 3 4 模块源程序 7 5 系统测试 35 测试数据: 36 6 心得体会 36 1 作品的背景与意义 数字钟是一种用数字电路技术实现时、分、秒计时的钟表。与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用.数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。 2 功能指标设计 2。1设计要求 2。1。1 基本要求 1. 设计一个精确的1秒定时器; 2. 根据1秒定时器,设计一个带小时、分钟、秒的时钟,并将小时、分钟、秒显示在LED上; 3. 设计小时、分钟、秒的修改按键,可分别调整小时、分钟、秒(按键设计参考电子表)。 2。1。2 拓展要求 1. 增加小时、分钟、秒的键盘直接修改功能; 2. 设计闹钟功能,最多支持5个闹钟,可分别查看和修改闹钟时间,可分别设置闹钟开关; 3. 增加万年历功能。 2。2 功能设计方案 1。 实现正常走时(秒-分-时—日—月—年进位); 2. 能够设置时间和日期; 3. 能够自动区分平闰年和大小月及2月; 4。 具有5个闹钟及其设置功能; 5. 在任何设置状态下,修改位会闪烁显示。 3 作品方案设计 3.1总体方案的选择 以T0计时器中断产生1s信号,T1计时器中断刷新数码管。系统软件流程图如下所示: 设计时使T0优先级高于T1以确保准确计时,初始化完成后,程序一直处于主循环模块,主循环模块中有设置按键的检测模块,当遇到设置信号暂时跳出主循环去执行相应的设置模块,时间设置,日期设置,闹钟设置3大模块彼此之间是相互独立且平行的,他们和主循环模块也不干扰。因此,当进入任何一个模块时,其他模块中的所有功能和按键都暂时失效,程序由始至终中断服务一直打开. 3.2模块划分及分析 ••MAIN:初始化程序模块 进行初值的分配(栈顶地址,初始时间,初始日期,初始化闹钟及相关标志地址)各定时器,中断初始化。 ▪ZHUXUNHUAN:主循环模块 程序主要执行部分,包含闹钟检测,独立按键检测(日期—时间转换检测),矩阵按键检测(闹钟设置,日期设置,时间设置)3大检测部分。 ▪•SERVE:1s中断服务 中断走时:秒→分→时→日→月→年 ▪XIAGSHI:刷屏中断服务(显示中断服务) 以人眼不能分辨的频率一次刷新8或6位数码管来显示时间或日期及其他设置界面。 ▪SHIJIANSHEZHI:时间设置模块 修改时间,其中修改位闪烁显示加以区分,内嵌了时间的自动检测和校正代码,既不允许修改出现不存在的时间。 ▪WANNIANLISHEZHI:日期设置模块 修改日期,同样的修改位闪烁加以区分,内嵌了日期的自动检测和校正代码,既不允许出现不存在的日期。 ▪NAOZHONGSHEZHI:闹钟设置模块 修改闹钟时间,闹钟开关的置换,修改位闪烁加以区分,内嵌时间自动监测和校正代码已设置正确的时间。 3。3 单模块设计流程图 在完成的整体设计和模块划分后,便进入到工作量最大的单模块流程设计. ▪主循环: 说明: 1。初始化时,将保存5个闹钟(按时分秒顺序排放)的15个地址50H—5EH均清零,将对应的5个闹钟开关0AH—0EH也都清零表示闹钟开关状态,检测闹钟时,从第一个闹钟开始分别检测开关,时分秒只要有任何一项不符合及即检测下一个闹钟,到最后一个闹铃也不符合时,进入按键检测部分. 2.按键检测包含独立按键和矩阵按键两部分,独立按键很简单,矩阵按键则编写检测子程序,将检测到的键值保存在寄存器R7中,没有检测到按键时不改变R7的数值.因此,检测器先将R7里面放入#0FH(只要不是#00H—#0CH中的数即可),然后调用矩阵键盘检测子程序,再来通过检测R7的数值来判断有无按键按下或按下的那个键. ▪时间设置模块: 说明: 1.进入时间设置模块后,时的十位开始闪烁,通过独立按键s17,s18可以向右向左移动闪烁即修改位,修改正确的判断实际上是对将要修改完成的时间进行合理性的判断,如合理则修改时间,若不合理则此次按键失效。 2.检测到退出信号后,先要将所有初始化过程中改变了的标志位还原,如闪烁开关位等,再调回主循环。 ▪日期设置模块: 日期设置模块和时间设置模块几乎完全一样,所不同的是初始化不一样及日期设置里面有8位数码管需要刷新,而且由于日期比时间复杂,因此该模块中有两处日期校正部分,一部分是对按键修改是否正确的判断,使用方法也是使相应按键暂时失效(例如:修改前日期是2012:03:31,那么此时月份上得十位1—9所以数字都暂时失效,日个位上的2-9所以数字也都全部暂时失效);另一部分是修改后的日期校正,通过调用该子程序,防止上一部分不能消除的错误日期设置(例如:修改前日期是2012:01:31,这时修改月份个位为2则日期变为2012:02:31,显然这样的日期是不存在的,这时校正程序将日期进位,日期更改为2012:03:01)。这部分校正模块在后面的1s中断服务中也有使用.下图为该模块流程图: ▪闹钟设置模块: 闹钟设置模块和时间设置一是大同小异,主要区别在于多了一部分闹铃开关的检测。下图为该模块流程图: 4 模块源程序 ORG 0000H AJMP MAIN ORG 000BH AJMP SERVE ORG 001BH AJMP XIANSHI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,40H ;段选表0,1,2,3,4,5,6,7,8,9,熄灭,- TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H ;段选表 带小数点,同上 MAIN: /*****************************************************************************/ //初始化 MOV SP,#60H ;栈指针地址赋值 MOV 3CH,#0CH ;设置界面修改位的闪烁频率 具体代码在SERVE 1秒中断服务中 MOV 37H,#0FFH ;临时地址 预留给39H MOV 39H,#0FFH ;段位标志 8位数据对应8个数码管 为0的那位数码管始终暗 MOV 3AH,#11111101B ;界面转换标志 ******01为时间界面 取反后 ******10为万年历界面 ******00为设置闹钟界面 CLR A ;时间万年历初始化 时间00:00:00 万年历2000。01。01 MOV 30H,A ;时 MOV 31H,A ;分 MOV 32H,A ;秒 MOV 33H,#01H ;日 MOV 34H,#01H ;月 MOV 35H,A ;年 只能显示2000—2099的时间 MOV 3DH,A ;数码管闪烁开关 初始化为关闭状态 取反后 11111111 打开 MOV 40H,A ;闹钟设置界面预留地址地址 MOV 41H,A MOV 42H,A MOV 43H,A MOV 44H,A MOV 45H,A MOV 46H,A MOV 47H,A MOV 50H,A ;闹钟1 时 MOV 51H,A ;闹钟1 分 MOV 52H,A ;闹钟1 秒 MOV 0AH,A ;闹钟1 开关 00000000为关闭状态 取反后打开闹钟1 MOV 53H,A ;同上 MOV 54H,A MOV 55H,A MOV 0BH,A MOV 56H,A MOV 57H,A ;同上 MOV 58H,A MOV 0CH,A MOV 59H,A ;同上 MOV 5AH,A MOV 5BH,A MOV 0DH,A MOV 5CH,A ;同上 MOV 5DH,A MOV 5EH,A MOV 0EH,A //中断,定时器初始化 MOV TMOD,#11H MOV 38H,#14H ;T0定时器每50ms溢出一次 溢出20次为一秒 SETB PT0 ;优先级设置 1秒中断为最高级 屏幕刷新优先级低 SETB PT1 SETB ET0 SETB ET1 SETB EA MOV TH1,#0DFH ;T1定时器 设置显示扫描频率 MOV TL1,#0E0H MOV TH0,#3CH ;T0定时器 设置为50ms MOV TL0,#0B0H SETB TR1 SETB TR0 /***********************************************************************/ //程序主循环 ZHUXUNHUAN: //闹钟检测 MOV A,0AH JZ NAO2 ;检测闹钟开关 若关检测下一个闹钟,否则检测时间是否为闹钟设定时间 MOV A,30H CJNE A,50H,NAO2 MOV A,31H CJNE A,51H,NAO2 MOV A,32H CJNE A,52H,NAO2 AJMP XIANG ;时间为闹钟设定时间吻合 进入闹铃程序 下同 NAO2: MOV A,0BH JZ NAO3 MOV A,30H CJNE A,53H,NAO3 MOV A,31H CJNE A,54H,NAO3 MOV A,32H CJNE A,55H,NAO3 AJMP XIANG NAO3: MOV A,0CH JZ NAO4 MOV A,30H CJNE A,56H,NAO4 MOV A,31H CJNE A,57H,NAO4 MOV A,32H CJNE A,58H,NAO4 AJMP XIANG NAO4: MOV A,0DH JZ NAO5 MOV A,30H CJNE A,59H,NAO5 MOV A,31H CJNE A,5AH,NAO5 MOV A,32H CJNE A,5BH,NAO5 AJMP XIANG NAO5: MOV A,0EH JZ BU MOV A,30H CJNE A,5CH,BU MOV A,31H CJNE A,5DH,BU MOV A,32H CJNE A,5EH,BU AJMP XIANG //检测独立按键 BU: JB T0,ZHU1 ;检测s19是否按下 按下进入万年历界面,否则检测矩阵键盘 MOV A,3AH ;界面转换标志取反即可使得时间和万年历界面相互转换 CPL A MOV 3AH,A //检测矩阵键盘 //检测到按键1,2,3,4,5时进入对应的闹钟设置界面 检测到0BH(对应s11)进入时间设置界面 检测到0CH(对应s12)进入万年历设置界面 //若未检测到按键 则跳回主程序继续下一个检测周期 ZHU1: MOV R7,#0FH ACALL JIANCEANJIAN ;矩阵键盘检测子程序 将检测到的键值存入r7 CJNE R7,#0FH,ZHU2 AJMP ZHUXUNHUAN ZHU2: CJNE R7,#0BH,ZHU3 AJMP SHIJIANSHEZHI ZHU3: CJNE R7,#0CH,ZHU4 AJMP WANNIANLISHEZHI ZHU4: CJNE R7,#01H,ZHU5 AJMP NAOZHONGSHEZHI ZHU5: CJNE R7,#02H,ZHU6 AJMP NAOZHONGSHEZHI ZHU6: CJNE R7,#03H,ZHU7 AJMP NAOZHONGSHEZHI ZHU7: CJNE R7,#04H,ZHU8 AJMP NAOZHONGSHEZHI ZHU8: CJNE R7,#05H,ZHUXUNHUAN0 AJMP NAOZHONGSHEZHI ZHUXUNHUAN0: AJMP ZHUXUNHUAN /****************************************************************************/ //1秒中断服务 见书141例6-6 SERVE: CLR EA PUSH B PUSH DPH PUSH DPL PUSH PSW PUSH ACC MOV TH0,#3CH MOV TL0,#0B0H MOV A,3DH JZ SE MOV A,3CH CJNE A,#6,SE0 MOV 39H,37H SE0: DJNZ 3CH,SE MOV 39H,#0FFH MOV 3CH,#0CH SE: DJNZ 38H,RETURN MOV 38H,#14H MOV A,#01H ADD A,32H MOV 32H,A CJNE A,#3CH,RETURN MOV 32H,#00H MOV A,#01H ADD A,31H MOV 31H,A CJNE A,#3CH,RETURN MOV 31H,#00H MOV A,#01H ADD A,30H MOV 30H,A CJNE A,#18H,RETURN MOV 30H,#00H MOV A,#01H ADD A,33H MOV 33H,A ACALL NYR RETURN: POP ACC POP PSW POP DPL POP DPH POP B SETB EA RETI /**************************************************************************/ //年月日校正子程序 用于万年历进位和万年历设置 防止出现不存在的时间 NYR: MOV A,33H CJNE A,#32,MONTH ;日为32时,月进位日置1 MOV 33H,#01H AJMP MONTH0 MONTH: CJNE A,#31,MONTH1 ;日为31时 分辨大小月及2月 MOV A,34H CJNE A,#4,MONTH2 MOV 33H,#01H AJMP MONTH0 MONTH2: CJNE A,#2,MONTH6 MOV 33H,#01H AJMP MONTH0 MONTH6: CJNE A,#6,MONTH9 MOV 33H,#01H AJMP MONTH0 MONTH9: CJNE A,#9,MONTH11 MOV 33H,#01H AJMP MONTH0 MONTH11: CJNE A,#11,RETURN0 MOV 33H,#01H AJMP MONTH0 MONTH1: CJNE A,#30,MONTH29 ;日为30时分辨2月 MOV A,34H CJNE A,#02H,RETURN0 MOV 33H,#01H AJMP MONTH0 MONTH29: CJNE A,#29,RETURN0 ;日为29时分辨闰平年2月 MOV A,34H CJNE A,#02H,RETURN0 MOV A,35H MOV B,#04H DIV AB MOV A,B JNZ MONO AJMP RETURN0 MONO: MOV 33H,#01H MONTH0: MOV A,#01H ;月进位 ADD A,34H MOV 34H,A CJNE A,#0DH,RETURN0 MOV 34H,#01H MOV A,#01H ADD A,35H MOV 35H,A CJNE A,#100,RETURN0 ;年最多只能99 MOV 35H,#00 RETURN0: RET /******************************************************************/ //屏幕刷新中断 XIANSHI: PUSH B PUSH DPH PUSH DPL PUSH PSW PUSH ACC MOV TH1,#0DFH MOV TL1,#0E0H MOV A,3AH JNB ACC.0,WANNIANLI ;界面显示判断 //时间界面 MOV A,32H MOV B,#0AH DIV AB MOV 10H,B MOV 11H,A MOV A,31H MOV B,#0AH DIV AB MOV 12H,B MOV 13H,A MOV A,30H MOV B,#0AH DIV AB MOV 14H,B MOV 15H,A MOV 16H,#0AH MOV 17H,#0AH AJMP LIANG //万年历界面 WANNIANLI: JNB ACC。1,SHEZHI MOV A,33H MOV B,#0AH DIV AB MOV 10H,B MOV 11H,A MOV A,34H MOV B,#0AH DIV AB MOV 12H,B MOV 13H,A MOV A,35H MOV B,#0AH DIV AB MOV 14H,B MOV 15H,A MOV 16H,#00H MOV 17H,#02H AJMP LIANG //闹钟设置界面 SHEZHI: MOV 10H,40H MOV 11H,41H MOV 12H,42H MOV 13H,43H MOV 14H,44H MOV 15H,45H MOV 16H,46H MOV 17H,47H //刷新屏幕 LIANG: MOV R6,#11111110B ;位选 MOV R0,#10H ;利用r0间接访问功能实现选中位显示控制 MOV R4,#8H ;刷新8次 MAIN0: ;位选子程序 ACALL L CJNE R0,#12H,TT1 MOV DPTR,#TAB1 AJMP K TT1: CJNE R0,#14H,TT2 MOV DPTR,#TAB1 AJMP K TT2: MOV DPTR,#TAB K: MOV A,@R0 MOVC A,@A+DPTR MOV R5,A //数码管开关判断 不刷新39H中对应为0的那段数码管 MOV A,39H JNB ACC.0,AC0 JNB ACC.1,AC1 JNB ACC。2,AC2 JNB ACC.3,AC3 JNB ACC.4,AC4 JNB ACC。5,AC5 JNB ACC。6,AC6 JNB ACC.7,AC7 AJMP J0 AC0: CJNE R4,#08H,J0 AJMP J1 AC1: CJNE R4,#07H,J0 AJMP J1 AC2: CJNE R4,#06H,J0 AJMP J1 AC3: CJNE R4,#05H,J0 AJMP J1 AC4: CJNE R4,#04H,J0 AJMP J1 AC5: CJNE R4,#03H,J0 AJMP J1 AC6: CJNE R4,#02H,J0 AJMP J1 AC7: CJNE R4,#01H,J0 AJMP J1 J0: ACALL R ;段选子程序 J1: MOV A,R6 RL A MOV R6,A INC R0 ACALL DELAY1 ;延时越长数码管越亮 但过长导致刷新过慢数码管不能同时全亮 MOV DPTR,#8200H MOV A,#00H MOVX @DPTR,A DJNZ R4,MAIN0 POP ACC POP PSW POP DPL POP DPH POP B RETI L: MOV DPTR,#8300H MOV A,R6 MOVX @DPTR,A RET R: MOV DPTR,#8200H MOV A,R5 MOVX @DPTR,A RET /********************************************************************/ //延时子程序 DELAY: ;延时20毫秒 用于矩阵键盘的检测 MOV 3EH,#120 LOOP1: MOV 3FH,#30 LOOP2: DJNZ 3FH,LOOP2 DJNZ 3EH,LOOP1 RET MDELAY: MOV 3EH,#5 MLOOP1: MOV 3FH,#0AAH MLOOP2: DJNZ 3FH,MLOOP2 DJNZ 3EH,MLOOP1 RET DELAY1: MOV 3EH,#15 LOOP11: MOV 3FH,#40 LOOP21: DJNZ 3FH,LOOP21 DJNZ 3EH,LOOP11 RET DELAY0: MOV 3EH,#0FFH LOOP10: MOV 3FH,#0FFH LOOP20: DJNZ 3FH,LOOP20 DJNZ 3EH,LOOP10 RET /***********************************************************/ //时间设置 SHIJIANSHEZHI: MOV 39H,#11011111B ;时的十位闪烁 MOV 37H,39H MOV 3DH,#0FFH ;开闪烁开关 M: JB T1,S1 ;检测独立按按键s20 按下则退出时间设置 继续进入主循环 MOV 39H,#0FFH MOV 3DH,#00H AJMP ZHUXUNHUAN S1: JB INT0,S2 ;闪烁位即修改为右移 MOV A,37H CJNE A,#11111110B,SS0 RR A RR A RR A MOV 37H,A S10: JNB INT0,S10 ;右移按键松开才继续下面的程序 防止一次按键右移多位 下同 AJMP M SS0: RR A MOV 37H,A S11: ;左移 JNB INT0,S11 AJMP M S2: JB INT1,M1 MOV A,37H CJNE A,#11011111B,SS1 RL A RL A RL A MOV 37H,A S12: JNB INT1,S12 AJMP M SS1: RL A MOV 37H,A S13: JNB INT1,S13 AJMP M //检测矩阵按键 修改时间 M1: MOV R7,#0FH ACALL JIANCEANJIAN CJNE R7,#0FH,SJSZ1 AJMP M SJSZ1: MOV A,37H ;检测修改的是哪位 JB ACC。5,SJSZ2 //修改时十位 只能修改为0,1,2 但时个位部位0,1,2,3时不能修改为2 CJNE R7,#00H,SJS1 AJMP LED6 SJS1: CJNE R7,#01H,SJS2 AJMP LED6 SJS2: CJNE R7,#02H,M AJMP LED6 LED6: MOV A,30H MOV B,#0AH DIV AB MOV 1FH,B MOV B,#0AH MOV A,R7 MUL AB ADD A,1FH MOV 30H,A MOV A,37H RR A MOV 37H,A AJMP M SJSZ2: JB ACC。4,SJSZ3 //修改时个位 但时十位为2时只能修改为0,1,2,3 MOV A,30H MOV B,#0AH DIV AB CJNE A,#02H,LED5 CJNE R7,#00H,SJS4 AJMP LED5 SJS4: CJNE R7,#01H,SJS5 AJMP LED5 SJS5: CJNE R7,#02H,SJS6 AJMP LED5 SJS6: CJNE R7,#03H,MM1 AJMP LED5 MM1:AJMP M LED5: MOV B,#0AH MUL AB ADD A,R7 MOV 30H,A MOV A,37H RR A MOV 37H,A AJMP M SJSZ3: JB ACC.3,SJSZ4 //修改分十位 只能修改为0,1,2,3,4,5 CJNE R7,#00H,SJ1 AJMP LED4 SJ1: CJNE R7,#01H,SJ2 AJMP LED4 SJ2: CJNE R7,#02H,SJ3 AJMP LED4 SJ3: CJNE R7,#03H,SJ4 AJMP LED4 SJ4: CJNE R7,#04H,SJ5 AJMP LED4 SJ5: CJNE R7,#05H,MM AJMP LED4 MM:AJMP M LED4: MOV A,31H MOV B,#0AH DIV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 31H,A MOV A,37H RR A MOV 37H,A AJMP M SJSZ4: JB ACC.2,SJSZ5 //修改分个位 MOV A,31H MOV B,#0AH DIV AB MOV B,#0AH MUL AB ADD A,R7 MOV 31H,A MOV A,37H RR A MOV 37H,A AJMP M SJSZ5: JB ACC.1,SJSZ6 //修改秒十位 只能改为0,1,2,3,4,5 CJNE R7,#00H,SJ10 AJMP LED2 SJ10: CJNE R7,#01H,SJ20 AJMP LED2 SJ20: CJNE R7,#02H,SJ30 AJMP LED2 SJ30: CJNE R7,#03H,SJ40 AJMP LED2 SJ40: CJNE R7,#04H,SJ50 AJMP LED2 SJ50: CJNE R7,#05H,MM0 AJMP LED2 MM0:AJMP M LED2: MOV A,32H MOV B,#0AH DIV AB MOV 1FH,B MOV A,R7 MOV B,#0AH MUL AB ADD A,1FH MOV 32H,A MOV A,37H RR A MOV 37H,A AJMP M SJSZ6: //修改秒个位 MOV A,32H MOV B,#0AH DIV AB MOV B,#0AH MUL AB ADD A,R7 MOV 32H,A MOV 37H,#11011111B AJMP M /****************************************************************/ //万年历设置 WANNIANLISHEZHI: MOV 3AH,#0FEH ;转换设置界面 MOV 39H,#11011111B ;设置闪烁位 MOV 37H,39H MOV 3DH,#0FFH ;开闪烁开关 WM: ACALL NYR ;校正 万年历 JB T1,WS1 ;s20 按下 退出设置界面 MOV 39H,#0FFH ;关闪烁 MOV 3DH,#00H ;闪烁开关 关 MOV 3AH,#11111101B ;转换成时间设置界面 AJMP ZHUXUNHUAN WS1: JB INT0,WS2 ;修改位 右移 同上 MOV A,37H CJNE A,#11111110B,WSS0 RR A RR A RR A MOV 37H,A S20: JNB INT0,S20 AJMP WM WSS0: RR A MOV 37H,A S21: JNB INT0,S21 AJMP WM WS2: JB INT1,WM1 ;修改位左移 MOV A,37H CJNE A,#11011111B,WSS1 RL A RL A RL A MOV 37H,A S23: JNB INT1,S23 AJMP WM WSS1: RL A MOV 37H,A S24: JNB INT1,S24 AJMP WM //矩阵键盘检测 修改万年历 WM1: MOV R7,#0F
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服