基于单片机模拟红外编码解码的设计
基于单片机的红外遥控解码器设计

毕业论文(设计)论文(设计)题目:基于单片机的红外遥控解码器设计所属系别信息工程系专业班级 10大专电子信息工程技术2班姓 名学 号指导教师撰写日期 2013 年 4月本设计是一种以单片机和一体化红外接收器为核心,由单片机最小系统、通信模块、红外接收模块和液晶显示模块组成。
通过红外遥控接收头HS0038将光信号转变成电信号,经放大、解调、滤波后,将遥控脉冲波形送入单片机AT89S52中,利用相应的硬件滤波功能和软件滤波算法,对的输出信号进行信号识别、解码的实时动态处理,得到红外遥控器相应按键键码,单片机将得到的数据送入显示驱动电路,再通过LCD1602更直观的显示出来,实现单片机的红外解码。
经过解码后,可以将多种遥控器进行合成,实现一个遥控器控制多台电器设备。
即减少了遥控器的数量,同时又增强了遥控器的功能。
通过对电路的设计和实际调试,可以在液晶显示模块显示出来红外源码,从而验证了本设计是可行的。
关键词:AT89S52,红外接收HS0038,红外解码The design is a microcontroller and integrated infrared receiver as the core, from the smallest single-chip system, the communication module, the infrared receiving module and liquid crystal display module. Receiving head HS0038 the light signal is converted into electric signal through the infrared remote control, after amplification, demodulation, filtering, remote control pulse waveform into the SCM AT89S52, using the corresponding hardware filter and software filtering algorithm, the output signal of the signal recognition, real-time dynamic processing of infrared remote control decoding, obtained the corresponding key code, SCM will get data into the display driving circuit, and then through the LCD1602 display, infrared decoder chip. After decoding, can be a variety of remote controller synthesis, the realization of a remote control a plurality of electric equipment. Namely, reducing the number of remote control, and strengthen the function of the remote controller. Through the circuit design and debugging, in the liquid crystal display module display infrared source, which verified the design is feasible. Keywords: AT89S52, infrared receiver HS0038, infrared decoder1 引言 (1)2 总体设计方案 (1)2.1 方案论证 (1)2.2 总体设计框图 (1)3硬件电路设计 (2)3.1 单片机及其硬件电路设计 (2)3.1.1 单片机的介绍 (2)3.1.2 时钟电路及RC复位电路 (3)3.2 红外遥控器电路设计 (4)3.2.1 TC9012芯片介绍 (4)3.2.2 红外发射电路 (5)3.2.3 红外接收电路的设计 (7)3.3 1602液晶显示电路 (8)3.3.1 引脚功能说明 (9)3.3.2 指令说明 (9)4程序设计 (10)4.1 红外接收电路主程序流程图 (10)4.2 红外接收电路子程序流程图 (10)5结果分析与讨论 (12)5.1 测试仪器 (12)5.2 硬件调试的方法和过程 (12)5.3 软件调试问题及解决方法 (12)6总结 (13)参考文献: (14)致谢 (15)附录1: 系统电路原理仿真图 (16)附录2: 系统电路实物图 (17)附录3: 程序 (18)1 引言随着电子技术的发展,红外遥控器越来越多的应用到电器设备中,比如电视机、DVD机、空调、机顶盒甚至音响、热水器等都用到遥控器,而这些红外遥控器都是针对各自产品所设计的,从而导致了一般家庭中拥有数个遥控器,那么,能否将这些遥控器的功能进行复用,进而减少遥控器的数量,使遥控器的功能更加强大,就显得十分必要了。
基于单片机的红外遥控解码器的设计

