微型嵌入式自编程控制器MEAPC.docx

上传人:b****8 文档编号:29464127 上传时间:2023-07-23 格式:DOCX 页数:36 大小:310.97KB
下载 相关 举报
微型嵌入式自编程控制器MEAPC.docx_第1页
第1页 / 共36页
微型嵌入式自编程控制器MEAPC.docx_第2页
第2页 / 共36页
微型嵌入式自编程控制器MEAPC.docx_第3页
第3页 / 共36页
微型嵌入式自编程控制器MEAPC.docx_第4页
第4页 / 共36页
微型嵌入式自编程控制器MEAPC.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

微型嵌入式自编程控制器MEAPC.docx

《微型嵌入式自编程控制器MEAPC.docx》由会员分享,可在线阅读,更多相关《微型嵌入式自编程控制器MEAPC.docx(36页珍藏版)》请在冰豆网上搜索。

微型嵌入式自编程控制器MEAPC.docx

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

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

智能可编程控制电路,具有电路简单,控制方法灵活多变等优点,用它取代传统的纯硬件控制电路,已成为发展趋势。

近年来由于单片机的流行,用单片机制作的可编程控制器非常多。

但能熟练运用单片机的人并不多。

究其原因:

1:

学习单片机的设备费用高。

2:

单片机的功能复杂,非一般人能轻易掌握。

1、学习单片机的门槛太高

 单片机不仅是一门理论学科,同时又是一门应用学科,而实践是学习单片机的主要方法。

但是能实践必须具有:

PC机、仿真器、编程器。

这三样设备全部具备,少则3000元,多则上万元。

即便购齐了上述设备,又要面临如何学习使用:

PC机、仿真器、编程器的问题。

试想一个50岁没有学习过单片机技术的老电子工程师,还会去学习吗?

一个青少年又如何入门呐?

2、单片机的功能复杂、指令太多

    以现在最流行的单片机MCS-51为例,它的功能虽不算多,但是指令却有115条。

许多实际应用却只

用其中少数的指令和内部功能。

对一些非专业人员就没有必要全部掌握。

这样可以减轻学习的负担。

    针对上述问题,本人根据自身多年使用单片机的经验,设计了一种微型、廉价的完全脱离:

PC机、仿真器、编程器的集开发、学习、应用于一身的开发设备:

微型嵌入式自编程控制器MEAPC。

3、MEAPC控制器简介

    MEAPC控制器简单易学,只有43条指令。

凡具有数字电路基础的人,可以在1、2个小时内上手。

它可以反复编程几万次。

编制的程序可以任意备份。

在:

灯光、电机、开关逻辑等控制中,可以取代纯数字电路,成本低廉。

    MEAPC在工业应用时,可以看成是一个具有13个I/O口、上千个软继电器的可编程控制器(PLC)。

而在学习时,又可看作是一个简易的可以自编程的单片机,无须其他开发设备。

MEAPC控制器的组成

MEAPC由MEAPC-C主控板和MEAPC-P编程板两部分组成(见图2-1)

  

 

    MEAPC-C主控板是一块带有单片机的可重复编程的控制板,它由使用者插入MEAPC-P编程板编程,编程完毕后将它插入应用电路中即可工作。

单片机中固化了一套监控程序(MEAPC-V3.0),负责管理MEAPC-P编程板的编程和运行输入的用户程序。

    MEAPC-P编程板是一块带有键盘、LED显示的编程板,用户必须用它将编制的程序输入MEAPC-C主控板。

它可以多次使用。

§2-1MEAPC-C主控板的引脚功能

MEAPC-C的引脚见图2-2,上电后的初始值见表2-2。

MEAPC-C主控板的引脚图2-2

MEAPC-C主控板的引脚表:

2-1

管脚

地址

 

管脚

地址

1

+5V电源

10

P9I/O脚,地址:

09H

2

P1I/O脚,地址:

01H

11

P10I/O脚,地址:

