ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:311.03KB ,
资源ID:7689992      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7689992.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微型嵌入式自编程控制器MEAPC.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、微型嵌入式自编程控制器MEAPC微型嵌入式自编程控制器MEAPC智能可编程控制电路,具有电路简单,控制方法灵活多变等优点,用它取代传统的纯硬件控制电路,已成为发展趋势。近年来由于单片机的流行,用单片机制作的可编程控制器非常多。但能熟练运用单片机的人并不多。究其原因: 1:学习单片机的设备费用高。 2:单片机的功能复杂,非一般人能轻易掌握。1、学习单片机的门槛太高单片机不仅是一门理论学科,同时又是一门应用学科,而实践是学习单片机的主要方法。但是能实践必须具有:PC机、仿真器、编程器。这三样设备全部具备,少则3000元,多则上万元。即便购齐了上述设备,又要面临如何学习使用:PC机、仿真器、编程器的

2、问题。试想一个50岁没有学习过单片机技术的老电子工程师,还会去学习吗?一个青少年又如何入门呐?2、单片机的功能复杂、指令太多 以现在最流行的单片机MCS-51为例,它的功能虽不算多,但是指令却有115条。许多实际应用却只用其中少数的指令和内部功能。对一些非专业人员就没有必要全部掌握。这样可以减轻学习的负担。 针对上述问题,本人根据自身多年使用单片机的经验,设计了一种微型、廉价的完全脱离:PC机、仿真器、编程器的集开发、学习、应用于一身的开发设备:微型嵌入式自编程控制器MEAPC。3、MEAPC控制器简介 MEAPC控制器简单易学,只有43条指令。凡具有数字电路基础的人,可以在1、2个小时内上手

3、。它可以反复编程几万次。编制的程序可以任意备份。在:灯光、电机、开关逻辑等控制中,可以取代纯数字电路,成本低廉。 MEAPC在工业应用时,可以看成是一个具有13个I/O口、上千个软继电器的可编程控制器(PLC)。而在学习时,又可看作是一个简易的可以自编程的单片机,无须其他开发设备。 MEAPC控制器的组成MEAPC由MEAPC-C主控板和MEAPC-P编程板两部分组成(见图2-1) MEAPC-C主控板是一块带有单片机的可重复编程的控制板,它由使用者插入MEAPC-P编程板编程,编程完毕后将它插入应用电路中即可工作。单片机中固化了一套监控程序(MEAPC-V3.0),负责管理MEAPC-P编程

4、板的编程和运行输入的用户程序。 MEAPC-P编程板是一块带有键盘、LED显示的编程板,用户必须用它将编制的程序输入MEAPC-C主控板。它可以多次使用。 2-1 MEAPC-C主控板的引脚功能MEAPC-C的引脚见图2-2,上电后的初始值见表2-2。MEAPC-C主控板的引脚 图2-2 MEAPC-C主控板的引脚 表:2-1管脚地址管脚地址1+5V电源10P9 I/O脚,地址:09H2P1 I/O脚,地址:01H11P10 I/O脚,地址:0AH3P2 I/O脚,地址:02H12P11 I/O脚,地址:0BH4P3 I/O脚,地址:03H13P12 I/O脚,地址:0CH5P4 I/O脚,地

5、址:04H14P13 I/O脚,地址:0DH6P5 I/O脚,地址:05H15RST:复位脚 (高电平)7P6 I/O脚,地址:06H16SCL:I2C时钟脚(悬空)8P7 I/O脚,地址:07H17SDA:I2C数据脚(悬空)9P8 I/O脚,地址:08H18GND:电源地上电后的初始值 表:2-216个位的状态16个寄存器的初始值P0=P14=P15=0;P1P13=1R0R15=0 2-2 MEAPC-C主控板的内部资源MEAPC-C主控板具有以下内部资源:1具有13根I/O线:P1P13 输入时:吸收电流20uA输出时:灌入电流:20mA ;导出电流:4mA其中P11具有负脉冲检测功能

6、,可以计数,最高频率500KHz2内部有16个位:P0P15 。 其中P1P13是I/O线,P0、P14、P15是用户使用位;启动计数器T0后,P15是T0溢出标志位。316个内部RAM字节:R0R154256个外部FlashRam字节:00FFH 5一个16位可编程硬件计数器:T06一个模拟SPI通讯口。7具有1。5K的程序存放空间(使用E224C16),可存放近:1500条指令。8指令平均执行速度:400uS 2-3 MEAPC-C主控板的内存分布MEAPC-C主控板的内存分布见图2-3,它可以寻址2K的地址范围。其中:16个位的地址:0FH;16个RAM的地址:0FH;256个外部存储器