基于单片机的红外遥控解码器的设计作者:苏宝林来源:《中国科技博览》2014年第08期摘要:通过对红外遥控器各按键发送的脉冲波形的分析可以识别码型,从而为软件解码提供依据。
本设计用单片机编码和解码实现了红外信号的传输,该电路结构灵活,成本低,易于改进和扩充,该电路设计简单,易于移植到其他红外发射、接收装置,适合红外遥控的二次开发。
关键词:AT89S51单片机;红外信号;1602LCD中图分类号:TM 文献标识码:A 文章编号:1009-914x(2014)08-01-011红外解码系统的背景、意义1.1红外解码系统的背景传统的遥控器大多数采用了无线电遥控技术,随着科技的进步,红外线遥控技术的成熟,红外也成为了一种被广泛应用的通信和遥控手段。
继彩电、录像机之后,在录音机、音响设备、空调机等电器装置上也纷纷采用红外线遥控。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。
红外线抗干扰能力强,且不会对周围的无线电设备产生干扰电波,同时红外发射接收范围窄,安全性较高。
红外遥控虽然被广泛应用,但各产商的遥控器不能相互兼容。
当今市场上的红外线遥控装置一般采用专用的遥控编码及解码集成电路,所以其灵活性较低,应用范围有限。
而采用单片机进行遥控系统的应用设计,遥控装置将同时具有编程灵活、控制范围广、体积小、功耗低、功能强、成本低、可靠性高等特点,因此采用单片机的红外遥控技术具有广阔的发展前景。
1.2红外解码系统的意义红外遥控的特点是不影响周边环境、不干扰其它电器设备。
由于其无法穿透墙壁,所以不同房间的家用电器可使用通用的遥控器,且不会产生相互干扰。
电路调试简单,只要按给定电路连接无误,一般不需任何调试即可投入工作,编解码容易,可进行多路遥控。
信息可以直接通过红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进行调制,接收端去掉载波,取到信息。
基于单片机的红外遥控解码器的设计

将脉冲 编码信号调 制在 载波振荡器 产生 的载波上 , 然后用这 个脉冲 编码调 制 信号 去驱 动红 外发光 二 极管 , 以发 出经过调 制 的红 外光 波 。 T C 9 0 1 2 作 为红外 遥控 器控 制核心 , 遥控编 码 脉冲信 号 由引导 码 、 系统 码 、
靠而且能有效地隔离电气干扰。 红外线抗干扰能力强, 且不会对周围的无线电
1红 外解 码 系统 的背 景 . 意 义
1 1红 外解 码系统 的背 景
T C 9 0 1 2 采用低 压 C MO S 工 艺制 造 , 低功耗 超 小静态 电流 , 低工 作 电压 , 精 简 指令 码 , 8 种用 户 编码 可选 择 , T S O P - 2 0 、 S O P 2 0 、 C O B 可选 的封 装 形式 。
工 业技 术
I ■
C h i n a s c i e n c e a n d T e c h n o l o g y R e v i e w
基 于 单 片机 的 红 外 遥 控 解 码 器 的 设 计
苏 宝林
( 绥化 学 院 电气工 程学 院 黑 龙江 绥化 1 5 2 0 6 1 ) [ 摘 要] 通过 对红 外遥 控器 各 按键 发送 的 脉冲 波形 的分析 可 以识 别码 型 , 从 而为 软件 解 码提 供依 据 。 本 设计 用单 片机 编码 和 解码 实现 了 红外 信号 的传 输 该 电路结 构灵 活 , 成 本低 , 易 于改进 和 扩充 , 该 电路设 计 简单 , 易 于移植 到 其他 红外 发射 、 接 收装 置 , 适合 红外 遥控 的二 次开 发 。 [ 关键 词] AT 8 9 S 5 1 单 片机 , 红外 信 号 , 1 6 0 2 L C D 中 图分类号 : TM 文献 标识 码 : A 文 章编号 : 1 0 0 9 —9 1 4 X( 2 0 1 4 ) 0 8 — 0 0 5 4 — 0 l
单片机STM32F103C8T6的红外遥控器解码系统设计

