数码管显示

合集下载

数码管显示控制实验原理

数码管显示控制实验原理

数码管显示控制实验原理
嘿,朋友们!今天咱来聊聊数码管显示控制实验原理。

想象一下,数码管就像是一个个小小的窗户,每个窗户里都能显示出不同的数字或符号。

其实啊,这原理就好像是一个聪明的指挥家在控制着一场精彩的灯光秀。

数码管里的每一段就像是一个小灯,通过巧妙地控制这些小灯的亮灭,就能组合出我们想要的数字啦。

比如说,要显示数字“8”,那就得让数码管的所有段都亮起来,就像把所有的灯光都打开,一下子就呈现出一个完整的“8”啦。

而要显示其他数字呢,就按照特定的组合让相应的段亮起来就行。

这就好像我们家里的电灯开关,想开哪个灯就按哪个开关,只不过这里的开关是通过电路和程序来控制的哦。

在实验里,我们就是要搞清楚怎么去设置这些开关,让数码管乖乖地显示出我们想要的东西。

是不是感觉挺有意思的呀?就像是在玩一个超级有趣的电子游戏,只不过这个游戏是关于数字和电路的。

所以,下次当你看到数码管显示出清晰的数字时,就可以想象一下背后那个神奇的“指挥家”是怎么工作的啦!。

简要描述数码管的静态显示方式和动态显示方式

简要描述数码管的静态显示方式和动态显示方式

简要描述数码管的静态显示方式和动态显示方式数码管是一种常见的数字显示器件,它由多个发光二极管组成。

数码管广泛应用于各种仪器、仪表以及数码钟表等领域,方便人们对数字进行直观的观察。

数码管的显示方式可以分为静态显示和动态显示两种。

一、静态显示方式:静态显示方式是指在任意时刻,只有某一个数码管被点亮,显示对应的数字。

在静态显示模式下,每个数码管都有一个对应的驱动电路,通过给驱动电路加电来点亮相应的数码管。

这种方式显示的数字清晰、稳定,但相对来说比较耗能。

静态显示常用于对显示要求较高、静止不动的场合。

二、动态显示方式:动态显示方式是指通过快速切换多个数码管的点亮状态来显示一个完整的数字。

通常一次只有一个数码管被点亮,然后迅速关闭,接着点亮下一个数码管,如此循环往复,以达到显示多个数字的目的。

动态显示通过控制每个数码管点亮的时间片段,用肉眼看到的是所有数字都在不断刷新,形成一个连续的显示效果。

动态显示方式能够节省能源,适用于显示频繁切换的场合。

动态显示方式还可以分为多路复用和直接显示两种。

1. 多路复用动态显示方式:多路复用动态显示方式是指通过在每一个时间片段内,依次对每个数码管进行点亮,以形成数字的显示效果。

在每个时间片段内,通过给对应的驱动电路加电,在该时间段内点亮对应的数字。

通过快速地在不同的时间片段内切换数码管的点亮状态,人眼可以看到所有数字的完整显示。

这种方式能够降低驱动电路的复杂度,适用于需要显示较多位数的场合。

2. 直接显示动态显示方式:直接显示动态显示方式是指通过在每一个时间片段内,同时点亮多个数码管,以形成数字的显示效果。

在每个时间片段内,通过给对应的驱动电路加电,在该时间段内点亮多个数码管。

通过快速地在不同的时间片段内切换多个数码管的点亮状态,人眼可以看到所有数字的完整显示。

这种方式增加了驱动电路的复杂度,但能够提高数字的亮度,适用于需要显示较亮的数字的场合。

总结:数码管的静态显示方式和动态显示方式各有特点,适用于不同的场合。

数码管动态显示实验报告

数码管动态显示实验报告

一、实验目的1. 掌握数码管动态扫描显示的原理和编程实现方法;2. 熟悉单片机与数码管之间的接口连接;3. 学会使用定时器中断控制数码管的动态显示;4. 培养动手能力和问题解决能力。

二、实验原理数码管动态显示是通过单片机控制多个数码管同时显示不同的数字或字符,利用人眼的视觉暂留效应,实现快速切换显示内容,从而在有限的引脚数下显示更多的信息。