7、字节的地址:00FFH;系统子程序的地址:1001FFH;用户程序的地址:200H7FFH202H7FFH15K程序空间200H201H程序长度100H1FFH系统子程序空间00HFFH外部FLASHRAM16个位16个RAMMEAPC-C主控板的内存分布 图2-3 2-4 MEAPC-P编程板的引脚功能MEAPC-P编程板负责为MEAPC-C主控板编程,它自带一个2K的备份程序存储器,便于复制程序;两位LED数码管显示指令和数据;5个按键负责将指令、数据输入MEAPC-C主控板。1、MEAPC-P编程板的引脚(见图2-5)2、MEAPC-P编程板的按键分布(见图2-4) MEAPC-P编程板

8、的按键功能 表:2-2键号功能键号功能K1LED数码管的数值加一K4确认并存入E224K2LED数码管的数值减一K5复位MEPAPC-CK3右移一位点击进入:MEAPC介绍资料2第三章 MEAPC指令表 MEAPC的指令系统由43条指令组成。可完成:位运算、数值运算、逻辑运算、移位、跳转等功能。有一个“布尔处理器 P0”,通过它可以处理大量的位数据信息,在工控中非常有用。同时还有一些特殊功能的“宏指令”。只需少量的代码就可方便地完成各种复杂的智能电路的设计。用它取代一些传统的继电器控制电路易如反掌!MEAPC的指令系统(见表3-1)。自编程控制器MEAPC-C1指令表 表:3-1序号指令助记符

9、字节说明位处理指令10xCLR Px1Px=0 ;x0FH21xSET Px1Px=132xIN Px1P0=Px43xOUT Px1Px=P054xAND Px1Px与P0,结果在P065xOR Px1Px或P0,结果在P076xNOT Px1Px取反,结果在Px寄存器处理指令87xINC Rx1Rx=Rx+198xDEC Rx1Rx=Rx-1109xCHE Rx1交换R0,Rx中的内容11AxADC Rx1带P0位加法: R0=R0+Rx+P012BxBx1指定标号:x=0F13CxJMP x1跳转到指定标号:x=0F14ExMRx,#d2赋值:Rx=#d ;d=0255宏处理指令15F0

10、JP01P0=0,跳过一行16F1JR01R0=0,跳过一行17F2LRP 1R0带P0位左循环移1位18F3MRP1R0中的内容并行送到P1P8口19F410mS1延时 10毫秒20F5100mS1延时 100毫秒21F61S1延时 1秒22F7ST01将R0R1中的值送入T0计数器后,启动T0计数器23F8RT01读出T0计数器的值,存入R0R1中,P15溢出标志。24F9CT01关闭T0计数器,并读出T0计数器的值,存入R0R125FABCD1R0R1中16位二进制数转换成BCD码,存入R0R1R2R3R426FBSEG1用R0中的序号,读取相应的字符段码,存入R027FCSPI1当P0

11、=0时:R0中的值从低位开始,串行输出到P1口,P2输出8个移位负脉冲;当P0=1时:将P1口的数据串行输入到R0中,P2输出8个移位负脉冲。28FDWRE1将R0中的值写入R1指定的E224单元。(范围:0255)29FERDE1读取R1指定的E224单元的值,存入R0。(范围:0255)30FFPWN1进入掉电状态。31D0REP1返回到程序的开始行32D1AND1R0与R1,结果在R033D2OR 1R0或R1,结果在R034D3NOT 1R0取反,结果在R035D4JMP R141上跳R14中指定的行数,范围(0255)36D5JMP R151下跳R15中指定的行数,范围(0255)伪

12、指令37D9SEE查看程序的长度,并写入E224中,地址:200H,201H38DACOPYM 控制板上E224中的值复制到编程板上E224中编程板上E224中的值复制到控制板上E224中编程指针倒退3行编程指针回到第1行编程指针回到中间行编程指针回到最后1行39DBCOPYS40DCBACK41DDSTART42DEMID43DFEND说明:16个位:P0P15地址:0FH。P1P13对应13根I/O线;P0、P14、P15用户自定义位。P11口是外部脉冲输入脚。当使用T0计数器时,P15做溢出标志。 16个8位寄存器:R0R15地址:0FH。 256个8位E224存储器,地址:00HFFH

13、。 X的范围:0F D的范围:0FF 第四章 指令系统使用详解本章以指令的序号顺序,叙述每条指令的功能并举例。除了指令:MRx是2字节外,其余均是单字节指令。使用时请注意以下几点:1、D9DF指令是伪指令,不会写入EE24中。2、P代表:位。3、R代表:8位寄存器。4、只有指令:ADC Rx 影响P0位。5、Bx指令为程序提供了16个标号,便于编程。如果不够用,可以使用:JMPR14、JMPR15指令完成间接跳转(详见MEAPC-C1指令表3-1)。6、输入数据必须采用16进制。16进制表示:xxH ;10进制:xx ;2制:xxB。编写程序时为了便于阅读,助记符的数字一般采用10进制书写。数

