新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式PLC芯片组的多路模拟量应用开发

嵌入式PLC芯片组的多路模拟量应用开发

作者:时间:2018-09-10来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/201809/388815.htm

2、软件开发

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

SAMPLE_AD:;AD采样开始
MOVSFRPAGE,#ADC0_PAGE;AD控制寄存器页
MOVA,AD_CHANNEL;采样值的累加和是一个字基地址;为#XAI,偏移地址为AD_CHANNEL
RLA

MOVDPTR,#XAI;XAI存放16次采样值的累加和
ADDA,DPL;低字节相加
MOVDPL,A
MOVXA,@DPTR
MOVB,A
MOVA,ADC0L
CLRC
ADDCA,B
MOVX@DPTR,A

INCDPTR;高字节相加
MOVXA,@DPTR
MOVB,A
MOVA,ADC0H
ANLA,#0FH
ADDCA,B
MOVX@DPTR,A;#XAI中存放格式为低字节、高字节

MOVSFRPAGE,#ADC0_PAGE;AD控制寄存器页
MOVADC0CN,#090H;启动下次AD采样

INCAD_COUNT
MOVA,AD_COUNT
CLRC
SUBBA,#16
JNCFILL_XAI_XAD;当16次采样完成后,把XAI中16;个采样和(2字节)存放到XAD
RET



评论


相关推荐

技术专区

关闭