自由口通信的应用程序实例(带注释)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORGANIZATION_BLOCK MAIN:OB1
TITLE=
BEGIN
Network 1
// 初始化自由口通信
LD I0.3
EU
CALL SBR0
Network 2
// 恢复正常PPI通信设置
LD I0.3
ED
CALL SBR1
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK SBR_0:SBR0
TITLE=
BEGIN
Network 1 // 定义端口0的通信参数
// 定义通信口0为自由口模式,9600bit/s,无校验,每个字符8个数据位
// 写入定时中断周期250ms
// 连接定时中断事件10到中断服务程序INT_0
// 开中断
LD SM0.0
MOVB 16#09, SMB30
MOVB 250, SMB34
ATCH INT0, 10
ENI
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK SBR_1:SBR1
TITLE=
BEGIN
Network 1
// 设置端口0为PPI从站模式
LD SM0.0
MOVB 16#08, SMB30
END_SUBROUTINE_BLOCK
INTERRUPT_BLOCK INT_0:INT0
TITLE=
BEGIN
Network 1 // 累加并发送累加结果
// VD200作累加器,每次中断加1
// 将VD200内的整数转换为12个ASCII字符并传入发送缓冲区
// 从端口0发送缓冲区字符
LD SM0.0
+D 1, VD200
DTA VD200, VB101, 0
XMT VB100, 0
END_INTERRUPT_BLOCK