0AH

3

P2I/O脚,地址:

02H

12

P11I/O脚,地址:

0BH

4

P3I/O脚,地址:

03H

13

P12I/O脚,地址:

0CH

5

P4I/O脚,地址:

04H

14

P13I/O脚,地址:

0DH

6

P5I/O脚,地址:

05H

15

RST:

复位脚(高电平)

7

P6I/O脚,地址:

06H

16

SCL:

I2C时钟脚(悬空)

8

P7I/O脚,地址:

07H

17

SDA:

I2C数据脚(悬空)

9

P8I/O脚,地址:

08H

18

GND:

电源地

上电后的初始值表:

2-2

16个位的状态

16个寄存器的初始值

P0=P14=P15=0;P1~P13=1

R0~R15=0

§2-2MEAPC-C主控板的内部资源

MEAPC-C主控板具有以下内部资源:

1.具有13根I/O线:

P1~P13

输入时:

吸收电流<20uA

输出时:

灌入电流:

20mA;导出电流:

4mA

其中P11具有负脉冲检测功能,可以计数,最高频率<500KHz

2.内部有16个位:

P0~P15。

其中P1~P13是I/O线,P0、P14、P15是用户使用位;启动计数器T0后,P15是T0溢出标志位。

3.16个内部RAM字节:

R0~R15

4.256个外部FlashRam字节:

00~FFH

5.一个16位可编程硬件计数器:

T0

6.一个模拟SPI通讯口。

7.具有1。

5K的程序存放空间(使用E224C16),可存放近:

1500条指令。

8.指令平均执行速度:

400uS

 

§2-3MEAPC-C主控板的内存分布

MEAPC-C主控板的内存分布见图2-3,它可以寻址2K的地址范围。

其中:

16个位的地址:

0~FH;

16个RAM的地址:

0~FH;

256个外部存储器字节的地址:

00~FFH;

系统子程序的地址:

100~1FFH;

用户程序的地址:

200H~7FFH

202H~7FFH

1.5K程序空间

200H~201H

程序长度

100H~1FFH

系统子程序空间

00H~FFH

外部FLASHRAM

16个位

16个RAM

MEAPC-C主控板的内存分布图2-3

§2-4MEAPC-P编程板的引脚功能

MEAPC-P编程板负责为MEAPC-C主控板编程,它自带一个2K的备份程序存储器,便于复制程序;两位LED数码管显示指令和数据;5个按键负责将指令、数据输入MEAPC-C主控板。

1、MEAPC-P编程板的引脚(见图2-5)

2、MEAPC-P编程板的按键分布(见图2-4)

 

MEAPC-P编程板的按键功能表:

2-2

键号

功能

 

键号

功能

K1

LED数码管的数值加一

K4

确认并存入E224

K2

LED数码管的数值减一

K5

复位MEPAPC-C

K3

右移一位

 

 

点击进入:

MEAPC介绍资料2

第三章MEAPC指令表

    MEAPC的指令系统由43条指令组成。

可完成:

位运算、数值运算、逻辑运算、移位、跳转等功能。

有一个“布尔处理器P0”,通过它可以处理大量的位数据信息,在工控中非常有用。

同时还有一些特殊功能的“宏指令”。

只需少量的代码就可方便地完成各种复杂的智能电路的设计。

用它取代一些传统的继电器控制电路易如反掌!

MEAPC的指令系统(见表3-1)。

自编程控制器MEAPC-C1指令表表:

3-1

序号

指令

助记符

字节

说明

位处理指令

1

0x

CLRPx

1

Px=0;x0~FH

2

1x

SETPx

1

Px=1

3

2x

INPx

1

P0=Px

4

3x

OUTPx

1

Px=P0

5

4x

ANDPx

1

Px与P0,结果在P0

6

5x

ORPx

1

Px或P0,结果在P0

7

6x

NOTPx

1

Px取反,结果在Px

寄存器处理指令

8

