微控制器在工控方面的使用对策

上传人:ji****n 文档编号:45171923 上传时间:2018-06-15 格式:DOC 页数:38 大小:638.50KB
返回 下载 相关 举报
微控制器在工控方面的使用对策_第1页
第1页 / 共38页
微控制器在工控方面的使用对策_第2页
第2页 / 共38页
微控制器在工控方面的使用对策_第3页
第3页 / 共38页
微控制器在工控方面的使用对策_第4页
第4页 / 共38页
微控制器在工控方面的使用对策_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《微控制器在工控方面的使用对策》由会员分享,可在线阅读,更多相关《微控制器在工控方面的使用对策(38页珍藏版)》请在金锄头文库上搜索。

1、1前言单片机是微型计算机的一个重要的分支。自 1976 年 Intel 公司推出第一款 8 位单片机 MCS48 开始,单片机在短短几十年间获得了长足的发展,从最开始的 4 位机到更高性能的 8 位机,到速度更快,片内资源更为丰富的增强型 8 位机、16 位机甚至 32 位机,其性能不断增强,功能也日益完善。目前 64 位机已经面世。在这微控制器大家族中,MCS51、52 系列兼容机借助其本身雄厚的基础与实力,重回单片机霸主的宝座。既然微控制器功能如此强大,那是否可以像 PLC 一样,在工业自动化程控中得到普及。本论文将分六章介绍如何用单片机构造一个 PLC 小型控制系统。该系统包括:(一)设

2、计一个 12 进 8 出带通讯功能的控制板(二)输入输出部份程序的编写(三)外置 EEPROM 外部数据存储器的编写(四)STC 系列内置 EEPROM 单片机的编写(五)多机通讯程序的编写(六)与 PC 通讯的编写/*/(一)(一)设计一个设计一个 12 进进 8 出带通讯功能的控制板出带通讯功能的控制板在线路设计构造上分为:输入部份、输出部分、CPU 部份、RS485 通信部份、外部 EEPROM 部份。接线端口 J1、R18、D12D12、U1U3、R1、R2 共同组成输入部份,其中 D1D12 为发光二级管,主要是用作输入显用,R18 这它们总的限流电阻。U1U3为光耦型号 TLP_5

3、21_4。R1、R2 为 9 脚电阻排,阻值为 4.7K10K均可。输出部份:KA1KA8 为输出小型继电器(均为常开输出方式) 。U10 型号 ULN2803 为 8 位电流驱动放大器,高电平触发。R10R17、D14D21 组成输出显示,即当某个 KA 得电吸合时与之相对应的 LED 就会被点亮。J3 为输出接线端子。CPU 部份:U5为 DIP_40 封装形式的单片机,可选用 AT89 系列,也可选用 STC系列等。C1 为单片机的上电复位电容。C2、C4、Y1 为单片机晶振系统。RS485 通信部份由 R3R5、R7R9、U6、U7、C3、D13 组成,其中 U6 为 75176,U7

4、 为 NE555。外部 EEPROM 部份只有一块24C16 串口寄存器(2K8bit) ,线路中已将 A0A2(地址码)端相联接并且接地。外部 I/O 接线图如图(二) 。为了提高控制板的他稳定性,输入输出均采用全光耦隔离设计。如果输入信号线较远,可以将 12 伏的直流电改为 24 伏,与此同时也要将 R18 改为 2.2k 左右,小型继电器线圈电压也改为 24V 即可。3S SB B0 0 S SB B1 1S SB B2 2 S SB B3 3 S SB B4 4 S SB B5 5 S SB B6 6 S SB B7 7S SB B8 8 S SB B9 9 S SB B1 10 0

5、S SB B1 11 1 S SB B1 12 2 + +1 12 2V V R RX XD DG GN ND D G GN ND D+ +5 5V VK KA A1 1K KA A2 2K KA A3 3T TX XD DK KA A4 4K KA A5 5K KA A6 6K KA A7 7K KA A8 8K K1 1K K0 0K K2 2 K K3 3K K5 5K K4 4K K6 6 K K7 7K K9 9K K8 8K K1 10 0 K K1 11 1 K K1 12 2接接 负负 载载1 12 2 进进 8 8 出出 控控 制制 板板接接R RS S2 23 32 2转转

6、 R RS S4 48 85 5转转换换器器(图二)/*/(二)输入输出部份程序的编写(二)输入输出部份程序的编写2.1 如何跳过按键抖动实际上,在人按下一次按键时,并不是理想中的只出现一次干净利落的低电平脉冲,由于按键中弹性元件或用导线替代按键时导线弹性、触点的接触电阻和电路的分布电容的影响,在按下按键或抬起按键时,脉冲前沿和后沿均会出现一系列尖毛刺,如下图三所示:4按键按下前 (稳定的高 电平)按键按下瞬间 (持续约5-15ms)按键抬起时 (持续约5-15ms)按键抬起时 (稳定的高电平)前沿后沿(图三图三)而单片机运行的速度特别快,结果在按下一次按键时单片机却检测为多次按键。为避免出现

7、这种情况,通常:(一)根据按键抖动的频率和人们按键的速度,调用 10ms 左右的延时程序来跳过按键抖动的时间:(二)检测按键按下后稳定的低电平即可。据此,在按键判断程序中则要调用一个延时 10ms 的延时子程序。;-以下是延时汇编程序,延时约 10ms-;时间继电器KT10MS: MOV R5,#0BHF1: MOV R7,#02HF2: MOV R6,#0FFHF3: DJNZ R6,F3DJNZ R7,F2DJNZ R5,F1RET;-以下是延时 C 程序,延时约 10ms 子函数-/*= */ void kt10ms(unsigned int count) /*在这个调用子函数中设计了一

