单片机
返回首页

stc单片机IO配置与PWM

2015-05-26 来源:51hei

I/O口配置

           STC2C5201AD系列单片机所有I/O口均可由软件配置成4种工作类型之一,如下表所示。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。STC- 2C5201AD系列单片机上电复位后为准双向口/弱上拉(传统805 的I/O口)模式。2V以上时为高电平,0.8V以下时为低电平。每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过90mA。

 

P3口设定      (P3口地址:B0H)口地址:B0H))

 

P3M1 [7:0]

P3M0 [7 : 0]

I/O 口模式

0

0

准双向口(传统805  I/O 口模式)    ,

灌电流可达20mA , 拉电流为230μA ,

由于制造误差,    实际为250uA~ 50uA

0

1

强推挽输出( 强上拉输出, 可达20mA, 要加限流电阻)

1

0

仅为输入(    高阻)

1

1

开漏(Open Drain),      内部上拉电阻断开,    要外上拉

 

MOV P3M1,#10100000B

 

MOV P3M0 #10010000B

 

P3.7为开漏P3.5为高阻P3.4为强推挽输出,其他为准双向

 

PWM输出时I/O口的状态

 

当某个I/O口作为PWM输出用时,该口的状态:

 

PWM      之前口的状态

 

PWM时口的状态

 

弱上拉/准双向口

强推挽输出/强上拉输出,要加输出限流电阻10K ~1K

强推挽输出

强推挽输出/强上拉输出,要加输出限流电阻10K ~1K

仅为输入/高阻

PWM无

开漏

开漏

 

普通I/O口---〉限流电阻用(10K到1K)-----〉接负载

 

4.6.如何让I/O口上电复位时为低电平

 

普通8051单片机上电复位时普通I/O口为弱上拉高电平输出,而很多实际应用要求上电时某

 

些I/O口为低电平输出,否则所控制的系统(如马达)就会误动作,现STC12系列单片机由于既有弱上拉输出又有强推挽输出,就可以很轻松的解决此问题。现可在STC12系列单片机I/O口上加一个下拉电阻(1K/2K/3K),这样上电复位时,虽然单片机内部I/O口是弱上拉/高电平输出,但由于内部上拉能力有限,而外部下拉电阻又比较小,无法将其拉高,所以该I/O口上电复位时外部为低电平。如果要将此I/O口驱动为高电平,可将此I/O口设置为强推挽输出,而强推挽输出时,I/O口驱动电流可达20mA,故肯定可以将该口驱动为高电平输出。

 

 

 


 

 

 

 

 

 

10.3.4 脉宽调节模式(PWM)

 

   脉宽调制(PWM,Pulse Width Modulation)是一种使用程序来控制波形占空比、周期、相位波形的技术,在三相电机驱动、D/A转换等场合有广泛的应用。STC 2C520 AD系列单片机的PCA模块可以通过程序设定,使其工作于8位PWM模式。PWM模式的结构如下图所示。

 

 

 

 

所有PCA模块都可用作PWM输出(上图)。输出频率取决于决于PCA定时器的时钟源。

 

由于所有模块共用仅有的PCA定时器,所有它们的输出频率相同。各个模块的输出占空

 

是独立变化的,与使用的捕获寄存器[EPCnL,CCAPnL]有关。当寄存器寄存器CL的值小于[EPCnL,    CCAPnL]时,输出为低;当寄存器CL的值等于或大于[EPCnL,CCAPnL]时,输出为高。当CL的值由FF变为00溢出时,[EPCnH,CCAPnH]的内容装载到[EPCnL,CCAPnL]中。这样就可实现无干扰地更新PWM。要使能PWM模式,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。由于PWM是8位的,所以: PWM的频率=:PCA时钟输入源频率/256   PCA时钟输入源可以从以下8种中选择一种:SYSclk,SYSclk/2,SYSclk/4,SYSclk/6,SYSclk/8,SYSclk/ 2,定时器0的溢出,ECI/P3.4输入。。

 

举例:要求PWM输出频率为38KHz,选SYSclk为PCA/PWM时钟输入源,求出SYSclk的值

 

由计算公式38000=SYSclk/256   ,得到外部时钟频率SYSclk=38000 x 256 x =9,728,000

 

如果要实现可调频率的PWM输出,可选择定时器0的溢出率或者ECI脚的输入作为PCA/PWM的时钟输入源

 

当EPCnL = 0及CCAPnL=0x00H时,PWM固定输出高

 

当EPCnL = 1及CCAPnL=0xFFH时,PWM固定输出低

 

例:

 

#define           PCA_IDLE_DISABLE  0            //1:MCU在IDLE模式时禁止PCA工作。                                                  0:  MCU在IDLE模式时允许PCA工作。

 

#define           PCA_SOURCE_SELECT     1            //选择PCA的基准时钟源。

 

                                                                      //0:系统时钟Fosc/12。

 

                                                                      //1:系统时钟Fosc/2。

 

                                                                      //2:定时器0的溢出。

 

                                                              //3:ECI/P3.4脚的外部时钟输入(最大=Fosc/2)。

 

                                                                      //4:系统时钟Fosc。

 

                                                                      //5:系统时钟Fosc/4。

 

                                                                      //6:系统时钟Fosc/6。

 

                                                                      //7:系统时钟Fosc/8。

 

void en_PCA(void)

 

{

 

       CMOD= (PCA_IDLE_DISABLE << 7) | (PCA_SOURCE_SELECT << 1);    //初始化PCA模式寄存器。

 

       CL= 0x00;            //清除PCA计数机

 

       CH= 0x00;

 

       CR= 1;                 //启动PCA计数机 CL  00->FF

 

}

 

void initPWM()

 

{

 

 

 

 

 

      

 

       PWM=0x00;

 

       PCA_PWM0=0x02;    //初始化输出0

 

       CCAP0H= 0xFF;         //初始化输出0 

 

       CCAPM0= 0x42;         //设置PCA模块0工作在PWM模式               .......................

 

      PCA_PWM1=0x02;    //初始化输出0

 

       CCAP1H= 0xFF;         //初始化输出0

 

       CCAPM1= 0x42;         //设置PCA模块1工作在PWM模式

 

       en_PCA();                    //打开PMW

 

  }

 

 

 

 

 

DALE R01F采样电阻,阻值是  0.01欧

 

 

 

RXD 为接收数据的引脚,TXD 为发送数据的引脚

PMW0 输出全1 

 PCA_PWM0=0x00;
 CCAP0H = 0x00;


PMW0输出全0
 PCA_PWM0=0x00;
 CCAP0H = 0x00;  //set PWM wide

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • CCD图像传感器在微光电视系统中的应用

  • 光控音效发生器电路

  • 一个简单的警笛电路图

  • 一个简单的立体声平衡指示器电路

  • 使用NE555和磁簧开关的橱柜照明电路

  • 电谐波图形均衡器示意图

    相关电子头条文章