• Nenhum resultado encontrado

02 PIC Set instruc MapMem Portas

N/A
N/A
Protected

Academic year: 2019

Share "02 PIC Set instruc MapMem Portas"

Copied!
31
0
0

Texto

(1)

MICROCONTROLADOR PIC 18F4550

Os microcontroladores começaram a ser fabricados a partir da década de 1980 e a família 8051, da Intel tornou-se um padrão. Com o tempo, outros microcontroladores, de outros fabricantes, foram conquistando o seu espaço no mercado. Além disso, os microcontroladores foram se tornando mais robustos e com maior capacidade de processamento, ficando cada vez mais rápidos, com novos

dispositivos de I/O integrados, tais como, USART (universal synchronous/asynchronous

receiver/transmitter, que é um tipo de interface serial para comunicação) , conversor A/D, PWM (pulse-width modulation, modulação por largura de pulso), oscilador interno, modulador de RF (rádio freqüência), interfaces CAN (controller area network), SPI (serial peripheral interface) , I2C (

inter-integrated circuit, tipo de barramento utilizado para interconectar periféricos e microcontrolador), etc.

Introdução

Microcontroladores da Família PIC

 Família de microcontroladores fabricados pela Microchip Technology (www.microchip.com);  Apresenta centenas de MCUs, com características específicas.

 Baseados na arquitetura Harvard (RISC);  Operam com clock de até 40 MHz;

 Memória de dados com 8 bits ,16 bits ou 32 bits (dependendo do MCU);

 Memória de programa:

 Pode apresentar 12 bits, 14 bits ou 16 bits em cada localidade (dependendo do MCU);  Diferentes tecnologias:

ROM tipo máscara (o chip já sai gravado de fábrica, sem possibilidade de regravação  vantagem: baixíssimo custo; chips com sufixo “CR” – ex.: 16CR56A );

OTP (utiliza PROM, ou seja, o chip pode ser gravado uma única vez; sufixo “C”

ex.: 16C432);

(2)

Características do Microcontrolador PIC 18F4550

40 pinos de I/O;

Freqüência de operação de até 48 MHz;

Oscilador interno de 8 MHz;

Memória de programa (FLASH): 32kB x 16 bits;

Memória de dados (RAM): 2kB x 8 bits;

Memória EEPROM interna: 256 bytes x 8 bits;

Conversor A/D de 10 bits (13 canais);

4 Módulos de temporização (Timers);

Módulo CCP (modos capture, compare e PWM);

Comparadores analógicos (referência de tensão interna programável);

Módulo de Comunicação serial

USART;

Módulo de Comunição USB;

Watchdog timer

;

Capacidade de corrente de 25 mA por pino de I/O;

75 instruções (RISC);

Set de instruções otimizado para programação em linguagem C;

Múltiplas fontes de interrupção independentes;

Modo de funcionamento

sleep

;

(3)
(4)

Pinagem do PIC 18F4550

OBS.:

*Dreno aberto: deve ser conectado um resistor de “pull-up” ao pino

*LVP: baixa tensão de programação *ICSP: gravação in-circuit

Pino Tipo Descrição

1 E Reset CPU/ Tensão de programação

2 E/S PORTA (bit 0)/ Entrada do comparador analógico

3 E/S PORTA (bit 1)/ Entrada do comparador analógico

4 E/S

PORTA (bit2)/ Entrada do comparador analógico/ saida de tensão de referencia negativa/saida comparador Vref

5 E/S

PORTA (bit 3)/ Entrada do comparador analógico/ saida de tensão de referencia positiva/saida comparador Vref

6 E/S

PORTA (bit 4)/ Entr. de clock externo do Timer0/ saida do comparador 1

7 E/S

Porta (bit5)/ Entrada do comparador

analógico/entrada seleção de SPI*/saida do comparador 2

8 E/S

PORTE (bit 0)/ Read control for Parallel Slave Port/Entrada do comparador analógico

9 E/S

PORTE (bit 1)/ write control for Parallel Slave Port/Entrada do comparador analógico

10 E/S

PORTE (bit 2)/ Chip select control for Parallel Slave Port/Entrada do comparador analógico

(5)

Pinagem do PIC 18F4550

OBS.:

*Dreno aberto: deve ser conectado um resistor de “pull-up” ao pino

