Mikroprotsessorid
Download
1 / 23

Mikroprotsessorid - PowerPoint PPT Presentation


  • 115 Views
  • Uploaded on

Mikroprotsessorid. PIC16F876A KÄSUD. Instruction decode – mis teha tuleb. Loe mälust. Töötle andmeid. Kirjuta mällu. Käske täidetakse järjest. Peale igat käsku tehakse PC = PC + 1. Erandid: GOTO ja CALL. 1FFFh + 1 = 0000h. PIC16F876A käskude struktuur. Address modes. Käsud registriga.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Mikroprotsessorid' - kipling


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Mikroprotsessorid

PIC16F876A KÄSUD


Instruction decode – mis teha tuleb

Loe mälust

Töötle andmeid

Kirjuta mällu


Käske täidetakse järjest. Peale igat käsku tehakse PC = PC + 1

Erandid: GOTO ja CALL

1FFFh + 1 = 0000h


PIC16F876A käskude struktuur PC + 1

Address modes

Käsud registriga

Käsud bitiga

Käsud konstandiga

Absoluutne suunamine

Käsud operandita


  • Kui dest=W, siis PC + 1

  • võetakse registri f väärtus,

  • Tehakse sellega midagi

  • Tulemus pannakse W-sse

  • Register f ise ei muutu

  • Kui dest=f, siis

  • võetakse registri f väärtus,

  • Tehakse sellega midagi

  • Tulemus pannakse f-sse tagasi

  • Register W ei muutu

f tähendab mõnda registrit sellest tabelist

W tähendab Work registrit

Mälupanga number tuleb registrist STATUS


Move PC + 1

LiidaLahuta

Loogika

Rotate

LiidaLahuta+Tingimuslik suunamine


f tähendab mõnda registrit sellest tabelist PC + 1

Biti seadmine

bbb tähendab biti numbrit (0...7)

Tingimuslik suunamine


Move PC + 1

LiidaLahuta

Loogika

NB!Kõik Literali käsud on ainult registriga W

Return



PIC16F876A käskude struktuur PC + 1

Address modes

Käsud registriga

Käsud bitiga

Käsud konstandiga

Absoluutne suunamine

Käsud operandita


Näide: Genereeri PortB abil impulsse PC + 1

Port B

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Register = 0x55 PC + 1

Kirjuta Register Porti B

Inverteeri Register


Move Literal to W k->W 11 00xx kkkk kkkk PC + 1

Aadress

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Move W to f W->f 00 0000 1fff ffff PC + 1

Aadress

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Move W to f W->f 00 0000 1fff ffff PC + 1

Aadress

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

0002

W -> PORTB:

00 0000 1000 0110

00 86

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Aadress PC + 1

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

0002

W -> PORTB:

00 0000 1000 0110

00 86

0003

Invert 20h:

00 1001 1010 0000

09 A0

Complement f 00 1001 dfff ffff

d=0: dest=Wd=1: dest=f

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Move f to d 00 1000 dfff ffff PC + 1

Aadress

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

0002

W -> PORTB:

00 0000 1000 0110

00 86

0003

Invert 20h:

00 1001 1010 0000

09 A0

0004

20h -> W:

00 1000 0010 0000

08 20

d=0: dest=Wd=1: dest=f

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Aadress PC + 1

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

0002

W -> PORTB:

00 0000 1000 0110

00 86

Invert 20h:

00 1001 1010 0000

09 A0

0003

0004

20h -> W:

00 1000 0010 0000

08 20

0005

Go to 0002:

10 1000 0000 0010

28 02

Go to address 10 1kkk kkkk kkkk

Register = 0x55

Kirjuta Register Porti B

Inverteeri Register


Aadress PC + 1

Bin

Hex

0000

0x55 -> W:

11 0000 0101 0101

30 55

0001

W -> 20h:

00 0000 1010 0000

00 A0

0002

W -> PORTB:

00 0000 1000 0110

00 86

Invert 20h:

00 1001 1010 0000

09 A0

0003

0004

20h -> W:

00 1000 0010 0000

08 20

0005

Go to 0002:

10 1000 0000 0010

28 02

Tehtud!

Kas see programm töötab ka?

Registrite adresseerimisel peab Banga number olema registris STATUS!

GOTO 2 vanemat bitti peavad olema registris PCLATH!


PROCESSOR 16F876A PC + 1

#include "P16F876A.INC"

ORG 0x00

MOVLW 0x55

MOVWF 0x20

Loop

MOVWF PORTB

COMF 0x20,1

MOVF 0x20,0

GOTO Loop

End

Aadress

0000

0x55 -> W:

0001

W -> 20h:

0002

W -> PORTB:

Invert 20h:

0003

0004

20h -> W:

0005

Go to 0002:

1:PROCESSOR 16F876A

2: #include "P16F876A.INC“

3:

4: ORG0x00

5:

0000 3055 MOVLW 0x556: MOVLW 0x55

0001 00A0 MOVWF 0x207: MOVWF 0x20

8: Loop

0002 0086 MOVWF 0x69: MOVWF PORTB

0003 09A0 COMF 0x20, F10: COMF 0x20,1

0004 0820 MOVF 0x20, W11: MOVF 0x20,0

0005 2802 GOTO 0x2 12: GOTO Loop

Hex

30 55

00 A0

00 86

09 A0

08 20

28 02