单片机STM32F103C8T6的红外遥控器解码系统设计一、本文概述本文旨在详细阐述基于STM32F103C8T6单片机的红外遥控器解码系统的设计和实现过程。
随着科技的不断进步和智能化设备的普及,红外遥控器作为一种常见的遥控设备,已经广泛应用于家电、安防、玩具等多个领域。
然而,红外遥控器发出的红外信号往往需要通过解码器才能被设备正确识别和执行,因此,设计一款高效、稳定、可靠的红外遥控器解码系统具有重要意义。
本文将首先介绍红外遥控器的基本原理和信号特点,然后详细阐述STM32F103C8T6单片机的性能特点和在红外遥控器解码系统中的应用优势。
接着,将详细介绍红外遥控器解码系统的硬件设计,包括红外接收头的选择、电路设计和PCB制作等。
在软件设计部分,将详细阐述如何通过STM32F103C8T6单片机的编程实现红外信号的接收、解码和处理,以及如何将解码后的数据通过串口或其他通信方式发送给主控制器。
本文还将对红外遥控器解码系统的性能进行测试和分析,包括信号接收距离、解码速度和稳定性等方面的测试。
将总结本文的主要工作和创新点,并对未来的研究方向进行展望。
通过本文的研究和实现,旨在为红外遥控器解码系统的设计提供一种新的思路和方法,同时也为相关领域的研究人员提供有益的参考和借鉴。
二、红外遥控器基础知识红外遥控器是一种常见的无线遥控设备,它利用红外光作为信息载体,通过发射和接收红外光信号实现对设备的远程控制。
这种遥控方式因其简单、低成本和无需视线连接等优点,在各类消费电子产品中得到了广泛应用,如电视机、空调、音响等。
红外遥控器的工作原理主要基于红外辐射和光电器件的检测。
遥控器内部通常包含一个或多个红外发射管,当按下按键时,发射管会发射出特定频率和编码的红外光信号。
接收端则配备有红外接收头,该接收头内部有一个光敏元件(如硅光敏三极管或光敏二极管),用于检测红外光信号并将其转换为电信号。
为了区分不同的按键操作,红外遥控器通常采用特定的编码方式对按键信号进行编码。
基于单片机的红外遥控器解码器的设计

}—一 16如,—叫4‰或1 w=u叫’刚,c9
图4 第二以后连续发送的遥控信号的编码脉冲
由图2和图3可以看出,遥控编码脉冲波形的输出时 间为192瓦,或224 Tc,,以为用户码(8位)的输出时间。当 口≥26 Tc,时,遥控编码脉冲波形输出时间为224Tc,。另 外,对于连续发送的编码脉冲中用户码第一位的相反码的 脉冲问隔时间,当SO一“1”时,则So一“0”,该时间为
3单片机程序设计
单片机程序主要解决的问题就是如何对接收到的 9021型红外遥控器所发射的信号进行解码,编码脉冲信 号是由引导码、用户码、和功能码等部分组成,我们只对获 取其功能码过程进行分析。在单片机设置中,将单片机 AT89C5l内部定时器/计数器To设为定时方式1,定时时 间为1 ms;设外部中断INTo为下降沿中断触发方式,由
116622)
摘 要:9012型红外遥控器被广泛用在家用电器和仪器仪表中,在了解了其发射的编码脉冲信号波形后,设计了基于单
片机AT89C51的红外遥控器解码器,对解码器硬件和相应软件进行分析并给出程序流程图。将红外遥控器用在生产即时
显示系统中,作为参数设置和系统控制用红外遥控器,既操作灵活方便,又能提高系统抗干扰能力,在实际中收到了良好
图3 Matlab中滤波前后结果
4结 语
一般DSP芯片实现FIR滤波器时,常是先在Matlab 中设计要求的滤波器,得到滤波器系数,在目标DSP汇编 程序中,对系数进行相应的Q格式转换,再用相关汇编指 令实现FIR滤波器算法。但在调试时,每改变一次滤波器
参数,相关系数也改变,目标DSP中的程序也要做相应改 变,给调试仿真带来很大麻烦,使滤波器设计效率很低。 Matlab具有强大的数值分析、计算、信号处理及图形显示 功能,并为用户提供了强大的信号处理工具箱和友好方便 的交互式图形用户界面,用Matlab辅助DSP实现FIR,在 滤波器系数改变时可以不必改变DSP中程序,大大提高 了滤波器设计效率。本文只是利用Matlab辅助DSP实现 了一个简单的FIR低通滤波器,并在TMS320C6713 DSK 上成功运行。还可以利用Matlab辅助DSP来实现比较复 杂的诸如语音处理、通信、图像处理等方面的程序开发,可 以大大缩短DsP应用程序的开发时间,提高设计效率,这 也是以后DSP设计的一个趋势。
基于单片机的红外通信系统设计

