- 6
- 0
- 约 70页
- 2017-01-01 发布于重庆
- 举报
数字量:由键盘、磁盘机、磁带机、卡片机等读入的信息,或主机送给打印机、磁盘机、磁带机、显示器及绘图仪的信息。 通常为8位二进制数或ASCII代码。 模拟量:计算机用于检测、数据采集或控制时,现场信息是连续变化的物理量 (如温度、压力、位移等),经传感器把非电量转换成电量,经放大得到模拟电流或电压。 计算机不能直接接收和处理模拟量,须经A/D (模/数) 转换,才能输入计算机。 计算机输出的数字量也须经D/A (数/模) 转换后才能去控制执行机构。 开关量:两个状态,如开关的闭合/断开,电机的运转/停止,阀门的打开/关闭等。 用一位“0”或“1”二进制数表示。 字长为8位的微机一次输入或输出可控制8个这类物理量。 CPU是通过接口电路来掌握输入输出设备的状态,以决定可否 输入或输出数据。 用于控制外设的启动或停止。 直接程序控制方式 中断控制方式 直接存储器存取(DMA)控制方式 最简单的输入/输出控制方式,用于控制CPU与低速接口之间 的信息交换。 例如,开关、继电器、7段显示器、机械式传感器等简单外设。 这类信号变化缓慢,当需要采集这些数据时,外设已将数据准 备就绪了。无需检查端口的状态,就可立即采集数据。 对少量数据传送来说,它是最省时间的一种传送方法,适用于 各类巡回检测和过程控制。 输出数据时,一般都需要锁存器将要输出的数据保持一段时间,其长短和外设的动作相适应。 16位数据采集系统,被采集数据是8个模拟量,由继电器绕组P0、P1 … P7分别控制触点K0、K1…K7逐个接通。 每次采样用一个4位 (每位为一个十进制数) 数字电压表测量,把被采样的模拟量转换成16位BCD代码(即对应4位十进制数的4个BCD码),高8位和低8位通过两个不同的端口 (其地址分别为10H和11H)输入。 CPU通过端口20H 输出控制信号,以控制某个继电器的吸合,实现采集不同通道的模拟量。 先断开所有继电器线圈及触点,不采集数据。 延迟一段时间后,K0闭合,采集第1个通道模拟量,保持一段时间,以使数字电压表能将模拟电压转换为16位BCD码。 分别将高8位与低8位BCD码存入内存,完成第1个模拟量输入与转存。 利用移位与循环实现8个模拟量的依次采集、输入与转存。 START: MOV DX, 0100H ; 01H→DH,置吸合第1个继电器代码 ; 00H→DL,置断开所有继电器代码 LEA BX, DSTOR ; 置输入数据缓冲器的地址指针 XOR AL, AL ; 清AL及进位位CF AGAIN: MOV AL, DL OUT 20H, AL ;断开所有继电器线圈 CALL NEAR DELAY1 ;模拟继电器触点释放时间 MOV AL, DH OUT 20H, AL ;先使P0吸合 CALL NEAR DELAY2 ;模拟触点闭合及数字电压表转换时间 IN AX, 10H ;输入 MOV [BX], AX ;存入内存 INC BX INC BX RCL DH, 1 ;DH左移(大循环)1位,为下一个触点吸合作准备 JNC AGAIN ;8位都输入完了吗?没有,则循环 DONE: ;输入已完,则执行别的程序段。 读入的数据是8位,而读入的状态信息往往是1位,因此, 不同的外设其状态信息可使用同一个端口,只要使用不同 的位就可以。 POLL: IN AL, STAT
原创力文档

文档评论(0)