7x

INCRx

1

Rx=Rx+1

9

8x

DECRx

1

Rx=Rx-1

10

9x

CHERx

1

交换R0,Rx中的内容

11

Ax

ADCRx

1

带P0位加法:

R0=R0+Rx+P0

12

Bx

Bx

1

指定标号:

x=0~F

13

Cx

JMPx

1

跳转到指定标号:

x=0~F

14

Ex

MRx,#d

2

赋值:

Rx=#d;d=0~255

宏处理指令

15

F0

JP0

1

P0=0,跳过一行

16

F1

JR0

1

R0=0,跳过一行

17

F2

LRP

1

R0带P0位左循环移1位

18

F3

MRP

1

R0中的内容并行送到P1~P8口

19

F4

10mS

1

延时10毫秒

20

F5

100mS

1

延时100毫秒

21

F6

1S

1

延时1秒

22

F7

ST0

1

将R0R1中的值送入T0计数器后,启动T0计数器

23

F8

RT0

1

读出T0计数器的值,存入R0R1中,P15溢出标志。

24

F9

CT0

1

关闭T0计数器,并读出T0计数器的值,存入R0R1

25

FA

BCD

1

R0R1中16位二进制数转换成BCD码,存入R0R1R2R3R4

26

FB

SEG

1

用R0中的序号,读取相应的字符段码,存入R0

27

FC

SPI

1

当P0=0时:

R0中的值从低位开始,串行输出到P1口,P2输出8个移位负脉冲;当P0=1时:

将P1口的数据串行输入到R0中,P2输出8个移位负脉冲。

28

FD

WRE

1

将R0中的值写入R1指定的E224单元。

(范围:

0~255)

29

FE

RDE

1

读取R1指定的E224单元的值,存入R0。

(范围:

0~255)

30

FF

PWN

1

进入掉电状态。

 

 

 

 

 

31

D0

REP

1

返回到程序的开始行

32

D1

AND

1

R0与R1,结果在R0

33

D2

OR

1

R0或R1,结果在R0

34

D3

NOT

1

R0取反,结果在R0

35

D4

JMPR14

1

上跳R14中指定的行数,范围(0~255)

36

D5

JMPR15

1

下跳R15中指定的行数,范围(0~255)

伪指令

37

D9

SEE

查看程序的长度,并写入E224中,地址:

200H,201H

38

DA

COPYM

控制板上E224中的值复制到编程板上E224中

编程板上E224中的值复制到控制板上E224中

编程指针倒退3行

编程指针回到第1行

编程指针回到中间行

编程指针回到最后1行

39

DB

COPYS

40

DC

BACK

41

DD

START

42

DE

MID

43

DF

END

 

 

 

说明:

16个位:

P0~P15地址:

0~FH。

P1~P13对应13根I/O线;P0、P14、P15用户自定义位。

P11口是外部脉冲输入脚。

当使用T0计数器时,P15做溢出标志。

16个8位寄存器:

R0~R15地址:

0~FH。

256个8位E224存储器,地址:

00H~FFH。

X的范围:

0~F

D的范围:

0~FF

第四章指令系统使用详解

本章以指令的序号顺序,叙述每条指令的功能并举例。

除了指令:

MRx是2字节外,其余均是单字节指令。

使用时请注意以下几点:

1、D9~DF指令是伪指令,不会写入EE24中。

2、P代表:

位。

3、R代表:

8位寄存器。

4、只有指令:

ADCRx影响P0位。

5、Bx指令为程序提供了16个标号,便于编程。

如果不够用,可以使用:

JMPR14、JMPR15指令完成间接跳转(详见MEAPC-C1指令表3-1)。

6、输入数据必须采用16进制。

16进制表示:

xxH;10进制:

xx;2制:

xxB。

编写程序时为了便于阅读,助记符的数字一般采用10进制书写。

数字:

0~15的十进制、二进制、十六进制之间转换关系见表4-1