基于单片机的红外通信系统设计1 简介红外通信是指利用红外线进行信息传输的一种无线通讯方式。
其传输距离在10米以内,速度较快,常用于遥控器、智能家居、安防监控等领域。
本文将介绍基于单片机的红外通信系统设计。
2 系统原理红外通信系统需包含红外发射器、红外接收器和处理器三个部分。
通信原理是将信息编码成红外信号,通过红外发射器发出,再由红外接收器接收,经过解码后传输到处理器中处理。
3 系统设计步骤3.1 红外接收器电路设计红外接收器采用红外管接收器,其特点是灵敏度高,在不同角度能接收到较远的红外信号。
红外管接收器与电路板焊接,电路板再选用较长的电线接到处理器的端口上。
3.2 红外发射器电路设计红外发射器采用红外二极管,其工作电压一般为1.2-1.4V。
通过接通1kHz以上的方波信号控制二极管的导通,使其发出红外光。
为保证其稳定性和较远的有效距离,需在电路中添加反向电流保护二极管。
3.3 处理器设计处理器选用常用的单片机,如AT89C51等。
单片机内置了红外通信模块,可用来发送和接收红外信号。
同时,还需通过编程实现对红外信号的解码和编码,实现信息传输与处理。
4 系统测试测试时,可用遥控器模拟发送红外信号,系统接收并解码后显示在液晶屏幕上。
测试距离一般在10米以内,且需保持天空无其它遮挡物。
5 总结基于单片机的红外通信系统设计,具有灵敏度高、速度快、传输距离短等特点。
其应用广泛,在智能家居、安防监控、车载通信等领域均有应用。
但需注意遮挡物的影响,以及信号干扰等问题。
基于单片机的红外遥控器解码器设计

中 图 分 类 号 :TN21
文 献 标 识 码 :A
文 章 编 号 :1672-3791(2010)03(a)-0051-03
1 红外遥控信号发送电路SAA3010T及遥 控信号
1.1 SAA3010 简介 SAA3010是一款红外遥控发射集成电
路,采用CMOS工艺制造,低电压工作,单管 脚的振荡器,双相位发射技术,最大可提供 2048 个 编 码 。一 般 为28P 表 贴 封 装, 管 脚 信 号的功能定义为:KI0~KI3为键盘扫描输 入端,KO0~KO7为键盘扫描驱动管脚,C 0~C3键盘扫描输入,SMS为系统模式选择 输入,MDout为用载波(频率为fc/12,占空 比为33%)调制的码脉冲输出,Dout为合成 码数据输出端,OSC为振荡器输入管脚,T 为测试端,VDD电源正,VSS电源负。
工 程 技 术
科技资讯 2010 NO.06
SCIENCE & TECHNOLOGY INFORMATION
基于单片机的红外遥控器解码器设计
靳光明 ( 绵阳职业技术学院计算机科学系 四川绵阳 6 2 1 0 0 0 )
摘 要:SAA3010T是一种通用型红外遥控信号发送用的集成电路,适用于电视机、组合音响、VCD、DVD、风扇、电玩等设备的遥控操
(1)设外部中断1(接SH506数据输出端) 为 低 电 平 触 发 , 允 许 中 断 。定 时 器 T 0 工 作 于 定时方式2(自动重装在时间常数),定时时 间常数为20us,高优先级中断。
(2)定时器T0的中断服务函数为每20us (1/4位时间)到,T20_c计数器加1。
(3)外部中断1的中断服务函数的算法: ①关闭外部中断,启动T0定时器,清计 数器T20_c。 ②判断第一位起始位是否为1,并丢掉该 位,清计数器T20_c,清接收数据位计数器。 ③接收后面的13位数据的每一位,每 一位的时间1.668ms ④停止定时器,接收的13位数据取反送I RDA_dat,从IRDA_dat中提取5位用户码。 ⑤当第二个起始位为1且用户码为0000 0,表明本帧数据有效,提取6位指令码,否 则行纠错处理。 ⑥等待外部中断1(IRDA)变高,打开外 部中断1。
基于MCS51单片机的红外线解码系统设计