14、字:015的十进制、二进制、十六进制之间转换关系见表4-1 十进制、二进制、十六进制之间转换关系 表:4-1十进制二进制十六进制十进制二进制十六进制000000000B00H800001000B08H100000001B01H900001001B09H200000010B02H1000001010B0AH300000011B03H1100001011B0BH400000100B04H1200001100B0CH500000101B05H1300001101B0DH600000110B06H1400001110B0EH700000111B07H1500001111B0FH 4-1 位操作指令1:

15、 0x CLR Px ;x=0F例: 已知:P0=1 执行: 00 CLR P0 ;P0位清零结果:P0=02: 1x SET Px ;例: 已知:P15=0 执行: 1F SET P15 ;P15位置1结果:P15=13: 2x IN Px ;x=0F例: 已知:P7=1 ;P0=0 执行: 27 IN P7 ;读入P7位的数据到P0位结果:P0=14: 3x OUT Px ;例: 已知:P8=0 ;P0=1 执行: 38 OUT P8 ;P0位的数据送到P8位结果:P8=15: 4x AND Px ;x=0F例: 已知:P10=0 ;P0=1 执行: 4A AND P10 ;P10位逻辑与

16、P0位,结果送P0位。结果:P0=06: 5x OR Px ;例: 已知:P11=0 ;P0=1 执行: 5B OR P11 ;P11位逻辑或P0位,结果送P0位。结果:P0=17: 6x NOT Px ;x=0F例: 已知:P12=0 执行: 6C NOT P12 ;P12位取反,结果送P12位结果:P12=1 4-2 寄存器指令8: 7x INC Rx ;x=0F例: 已知:R2=3 执行:70 INC R2 ;R2寄存器加1,不影响P0位结果:R2=49: 8x DEC Rx ;x=0F例: 已知:R1=8 执行:81 DEC R1 ;R1数据减1结果:R1=710: 9x CHE Rx

17、例: 已知:R0=8;R10=15 执行:9A CHE R10 ;R10和P0的数据交换结果:R0=15;R10=811: Ax ADC Rx ;例: 已知:R0=5;P0=1;R10=20 执行:AA ADC R10 ;R10加P0位加R0,结果送R0结果:R0=2612: Bx Bx ;产生标号例: 00 CLR P011 SET P1B0 B0:B002 CLR P263 NOT P370 INC R0C0 JMP B013: Cx JMP x ;见Bx指令14: Ex MRx ,#d ;(2字节)例: 已知:R5=8; 执行:E5 C8 MR5,#200 ;200送入R5寄存器结果:R

18、5=200 4-3 转移指令15: F0 JP0 如果 P0位=0 ,则跳过一行 ,否则 顺序执行例:(采用间接跳转指令:JMP R14) EE 02 MR14 ,#2 ;设置上跳转的行数。L0: ;标号00 P0=0 ;P0=0F0 JP0 ;跳行 D4 JMP R14 ;上跳2行 (见指令表)L1: ;继续执行 。 程序将进入L1标号继续执行,如果令P0=1,则程序进入L0标号执行。例:(采用标号指令:Bx)。B0:B0 B000 CLR P0SET P0 F0 JP0 ;跳行C0 JMP B0 ;跳到B0行 ;继续执行。16: F1 JR0 ;当R0=0 则跳行 (见JP0指令)17:

19、F2 LRP ;例: 已知:R0=5;(00000101B);P0=0 执行:F2 LRP ;R0代P0位循环左移1位,结果送R0结果:R0=0A0 (00001010B) 18: F3 MRP ;R0的值8位并行送到P1P8位,P1对应低位。例: 已知: R0=0FFH ;P1P8=0E0 FF MR0,#0FFHF3 MRP 结果: R0=0FF ;P1P8=11921: F4,F5,F6 ;延时不同时间 (见指令表)例4-1: 延时3S程序 程序1:EE 03 MR14 ,#3 ;设定上跳的行数 E0 32 MR0 ,#3 ;赋值R0=3L0:F6 1S ;延时1S80 DEC R0 ;

20、R0=R0-1F1 JR0 ;R0=0 跳行到L1执行 D4 JMP R14 ;上跳3行L1:。程序2:F6 1SF6 1SF6 1S程序进入延时后,计数器不影响工作。2224: 控制计数器T0的指令,要求外部脉冲是下降沿。F7 ST0 ;将R0R1中的值送入T0计数器,启动T0计数器F8 RT0 ;读出T0计数器的值,存入R0R1中,P15溢出标志。F9 CT0 ;关闭T0计数器,并读出T0计数器的值,存入R0R1中 说明: RT0 指令采用了“飞读”方法,不会产生错相。例4-2: 记录外部5个脉冲后,停止计数并使P1=1(采用比较法实现)CLR P1 ;清P1=0 E0 05 MR0 ,#

