RSS

基于嵌入式PLC芯片组的多路模拟量PLC的开发

来源: 作者: 时间:2007-04-03 点击:




(2)信号选择电路
选择16通道的模拟开关CD4067构成信号选择电路,A、B、C、D、INH接到芯片组的P1.0-P1.4引脚,做为模拟开关的通道选择控制信号。OUT引脚接到芯片组的AIN0,即第一个AD转换通道。


2、软件开发
嵌入式PLC是基于Cygnal公司的C8051f040芯片开发的,所以二次程序的开发使用51汇编语言。开发选择的编译器是KEIL C51,因为它可以生成我们所需要的.HEX文件。
内核留出了七个用户嵌入程序接口,我们只需要充分理解各个接口的功能就可了进行二次开发了,需要熟悉如下内容:a、内核功能b、内核结构c、内核任务管理d、内核存储空间分配。【1】由于系统软件中已经加入了232通信、485通信和CAN通信的功能,所以16路模拟量PLC的二次驱动软件的开发主要集中在模拟量的AD转换和PLC资源区中AD值的实时刷新上。
(1)程序规划
T4中断:完成AD转换和16个通道的切换程序
USER_SCAN:PLC资源区中AD值的刷新。
AD转换过程如下:每一通道连续采样16次,采样完后得到累加和,然后启动下一通道的AD转换。
PLC资源区中AD值的刷新过程如下:在梯形图扫描周期结束时进行,把各路AD值的累加和求平均值后放入PLC的资源区的对应位置处。
(2)程序代码
INIT_AD: ;AD初始化
 MOV  SFRPAGE,  #ADC0_PAGE
 MOV  REF0CN,  #07H ;内部参考电压/输出到VERF
         ;启动内部温度传感器
 MOV  AMX0CF,  #00H ;单极性输入
 MOV  ADC0CF,  #0B8H ;D7--D3=SYSCLK/采样时钟-1
         ;采样转换时钟=1US
         ;D2--D0=GAIN
         ;000 GAIN=1
 MOV  ADC0CN,  #90H ;启动AD采样
 MOV  AD_CHANNEL, #00H ;AD通道号,初值为0
MOV  AD_COUNT,  #00H ;16次采样次数计数。初值为0 
RET

SAMPLE_AD:         ;AD采样开始
MOV  SFRPAGE, #ADC0_PAGE ;AD控制寄存器页     
MOV  A,  AD_CHANNEL  ;采样值的累加和是一个字基地址         ;为#XAI,偏移地址为AD_CHANNEL
   RL  A
  
   MOV  DPTR,  #XAI  ;XAI存放16次采样值的累加和
   ADD  A,   DPL   ;低字节相加
   MOV  DPL,  A
   MOVX A,   @DPTR
   MOV  B,   A
   MOV  A,   ADC0L
   CLR  C
   ADDC A,   B
   MOVX @DPTR,  A

   INC  DPTR     ;高字节相加

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
赞助商链接