返回HOME页 发新话题
打印

为什么要用科威PLC芯片组进行客制式PLC的开发? (5)

为什么要用科威PLC芯片组进行客制式PLC的开发? (5)

这一讲里面将会讲解科威PLC芯片组开发用户驱动的具体格式。笔者始终认为,学编程,从看代码开始是捷径!所以,我们在PCLDR.ASM内添加以下一段代码。

$INCLUDE(C8051F040.INC)
; Register definition file.
-------------------1

$INCLUDE(easycore.INC)

; easycore
符号定义------------------------2


$INCLUDE(EASYCORE.LIB)
; easycore
子程序---------------------------3


$INCLUDE(user_data.INC)

;
用户程序变量定义------------------------4


;================中断向量重定向地址=======================


ORG

0E000H





ORG

0E003H


;external interrupt0 vecter (INT0)------5



ORG

0E013H


;external interrupt1(INT1)---------------6



ORG

0E033H

;Serial Peripheral Interface(SPI)--------7



ORG

0E03BH


;SMBus interface-------------------------8



ORG

0E043H

;ADC0 Window Comparator;----------9



ORG

0E04BH


rogrammable Counter Array--------10



ORG

0E053H


;Comparator 0---------------------------11



ORG

0E05BH


;Comparator 1---------------------------12



ORG

0E063H


;Comparator 2
--------------------------13



ORG

0E07BH

;ADC0 end of Conversion-------------14



ORG

0E083H

;Timer
4-------------------------------15



ORG

0E08BH

;ADC2 end of Conversion-------------16



ORG

0E093H

;ADC2 Window Comparator-----------17

;===============用户应用程序调用入口====================


ORG

0E0A0H


;
用户端口初始化


LJMP

INIT_CONFIG
;----------------------- --------------------18



ORG

0E0A3H

;
用户上电初始化


LJMP

INIT_START

;----------------------- --------------------19



ORG

0E0A6H

;
用户设置初始化


LJMP

INIT_SET

;----------------------- --------------------20



ORG

0E0A9H

;
用户运行初始化


LJMP

INIT_RUN

;----------------------- --------------------21



ORG

0E0ACH

;
演算周期扫描


LJMP

SCAN


;----------------------- --------------------22



ORG

0E0B0H

;
指令周期扫描


LJMP

STEP


;----------------------- --------------------23



ORG

0E0B3H


;2.5MS
周期扫描




LJMP

TMS


;----------------------- --------------------24






ORG

0E100H


;----------------------- --------------------25



INIT_CONFIG:


RET


INIT_START:


RET


INIT_SET:


RET


INIT_RUN:


RET


STEP:


RET


TMS:


RET


SCAN:


RET


END

;-------------------------------------------------------------26


然后点击编译,如无意外,KEIL将会编译成功并生成“PLCDR.HEX”文件,该文件可以在项目路径下找到。

至此,你的第一个驱动程序已经编写完成。只不过这是一个简单的驱动程序,简单到什么也没有的驱动程序。嘿嘿,如果把这段HEX代码下到你的PLC内,PLCIO口可能会乱跳的哦~不过,梯形图的解释倒是独立于驱动之外的,加载了一个什么也没有的驱动,PLC芯片组也是可以正常运行梯形图的。

在下一讲里,笔者将会逐句给你分析以上程序的每一条语句哦~其实从那些简短的注释里,相信不少读者已经看出了些许端倪了。

本帖首发中国工控网科威PLC论坛,转载请声明!

TOP

返回HOME页 发新话题
 
 

上海正航电子 | 51PLC技术网

 支持民族产业发展!