实验中,我们采用动态扫描的方式,依次点亮数码管,通过定时器中断控制扫描速度。

三、实验器材1. 单片机开发板(如51单片机、AVR单片机等);2. 数码管(共阳/共阴自选);3. 连接线;4. 电阻;5. 实验台;6. 编译器(如Keil、IAR等)。

四、实验步骤1. 设计电路图:根据实验要求,设计单片机与数码管的连接电路图,包括数码管的段码、位选信号、电源等。

2. 编写程序:使用C语言或汇编语言编写程序,实现数码管的动态显示功能。

(1)初始化:设置单片机的工作模式、定时器模式、端口方向等。

(2)显示函数:编写显示函数,实现数码管的点亮和熄灭。

(3)定时器中断服务程序:设置定时器中断,实现数码管的动态扫描。

3. 编译程序:将编写的程序编译成机器码。

4. 烧录程序:将编译后的程序烧录到单片机中。

5. 连接电路:将单片机与数码管连接好,包括数码管的段码、位选信号、电源等。

6. 运行实验:打开电源,观察数码管的显示效果。

五、实验结果与分析1. 实验结果:数码管按照预期实现了动态显示功能,依次点亮每位数码管,并显示出不同的数字或字符。

2. 分析:(1)通过调整定时器中断的周期,可以改变数码管的扫描速度,从而控制显示效果。

(2)在编写显示函数时,要考虑到数码管的共阳/共阴特性,选择合适的点亮和熄灭方式。

(3)在实际应用中,可以根据需要添加其他功能,如显示时间、温度等。

六、实验总结1. 通过本次实验,掌握了数码管动态显示的原理和编程实现方法。

2. 熟悉了单片机与数码管之间的接口连接,提高了动手能力。

《数码管显示》课件

《数码管显示》课件
具有高亮度、高对比度、低功耗等优点,是未来显示技术的发展方向之一。
具有高分辨率、低成本等优点,但存在视角较小、响应速度较慢等问题。
LCD显示器
具有高亮度、长寿命、低功耗等优点,但存在色彩表现较差等问题。
LED显示器
05
CHAPTER
数码管显示的实际应用案例
数码管常用于智能家居控制面板,显示温度、湿度、时间等信息,方便用户了解家居环境状况。
《数码管显示》ppt课件
目录
数码管显示概述数码管显示原理数码管显示驱动电路数码管显示技术发展趋势数码管显示的实际应用案例
01
CHAPTER
数码管显示概述
是一种通过控制LED灯的亮灭来显示数字或字符的电子显示器件。
数码管显示器

发光原理
显示效果
利用LED灯的发光特性,通过导通或截止控制LED灯的亮灭,以显示不同的数字或字符。
数码管显示器具有高亮度、高清晰度、低功耗等优点,常用于各种电子设备中。
03
02
01
按位数分类
01
一位、两位、三位、四位等数码管显示器,位数越多,可以显示的数字或字符越多。
按显示内容分类
02
七段数码管显示器、点阵式数码管显示器等,不同的显示内容适用于不同的应用场景。
按控制方式分类
03
静态数码管显示器、动态数码管显示器,静态数码管显示器直接控制每个LED灯的亮灭,而动态数码管显示器则是通过扫描方式控制LED灯的亮灭。
02
CHAPTER
数码管显示原理
数码管内部由多个LED灯珠组成,每个灯珠都有一个阴极和阳极,通过控制阴极和阳极的电压来控制灯珠的亮灭。
发光原理
数码管通常有单色和双色两种类型,单色数码管只能发出红、绿、黄等单色光,而双色数码管则能发出红、绿、黄等两种颜色。

数码管显示电路的原理

数码管显示电路的原理

数码管显示电路的原理
数码管显示电路通过控制电压信号的高低来驱动数码管的不同段进行显示。

数码管是由多个发光二极管组成的,每个发光二极管对应显示一个数字或符号。

数码管显示电路主要由以下几个部分组成:
1. 数字信号发生器:用来产生需要显示的数字或符号的电信号。

