|
PLC初学者

|
楼主
大 中
小 发表于 2008-8-2 10:15 只看该作者
为什么要用科威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内,PLC的IO口可能会乱跳的哦~不过,梯形图的解释倒是独立于驱动之外的,加载了一个什么也没有的驱动,PLC芯片组也是可以正常运行梯形图的。
在下一讲里,笔者将会逐句给你分析以上程序的每一条语句哦~其实从那些简短的注释里,相信不少读者已经看出了些许端倪了。
本帖首发中国工控网科威PLC论坛,转载请声明!
|