8、个计数器count,*/ /*设计用时为1则为10ms,如为100则延时为100*10ms */unsigned int i,j,k; /*最终延时为1秒钟,计数器最大可设为65536 */for(i=0;i10) break; /此行防止由于 eeprom 器件损坏后的死循环 scl=0; (四)(四)STC 系列内置系列内置 EEPROM 单片机的编写单片机的编写现在升级版 51、52 系列中,STC 系列的单片机还是比较好买,与此同时相对来讲还算是先进。4.1STC89C51RC/RD+ 系列单片机命名规则STC89 XX XX XX 40 XXXXX何种封装:如 PDIP、PLCC、P

9、QF P、DIP工作温度范围:I:工业级:40 度+85 度C:商用级:0 度70 度工作频率: 25:工作频率可到 25Mhz 40:工作频率可到 40Mhz 50:工作频率可到 50Mhz RAM 大小:RC:RAM 为 512 RD+:RAM 为 1280 程序空间大小,如:51 是 4K,52 是 8K,53 是 15K 54/16K,58/32K,516/64K 工作电压:C:为 5.5V3.4V LE:为 2.0V3.8V4.2 RC/RD+系列 8051 单片机 ISP/IAP 特殊功能寄存器10助记符 地址 功能ISP_DATA E2H ISP/IAP 操作时的数据寄存器。IS

10、P/IAP 从 Flash 读出的数据放在此处,向 Flash 写的数据也需放在此处。助记符 地址 功能ISP_ADDRL E4H ISP/IAP 操作时的地址寄存器高八位ISP_ADDRH E3H ISP/IAP 操作时的地址寄存器低八位ISP_CMP E5H ISP/IAP 操作时的命令模式寄存器ISP_TRIG E6H ISP/IAP 操作时的命令触发寄存器,ISP_CONTR E7H ISP/ISP 控制寄存器4.3 STC 系列 EEPROM 的专用子程序范例用 DATA 还是 EQU 声明新增特殊功能寄存器地址要看编程者所用的汇编/编译器。ISP_DATA EQU 0E2HISP_

11、ADDRH EQU 0E3HISP_ADDRL EQU 0E4HISP_CMD EQU 0E5HISP_TRIG EQU 0E6HISP_CONTR EQU 0E7H;定义 ISP/IAP 命令及及等待时间ISP_IAP_BYTE_TEAD EQU 1 ;字节读11ISP_IAP_BYTE_PROGRAM EQU 2 ;字节编程,前提是该字节是空,0FFH。ISP_IAP_SECTOR_ERASE EQU 3 ;扇区擦除,要某一字节为;空,要擦除一扇区。WAIT_TIME EQU 0 ;设置等待时间,40MHz 以下0,20MHz 以下 1,10MHz 以下 2,5MHz 以下3。;=字节读子

12、程序范例=MOV ISP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节MOV ISP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节;地址需要改变时才需重新送地址。CLR EA ;关中断,此时各中断请求会被挂起,开中断立即响应,最新的 D 版本不需要关中断。MOV ISP_CONTR, #WAIT_TIME ;设置等待时间ORL ISP_CONTR, #10000000B ;允许 ISP/IAP 操作;以上两句可以合成一句并且只送一次就够了。MOV ISP_CMD,#ISP_IAP_BYTE_READ;送字节读命令,命令不需要改变时不需要重新送命令。MOV ISP_

13、TRIG,#46H; 先送 46H,再送 B9H 到 ISP/IAP 触发寄存器MOV ISP_TRIG,#0B9H; 送完 B9H 后,ISP/IAP 命令立即被触发。12;CPU 等待 IAP 动作完成后,才会继续执行程序,要先关中断(EA);再送 46H,B9H 到 ISP/IAP 触发器,起动 ISP/IAP 命令,关中断在;触发之前即可。NOP ;数据读出到 ISP_DATA 寄存器后,CPU 继续执行程序MOV A,ISP_DATA ;将读出的数据送往 ACC;以下语句可不用,只是出于安全考虑MOV ISP_CONTR,#00000000B ;禁止 ISP/IAP 操作MOV IS

14、P_CMD,#00000000B ; 去除 ISP/IAP 命令MOV ISP_TRIG,#00000000B ;防止 ISP/IAP 命令误触发MOV ISP_ADDRH,#0 ;送地址高字节单元为 00,指向非EEPROMMOV ISP_ADDRL,#0 ;送地址低字节单元为 00,防止误操作SETB EA ;开中断,CPU 处理完 ISP/IAP 动作即可开中断;=字节编程范例=;该字节为 FFH/空时,可以对其编程,否则不行,要先执行扇区擦除MOV ISP_DATA,#ONE_DATA;送字节编程数据到 ISP_DATAMOV ISP_ADDRH, #BYTE_ADDR_HIGH ;送地址高字节13MOV ISP_ADDRL, #BYTE_ADDR_LOW ;送地址低字节;地址需要改变时才需重新送地址。CLR EA ;关中断,此时各中断请求会被挂起,开中断立即响应,最新的 D 版本不需要关中断。MOV ISP_CONTR, #WAIT_TIME ;设置等待时间ORL ISP_CONTR, #10000000B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号