久久久久亚洲精品,久久亚洲精品成人av无码网站,无码国产伦一区二区三区视频,天天躁人人躁人人躁狂躁

微型嵌入式自編程控制器MEAPC

第三章 MEAPC指令表

    MEAPC的指令系統(tǒng)由43條指令組成?赏瓿桑何贿\(yùn)算、數(shù)值運(yùn)算、邏輯運(yùn)算、移位、跳轉(zhuǎn)等功能。有一個(gè)“布爾處理器 P0”,通過(guò)它可以處理大量的位數(shù)據(jù)信息,在工控中非常有用。同時(shí)還有一些特殊功能的“宏指令”。只需少量的代碼就可方便地完成各種復(fù)雜的智能電路的設(shè)計(jì)。用它取代一些傳統(tǒng)的繼電器控制電路易如反掌!MEAPC的指令系統(tǒng)(見(jiàn)表3-1)。

自編程控制器MEAPC-C1指令表 表:3-1

序號(hào)

指令

助記符

字節(jié)

說(shuō)明

位處理指令

1

0x

CLR Px

1

Px=0 ;x0~FH

2

1x

SET Px

1

Px=1

3

2x

IN Px

1

P0=Px

4

3x

OUT Px

1

Px=P0

5

4x

AND Px

1

PxP0,結(jié)果在P0

6

5x

OR Px

1

PxP0,結(jié)果在P0

7

6x

NOT Px

1

Px取反,結(jié)果在Px

寄存器處理指令

8

7x

INC Rx

1

Rx=Rx+1

9

8x

DEC Rx

1

Rx=Rx-1

10

9x

CHE Rx

1

交換R0,Rx中的內(nèi)容

11

Ax

ADC Rx

1

P0位加法: R0=R0+Rx+P0

12

Bx

Bx

1

指定標(biāo)號(hào):x=0~F

13

Cx

JMP x

1

跳轉(zhuǎn)到指定標(biāo)號(hào):x=0~F

14

Ex

MRx,#d

2

賦值:Rx=#d ;d=0~255

宏處理指令

15

F0

JP0

1

P0=0,跳過(guò)一行

16

F1

JR0

1

R0=0,跳過(guò)一行

17

F2

LRP

1

R0P0位左循環(huán)移1

18

F3

MRP

1

R0中的內(nèi)容并行送到P1~P8

19

F4

10mS

1

延時(shí) 10毫秒

20

F5

100mS

1

延時(shí) 100毫秒

21

F6

1S

1

延時(shí) 1

22

F7

ST0

1

R0R1中的值送入T0計(jì)數(shù)器后,啟動(dòng)T0計(jì)數(shù)器

23

F8

RT0

1

讀出T0計(jì)數(shù)器的值,存入R0R1中,P15溢出標(biāo)志。

24

F9

CT0

1

關(guān)閉T0計(jì)數(shù)器,并讀出T0計(jì)數(shù)器的值,存入R0R1

25

FA

BCD

1

R0R116位二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼,存入R0R1R2R3R4

26

FB

SEG

1

R0中的序號(hào),讀取相應(yīng)的字符段碼,存入R0

27

FC

SPI

1

當(dāng)P0=0時(shí):R0中的值從低位開(kāi)始,串行輸出到P1口,P2輸出8個(gè)移位負(fù)脈沖;當(dāng)P0=1時(shí):將P1口的數(shù)據(jù)串行輸入到R0中,P2輸出8個(gè)移位負(fù)脈沖。

28

FD

WRE

1

