《案例》基于嵌入式PLC芯片组的多路模拟量PLC的开发 (下) 点击:237 | 回复:0



gonKillua

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:77帖 | 128回
  • 年度积分:0
  • 历史总积分:516
  • 注册:2007年8月04日
发表于:2008-09-20 10:55:54
楼主
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


热门招聘