十进制、二进制、十六进制之间转换关系表:

4-1

十进制

二进制

十六进制

 

十进制

二进制

十六进制

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:

0xCLRPx;x=0~F

例:

已知:

P0=1执行:

00CLRP0;P0位清零

结果:

P0=0

2:

1xSETPx;

例:

已知:

P15=0执行:

1FSETP15;P15位置1

结果:

P15=1

3:

2xINPx;x=0~F

例:

已知:

P7=1;P0=0执行:

27INP7;读入P7位的数据到P0位

结果:

P0=1

4:

3xOUTPx;

例:

已知:

P8=0;P0=1执行:

38OUTP8;P0位的数据送到P8位

结果:

P8=1

5:

4xANDPx;x=0~F

例:

已知:

P10=0;P0=1执行:

4AANDP10;P10位逻辑与P0位,结果送P0位。

结果:

P0=0

6:

5xORPx;

例:

已知:

P11=0;P0=1执行:

5BORP11;P11位逻辑或P0位,结果送P0位。

结果:

P0=1

7:

6xNOTPx;x=0~F

例:

已知:

P12=0执行:

6CNOTP12;P12位取反,结果送P12位

结果:

P12=1

§4-2寄存器指令

8:

7xINCRx;x=0~F

例:

已知:

R2=3执行:

70INCR2;R2寄存器加1,不影响P0位

结果:

R2=4

9:

8xDECRx;x=0~F

例:

已知:

R1=8执行:

81DECR1;R1数据减1

结果:

R1=7

10:

9xCHERx

例:

已知:

R0=8;R10=15执行:

9ACHER10;R10和P0的数据交换

结果:

R0=15;R10=8

11:

AxADCRx;

例:

已知:

R0=5;P0=1;R10=20执行:

AAADCR10;R10加P0位加R0,结果送R0

结果:

R0=26

12:

BxBx;产生标号

例:

00CLRP0

11SETP1

B0B0:

B0

02CLRP2

63NOTP3

70INCR0

C0JMPB0

13:

CxJMPx;见Bx指令

14:

ExMRx,#d;(2字节)

例:

已知:

R5=8;执行:

E5C8MR5,#200;200送入R5寄存器

结果:

R5=200

§4-3转移指令

15:

F0JP0

如果P0位=0,则跳过一行,否则顺序执行

例:

(采用间接跳转指令:

JMPR14)

EE02MR14,#2;设置上跳转的行数

L0:

;标号

00P0=0;P0=0

F0JP0;跳行

D4JMPR14;上跳2行(见指令表)

L1:

;继续执行

程序将进入L1标号继续执行,如果令P0=1,则程序进入L0标号执行。

例:

(采用标号指令:

Bx)

B0:

B0B0

00CLRP0

SETP0

F0JP0;跳行

C0JMPB0;跳到B0行

;继续执行

16:

F1JR0;当R0=0则跳行(见JP0指令)

17:

F2LRP;

例:

已知:

R0=5;(00000101B);P0=0执行:

F2LRP;R0代P0位循环左移1位,结果送R0

结果:

R0=0A0(00001010B)

 

18:

F3MRP;R0的值8位并行送到P1~P8位,P1对应低位。

例:

已知:

R0=0FFH;P1~P8=0

E0FFMR0,#0FFH

F3MRP

结果:

R0=0FF;P1~P8=1

19~21:

F4,F5,F6;延时不同时间(见指令表)

例4-1:

延时3S程序

程序1:

EE03MR14,#3;设定上跳的行数

E032MR0,#3;赋值R0=3

L0:

F61S;延时1S

80DECR0;R0=R0-1

F1JR0;R0=0跳行到L1执行

D4JMPR14;上跳3行

L1:

程序2:

F61S

F61S

F61S

程序进入延时后,计数器不影响工作。

22~24:

控制计数器T0的指令,要求外部脉冲是下降沿。

F7ST0;将R0R1中的值送入T0计数器,启动T0计数器