*LVP: baixa tensão de programação *ICSP: gravação in-circuit

Pino Tipo Descrição

13 E/S Entr. para cristal oscilador/ Entr. de clock

14 E/S Entr. para cristal oscilador/saida de clock

15 E/S

PORTC( bit 0)/ saida. do oscilador Timer1/ Entr. de clock externo do Timer1

16 E/S

PORTC( bit 1)/ Entr. do oscilador Timer1/ Capture2 input, Compare2 output, PWM2 output/USB Transceiver

17 E/S

PORTC( bit 2)/ Capture1 input, Compare1 output, PWM1 output.

18 E/S

PORTC( bit 3)/ Synchronous serial clock input/output for SPI/ Synchronous serial clock input/output for I2C

19 E/S PORTD (bit 0)/ porta paralela

20 E/S PORTD (bit 1)/ porta paralela

21 E/S PORTD (bit 2)/ porta paralela

22 E/S PORTD (bit 3)/ porta paralela

(6)

Pinagem do PIC 18F4550

OBS.:

*Dreno aberto: deve ser conectado um resistor de “pull-up” ao pino

*LVP: baixa tensão de programação *ICSP: gravação in-circuit

Pino Tipo Descrição

25 E/S

PORTC (bit6)/Transmissão USART (modo assínc.)/ Clock (modo síncrono)

26 E/S