R0中的值寫(xiě)入R1指定的E224單元。(范圍:0~255

29

FE

RDE

1

讀取R1指定的E224單元的值,存入R0。(范圍:0~255

30

FF

PWN

1

進(jìn)入掉電狀態(tài)。

         

31

D0

REP

1

返回到程序的開(kāi)始行

32

D1

AND

1

R0R1,結(jié)果在R0

33

D2

OR

1

R0R1,結(jié)果在R0

34

D3

NOT

1

R0取反,結(jié)果在R0

35

D4

JMP R14

1

上跳R14中指定的行數(shù),范圍(0~255

36

D5

JMP R15

1

下跳R15中指定的行數(shù),范圍(0~255

偽指令

37

D9

SEE

查看程序的長(zhǎng)度,并寫(xiě)入E224中,地址:200H,201H

38

DA

COPYM

控制板上E224中的值復(fù)制到編程板上E224

編程板上E224中的值復(fù)制到控制板上E224

編程指針倒退3

編程指針回到第1

編程指針回到中間行

編程指針回到最后1

39

DB

COPYS

40

DC

BACK

41

DD

START

42

DE

MID

43

DF

END

     

說(shuō)明:

  1. 16個(gè)位:P0~P15地址:0~FHP1~P13對(duì)應(yīng)13I/O線;P0、P14、P15用戶自定義位。P11口是外部脈沖輸入腳。當(dāng)使用T0計(jì)數(shù)器時(shí),P15做溢出標(biāo)志。
  2. 16個(gè)8位寄存器:R0~R15地址:0~FH。
  3. 256個(gè)8E224存儲(chǔ)器,地址:00H~FFH
  4. X的范圍:0~F
  5. D的范圍:0~FF

第四章 指令系統(tǒng)使用詳解

本章以指令的序號(hào)順序,敘述每條指令的功能并舉例。除了指令:MRx2字節(jié)外,其余均是單字節(jié)指令。使用時(shí)請(qǐng)注意以下幾點(diǎn):

1、D9~DF指令是偽指令,不會(huì)寫(xiě)入EE24中。

2P代表:位。

3R代表:8位寄存器。

4、只有指令:ADC Rx 影響P0位。

5Bx指令為程序提供了16個(gè)標(biāo)號(hào),便于編程。如果不夠用,可以使用:JMPR14、JMPR15指令完成間接跳轉(zhuǎn)(詳見(jiàn)MEAPC-C1指令表3-1)。

6、輸入數(shù)據(jù)必須采用16進(jìn)制。16進(jìn)制表示:xxH ;10進(jìn)制:xx ;2制:xxB。編寫(xiě)程序時(shí)為了便于閱讀,助記符的數(shù)字一般采用10進(jìn)制書(shū)寫(xiě)。

數(shù)字:0~15的十進(jìn)制、二進(jìn)制、十六進(jìn)制之間轉(zhuǎn)換關(guān)系見(jiàn)表4-1

十進(jìn)制、二進(jìn)制、十六進(jìn)制之間轉(zhuǎn)換關(guān)系 表:4-1

十進(jìn)制

二進(jìn)制

十六進(jìn)制

 

十進(jìn)制

二進(jìn)制

十六進(jìn)制

0

00000000B

00H

8

00001000B

08H

1

00000001B

01H

9

00001001B

09H

2

00000010B

02H

10

00001010B

0AH

3

00000011B

03H

11

00001011B

0BH

4

00000100B

04H

12

00001100B

0CH

5

00000101B

05H

13

00001101B

0DH

6

00000110B

06H

14

00001110B

0EH

7

00000111B

07H

15

00001111B

0FH

§ 4-1 位操作指令

1 0x CLR Px x=0~F

例: 已知:P0=1 執(zhí)行:

00 CLR P0 ;P0位清零

結(jié)果:P0=0

2 1x SET Px

例: 已知:P15=0 執(zhí)行:

1F SET P15 ;P15位置1

結(jié)果:P15=1

3 2x IN Px ;x=0~F

例: 已知:P7=1 ;P0=0 執(zhí)行:

27 IN P7 ;讀入P7位的數(shù)據(jù)到P0

結(jié)果:P0=1

4 3x OUT Px

例: 已知:P8=0 ;P0=1 執(zhí)行:

38 OUT P8 P0位的數(shù)據(jù)送到P8

結(jié)果:P8=1

5 4x AND Px ;x=0~F

例: 已知:P10=0 ;P0=1 執(zhí)行:

4A AND P10 ;P10位邏輯與P0位,結(jié)果送P0位。

結(jié)果:P0=0

6 5x OR Px

例: 已知:P11=0 ;P0=1 執(zhí)行:

5B OR P11 ;P11位邏輯或P0位,結(jié)果送P0位。

結(jié)果:P0=1

7 6x NOT Px x=0~F

例: 已知:P12=0 執(zhí)行:

6C NOT P12 ;P12位取反,結(jié)果送P12

結(jié)果:P12=1

§ 4-2 寄存器指令

8 7x INC Rx ;x=0~F

例: 已知:R2=3 執(zhí)行:

70 INC R2 R2寄存器加1,不影響P0

結(jié)果:R2=4

9 8x DEC Rx x=0~F

例: 已知:R1=8 執(zhí)行:

81 DEC R1 ;R1數(shù)據(jù)減1

結(jié)果:R1=7

10 9x CHE Rx

例: 已知:R0=8;R10=15 執(zhí)行:

9A CHE R10 ;R10P0的數(shù)據(jù)交換

結(jié)果:R0=15;R10=8

11 Ax ADC Rx ;

例: 已知:R0=5;P0=1;R10=20 執(zhí)行:

AA ADC R10 ;R10P0位加R0,結(jié)果送R0

結(jié)果:R0=26

12Bx Bx ;產(chǎn)生標(biāo)號(hào)

例: 00 CLR P0

11 SET P1

B0 B0B0

02 CLR P2

63 NOT P3

70 INC R0

C0 JMP B0

13Cx JMP x ;見(jiàn)Bx指令

14Ex MRx #d ;2字節(jié))

例: 已知:R5=8 執(zhí)行:

E5 C8 MR5#200 ;200送入R5寄存器

結(jié)果:R5=200

§ 4-3 轉(zhuǎn)移指令

15F0 JP0

如果 P0=0 ,則跳過(guò)一行 ,否則 順序執(zhí)行

例:(采用間接跳轉(zhuǎn)指令:JMP R14

EE 02 MR14 #2 ;設(shè)置上跳轉(zhuǎn)的行數(shù)

。。。

L0 ;標(biāo)號(hào)

00 P0=0 P0=0

F0 JP0 ;跳行

D4 JMP R14 ;上跳2 (見(jiàn)指令表)

L1 ;繼續(xù)執(zhí)行

。。。

程序?qū)⑦M(jìn)入L1標(biāo)號(hào)繼續(xù)執(zhí)行,如果令P0=1,則程序進(jìn)入L0標(biāo)號(hào)執(zhí)行。

例:(采用標(biāo)號(hào)指令:Bx

。。。

B0B0 B0

00 CLR P0

    1. SET P0

F0 JP0 ;跳行

C0 JMP B0 ;跳到B0

;繼續(xù)執(zhí)行

。。。。

16F1 JR0 ;當(dāng)R0=0 則跳行 (見(jiàn)JP0指令)

17F2 LRP ;

例: 已知:R0=5;(00000101B);P0=0 執(zhí)行:

F2 LRP ;R0P0位循環(huán)左移1位,結(jié)果送R0

結(jié)果:R0=0A0 00001010B

 

18 F3 MRP ;R0的值8位并行送到P1~P8位,P1對(duì)應(yīng)低位。

例: 已知: R0=0FFH ;P1~P8=0

E0 FF MR0,#0FFH

F3 MRP

結(jié)果: R0=0FF P1~P8=1

19~21 F4,F5,F6 ;延時(shí)不同時(shí)間 (見(jiàn)指令表)

4-1 延時(shí)3S程序

程序1

EE 03 MR14 ,#3 ;設(shè)定上跳的行數(shù)

E0 32 MR0 ,#3 ;賦值R0=3

L0

F6 1S ;延時(shí)1S

80 DEC R0 ;R0=R0-1

F1 JR0 R0=0 跳行到L1執(zhí)行

D4 JMP R14 ;上跳3

L1

。。。。

程序2

F6 1S

F6 1S

F6 1S

程序進(jìn)入延時(shí)后,計(jì)數(shù)器不影響工作。

22~24 控制計(jì)數(shù)器T0的指令,要求外部脈沖是下降沿。

F7 ST0 ;將R0R1中的值送入T0計(jì)數(shù)器,啟動(dòng)T0計(jì)數(shù)器

F8 RT0 ;讀出T0計(jì)數(shù)器的值,存入R0R1中,P15溢出標(biāo)志。

F9 CT0 ;關(guān)閉T0計(jì)數(shù)器,并讀出T0計(jì)數(shù)器的值,存入R0R1

說(shuō)明: RT0 指令采用了“飛讀”方法,不會(huì)產(chǎn)生錯(cuò)相。

4-2 記錄外部5個(gè)脈沖后,停止計(jì)數(shù)并使P1=1

(采用比較法實(shí)現(xiàn))

    1. CLR P1 ;清P1=0

E0 05 MR0 ,#05 ;設(shè)置5個(gè)脈沖

DB NOT ;求R0的補(bǔ)碼

70 INC R0 +1

92 CHE R2 ;R2=FBH 05的補(bǔ)碼)

E0 00 MR0 ,#0 ;R0 0

E1 00 MR1 #0 ;R10

EE 04 MR14 ,#04 ;上跳4

F7 ST0 ; 啟動(dòng)T0計(jì)數(shù)

L0

F8 RT0 ;讀T0 放入R0R1162進(jìn)制,R0是高位)

91 CHE R1 ;交換R0R1

A2 ADC R2 ;R0=R0+R2

F1 JR0 ;等于5個(gè)脈沖,跳行

D4 JMP R14

L1

F9 CT0 ;停止T0計(jì)數(shù)

11 SET P1 P1=1

。。。

4-3 (采用T0溢出法實(shí)現(xiàn)。)

01 CLR P1

E0 FF MR0 ,#0FFH ;R0R1=FFFB+5=10000 溢出

E1 FB MR1 #0FBH ;

0F CLR P15 ;清標(biāo)志

EE 02 MR14 ,#02 ;上跳2

F7 ST0 ; 啟動(dòng)T0計(jì)數(shù),T0=0FFFBH

L0

2F IN P15 ;P0=P15

F0 JP0 ;等待溢出,跳1

D4 JMP R14

L1

F9 CT0 ;停止T0計(jì)數(shù)

11 SET P1 P1=1

。。。

25FA BCD ;2進(jìn)制轉(zhuǎn)換成10進(jìn)制

4-4 把:16進(jìn)制數(shù):033FFH 轉(zhuǎn)換成10進(jìn)制數(shù)

E0 33 MR0 ,#33H

E1 FF MR1 ,#0FFH ;設(shè)置數(shù)據(jù):033FFH

FA BCD ;轉(zhuǎn)換

結(jié)果: R0=01(萬(wàn));R1=3(千);R2=3(百);R3=1(十);R4=1(個(gè))

033FFH=13311

26 FB SEG ;提取相應(yīng)數(shù)字的字符碼 (見(jiàn)字符碼表4-1 4-5 已知:R0=9

FB SEG

結(jié)果: R0=01111111B ;“9”的字符碼按ABCDEFGH從高到低排列。

4-6: 顯示“9。”

E0 09 MR0,#09 ;R0=9

E1 20 MR1#32 ;間隔系數(shù)32

00 CLR P0 ;清P0

A1 ADC R1 ;指向“9!

FB SEG

結(jié)果: R0=1111111111111B;“9!钡淖址a

字符碼 表:4-2

序號(hào)

字符

字符碼

 

序號(hào)

字符

字符碼

0

0

11111100B

21

o

00111010B

1

1

01100000B

22

P

11001110B

2

2

11011010B

23

q

11100110B

3

3

11110010B

24

r

00001010B

4

4

01100110B

25

S

10110110B

5

5

10110110B

26

U

01111100B

6

6

10111110B

27

u

00111000B

7

7

11100000B

28

00000000B

8

8

11111110B

29

8.

11111111B

9

9

11110110B

30

-

00000010b

10

A

11101110B

31

t

00011110b

11

b

00111110B

32

0.

11111101B

12

C

10011100B

33

1.

01100001B

13

d

01111010B

34

2.

11011011B

14

E

10011110B

35

3.

11110011B

15

F

10001110B

36

4.

01100111B

16

H

01101110B

37

5.

10110111B

17

L

00011100B

38

6.

10111111B

18

N

11101100B

39

7.

11100001B

19

n

00101010B

40

8.

11111111B

20

O

11111100B

41

9.

11110111B

說(shuō)明

字符碼的排列順序:a b c d e f g h= D7 D6 D5 D4D D3D D2D D1D 0

27 FC SPI ;建立SPI接口,P1:數(shù)據(jù),P2:時(shí)鐘

說(shuō)明:當(dāng)P0=0時(shí):輸出數(shù)據(jù),P2腳輸出8個(gè)脈沖。

當(dāng)P0=1時(shí):輸入數(shù)據(jù),P2腳輸出8個(gè)脈沖。

見(jiàn)波形圖4-1

D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7

P1

P2

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8

P0=0:寫(xiě)時(shí)序 P0=1:讀時(shí)序

28 FD WRE ;寫(xiě)數(shù)據(jù)到E224單元

3: 把數(shù)據(jù)28H 寫(xiě)入E22430H單元。

E1 30 MR1,#30H ;設(shè)置E224的地址

E0 28 MR0#28H ;數(shù)據(jù)28H放入R0

FD WRE ;寫(xiě)入

29 FE RDE ;從E224單元讀數(shù)據(jù)

3: 把E22430H單元的數(shù)據(jù)讀出。

E1 30 MR1,#30H ;設(shè)置E224的地址

FE RDE ;讀出

結(jié)果: R0=28H

30FF PWN ;停機(jī)并進(jìn)入掉電狀態(tài)

程序結(jié)束后,進(jìn)入掉電狀態(tài),降低功耗。

31 D0 REP ;程序返回首行繼續(xù)執(zhí)行

例: 在P1腳產(chǎn)生寬度約:800uS的脈沖串

61 NOT P1

D0 REP ;返回

32~34 D1 AND R0邏輯“與”R1,結(jié)果在R0

D2 OR R0邏輯“或”R1,結(jié)果在R0

D3 NOT ;R0取反,結(jié)果在R0

例: R0=0FFH ;R1=01 ;求 R0“與”R1

E0 FF MR0 ,#0FFH

E1 01 MR1 ,#01

D1 AND

結(jié)果: R0=01H ;R1=01H

例: R0=0FFH R1=01 ;求 R0“或”R1

E0 FF MR0 ,#0FFH

E1 01 MR1 ,#01

D2 OR

結(jié)果: R0=0FFH ;R1=01H

例: R0=0FFH R1=01 ;求 R0“反”

E0 FF MR0 #0FFH

D3 NOT

結(jié)果: R0=00H

35 F4 JMP R14 ;上跳1~255行(見(jiàn)例4-1

36 F5 JMP R15 ;下跳1~255行(同 JMP R14

當(dāng)R14、R15=0時(shí),進(jìn)入死循環(huán),要避免!

§ 4-4 轉(zhuǎn)移指令

37D9 SEE

說(shuō)明:程序輸入完畢后,請(qǐng)輸入(D9),LED數(shù)碼管分兩次顯示程序的長(zhǎng)度,先顯示地位字節(jié),再顯示高位字節(jié)。

38DA COPYM

說(shuō)明:程序輸入完畢后,請(qǐng)輸入(DA),MEAPC-C主控板內(nèi)的程序,將拷貝到MEAPC-P編程板上,LED數(shù)碼管顯示正在拷貝的地址。

39DB COPYS

說(shuō)明:程序輸入完畢后,請(qǐng)輸入(DB),MEAPC-P編程板內(nèi)的程序,將拷貝到MEAPC-C主控板上,LED數(shù)碼管顯示正在拷貝的地址。

40DC BACK

說(shuō)明:程序輸入時(shí),輸入(DC),將退回一行。

41~43DD START

DE MID

DF END

說(shuō)明:程序輸入時(shí),控制編程指針的位置。

§ 4-5 MEAPC應(yīng)編程技巧

1:程序段獨(dú)立存放 在編程時(shí),為了修改的方便,可將各功能程序段,彼此拉開(kāi)距離單獨(dú)存放見(jiàn)表5-5-1。 采用JMP R15間接從程序1段跳轉(zhuǎn)到程序2段,或在中間直接添加空指令(D6~D8)。表5-5-1

程序1段

JMP R15

(到程序2段)

空指令

程序2段

JMP R15

(到程序3段)

空指令

程序3段

JMP R15

2:數(shù)據(jù)轉(zhuǎn)移指令的合成 例:將R2中的數(shù)據(jù)轉(zhuǎn)移到R3中。 CLR P0 ;P0=0 MR0,#0 R0=0 ADC R2 ;R0=R0+R2+P0 CHE R3 ;R3=R0=R2 3:用MEAPC指令虛擬一個(gè)軟“SPI”口 例:將R1中的數(shù)據(jù)從P5腳輸出,P6腳同步輸出8個(gè)正脈沖。

MR0,#08;移位8

B0B0

CHE R1 ;R0=R1

LRP R0P0位左移1

OUT P5

CLR P6

SET P6 ;P6腳輸出正脈沖

CHE R1 ;恢復(fù)R0

DEC R0 ;指針減一

JR0

JMP B0

;輸出完畢!

。。。

4:用P1~P8口并行輸出字符碼,驅(qū)動(dòng)LED數(shù)碼管(當(dāng)程序執(zhí)行周期>20mS時(shí),不宜采用!) 例:將R2、R3中存放的BCD碼轉(zhuǎn)換成字符碼輸出 CHE R2 ;取R2數(shù)據(jù)到R0 SEG ;轉(zhuǎn)換成字符碼 MRP ;并行輸出 CLR P9 ;點(diǎn)亮LED1數(shù)碼管 CHE R3 ;取R3數(shù)據(jù)到R0 SET P9 ;關(guān)閉LED1數(shù)碼管 SEG ;轉(zhuǎn)換成字符碼 MRP ;并行輸出 CLR P10 ;點(diǎn)亮LED2數(shù)碼管 D6 ;空指令,延時(shí)400uS

SET P9 ;關(guān)閉LED2數(shù)碼管

點(diǎn)擊進(jìn)入:MEAPC介紹資料3

相關(guān)鍵連:AT89C2051的智能時(shí)鐘

相關(guān)鍵連:MEAPC可自編程嵌入式控制器

相關(guān)鍵連:
AT89C2051的倒計(jì)時(shí)器

微型嵌入式自編程控制器MEAPC 缺貨中

銀行帳號(hào)及郵購(gòu)需知    立即進(jìn)入訂貨系統(tǒng)!    查看全部郵購(gòu)清單

郵局匯款地址:郵編226200 江蘇省啟東市江海中路511號(hào)水晶苑 A1 謝剛 收

電話/傳真:0513-83342087 小靈通:0513-83082087 聯(lián)系人:謝剛

電子信箱:

電子制作實(shí)驗(yàn)室網(wǎng)站主頁(yè) www.xinjiapolvyou.cn