21、05 ;设置5个脉冲DB NOT ;求R0的补码70 INC R0 ;+192 CHE R2 ;R2=FBH (05的补码) E0 00 MR0 ,#0 ;R0清 0E1 00 MR1 ,#0 ;R1清0EE 04 MR14 ,#04 ;上跳4行F7 ST0 ; 启动T0计数L0: F8 RT0 ;读T0 放入R0R1(16位2进制,R0是高位)91 CHE R1 ;交换R0,R1A2 ADC R2 ;R0=R0+R2F1 JR0 ;等于5个脉冲,跳行D4 JMP R14L1:F9 CT0 ;停止T0计数 11 SET P1 ;P1=1。例4-3: (采用T0溢出法实现。)01 CLR P1E

22、0 FF MR0 ,#0FFH ;R0R1=FFFB+5=10000 溢出E1 FB MR1 ,#0FBH ;0F CLR P15 ;清标志EE 02 MR14 ,#02 ;上跳2行F7 ST0 ; 启动T0计数,T0=0FFFBHL0: 2F IN P15 ;P0=P15F0 JP0 ;等待溢出,跳1行D4 JMP R14L1:F9 CT0 ;停止T0计数 11 SET P1 ;P1=1。25: FA BCD ;2进制转换成10进制例4-4: 把:16进制数:033FFH 转换成10进制数E0 33 MR0 ,#33HE1 FF MR1 ,#0FFH ;设置数据:033FFHFA BCD ;

23、转换结果: R0=01(万);R1=3(千);R2=3(百);R3=1(十);R4=1(个)033FFH=1331126: FB SEG ;提取相应数字的字符码 (见字符码表4-1) 例4-5: 已知:R0=9FB SEG 结果: R0=01111111B ;“9”的字符码按ABCDEFGH从高到低排列。例4-6: 显示“9。”E0 09 MR0,#09 ;R0=9E1 20 MR1,#32 ;间隔系数3200 CLR P0 ;清P0A1 ADC R1 ;指向“9。”FB SEG结果: R0=1111111111111B;“9。”的字符码字符码 表:4-2序号字符字符码序号字符字符码0“0”1

24、1111100B21“o”00111010B1“1”01100000B22“P”11001110B2“2”11011010B23“q”11100110B3“3”11110010B24“r”00001010B4“4”01100110B25“S”10110110B5“5”10110110B26“U”01111100B6“6”10111110B27“u”00111000B7“7”11100000B28“ ”00000000B8“8”11111110B29“8.”11111111B9“9”11110110B30“-”00000010b10“A”11101110B31“t”00011110b11“b”0

25、0111110B32“0.”11111101B12“C”10011100B33“1.”01100001B13“d”01111010B34“2.”11011011B14“E”10011110B35“3.”11110011B15“F”10001110B36“4.”01100111B16“H”01101110B37“5.”10110111B17“L”00011100B38“6.”10111111B18“N”11101100B39“7.”11100001B19“n”00101010B40“8.”11111111B20“O”11111100B41“9.”11110111B说明字符码的排列顺序:a b c

26、 d e f g h= D7 D6 D5 D4D D3D D2D D1D 027: FC SPI ;建立SPI接口,P1:数据,P2:时钟说明:当P0=0时:输出数据,P2脚输出8个脉冲。当P0=1时:输入数据,P2脚输出8个脉冲。 见波形图4-1:D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7P1 P21 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 P0=0:写时序 P0=1:读时序28: FD WRE ;写数据到E224单元例3: 把数据28H 写入E224的30H单元。E1 30 MR1,#30H ;设置E224的地址E0

27、28 MR0,#28H ;数据28H放入R0FD WRE ;写入29: FE RDE ;从E224单元读数据例3: 把E224的30H单元的数据读出。E1 30 MR1,#30H ;设置E224的地址FE RDE ;读出结果: R0=28H30: FF PWN ;停机并进入掉电状态程序结束后,进入掉电状态,降低功耗。 31: D0 REP ;程序返回首行继续执行例: 在P1脚产生宽度约:800uS的脉冲串61 NOT P1D0 REP ;返回3234: D1 AND ;R0逻辑“与”R1,结果在R0D2 OR ;R0逻辑“或”R1,结果在R0 D3 NOT ;R0取反,结果在R0例: R0=0FFH ;R1=01 ;求 R0“与”R1E0 FF MR0 ,#0FFH E1 01 MR1 ,#01D1 AND结果: R0=01H ;R1=01H 例: R0=0FFH ;R1=01 ;求 R0“或”R1E0 FF MR0 ,#0FFH E1 01 MR1 ,#01D2 OR结果: R0=

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

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