该信号可以通过逻辑门、计数器、微控制器等方式产生。

2. 译码器:将数字信号转换为控制数码管显示的信号。

译码器一般采用BCD码(二进制编码十进制)或者7段码来表示数字。

3. 驱动电路:将译码器输出的信号转换为适合驱动数码管的电压和电流。

驱动电路一般使用三极管、开关电路等来完成。

4. 数码管:由多个发光二极管(LED)组成,每个发光二极管对应一个数字或符号的显示段。

数码管的引脚连接到驱动电路上。

5. 电源电路:为整个数码管显示电路提供工作电压。

一般使用稳压电源或者适配器来提供稳定的直流电压。

工作原理如下:
当数字信号发生器产生需要显示的数字或符号的电信号时,该
信号经过译码器转换为对应的亮灭控制信号,然后通过驱动电路产生适合数码管的控制电压和电流。

驱动电路按照控制信号的要求,通过对应的引脚将控制信号传递给数码管。

这样,数码管的不同段就会根据控制信号的高低来亮灭,从而显示出对应的数字或符号。

整个数码管显示电路在工作时,可以通过改变数字信号的输入来实现不同数字或符号的动态显示。

经过适当的控制和调节,数码管显示电路可以显示出各种数字、字母、符号等。

数码管 动态显示原理

数码管 动态显示原理

数码管动态显示原理
数码管的动态显示原理是通过快速地切换数字的显示段来实现连续的数字显示。

数码管通常由7个显示段构成,分别代表数字0-9的不同显示形式。

这些段也被称为a、b、c、d、e、f和
g段。

在动态显示过程中,每个数字被逐个切换显示的时间非常短,通常为几毫秒。

这个时间非常短,以至于人眼无法察觉数字的切换。

因此,当多个数码管以高速切换显示数字时,人眼会感觉到所有数码管上的数字同时显示。

要实现动态显示,需要使用一个计数器来控制切换显示的时间。

这个计数器通常是一个定时器,它会以一定的频率触发中断,每次中断时触发一次显示切换。

通过不断增加计数值,可以控制不同数字的显示时间。

为了显示一个多位数,需要使用多个数码管并连接到控制器上。

控制器会根据待显示的数字,将适当的段信号发送到对应的数码管上。

通过在不同的数码管上切换显示,就可以实现多位数的动态显示。

动态显示的基本原理如下:
1. 设置初始的数码管选择位,使其对应第一个数码管。

2. 将第一个数码管对应的段信号置为显示的数字。

3. 延时一段时间,使人眼无法察觉到数字的切换。

4. 将第一个数码管的段信号置为低电平(或不显示的状态)。

5. 设置下一个数码管的选择位,使其对应下一个数码管。

6. 重复2-5步骤,直至所有数码管都完成一轮显示。

7. 返回第一步,重复整个过程,以实现连续的动态显示。

通过以上步骤的循环,不断切换显示的数字会给人一种连续而平滑的显示效果。

这就是数码管动态显示的基本原理。

数码管静态显示和动态显示原理

数码管静态显示和动态显示原理

数码管静态显示和动态显示原理数码管是一种常见的显示设备,它由多个发光二极管(LED)组成,通过控制每个LED的点亮与否,可以显示数字、字母、符号等。

数码管的显示方式主要分为静态显示和动态显示两种。

静态显示即直接将需要显示的数字发送给数码管进行显示。

实现静态显示的原理是通过控制LED的正向电流,使其发光。

1.显示单个数码管静态显示一位数码管时,需要将需要显示的数字转换为对应的二进制编码,并通过控制数码管的引脚,将对应的编码信号送到数码管,从而点亮对应的LED。

LED管的引脚包括共阳(正)端和共阴(负)端,需要根据具体的数码管类型,将对应的编码信号送到相应的引脚上。

例如,常见的共阳数码管,其引脚对应的编码信号如下表所示:数码管编码,a,b,c,d,e,f,g,DOT二进制值,1,2,4,8,16,32,64,128我们可以选择使用并口或者串口的方式,将对应的编码信号通过控制引脚进行发送,从而实现对数码管的显示。

