1、第5章 I/O口的配置与应用单片机原理及应用系统设计主要内容I/O口的工作模式及结构与I/O口有关的特殊功能寄存器及其地址声明应用举例5.1.1 5.1.1 并行并行I/OI/O口工作模式口工作模式 I IAP15W4K58S4AP15W4K58S4单片机最多有单片机最多有6262个个I/OI/O口,口,P0P7P0P7(没有(没有P5.6P5.6和和P5.7P5.7)其中其中IAP15W4K58SIAP15W4K58S4 4(LQFP44LQFP44封装)单片机共有封装)单片机共有4242个个I/OI/O端口端口线。本书以线。本书以LQFP44LQFP44封装为例。封装为例。LQFP44LQ
2、FP44所有所有I/OI/O口均可由软件配置成口均可由软件配置成4 4种工作类型之一,如下种工作类型之一,如下表所示。表所示。4 4种类型分别为:准双向口种类型分别为:准双向口/弱上拉(标准弱上拉(标准80518051输出模式)、推输出模式)、推挽输出挽输出/强上拉、仅为输入(高阻)或开漏输出功能。强上拉、仅为输入(高阻)或开漏输出功能。5.1 I/O5.1 I/O口工作模式及结构口工作模式及结构5.1.1 5.1.1 并行并行I/OI/O口工作模式口工作模式 I/OI/O口驱动能力口驱动能力 每个每个I/OI/O口驱动能力均可达到口驱动能力均可达到20mA20mA 40-pin 40-pin
3、及及40-pin40-pin以上单片机的整个芯片最大不要超过以上单片机的整个芯片最大不要超过120mA120mA 2 20-pin0-pin以上及以上及32-pin32-pin以下(包含以下(包含32-pin32-pin)单片机的整个芯片最)单片机的整个芯片最大不要超过大不要超过90mA90mA5.1 I/O5.1 I/O口工作模式及结构口工作模式及结构5.1.1 5.1.1 并行并行I/OI/O口工作模式口工作模式 I/OI/O口控制口控制 每个口由每个口由2 2个控制寄存器中的相应位控制每个引脚工作类型。个控制寄存器中的相应位控制每个引脚工作类型。STC15STC15系列单片机的系列单片机
4、的I/O I/O 口上电复位后为准双向口口上电复位后为准双向口/弱上拉弱上拉(传统(传统80518051的的I/O I/O 口)模式。口)模式。每个端口的工作模式由每个端口的工作模式由PnM1PnM1和和PnM0PnM0(n=0,1,2,3,4,5n=0,1,2,3,4,5)两个寄存)两个寄存器的相应位来控制。器的相应位来控制。除与专用除与专用PWMPWM模块有关的引脚(模块有关的引脚(P P0.6/P0.7/P1.6/P1.7/P2.1/0.6/P0.7/P1.6/P1.7/P2.1/P2.2/P2.2/P2.3/P2.7/P3.7/P4.2/P4.4/P4.5P2.3/P2.7/P3.7/
5、P4.2/P4.4/P4.5)为高阻外,)为高阻外,IAP15W4K58S4IAP15W4K58S4单片机上电复位后所有单片机上电复位后所有I/OI/O口均为准双向模式。口均为准双向模式。5.1 I/O5.1 I/O口工作模式及结构口工作模式及结构补充:上拉电阻与下拉电阻补充:上拉电阻与下拉电阻 上拉电阻上拉电阻:电阻一端接:电阻一端接VCCVCC,一端接逻辑电平接入单片机引脚。,一端接逻辑电平接入单片机引脚。下拉电阻下拉电阻:电阻一端接:电阻一端接GNDGND,一端接逻辑电平接入单片机引脚。,一端接逻辑电平接入单片机引脚。如图,如图,R13R13和和R14R14,一端接到了,一端接到了3.3
6、V3.3V,一端通过,一端通过J17J17连接到单片机连接到单片机引脚,这两个电阻就是上拉电阻。引脚,这两个电阻就是上拉电阻。补充:上拉电阻与下拉电阻补充:上拉电阻与下拉电阻 如图,如图,R18R18的一端连接到了的一端连接到了GNDGND,一端连接到了单片机的,一端连接到了单片机的引脚引脚(只不过是串了一个电阻后连接到了单片机引脚只不过是串了一个电阻后连接到了单片机引脚)。所。所以这个就是以这个就是下拉电阻下拉电阻。补充:上拉电阻与下拉电阻补充:上拉电阻与下拉电阻 如图,如图,R18R18的一端连接到了的一端连接到了GNDGND,一端连接到了单片机的,一端连接到了单片机的引脚引脚(只不过是串
7、了一个电阻后连接到了单片机引脚只不过是串了一个电阻后连接到了单片机引脚)。所。所以这个就是以这个就是下拉电阻下拉电阻。如果如果IE_DATAIE_DATA不连接任何引脚,那么由于不连接任何引脚,那么由于R18R18的下拉作用,的下拉作用,IE_DATAIE_DATA就是低电平,所以三极管就不会导通。就是低电平,所以三极管就不会导通。补充:上拉电阻与下拉电阻补充:上拉电阻与下拉电阻 上拉电阻和下拉电阻有什么用?上拉电阻和下拉电阻有什么用?功能一:功能一:提高驱动能力提高驱动能力。例如,用单片机输出高电平,但由于后续电路的影响,输例如,用单片机输出高电平,但由于后续电路的影响,输出的高电平不高,就
8、是达不到出的高电平不高,就是达不到VCCVCC,影响电路工作。所以,影响电路工作。所以要接上拉电阻。要接上拉电阻。下拉电阻情况相反,让单片机引脚输出低电平,结果由于下拉电阻情况相反,让单片机引脚输出低电平,结果由于后续电路影响输出的低电平达不到后续电路影响输出的低电平达不到GNDGND,所以接个下拉电,所以接个下拉电阻。阻。补充:上拉电阻与下拉电阻补充:上拉电阻与下拉电阻 功能二:在单片机引脚电平不定的时候,让后面有一个稳功能二:在单片机引脚电平不定的时候,让后面有一个稳定的电平。定的电平。例如上面接下拉电阻的情况下,在单片机刚上电的时候,例如上面接下拉电阻的情况下,在单片机刚上电的时候,电平
9、是不定的,还有就是如果你连接的单片机在上电以后,电平是不定的,还有就是如果你连接的单片机在上电以后,单片机引脚是输入引脚而不是输出引脚,那这时候的单片单片机引脚是输入引脚而不是输出引脚,那这时候的单片机电平也是不定的,机电平也是不定的,R18R18的作用就是如果前面的单片机引脚的作用就是如果前面的单片机引脚电平不定的话,强制让电平保持在低电平。电平不定的话,强制让电平保持在低电平。补充补充2 2:灌电流与拉电流:灌电流与拉电流 拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都拉电流和灌电流是衡量电路输出驱动能力(注意:拉、灌都是对输出端而言的,所以是驱动能力)的参数,这种说法一是对输出端而
10、言的,所以是驱动能力)的参数,这种说法一般用在数字电路中。般用在数字电路中。由于数字电路的输出只有高、低(由于数字电路的输出只有高、低(0 0,1 1)两种电平值,高电)两种电平值,高电平输出时,一般是输出端对负载提供电流,其提供电流的数平输出时,一般是输出端对负载提供电流,其提供电流的数值叫值叫“拉电流拉电流”;低电平输出时,一般是输出端要吸收负载;低电平输出时,一般是输出端要吸收负载的电流,其吸收电流的数值叫的电流,其吸收电流的数值叫“灌(入)电流灌(入)电流”补充补充2 2:灌电流与拉电流:灌电流与拉电流 结论如下结论如下:单片机输出低电平的时候,驱动能力尚可,而输出高电平的单片机输出低
11、电平的时候,驱动能力尚可,而输出高电平的时候,就没有输出电流的能力。时候,就没有输出电流的能力。灌电流负载,是合理的;而灌电流负载,是合理的;而“拉电流负载拉电流负载”和和“上拉电阻上拉电阻”会产生很大的无效电流,并且功耗大。会产生很大的无效电流,并且功耗大。设计单片机的负载电路,应该采用设计单片机的负载电路,应该采用“灌电流负载灌电流负载”的电路形的电路形式,以避免无谓的电流消耗。式,以避免无谓的电流消耗。表表5-1 I/O5-1 I/O口工作模式的设置口工作模式的设置控制信号控制信号I/OI/O口工作模式口工作模式PnM17:0PnM17:0PnM07:0PnM07:00 00 0准双向口
12、(传统准双向口(传统8051 I/O 8051 I/O 口模式口模式):灌电流可:灌电流可达达20mA20mA,拉电流为,拉电流为270uA270uA,由于制造误差,实,由于制造误差,实际为际为270uA270uA150uA150uA0 01 1推挽输出:强上拉输出,可达推挽输出:强上拉输出,可达20mA20mA,要加限,要加限流电阻流电阻1 10 0仅为输入(高阻)仅为输入(高阻)1 11 1开漏(开漏(Open DrainOpen Drain):内部上拉电阻断开。需):内部上拉电阻断开。需外加上拉电阻,否则读不到外部状态,也对外外加上拉电阻,否则读不到外部状态,也对外输不出高电平。此模式用
13、于输不出高电平。此模式用于5V5V器件与器件与3V3V器件器件电平切换电平切换例如:例如:P0M1P0M1和和P0M0P0M0用于设定用于设定P0P0口的工作模式口的工作模式5.1.2 5.1.2 并行并行I/OI/O口的结构口的结构下面介绍下面介绍IAP15W4K58S4IAP15W4K58S4单片机的并行单片机的并行I/OI/O口不同模口不同模式的结构与工作原理。式的结构与工作原理。1 1准双向口工作模式准双向口工作模式 2 2推挽工作模式推挽工作模式 3 3仅输入(高阻)工作模式仅输入(高阻)工作模式 4 4开漏输出工作模式开漏输出工作模式5.1 I/O5.1 I/O口工作模式及结构口工
14、作模式及结构1.1.准双向口工作模式准双向口工作模式 准双向口工作模式下,准双向口工作模式下,I/OI/O口的电路结构如图口的电路结构如图5-15-1所示。所示。此模式下,此模式下,I/OI/O口可用直接输出而不需要重新配置口线输出口可用直接输出而不需要重新配置口线输出状态。每个端口都包含一个状态。每个端口都包含一个8 8位的锁存器,即特殊功能寄存器位的锁存器,即特殊功能寄存器P0P5P0P5。这种结构在数据输出时具有锁存功能,即在重新输。这种结构在数据输出时具有锁存功能,即在重新输出新的数据之前,口线上的数据一直保持不变。出新的数据之前,口线上的数据一直保持不变。图图5-1 5-1 准双向口
15、工作模式准双向口工作模式I/OI/O口的电路结构口的电路结构 准双向口有三个上拉场效应管准双向口有三个上拉场效应管T1T1、T2T2、T3T3,以适用不同,以适用不同的需要。其中,的需要。其中,T1T1称为称为“强上拉强上拉”,T2T2称为称为“极弱上拉极弱上拉”,T3T3称为称为“弱上拉弱上拉”。1.1.当口线寄存器为当口线寄存器为“1”“1”且引脚本身也为且引脚本身也为“1”“1”时,时,T3T3导通,导通,T3T3提供基本驱动电流使准双向口输出为提供基本驱动电流使准双向口输出为“1”“1”。如果一个引。如果一个引脚输出为脚输出为“1”“1”而由外部装置下拉到低电平时,而由外部装置下拉到低
16、电平时,T3T3断开,而断开,而T2T2维持导通状态。维持导通状态。2.2.当口线锁存为当口线锁存为“1”“1”,T2 T2导通。当引脚悬空时,这个极导通。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流,当引脚上拉为高电平。弱的上拉源产生很弱的上拉电流,当引脚上拉为高电平。3.3.当口线锁存器由当口线锁存器由“0”“0”到到“1”“1”跳变时,跳变时,T1T1用来加快准双用来加快准双向口由逻辑向口由逻辑“0”“0”到逻辑到逻辑“1”“1”的转换。当发生这种情况时,的转换。当发生这种情况时,T1T1导通约两个时钟,以使引脚能够迅速地上拉到高电平。导通约两个时钟,以使引脚能够迅速地上拉到高电平。
17、2 2.推挽工作模式推挽工作模式 推挽输出工作模式下,推挽输出工作模式下,I/OI/O口的电路结构如图口的电路结构如图5-25-2所示。此模所示。此模式下,式下,I/OI/O口输出的下拉结构、输入电路结构与准双向口模式是口输出的下拉结构、输入电路结构与准双向口模式是一致的,不同的是推挽输出工作模式下一致的,不同的是推挽输出工作模式下I/OI/O口的上拉是持续的口的上拉是持续的“强上拉强上拉”。当从端口引脚上输入数据时,必须先向端口锁存器置当从端口引脚上输入数据时,必须先向端口锁存器置“1”“1”,使,使T2T2截止。截止。图图5-2 5-2 推挽输入输出工作模式下推挽输入输出工作模式下I/OI
18、/O口的电路结构口的电路结构3 3.仅输入(高阻)工作模式仅输入(高阻)工作模式 仅为输入(高阻)工作模式下,仅为输入(高阻)工作模式下,I/OI/O口的电路结构如口的电路结构如图图5-35-3所示。此模式下,可直接从端口引脚读入数据,而不需所示。此模式下,可直接从端口引脚读入数据,而不需要先对端口锁存器置要先对端口锁存器置“1”“1”。图图5-3 5-3 仅为输入(高阻)工作模式下仅为输入(高阻)工作模式下I/OI/O口的电路结构口的电路结构4 4.开漏输出工作模式开漏输出工作模式 开漏工作模式下,开漏工作模式下,I/OI/O口电路结构如图口电路结构如图5-45-4所示。所示。此模式下,此模
19、式下,I/OI/O口输出的下拉结构与推挽输出口输出的下拉结构与推挽输出/准双向口一准双向口一致,输入电路与准双向口一致,但是输出驱动无任何负载,致,输入电路与准双向口一致,但是输出驱动无任何负载,即开漏状态,输出应用时,必须外接上拉电阻。即开漏状态,输出应用时,必须外接上拉电阻。图图5-4 5-4 开漏输出工作模式下开漏输出工作模式下I/OI/O口的电路结构口的电路结构4 4.开漏输出工作模式开漏输出工作模式 开漏工作模式下,开漏工作模式下,I/OI/O口电路结构如图口电路结构如图5-45-4所示。所示。此模式下,此模式下,I/OI/O口输出的下拉结构与推挽输出口输出的下拉结构与推挽输出/准双
20、向口一准双向口一致,输入电路与准双向口一致,但是输出驱动无任何负载,致,输入电路与准双向口一致,但是输出驱动无任何负载,即开漏状态,输出应用时,必须外接上拉电阻。即开漏状态,输出应用时,必须外接上拉电阻。图图5-4 5-4 开漏输出工作模式下开漏输出工作模式下I/OI/O口的电路结构口的电路结构5.2 5.2 与与I/OI/O口有关的特殊功口有关的特殊功能能寄存器及其地寄存器及其地址声明址声明 P5 register,地址,地址C8H,可位寻址,如表,可位寻址,如表5-2所示:所示:P5M1 registerP5M1 register,地址,地址C9HC9H,如表,如表5-35-3所示:所示:
21、P5M0 registerP5M0 register,地址,地址CAHCAH,如表所示:,如表所示:P4 registerP4 register,地址,地址C0HC0H,可位寻址,如表所示:,可位寻址,如表所示:P4M1 registerP4M1 register,地址,地址B3HB3H,如表所示:,如表所示:P4M0 registerP4M0 register,地址,地址B4HB4H,如表所示:,如表所示:P3 register P3 register,地址,地址B0HB0H,可位寻址,如表所示:,可位寻址,如表所示:P3M1 registerP3M1 register,地址,地址B1HB1
22、H,如表所示:,如表所示:P3M0 registerP3M0 register,地址,地址B2HB2H,如表所示:,如表所示:P2 registerP2 register,地址,地址95H95H,可位寻址,如表所示:,可位寻址,如表所示:P P2M02M0 register register,地址,地址96H96H,如表所示:,如表所示:P1 register P1 register,地址,地址90H90H,如表所示:,如表所示:P1M1 registerP1M1 register,地址,地址91H91H,如表所示:,如表所示:P1M0 registerP1M0 register,地址,地址9
23、2H92H,如表所示:,如表所示:P0 registerP0 register,地址,地址80H80H,可位寻址,如表所示,可位寻址,如表所示:P0M1 registerP0M1 register,地址,地址93H93H,如表所示:,如表所示:P0M0 registerP0M0 register,地址,地址94H94H,如表所示:,如表所示:下面分别列出汇编语言和下面分别列出汇编语言和C C语言情况下,各个语言情况下,各个I/OI/O的地址的地址声明。声明。1.1.汇编语言汇编语言 /*以以下下是是P5P5口新增功能寄存器的地址声明口新增功能寄存器的地址声明 P5 EQU 0C8H;OR P5
24、 DATA 0C8H P5 EQU 0C8H;OR P5 DATA 0C8H P5M1 EQU 0C9H;OR P5M1 DATA 0C9H P5M1 EQU 0C9H;OR P5M1 DATA 0C9H P5M0 EQU 0CAH;P5M0 EQU 0CAH;/*以以下下是是P4P4口新增功能寄存器的地址声明口新增功能寄存器的地址声明 P4 EQU 0C0H;OR P4 DATA 0C0H P4 EQU 0C0H;OR P4 DATA 0C0H P4M1 EQU 0B3H;OR P4M1 DATA 0B3H P4M1 EQU 0B3H;OR P4M1 DATA 0B3H P4M0 EQU 0
25、B4H;P4M0 EQU 0B4H;以以下下是是P3P3口新增功能寄存器的地址声明口新增功能寄存器的地址声明P3M1 EQU 0B1H;OR P3M1 DATA 0B1HP3M1 EQU 0B1H;OR P3M1 DATA 0B1HP3M0 EQU 0B2H;P3M0 EQU 0B2H;以以下下是是P2P2口新增功能寄存器的地址声明口新增功能寄存器的地址声明P2M1 EQU 095H;P2M1 EQU 095H;P2M0 EQU 096H;P2M0 EQU 096H;以以下下是是P1P1口新增功能寄存器的地址声明口新增功能寄存器的地址声明P1M1 EQU 091H;P1M1 EQU 091H;
26、P1M0 EQU 092H;P1M0 EQU 092H;以以下下是是P0P0口新增功能寄存器的地址声明口新增功能寄存器的地址声明P0M1 EQU 093H;P0M1 EQU 093H;P0M0 EQU 094H;P0M0 EQU 094H;2 2C C语言语言/*以以下下为为P5P5新增功能寄存器的新增功能寄存器的C C语言地址声明语言地址声明*/sfrsfrP5P5 =0 xc8;=0 xc8;sfrsfrP5M1 =0 xc9;P5M1 =0 xc9;sfrsfrP5M0 =0 xca;P5M0 =0 xca;/*以以下下为为P4P4新增功能寄存器的新增功能寄存器的C C语言地址声明语言地
27、址声明*/sfrsfrP4P4 =0 xc0;=0 xc0;sfrsfrP4M1 =0 xb3;P4M1 =0 xb3;sfrsfrP4M0 =0 xb4;P4M0 =0 xb4;/*以上为以上为P3P3新增功能寄存器的新增功能寄存器的C C语言地址声明语言地址声明*/sfrsfrP3M1P3M1=0 xb1;=0 xb1;sfrsfrP3M0P3M0=0 xb2;=0 xb2;/*以上为以上为P2P2新增功能寄存器的新增功能寄存器的C C语言地址声明语言地址声明*/sfrsfrP2M1P2M1=0 x95;=0 x95;sfrsfrP2M0P2M0=0 x96;=0 x96;/*以上为以上为
28、P1P1新增功能寄存器的新增功能寄存器的C C语言地址声明语言地址声明*/sfrsfrP1M1P1M1=0 x91;=0 x91;sfrsfrP1M0P1M0=0 x92;=0 x92;/*以上为以上为P0P0新增功能寄存器的新增功能寄存器的C C语言地址声明语言地址声明*/sfrsfrP0M1P0M1=0 x93;=0 x93;sfrsfrP0M0P0M0=0 x94;=0 x94;5.3 5.3 应用举例应用举例【案例】【案例】点亮点亮LEDLED,启动后,启动后LED1LED1、LED2LED2、LED3LED3间隔间隔2s2s后闪烁,后闪烁,原理图如图所示。原理图如图所示。/*头文件头
29、文件*#include iap15w4k58s4.h#include iap15w4k58s4.h /IAP15W4K58S4 /IAP15W4K58S4头文件头文件#include#include delay.hdelay.h /延迟函数头文件延迟函数头文件 /*声明声明*sbitsbit LED1=P50;LED1=P50;/定义定义LED1LED1 sbitsbit LED2=P51;LED2=P51;/定义定义LED2LED2 sbitsbit LED3=P52;LED3=P52;/定义定义LED3LED3/*程序主函数程序主函数*/void main()void main()/主函数
30、主函数 P5M0=0 x00;/P5M0=0 x00;/定义准双向口模式定义准双向口模式 P5M1=0 x00;while(1)LED1=0;/点亮LED1 LED2=0;/点亮LED2LED3=0;/点亮 LED1 DelayMS(2000)/延时2s LED1=1;/熄灭LED1 LED2=1;/熄灭 LED2 LED3=1;/熄灭LED3 DelayMS(2000);/延时2s 【案例】【案例】按键检测(晶振频率按键检测(晶振频率18.432MHZ18.432MHZ)。按键控制)。按键控制LEDLED转换,转换,按键按下后低电平,未按时为高电平;按键按键按下后低电平,未按时为高电平;按键
31、1 1后,后,LED1LED1点亮;点亮;按键按键2 2后,后,LED2LED2点亮;按键点亮;按键3 3后,后,LED3LED3点亮;按键点亮;按键4 4后,后,LEDLED全全亮。其原理图如图所示:亮。其原理图如图所示:5.3 5.3 应用举例应用举例#include iap15w4k58s4.h#include iap15w4k58s4.h /可以不再加可以不再加reg51.h reg51.h#include#include delay.hdelay.h /延时函数头文件延时函数头文件 sbitsbit KEY1=P20;KEY1=P20;/定义定义KEY1KEY1为为P2.0P2.0脚
32、脚 sbitsbit KEY2=P21;KEY2=P21;/定义定义KEY2KEY2为为P2.1P2.1脚脚 sbitsbit KEY3=P22;KEY3=P22;/定义定义KEY3KEY3为为P2.2P2.2脚脚 sbitsbit KEY4=P23;KEY4=P23;/定义定义KEY4KEY4为为P2.3P2.3脚脚 sbitsbit LED1=P50;LED1=P50;/定义定义LED1LED1为为P5.0P5.0脚脚 sbitsbit LED2=P51;LED2=P51;/定义定义LED2LED2为为P5.1P5.1脚脚 sbitsbit LED3=P52;LED3=P52;/定义定义L
33、ED3LED3为为P5.2P5.2脚脚void main()void main()/主函数主函数 P2M0=0X00;P2M0=0X00;P2M1=0X00;P2M1=0X00;P5M0=0X00;P5M0=0X00;P5M1=0X00;P5M1=0X00;DelayMSDelayMS(100);(100);DelayUSDelayUS(100);(100);LED1=1;LED1=1;LED2=1;LED2=1;LED3=1;LED3=1;KEY1=1;KEY1=1;KEY2=1;KEY2=1;KEY3=1;KEY3=1;KEY4=1;KEY4=1;DelayMS(100);DelayMS(
34、100);DelayUS(100);DelayUS(100);while(1)while(1)/主循环主循环 if(KEY1=0)if(KEY1=0)LED1=0;LED1=0;/LED1 /LED1 点亮点亮DelayMS(1000);DelayMS(1000);/延时延时1 1秒秒LED1=1;LED1=1;/LED1/LED1熄灭熄灭 else if(KEY2=0)else if(KEY2=0)LED2=0;LED2=0;/LED2 /LED2 点亮点亮 DelayMS(1000);DelayMS(1000);/延时延时1 1秒秒 LED2=1;LED2=1;/LED2 /LED2熄灭熄
35、灭 else if(KEY3=0)else if(KEY3=0)LED3=0;LED3=0;/LED3 /LED3 点亮点亮 DelayMS(1000);DelayMS(1000);/延时延时1 1秒秒 LED3=1;LED3=1;/LED3 /LED3熄灭熄灭 else if(KEY4=0)else if(KEY4=0)LED1=0;LED1=0;/LED1 /LED1 点亮点亮 LED2=0;LED2=0;/LED2 /LED2 点亮点亮 LED3=0;LED3=0;/LED3 /LED3 点亮点亮 DelayMS(1000);DelayMS(1000);/延时延时1 1秒秒 LED1=1
36、;LED1=1;/LED1 /LED1 熄灭熄灭 LED2=1;LED2=1;/LED2/LED2熄灭熄灭 LED3=1;LED3=1;/LED3 /LED3 熄灭熄灭 【案例】【案例】单片机驱动单片机驱动OLEDOLED显示屏试验(显示屏试验(12MHZ12MHZ),),0.960.96寸寸OLEDOLED显示英文字符。原理图如图所示:显示英文字符。原理图如图所示:5.3 5.3 应用举例应用举例#include#include iap15w4k58s4.h /IAP15W4K58S4 iap15w4k58s4.h /IAP15W4K58S4头文件头文件#include#include de
37、lay.hdelay.h /延迟函数头文件延迟函数头文件#include#includeoled12864.h /oled12864.h /OLEDOLED头文件头文件 sbitsbit LCD_CS=P43;/LCD_CS=P43;/定义片选管脚定义片选管脚 void main(void)void main(void)P4M0=0 x00;P4M0=0 x00;P4M1=0 x00;P4M1=0 x00;LCD_CS=0;LCD_CS=0;LCD_InitLCD_Init();/();/OLEDOLED初始化初始化 LCD_FillLCD_Fill(0 xff);/OLED(0 xff);/
38、OLED屏幕全亮屏幕全亮 DelayMSDelayMS(100);(100);LCD_FillLCD_Fill(0 x00);(0 x00);/OLED/OLED屏幕全灭屏幕全灭 DelayMSDelayMS(100);(100);LCD_CLS();LCD_CLS();LCD_P8x16Str(25,1,LCE STUDIO);LCD_P8x16Str(25,1,LCE STUDIO);LCD_P6x8Str(10,4,OLED Test Program);LCD_P6x8Str(10,4,OLED Test Program);LCD_P6x8Str(34,7,2015-06-16);LCD_P6x8Str(34,7,2015-06-16);DelayMSDelayMS(100);(100);DelayUSDelayUS(100);(100);while(1)while(1)谢谢!让我们一起努力学好单片机!谢谢!让我们一起努力学好单片机!