PORTB (bit 1)/ Recepção USART (modo assíncr.) / Dados (modo síncrono

27 E/S PORTD (bit 4)/ porta paralela

28 E/S PORTD (bit 5)/ porta paralela

29 E/S PORTD (bit 6)/ porta paralela

30 E/S PORTD (bit 7)/ porta paralela

31 E Terra (GND)

32 E Alimentação positiva (+5V)

33 E/S PORTB (bit 0)/ Entr. de interrupção externa

34 E/S PORTB (bit 1)

35 E/S PORTB (bit 2)

36 E/S PORTB (bit 3)/ Entr. de programação LVP*.

37 E/S PORTB (bit 4)

38 E/S PORTB (bit 5)

39 E/S PORTB (bit 6)/Clock na programação ICSP*

(7)
(8)

Execução e Busca de Instruções

Toda CPU é capaz de executar várias tarefas denominadas instruções. A base de tempo utilizada pela CPU para executar cada instrução é obtida a partir de um sinal de clock (que pode ser gerado internamente ao MCU ou proveniente de um oscilador externo). Nos MCUs da família PIC, a freqüência do sinal de clock é dividida, internamente, por quatro. Este novo sinal de clock, cuja freqüência é ¼ da freqüência do clock original, define o

ciclo de instrução do microcontrolador. O PIC 16F6877A possui um oscilador interno capaz de gerar um sinal de freqüência de até 4 MHz. Além disso, pode operar, utilizando um oscilador externo, em até 20 MHz.

ciclo de clock

ciclo de instrução

PC PC

OSC1

Busca instrução (PC)

PC+1 PC+2

Executa instrução (PC-1) Busca instrução (PC+1)

(9)

Quase todas as instruções dos microcontroladores da família PIC são executadas em um ciclo de instrução. O processo de busca e execução de instruções deste microcontrolador é ilustrado abaixo:

O contador de programa (PC, do inglês program counter) indica a posição

da memória de programa que contém a instrução que está sendo “buscada”.

NÃO FAZER NADA

SETAR PINO1

MOVER 10010110,TRISA

NÃO FAZER NADA

RESETAR PC

Memória de Programa

00h

01h

02h

03h PC=01

Enquanto a CPU executa a instrução “NÃO FAZER NADA” (que está na posição de memória “PC-1”), é feita a busca da próxima instrução a ser executada (que está armazenada na memória de programa na posição “PC”, ou seja, na posição de mem. “01h”).

PC=02

A CPU executa a instrução “SETAR PINO1” (que está na posição de memória “PC-1”) e é feita a busca da próxima instrução a ser executada (que está armazenada na memória de programa na posição “02h”, ou seja, na posição de memória “PC”).

Esta característica de buscar a instrução em um ciclo de máquina

e executá-la no próximo torna o sistema mais rápido e é

conhecida como

pipeline

.

(10)

As instruções são formadas por um conjunto de bits que são decodificados pelo microcontrolador, fazendo com que ele execute uma operação bem definida. A quantidade de bits pode variar de uma instrução para outra, dependendo do microcontrolador. No caso do PIC 16F877A, todas as instruções

possuem o mesmo tamanho: 14 bits.

As instruções são compostas de dois campos: código de operação (OP. CODE) e operando. Os primeiros bits de uma instrução representam o “OP. CODE” e os demais formam o operando, podendo conter dados, endereço ou o “nome” de um registrador.

Código de operação (OP. CODE)

É o campo da instrução que especifica qual tarefa deve ser realizada pelo MCU quando a instrução é processada. O OP. CODE é um conjunto de bits (representado em binário ou em hexadecimal). Para facilitar o desenvolvimento dos programas, é dado um nome a cada instrução (que é associada a um determinado OP. CODE). Este nome é o MNEMÔNICO da instrução, que é uma forma abreviada da descrição da instrução (em inglês). Exs: MOV (mover), ADD (somar), CLR (limpar), NOP (não fazer nada).

Operando

Representa quais elementos serão “envolvidos” na instrução definida. Por exemplo, numa operação de armazenamento de dados na memória, o operando é composto pelo dado que será armazenado e o endereço da localidade de memória onde ele deve ser armazenado. No caso do PIC 16F877A, os operandos de uma instrução podem ser do tipo REGISTRADOR, BIT DE UM REGISTRADOR ou DADO. Existem algumas instruções que não possuem operandos, como veremos adiante.

SET

DE

INSTRUÇÕES BÁSICO

DOS

MCU’s

DA

FAMÍLIA PIC

(11)

Nomenclatura das Instruções

A sintaxe utilizada na construção dos mnemônicos das instruções segue uma lógica. Conhecer a nomenclatura adotada pelo fabricante facilita o entendimento do significado de cada instrução.

W : Representa o registrador WORK (em alguns MCUs este registrador é conhecido como acumulador). É um registrador que não é mapeado na memória de dados (ao contrário dos outros SFR), mas é muito utilizado, pois não é possível escrever um dado em um outro registrador sem que antes a informação passe pelo registrador W.

F : (File) Representa uma posição de memória ou um registrador.

L : (Literal) A instrução opera um valor numérico (constante), que pode ser representado em decimal, binário, octal, hexadecimal ou ASCII.

B : (Bit) Representa um bit dentro de um byte.

T : (Teste) Indica que a instrução fará um teste em um determinado bit, dentro de um byte, para verificar se ele é “0” ou “1”.

S : (Skip) Indica que a próxima linha do programa será “pulada” se uma certa condição for satisfeita.

S : Aparecendo como última letra do mnemônico, S significa que um determinado bit, dentro de um byte, será “SETADO”, ou seja, levado a nível lógico “1”.

C : (Clear) Indica que um determinado bit, dentro de um byte, será “LIMPO”, ou seja, levado a nível lógico “0”.

Nas instruções de desvio, o“S” e“C”também são usados para indicar se um bit está em“1”ou“0”, respectivamente.

(12)

Tipos de Instruções

Manipulação de byte

Manipulação de bit

Matemáticas

Lógicas

Testes e desvios condicionais

Controle de fluxo

Controle de cpu

Termos utilizados para indicar a tarefa que será realizada por uma instrução:

ADD

(soma de 2 números);

AND

(operação lógica

“E”

entre 2 números);

IOR

(operação lógica

“OU”

entre 2 números);

CLR

(limpar);

COM

(complemento

– “inversão

bit a

bit”)

;

DEC

(decremento de um número);

INC

(incremento de um número);

MOV

(mover uma informação para algum lugar);

RL

(rotacionar um bit para a esquerda);

RR

(rotacionar um bit para a direita);

SUB

(subtração entre 2 números);

(13)

Legenda f : registrador

d: destino

(“0”W; “1” registrador f)

b: bit

k: constante

Instruções Básicas

Família PIC

Instrução Descrição OP. CODE (14 bits)

Status

afetado Exemplo Operações com registradores

ADDWF f,d Soma W e f: d (W+f) 00 0111 dfff ffff C, CD, Z ADDWF REG1,0

ANDWF f,d AND entre W e f: d (W AND f) 00 0101 dfff ffff Z ANDWF REG1,1

CLRF f Limpa f 00 0001 1fff ffff Z CRLF REG1

CLRW Limpa W 00 0001 0000 0011 Z CLRW

COMF f,d Complemento de f: d NOT(f) 00 1001 dfff ffff Z COMF REG1,0

DECF f,d d (f-1) 00 0011 dfff ffff Z DECF CONT,1

DECFSZ f,d d (f-1) e salta próxima linha se o resultado for zero 00 1011 dfff ffff DECFSZ REG,1

INCF f,d d (f+1) 00 1010 dfff ffff Z INCF CONT,1

INCFSZ f,d d (f+1) e salta próxima linha se o resultado for zero 00 1111 dfff ffff INCFSZ REG1,1

IORWF f,d OR entre W e f: d (W OR f) 00 0100 dfff ffff Z IORWF REG1,0

MOVF f,d d cópia de f 00 1000 dfff ffff Z MOVF REG1,0

MOVWF f f cópia de W 00 0000 1fff ffff MOVWF REG1

RLF f,d rotaciona f um bit para a esquerda e copia em d 00 1101 dfff ffff C RLF REG1,0

RRF f,d rotaciona f um bit para a direita e copia em d 00 1100 dfff ffff C RRF REG1,0

(14)

Instrução Descrição OP. CODE (14 bits)

Status

afetado Exemplo Operações com bits

BCF f,b Reseta (clear) o bit b do registrador f 01 00bb bfff ffff BCF REG1,7

BSF f,b Seta o bit b do registrador f 01 01bb bfff ffff BSF REG1,5

BTFSC f,b Testa o bit b do registrador f e salta a próxima linha se ele for "0" 01 10bb bfff ffff BTFSC REG1,4

BTFSS f,b Testa o bit b do registrador f e salta a próxima linha se ele for "1" 01 11bb bfff ffff BTFSS REG1,3

Operações com literais (valores numéricos)

ADDLW k W (W+k) 11 111x kkkk kkkk C, CD, Z ADDLW 0x15

ANDLW k W (W AND k) 11 1001 kkkk kkkk Z ANDLW 0x5F

IORLW k W (W OR k) 11 1000 kkkk kkkk Z IORLW 0X3D

MOVLW k W k 11 00xx kkkk kkkk MOVLW 0X5A

SUBLW k W (k-W) 11 110x kkkk kkkk C, CD, Z SUBLW 0X02

XORLW k W (W XOR k) 11 1010 kkkk kkkk Z XORLW 0XAF

Operações de Controle

NOP "No operation" (não faz nada) 00 0000 0xx0 0000 NOP

CALL k Chamada à sub-rotina 10 0kkk kkkk kkkk CALL ROTINA1

CLRWDT Limpa WDT (watch-dog) 00 0000 0110 0100 TO, PD CLRWDT

GOTO k Desvio para endereço 10 1kkk kkkk kkkk GOTO INICIO

RETFIE Retorno de interrupção 00 0000 0000 1001 RETFIE

(15)

MAPEAMENTO DE MEMÓRIA

Tipo

Função

Tamanho

16F877A

18F4550

Flash

Memória de programa

8192 x 14

32k x 16

RAM

Memória de dados

368 x 8

2k x 8

EEPROM

Armazenamento de dados que não

podem ser perdidos quando a

energia for desligada

256 x 8

256 x 8

Memória EEPROM (16F877A)

 256 posições, cada uma com capacidade de armazenamento de 1 byte;

 Faixa de endereços para acesso: 00h to FFh

;

(16)

Memória EEPROM

 EECON1: registro de controle para os acessos de memória

.

 EECON2 : não é um registrador físico. Ler o EECON2 obtem-se zeros. Utilizado na sequencia de escrita da EEPROM.

EEDATA: contem o dado lido/ a ser escrito  EEADR: contem o endereço a ser acessado

bit 7 EEPGD: Seleção entre Program/Data EEPROM 1 = Acessa memória de programa

0 = Acessa memórica de dados

Obs: Lê ‘0’ depois de um POR; este bit não muda enquanto a operação de escrita está em progresso.

bit 6-4 Não Implementado: Lê ‘0’

bit 3 WRERR: Flag de erro da EEPROM

1 = Operação de escrita prematuramente terminada (algum MCLR ou WDT Reset durante a operação) 0 = Operação de escrita completada

bit 2 WREN: Habilitação da escrita da EEPROM 1 = permite escrita

0 = não permite escrita

bit 1 WR: Controle de escrita 1 = inicia o processo de escrita 0 = processo de escrita terminado bit 0 RD: Controle de leitura

(17)

Flash-ROM;

8192 localidades de 14 bits.

Endereços de 0000h a 1FFFh.

Memória de Programa (16F877A)

Vetor de reset

Reservado

Reservado

Reservado

Vetor de interrupção

Memória de Programa

0000h

0001h

0002h

0003h

0004h

0005h

Primeiro endereço da memória de programa que é executado quando o PIC começa a rodar

(após a alimentação ou um reset).

(18)

Memória de Dados

A memória de dados é particionada em múltiplos bancos, que possuem

registradores de uso geral e de funções especiais.

Bits RP1 (Status<6>) e

RP0 (Status<5>)

são os bits de seleção destes bancos

Todos os bancos possuem registradores de funções especiais (SFR).

Alguns deles usados em um banco são espelhados nos outros para

(19)

Mapeamento da Memória RAM

Memória de Dados

(16F877A)

 4 bancos de memória;

 Contém os SFR’s e os GPR’s;

 368 posições de 8 bits para uso geral (GPR);

(20)

São utilizados para configurar as

características da operação do MCU como, por

exemplo, se um

determinado pino será uma entrada ou saída de dados.

Registradores com Finalidades Específicas (SFR)

SFR’s

(BANCO 0)

Legenda: R: bit de leitura W: bit de escrita

n: valor assumido no POR (“0” ou “1”) x: valor desconhecido no POR

(21)

SFR’s

(22)

SFR’s

(23)

O registrador STATUS contém informações sobre o estado da ALU, a forma do último Reset e os bits que selecionam os bancos da memória de dados.

Registrador STATUS

Legenda:

R: bit de leitura

W: bit de escrita

-n: valor assumido no POR (“0” ou “1”) -x: valor desconhecido no POR

Registrador STATUS

(Endereços: 03h, 83h, 103h e 183h)

Chaves de seleção de banco de memória (paginação de memória – endereçamento direto)

RP1 RP0 Seleção

0 0 Banco 0

0 1 Banco 1

1 0 Banco 2

1 1 Banco 3

Z (“bit zero”): indica que o resultado da última operação realizada pela ALU é zero (Z=1);

DC (“digit carry/borrow”): indica que a última operação de soma (instruções ADD - ADDWF, ADDLW,SUBLW,SUBWF) provocou um estouro (vai-um) entre os bits 3 e 4, isto é, o resultado ultrapassou os 4 bits menos significativos (DC=1);

C (“carry/borrow”): indica que a última operação de soma (instruções ADD - ADDWF, ADDLW,SUBLW,SUBWF) provocou um estouro (vai-um) no bit 7, isto é, o resultado ultrapassou os 8 bits dos registradores

PD: Power-down bit

(24)

O CONTADOR DE PROGRAMA (PC) do PIC 16F877A possui 13 bits. O byte menos significativo do PC

(PC<7:0>) fica no registrador PCL. A parte alta do PC

(PC<12:8>) não é diretamente endereçada, mas é fornecida pelos 5 bits menos significativos do registrador PCLATH (PCLATH<4:0>).

Registradores PCL e PCLATH

Legenda:

R: bit de leitura

W: bit de escrita

-n: valor assumido no POR (“0” ou “1”) -x: valor desconhecido no POR

Registrador PCL

Registrador PCLATH

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0

bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

PC

(Endereços: 0Ah, 8Ah, 10Ah e 18Ah) (Endereços: 02h, 82h, 102h e 182h)

parte alta parte baixa

(25)

O registrador PIE1 habilita bits para as

interrupções dos periféricos.

Registrador PIE1

Legenda:

R: bit de leitura

W: bit de escrita

-n: valor assumido no POR (“0” ou “1”) -x: valor desconhecido no POR

Registrador PIE1 ( endereço 8Ch)

bit 7 PSPIE: Parallel Slave Port Read/Write Interrupt Enable bit(1) bit 6 ADIE: A/D Converter Interrupt Enable bit

bit 5 RCIE: USART Receive Interrupt Enable bit bit 4 TXIE: USART Transmit Interrupt Enable bit

bit 3 SSPIE: Synchronous Serial Port Interrupt Enable bit bit 2 CCP1IE: CCP1 Interrupt Enable bit

(26)

PORTAS DE I/O

O PIC 16F6887A possui cinco portas de I/O, cada uma

com quantidades de bits diferentes, chamadas

PORTA” (pinos RA5:RA0), “PORTB” (pinos

RB7:RB0), “PORTC” (pinos RC7:RC0), “PORTD

(pinos RD7:RD0) e “PORTE” (pinos RE2:RE0). Cada bit de cada porta está associado ao respectivo pino do MCU, podendo ser configurado como entrada ou saída, independentemente dos demais.

Níveis de Tensão

ENTRADA

V

IL

(tensão de entrada baixa, “0”)

0

0,8 V

V

IH

(tensão de entrada alta, “1”)

2 V

V

DD

SAÍDA

V

OL

(tensão de saída baixa, “0”)

0,6 V

V

OH

(tensão de saída alta, “1”)

(

V

DD

-

0,7 V)≈4,3 V

(27)

Registradores Associados às Portas de I/O

TRISA

: configura os pinos da “PORTA” como entrada ou saída 

PORTA

: acesso aos bits da “PORTA” (leitura ou escrita).

Obs.: Alguns bits dos registradores CMCON (bits 2:0) e CVRCON (bits 7 e 6) têm influência sobre a “PORTA”. Dependo do valor destes Registradores RA4 e RA5 têm outras utilidades.

PORTA

(28)

TRISB

: configura os pinos da “PORTB” como entrada ou saída 

PORTB

: acesso aos bits da “PORTB” (leitura ou escrita).

Obs.: O bit 7 do registrador OPTION (referenciado como “OPTION_REG” nos programas em

assembly) tem influência sobre a “PORTB”

PORTB

(29)

TRISC

: configura os pinos da “PORTC” como entrada ou saída 

PORTC

: acesso aos bits da “PORTC” (leitura ou escrita).

PORTC

0 = Output (saída) 1 = Input (entrada)

(30)

TRISD

: configura os pinos da “PORTD” como entrada ou saída 

PORTD

: acesso aos bits da “PORTD” (leitura ou escrita).

OBS: Ao setar PSPMODE configuramos PORTD como uma porta paralela escrava (Parallel Slave Port)

PORTD

(31)

TRISE

: configura os pinos da “PORTE” como entrada ou saída 

PORTE

: acesso aos bits da “PORTE” (leitura ou escrita).

OBS: Ao setar PSPMODE configuramos PORTE como uma porta paralela escrava (Parallel Slave Port)

PORTE

Referências

Documentos relacionados

Para reduzir o déficit de conhecimento a respeito da atividade de instrução especial e dar maior visibilidade ao assunto, o presente trabalho busca elucidar como é desenvolvida a

14 (1938) sob a direção de Providência e Costa, quando o Serviço Noturno ficou finalmente estabilizado por Decreto em 1935 13 , embora haja notícias da sua prática desde, pelo

• CI Contador de Instruções ou PC - Program Counter (Inglês) - armazena o endereço da próxima instrução a ser executada, tem sempre o mesmo tamanho do REM.

O que se sabe é que temos muito tempo ainda para esta decisão e Rossoni pode mudar de ideia e partir novamente para carreira estadual, pois o nome de Beto Richa na disputa à

Ficou demonstrado, por análises em relação aos grupos de natureza de despesa e em relação ao Produto Interno Bruto, que as aplicações de recursos em despesas de

Tabela de Preços Supremo | São Paulo - Capital Data das tabelas: Setembro/2020 até Agosto/2021 Atualização do material: Setembro/2020.. 515 F

A Tabela 3 apresenta os resultados de resistência ao impacto Izod e as caracterizações térmicas apresentadas em função dos ensaios de HDT, temperatura Vicat e a taxa de queima do

Decreasing levels of circulating Treg cells, just as seen with the CD3 – CD19 + B subset, were correlated with higher scores of disease activity.. Diminished levels of Treg