stc12c5a60s2内部资源

嵌入式操作系统

56人已加入

描述

  STC12C5A60S2单片机内部ADC只有一个,虽然外部可以用P1口的8个脚,作8个通道的输入,但在采集数据时,只能开通一个通道,不允许8个通道都开的,所以,会互相影响的。

  如果是单独使用的话都可以正常工作,就应该是每个都要单独用的。所以,两个通道都用,也要按单独使用那样来转换。

  就算是8个通道都用,也不可能是同时转换的,也要切换每一个通道分时转换的。

  1.串行口1的控制寄存器SCON和PCON

  STC12C5A60S2系列单片机的串行口1设有两个控制寄存器: 串行控制寄存器SCON和波特率选择特殊功能寄存器PCON。

  串行控制寄存器SCON用于选择串行通信的工作方式和某些控制功能。其格式如下:SCON: 串行控制寄存器(可位寻址)

  寄存器

  SMO/FE: 当PCON寄存器中的SMODO/PCON.6位为1时,该位用于帧错误检测。当检测到一个无效停止位时,通过UART接收器设置该位。它必须由软件清零。

  当PCON寄存器中的SMODO/PCON.6位为0时,该位和SM1一起指定串行通信的工作方式,如下表所示。

  2.其中SMO、SM1按下列组合确定串行口1的工作方式:

  寄存器

  SM2: 允许方式2或方式3 多机通信控制位。在方式2或方式3时,如果SM2位为1且REN位为1,则接收机处于地址帧筛选状态。此时可以利用接收到的第9位(即RB8)来筛选地址帧: 若RB8=1,说明该帧是地址帧,地址信息可以进入SBUF,并使RI为1,进而在中断服务程序中再进行地址号比较; 若RB8=0,说明该帧不是地址帧,应丢掉且保持RI=0。在方式2或方式3中,如果SM2位为0且REN位为1,接收收机处于地址帧筛选被禁止状态。不论收到的RB8为0或1,均可使接收到的信息进入SBUF,并使RI=1,此时RB8通常为校验位。方式1和方式0是非多机通信方式,在这两种方式时,要设置SM2 应为O.

  REN; 允许禁止串行接收控制位。由软件置位REN,即REN=1为允许串行接收状态,可启动串行接收器RxD,开始接收信息。软件复位REN,即REN=0,则禁止接收。

  TB8: 在方式2或方式3,它为要发送的第9位数据,按需要由软件置位或清0。例如,可用作数据的校验位或多机通信中表示地址帧数据帧的标志位。在方式0和方式1中,该位不用。

  RB8:; 在方式2或方式3,是接收到的第9位数据,作为奇偶校验位或地址帧‘數据帧的标志位。方式0中不用RB8(置SM2=0)。方式1中也不用RB8(置SM2=0,RB8是接收到的停止位)。

  TI:发送中断请求中断标志位。在方式0,当串行发送数据第8位结束时,由内部硬件自动置位,即TI=1,向主机请求中断,响应中断后TI必须用软件清零,即TI=0。在其他方式中,则在停止位开始发送时由内部硬件置位,即TI=1,响应中断后TI必须用软件清零。

  RI:接收中断请求标志位。在方式0,当串行接收到第8位结束时由内部硬件自动置位RI=1,向主机请求中断,响应中断后RI必须用软件清零,即RI=0。在其他方式中,串行接收到停止位的中间时刻由内部硬件置位,即RI=1,向CPU发中断申请,响应中断后RI必须由软件清零。

  SCON的所有位可通过整机复位信号复位为全“0”。SCON的字节地址为98H,可位寻址,各位地址为98H~~9FH,可用软件实现位设置。

  串行通信的中断请求: 当一帧发送完成,内部硬件自动置位TI,即TI=1,请求中断处理;当接收完一帧信息时,内音硬件自动置位RI,即RI=1,请求中断处理。由于TI和RI以“或逻辑”关系向主机请求中断,所以主机响应中断时事先并不知道是TI还是RI请求的中断,必须在中断服务程序中查询TI和RI进行判别,然后分别处理。因此,两个中断请求标志位均不能由硬件自动置位,必须通过软件清0,否则将出现一次请求多次响应的错误。

  电源控制寄存器PCON中的SMOD/PCON.7用于设置方式1、方式2、方式3的波特率是否加倍。

  电源控制寄存器PCON格式如下:

  PCON: 电源控制寄存器(不可位寻址)

  寄存器

  SMOD: 波特率选择位。当用软件置位SMOD,即SMOD=1,则使串行通信方式1.2、3的波特率加倍; SMOD=0,则各工作方式的波特率加倍。复位时SMOD=0。

  SMODO: 帧错误检测有效控制位。当SMOD0=1,SCON寄存器中的SMO/FE位用于FE(帧错误检测) 功能;当SMOD0=0,SCON寄存器中的SMO/FE位用于SMO功能,和SM1一起指定串行口的工作方式。复位时SMOD0=01]山

  3.辅助寄存器AUXR

  辅助寄存器AUXR的格式及各位含义如下:

  AUXR: 辅助寄存器(不可位寻址)

  寄存器

  TOx12; 定时器0速度设置位

  0,定时器0是传统8051速度,12 分频;

  1,定时器0 的速度是传统8051的12 倍,不分频

  T1X12: 定时器1速度设置位

  0,定时器1是传统8051速度,12 分频;

  1,定时器1的速度是传统8051的12 倍,不分频

  如果UART串口用定时器1做波特率发生器,T1x12位就可以控制UART串口是12T还是1T 了。

  UART_MOX6: 串行口模式0的通信速度设置位

  0,UART串口的模式0是传统12T的8051速度,12分频;

  l,UART串口的模式0的速度是传统12T的8051的6倍,2分频

  BRTR: 独立波特率发生器运行控制位

  0,不允许独立波特率发生器运行;

  1,允许独立波特率发生器运行

  S2SMOD: 串口2的波特率加倍控制位。

  0,串口2的波特率不加倍;

  l,串口2的波特率加倍

  对于STC12C5A60S2系列单片机,串口2只能使用独立波特率发生器作为波特率发生器,不能够选择定时器1作为波特率发生器; 而串口1既可以选择定时器1作为波特率发生器,也可以选择独立波特率发生器作为波特率发生器。

  BRTX12: 独立波特率发生器计数控制位。

  0,独立波特率发生器每12个时钟计数一次;

  1,独立波特率发生器每1个时钟计数一次

  EXTRAM:

  0,允许使用内部扩展的1024字节扩展RAM

  1,禁止使用内部扩展的1024字节扩展RAM

  S1BRS: 串行口波特率发生器选择位。

  0,缺省,串行口波特率发生器选择定时器1,S1BRS是串口1波特率发生器选择位;

  I,独立波特率发生器作为串行口的波特率发生器,此时定时器1得到释放,可以作为独

  立定时器使用

  串口1可以选择定时器1做波特率发生器,也可以选择独立波特率发生器作为波特率发生器。当设置AUXR寄存器中的S1BRS位(串行口波特率选择位)为1时,串行口选择独立波特率发生器作为波特率发生器,此时定时器1可以释放出来作为定时器/计数器/时钟输出使用.

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分