2.显示多位数码管如果需要显示多位数码管,可以依次控制每个数码管的引脚,逐个显示数字。

例如,如果需要显示一个四位的数字,可以选择多个数码管,然后依次对每个数码管进行静态显示。

对于多位数码管,如果静态刷新频率较低,人眼会觉得显示闪烁。

因此,在静态显示中,通常需要使用较高的刷新频率,以使得显示效果更加稳定。

动态显示是指通过间歇性显示不同的位数,从而实现连续显示的效果。

动态显示的原理是通过快速的切换不同的位数,让人眼产生连续显示的错觉。

1.时分复用最常见的动态显示原理是时分复用技术,即通过快速的切换不同的位数,以使得数码管在较短的时间内完成多个位数的显示。

例如,对于一个四位数码管的显示,可以快速切换每个数码管的引脚,使得数码管按照一定的频率逐个显示不同的数字。

实现时分复用的关键是要保证刷新频率足够高,以至于人眼无法察觉到刷新的效果。

2.位数切换在时分复用中,需要对每个数码管进行位数的切换,以显示对应的数字。

数码管显示

数码管显示
LED数码管显示 LED数码管显示
一、数码管的结构 1、常用的数码管
2、数码管的内部结构
3、数码管的引脚图 数码管的引脚判断可用万用表的二极管测量档位进行判断。 数码管的引脚判断可用万用表的二极管测量档位进行判断。 可以判断出每个引脚及共阴还是共阳
二、数码管的显示原理 1、共阴极数码管 共阴极数码管 公共端接低电平, 公共端接低电平,a~h八个输入根据要显示的字符确定是 八个输入根据要显示的字符确定是 高电平“ 或低电平 或低电平“ , 高电平“1”或低电平“0”,从而得到每个数字或字符的显 示段码。 示段码。 显示数字 h 0 0 g 0 0 f 1 0 e 1 0 d 1 0 c 1 1 b 1 1 a 段码值 1 0 3FH 06H
四、设计举例 设计一共阳极6位动态扫描显示电路,显示 设计一共阳极 位动态扫描显示电路,显示012345六个 位动态扫描显示电路 六个 数字。 数字。 DIS1 EQU 30H
DIS2 EQU 31H DIS3 EQU 32H ORG 0000H LJMP START ORG 0030H START: MOV SP,#60H MOV DIS1,01HH MOV DIS2,#23H MOV DIS3,#45H MOV P1,#0FFH WAIT: LCALL DISPLAY SJMP WAIT SJMP $
DISPLAY: PUSH ACC PUSH PSW MOV DPTR,#TABLE MOV A,DIS1 MOV B,A ANL A,#0F0H SWAP A MOVC A,@A+DPTR MOV P0,A MOV P2,#01111111B LCALL DELAY MOV A,B ANL A,#0FH MOVC A,@A+DPTR MOV P0,A
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数码管显示第3讲数码管显示第3讲数码管显示一、数码管显示原理我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。

所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。

数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED 的另一端高电平,它便能点亮。

而共阳极就是将八个LED的阳极连在一起。

其原理图如下。

其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。

一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。

显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。

数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。

所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。

可以看出两个编码的各位正好相反。

如下图。

二、点亮一个数码管下面以七段共阴数码管为例讲述如何点亮一个数码管。

l 51系列单片机的P0口没有上拉电阻(其他端口有),所以如果直接接数码管的段选线,那么不能将其点亮。

我们需要为其加上220欧姆的上拉电阻,注意,上拉电阻阻值不能过大。

实验原理图如下。

其中,7SEG-COM-CAT-GRN为七段共阴数码管,显示为绿色。

RES为电阻。

查找电阻时,需要选中下面的Resistors,如下图。

右击选中图中的电阻再左击,弹出的窗口中可改变它的阻值。

如下图。

那七个电阻看上去很乱,其实他们可以用一个排阻(RESPACK-7)代替。

如下图。

到这里原理图就画完了,我们开始写源程序。

让数码管显示字符“0”。

#includevoid main(){P0 = 0x3f; //P0口送字符‘0’的编码}显示效果如下。

