发布网友 发布时间:2022-05-05 14:41
共1个回答
热心网友 时间:2022-06-27 15:29
NETWORK 1 // 主程序
// 首次扫描时,调用SBR_0
LD SM0.1
CALL SBR_0
NETWORK 1 // 子程序0开始
// 配置HSC1
LD SM0.1 // 首次扫描时
MOVB 16#F8 SMB47 // 配置HSC1:
// - 启用计数器
// - 写入新当前值
// - 写入新预设值
// - 将初始方向设为向上计数
// - 选择现用水平高的起始和复原输入
// - 选择4x模式
HDEF 1 11 // 将HSC1配置为正交模式,
// 具有复原和起始输入功能
MOVD +0 SMD48 // 清除HSC1的当前值
MOVD +50 SMD52 // 将HSC1预设值设为50
ATCH INT_0 13 // HSC1当前值 = 预设值(事件13)
// 附加在中断例行程序INT_0上
ENI // 全局中断启用
HSC 1 // 程序HSC1
NETWORK 1 // 中断0开始
LD SM0.0
MOVD +0 SMD48 // 清除HSC1的当前值
MOVB 16#C0 SMB47 // 选择仅写入一个新当前值,
// 使HSC1保持启用状态
HSC 1 // 程序HSC1
HDED是错误的 应该是HDEF 1,11
追问没答完啊亲追答很全面了 这个程序就是一个高速计数器 HSC1 预设值1000 当实际值 等于预设值时 开中断程序