F8RT0;读出T0计数器的值,存入R0R1中,P15溢出标志。

F9CT0;关闭T0计数器,并读出T0计数器的值,存入R0R1中

说明:

RT0指令采用了“飞读”方法,不会产生错相。

例4-2:

记录外部5个脉冲后,停止计数并使P1=1

(采用比较法实现)

CLRP1;清P1=0

E005MR0,#05;设置5个脉冲

DBNOT;求R0的补码

70INCR0;+1

92CHER2;R2=FBH(05的补码)

E000MR0,#0;R0清0

E100MR1,#0;R1清0

EE04MR14,#04;上跳4行

F7ST0;启动T0计数

L0:

F8RT0;读T0放入R0R1(16位2进制,R0是高位)

91CHER1;交换R0,R1

A2ADCR2;R0=R0+R2

F1JR0;等于5个脉冲,跳行

D4JMPR14

L1:

F9CT0;停止T0计数

11SETP1;P1=1

例4-3:

(采用T0溢出法实现。

01CLRP1

E0FFMR0,#0FFH;R0R1=FFFB+5=10000溢出

E1FBMR1,#0FBH;

0FCLRP15;清标志

EE02MR14,#02;上跳2行

F7ST0;启动T0计数,T0=0FFFBH

L0:

2FINP15;P0=P15

F0JP0;等待溢出,跳1行

D4JMPR14

L1:

F9CT0;停止T0计数

11SETP1;P1=1

25:

FABCD;2进制转换成10进制

例4-4:

把:

16进制数:

033FFH转换成10进制数

E033MR0,#33H

E1FFMR1,#0FFH;设置数据:

033FFH

FABCD;转换

结果:

R0=01(万);R1=3(千);R2=3(百);R3=1(十);R4=1(个)

033FFH=13311

26:

FBSEG;提取相应数字的字符码(见字符码表4-1)例4-5:

已知:

R0=9

FBSEG

结果:

R0=01111111B;“9”的字符码按ABCDEFGH从高到低排列。

例4-6:

显示“9。

E009MR0,#09;R0=9

E120MR1,#32;间隔系数32

00CLRP0;清P0

A1ADCR1;指向“9。

FBSEG

结果:

R0=1111111111111B;“9。

”的字符码

字符码表:

4-2

序号

字符

字符码

 

序号

字符

字符码

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

说明

字符码的排列顺序:

abcdefgh=D7D6D5D4DD3DD2DD1D0

27:

FCSPI;建立SPI接口,P1:

数据,P2:

时钟

说明:

当P0=0时:

输出数据,P2脚输出8个脉冲。

当P0=1时:

输入数据,P2脚输出8个脉冲。

见波形图4-1:

D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7

P1

P2

1234567812345678

P0=0:

写时序P0=1:

读时序

28:

FDWRE;写数据到E224单元

例3:

把数据28H写入E224的30H单元。

E130MR1,#30H;设置E224的地址

E028MR0,#28H;数据28H放入R0

FDWRE;写入

29:

FERDE;从E224单元读数据

例3:

把E224的30H单元的数据读出。

E130MR1,#30H;设置E224的地址

FERDE;读出

结果:

R0=28H

30:

FFPWN;停机并进入掉电状态

程序结束后,进入掉电状态,降低功耗。

31:

D0REP;程序返回首行继续执行

例:

在P1脚产生宽度约:

800uS的脉冲串

61NOTP1

D0REP;返回

32~34:

D1AND;R0逻辑“与”R1,结果在R0

D2OR;R0逻辑“或”R1,结果在R0

D3NOT;R0取反,结果在R0

例:

R0=0FFH;R1=01;求R0“与”R1

E0FFMR0,#0FFH

E101MR1,#01

D1AND

结果:

R0=01H;R1=01H

例:

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

E0FFMR0,#0FFH

E101MR1,#01

D2OR

结果:

R0=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1