因为这个程序就一句话,很简单,所以我们不再进行分析。

三、一个数码管显示不同字符下面的程序让一个数码管轮流显示不同的字符。

#includevoid delay();void main(){P0 = 0x3f; //显示字符‘0’delay(); //延时一会P0 = 0x06; //显示字符‘1’delay();P0 = 0x5b; //显示字符‘2’delay();}void delay(){int i,j;for(i=1000;i>0;i--)for(j=100;j>0;j--);}这个程序实现字符‘0’,‘1’,‘2’的循环显示。

但如果要循环显示更多的数字,每次都写出他们的编码很麻烦,这里我们可以将所有的编码都写到一个数组里,以后只需调用数组就可以了。

程序如下。

#includeunsigned char code table[]={0x3f,0x06,0x5b}; //定义编码数组,注意最后void delay();void main(){P0 = table[0]; //调用数组的第一个元素delay();P0 = table[1];delay();P0 = table[2];delay();}void delay(){int i,j;for(i=1000;i>0;i--)for(j=100;j>0;j--);}这里要说明的是,unsigned char表明数组中的元素是无符号字符型数据,code 表明这是编码数组,其编译后不占内存空间而是占程序存储空间,我们知道单片机的内存空间很小,所以这个很重要。

table是数组名字,自己可以随便更换。

因为数组中的元素是从0开始排的,所以table[0]就是第一个元素0x3f。

四、多个数码管同时显示原理图如下:其中,7SEG-MPX8-CC-BLUE是8位八段共阴数码管,显示为蓝色。

其段选线接在P0口,位选线接在P2口。

让所有数码管显示同一个字符。