JNC TT
;如果为0就跳转到TT
MOV R4,#2
;延时1000微秒
Hale Waihona Puke D6:MOV R5,#248
DJNZ R5,$
DJNZ R4,D6
;检测到高电平1的话延时1毫秒等
待脉冲高电平结束
TT:
MOV A,@R1 ;将R1中地址的给A
RRC A
;将C中的值0或1移入A中的最低位
MOV @R1,A ;
DJNZ R3,SS ;接收满8位换一个内存
低成本、高可靠性、体积小、结构简单、避免人身伤害等优
点,是一种先进的控制方式,具有广阔的应用前景。
一、单片机解码程序设计
单片机在进行解码时,首先根据SM0038所传输过来的信号
判断是否有红外信号,若检测红外信号,则单片机产生中断,
进入中断处理程序,对红外线信号进行解码,单片机程序使用
汇编设计,采用查询方式确定是否有红外线信号,其解码查询
基于MCS51单片机的红外线解码系统设计
李春燕
(重庆市铜梁职业教育中心)
摘 要:本文通过对通用红外线遥控器编码系统的研究,
利用MCS51系列单片机对红外线进行解码,实现了红外线解码系
统,并利用单片机的串行通信接口与通用计算机进行通信,实
现了计算机上位机显示软件的设计。
关键词:MCS-C51 红外线 解码 串行通信
INC R1
;对R1中的值加1,换下一个RAM
DJNZ R2,PP ;接收完所有数据
EXIT:
#pragma endasm
上位机程序设计
上位程序使用微软基于.NET的新一代程序设计语言C#(读
作C SHARP),该语言是一种安全的语言,具有内存自动回收功
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开放实验报告课题名称基于单片机的红外解码器的设计学生姓名系、年级专业信息工程系、11、12级电子信息工程指导教师江世明2014年 5 月20日基于单片机的红外解码器的设计一.实验目的1、了解红外编码原理,模拟红外发射信号;2、用程序实现红外编码的解码;二.实验内容设计基于单片机的红外解码器,实现红外遥控信号智能解码,要求制作出实物,实现解码功能。
三.电路设计1、红外编码原理在实际应用中红外编码将二进制码调制到38MHz的载波频率上,通过在空中传播,由红外接收头接收之后,由内部的解调电路进行解调, 解调出来的就是我们发送的那些二进制码。
红外编码方式根据日本NEC 协议编码。
每次发送四个字节:用户码,用户反码,数据码,数据反码。
数据 0和 1的区别通常体现在高低电平的时间长短上。
一次按键首先发送9ms的低电平和4.5ms的高电平的引导码。
实际生活中,用遥控器发出的信号与上面的信号是相反的,经过红外线接收头解码以后就和上图一样了,值得大家注意的是发射模块的芯片不同,引导区的时间和数据都有所不同,但解决的方法都是一样的。
引导码后就是用户码。
但是怎么来区分0和1呢?前面我们提到了PWM(脉宽调制)。
根据脉冲的宽度来区别0和1.0.56ms低电平之后接0.56ms高电平为0,接1.12ms高电平为1.2、红外解码方法在实际生活中红外解码一般由红外接收头接收并解码。
解码时先跳过9ms 高电平和4.5ms的低电平,然后跳过0.56ms的低电平,最后通过循环等待搞电平的结束并计时。
通过判断高电平时间的长短来区分0(0.56ms)和1(1.12ms)。
最后判断接收到的四个字节(用户码,用户反码,数据码,数据反码)中数据码和取反后的数据反码相不相等。
3、红外编解码电路四、程序设计见附录五、系统仿真仿真分析:仿真照片如上图,当从4*4键盘按下K5时,单片机U1的数码管显示5,同时P3.0发送出如下图所示的脉冲。
上图包含了9ms高电平和4.5ms低电平的引导码和4字节(32位)的信息码,包括用户码(00000000),用户反码(11111111),数据码(00001001),数据反码(11110110)。
六、结论通过本次试验用软件模拟了红外发送编码与接收解码的过程。
基本上可以脱离硬件实现红外的发送与接收。
但是本实验还是存在一些问题,发送信号没有用38Khz的载波频率载波和实际的发送信号应该与本实验相反。
所以做实物时应该考虑这些问题。
附录:发送程序:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar IR[4]; //全局变量存放发送数据sbit IRIN=P3^4;// 发送脚sbit BEEP = P3^0;// 蜂鸣器void SendData();void Delay(uint x);void Delay_112();void Delay_56();void Delay_50();void Key_scan();void Beep();uchar DM[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e,0xff};void main(){uchar t=16;IR[2]=16;while(1){Key_scan();P0 = DM[IR[2]];if(t!=IR[2]) //保证每次只发送一个数据缺点:每个键不能重复发送{t=IR[2]; //保护IR[2]的值Beep();SendData();IR[2]=t; //还原IR[2]的值}Delay(100);}}void SendData(){uchar k,i,t;IR[1]=~IR[0]; //用户码取反IR[3]=~IR[2]; //数据码取反IRIN=0;Delay(9); //假设9ms低电平发射IRIN=1;Delay(4); //4.5ms高电平Delay_50();for(k=0;k<4;k++)for(i=0;i<8;i++){IRIN=0;Delay_56();t=IR[k]; //保存IR[k]的值if(IR[k]>>=7) //取最高位{IRIN=1;Delay_112();}else{IRIN=1;Delay_56();}t<<=1; //次高位变为最高位IR[k]=t;}IRIN=0;//保证最后一个脉冲的高电平时间Delay_56();IRIN=1;}void Key_scan(){uchar i;P1=0x0f;if(P1!=0X0f){Delay(2); //消抖if(P1!=0x0f)switch(P1){case 0x0e: i=0;break;case 0x0d: i=1;break;case 0x0b: i=2;break;case 0x07: i=3;}Delay(1);P1=0xf0;switch(P1){case 0xe0: i+=0;break;case 0xd0: i+=4;break;case 0xb0: i+=8;break;case 0x70: i+=12;}IR[0]=0; //用户码为0IR[2]=i;}}void Beep(){uchar i,j;for(i=0;i<100;i++){for(j=0;j<123;j++);BEEP=~BEEP;}BEEP=1;}void Delay(uint x){uint i,s;for(i=x;i>0;i--)for(s=127;s>0;s--);}void Delay_112(){uint m,n;for(m=1;m>0;m--)for(n=142;n>0;n--);}void Delay_56(){uint m,n;for(m=1;m>0;m--)for(n=68;n>0;n--);}void Delay_50(){uint m,n;for(m=1;m>0;m--)for(n=64;n>0;n--);}接收程序:#include <reg51.h>#define uchar unsigned char#define uint unsigned int#define SMG P0sbit IRIN=P2^7; //红外线输入sbit TS=P1^0; //显示灯void Delay(uint x);void Delay_50();void ReadIR();uchar IR[4];uchar DM[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1 ,0x86,0x8e,0xff};void main(){IR[2]=16;//关显示while(1){ReadIR();Delay(10);if(IR[2]>=16) //接收到的值大于等于16关显示SMG=DM[16];elseSMG=DM[IR[2]];} }void ReadIR(){uchar i,j,time;if(IRIN==0){while(IRIN==0); //等待9ms的引导码过去if(IRIN==1){while(IRIN==1); //等待4.5ms的引导码过去IR[2]=0; //重新给数据码清零for(i=0;i<4;i++){for(j=0;j<8;j++){while(IRIN==0); //等待560us的低电平过去while(IRIN==1){time++; //计时Delay_50();}IR[i]<<=1; //因为有8次循环为了保证最后一次为个位if(time>=6){IR[i]|=0x01;}time=0; //计时清零}}TS=0; //灯闪烁提示Delay(200);TS=1;}}}void Delay(uint x){uint i,s;for(i=x;i>0;i--)for(s=127;s>0;s--);}void Delay_50(){uint m,n;for(m=1;m>0;m--)for(n=20;n>0;n--);}。