源程序如下:void main(){P2 = 0; //P2口各位全为低电平,选中数码管所有位P0 = 0x3f; //显示字符‘0’}这个程序只比第一个程序多了一条“P2 = 0;”,这样来实现位选。

最终效果如下:让任意位显示字符。

源程序如下:#includevoid main(){P2 = 0xaa; //选中从左数的第1,3,5,7位数码管P0 = 0x3f;}效果如下:五、动态显示以上的显示均为静态显示,下面讲述动态显示。

而到底什么是静态显示什么是动态显示,等看完下面的内容就会很清楚了。

因为上面多个数码管显示时只能显示同一个字符,怎么才能让不同的数码管显示不同的字符呢?我们先完成这样的一个程序,让第一位数码管显示1,然后第二位数码管显示2,然后第三位数码管显示3。

为了使程序短些,我们只控制前三位,要想让其他五位也显示,道理是一样的。

源程序如下:#includeunsigned char code table[]={0x3f,0x06,0x5b,0x4f};void delay();void main(){P2 = 0xfe; //选中第一位数码管P0 = table[1]; //让其显示字符‘1’delay(); //延时一会P2 = 0xfd; //选中第二位数码管P0 = table[2]; //让其显示字符‘2’delay();P2 = 0xfb; //选中第三位数码管P0 = table[3]; //让其显示字符‘3’delay();}void delay(){int i,j;for(i=1000;i>0;i--)for(j=100;j>0;j--);}这个程序就是分别选中一位数码管,让它显示一个字符,同单位数码管显示的原理是一样的。

这里你会发现每显示完一个字符之后都有一个延时,这个延时有什么作用呢?我们可以先试着改变这个延时,看会有什么效果。

我们先将delay()函数中的第一个for循环中的i的初值由1000,改为100,再运行一下程序,有什么效果?然后再将其改为10呢?这时是不是我们想要的不同数码管同时显示不同的字符的效果已经出来了。

效果如下:这就是上面所说的动态显示效果。

那静态显示与动态显示到底有什么不同呢?很明显,通俗的说,我们把向数码管各位轮流送入字符编码和位选信号,利用人眼的视觉暂留,让人感觉好像几位数码管被同时点亮,这样便可以在不同的数码管上同时显示不同的字符的效果称为动态显示。

打个比方,你晚上拿根点着的烟,在空中快速划过,你就会看到一条亮线,但其实它只是一个亮点划过而已。

如果你对它还不了解,可以到别的资料上查看一下视觉暂留的相关知识。

而静态显示就是真实的同时选中几位。

这就是它们的根本区别。

六、消影到这里我们必须先说明一个问题了。

前面我们写程序都是全部直接写到main()函数里的。

那么你有没有想过,main()函数里的语句从头执行到尾,那么语句全部执行完了会怎么样呢?你会想到它会从头再开始执行,对吧!因为由前面的程序可以看出,指令是在无限循环执行的。

但依靠这种默认的循环并不可靠,一般地,我们都是在程序中用一个死循环语句来实现无限循环的。

上面的源程序的主函数可改为:void main(){while(1) //死循环{P2 = 0xfe;P0 = table[1];delay();P2 = 0xfd;P0 = table[2];delay();P2 = 0xfb;P0 = table[3];delay();}}可以看到,我们是把所有要循环的语句都放到了一个while(1){}循环中执行的。

在以后的程序中,程序的主体部分都会放到这个语句中。

程序写成这样以后,你再将延时函数的延时缩减,比如:void delay(){int i,j;for(i=5;i>0;i--)for(j=1;j>0;j--);}这时运行程序,是不是发现很乱了!效果可能如下:这就是我们所说的“拖影”。

其实在真实的板子上,就算延时很长,也可以看见“拖影”现象。

出现这样的现象的原因是CPU的执行速度很快,当送入位选和段选数据后,接着又送入位选数据,但该位的段选数据还没有送入,所以该位还保持着上次的段选数据,接着该位的段选数据送入,由于视觉残留,两个段选数据的显示效果重合,形成了混乱。

简单的说,就是一位数码管显示了它前一位要显示的字符和它本身要显示的字符的重叠效果。

要想避免“拖影”就必须在每位数码管显示完后将其关闭,我们可以加入“P2 = 0xff;”,这样各位数码管都不会选中,然后下一位再显示时就不会有影响了,这就是所谓的“消影”。

我们把程序改为如下:void main(){while(1){P2 = 0xfe;P0 = table[1];delay();P2 = 0xff; //消影P2 = 0xfd;P0 = table[2];delay();P2 = 0xff;P2 = 0xfb;P0 = table[3];delay();P2 = 0xff;}}但是当运行后,你会发现效果并没有变化。

为什么呢?为了研究原因,我们进行联机调试,然后单步运行程序,看看程序到底是怎么执行的。

关于怎么联机调试,我们以前已经专门讲过,这里不再叙述。

如下图,先在keil中按下调试按键,会发现Proteus仿真图已经开始运行。

然后在keil中选择源程序one显示界面,并按下单步调试按键,它表示进入子函数内部,例如下面的调试过程中会进入delay()函数的内部。

按下该按键后,会在第一条语句前出现黄色箭头,表明这条语句还没有执行,下一次将会执行该语句。

再次点击单步按键,第一条语句执行完毕,会发现第一位数码管被点亮,因为还没有赋值,所以七段都被点亮了。

如下图。

再点击单步按键,可以看到虽然段选已经赋值了,但数码管并没有显示。

如下图。

再点击单步,便进入了delay()函数的内部,此时数码管也显示出‘1’了,如下图。

连续点击单步,直到跳出delay()函数,以后我们就点击另一个单步按键,它不会进入子函数内部。

如下图。

点击单步后,执行完P2=0xff;语句,数码管不再显示,如下图。

再点击单步,执行完P2=0xfd;语句,我们发现第二个数码管居然显示的是‘1’,其实也对,因为段选的数据还没有改变呢。

这正是产生“拖影”的原因。

如下图。

再点击单步,准备执行延时函数。

如下图。

点击单步,执行完延时函数后,显示出了正确的字符,如下图。

因为已经找到了原因,所以我们联机调试就到这里。

可以看到,在进行联机调试单步运行时可以发现很多程序执行的细节,所以对一些不好想的问题,我们都可以通过这种方法去寻找答案。

我们已经看到程序出错是因为消影语句“P2 = 0xff;”并没有起到应有的作用。

相关文档
最新文档