《接口控制示例I.pdf》由会员分享,可在线阅读,更多相关《接口控制示例I.pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、I/O接口系统综合设计示例详解I I/O数字接口数字接口 2 示例1 设某设某82538253的端口地址范围为的端口地址范围为FFEFFE8 8H HFFEBHFFEBH,输入该芯输入该芯 片片的时钟频率为的时钟频率为2 2MHzMHz。 要求要求 设计芯片与系统的接线图设计芯片与系统的接线图,并并编写程序实现在编写程序实现在OUTOUT1 1产生周期为产生周期为1 1s s的的 连续方波连续方波。 题目分析:题目分析: 工作时钟频率:工作时钟频率:2 2MHzMHz。 82538253端口地址:端口地址:FFEFFE8 8H HFFEBHFFEBH 82538253 OUTOUT1 1端输出
2、周期为端输出周期为1 1s s的连续方波的连续方波 计数初值:计数初值:1 1s/s/0 0. .5 5us=us=20000002000000 3 示例示例1 1 端口端口地址范围:地址范围: 1111 1111 1110 10 XX1111 1111 1110 10 XX 0011 A15 超出超出16bit16bit计数器计数器 可存储的最大值可存储的最大值 需要需要2 2个计算个计算 通道级联实现通道级联实现 70 DD RD WR 0 A 1 A CS 0 CLK 0 GATE 0 OUT 1 CLK 1 GATE 1 OUT 2MHz +5v 1s 8253 1 & A15 A5
3、A3 1 & IOW IOR A4 A2 IOW IOR A1 A0 70 DD 示例示例1 1 可以选择将外部时钟信号接入通道可以选择将外部时钟信号接入通道0 0的的CLK0CLK0,其,其OUT0OUT0输出接入输出接入 CLK1CLK1,作为通道,作为通道1 1的时钟信号。的时钟信号。 OUT0OUT0输出连续方波,工作频率设置为输出连续方波,工作频率设置为1KHz1KHz。 原则:原则:两通道计算初两通道计算初 值乘积值乘积=2000000 CLK0 CLK0 :2MHzMHz OUT0OUT0:1KHzKHz CNT0 CNT0 计数初值计数初值=2000=2000 CLK1 CLK
4、1 :1KHzKHz OUT1OUT1:1HzHz CNT1 CNT1 计数初值计数初值=1000=1000 I0 I1 I2 I3 I4 I5 I6 I7 D0 D7 D0 D7 Q1 Q0 Q2 Q3 Q4 Q5 Q6 Q7 反向器 7406 R8 +5V CP E2 E1 D0 D7 RD WR CS A0 A1 35EH 35FH & IOW IOR & A14 OUT0 CLK0 GATE0 D0 35DH A15 IOW IOR A0 A1 D0 D7 D0 D7 D0 D7 8088总线系统 a b c d e f g DP 74LS273 74LS244 8253 1Hz 1.
5、148MHz 通过三态门循环检测通过三态门循环检测OUTOUT0 0 端的端的状态状态 若若为低电平为低电平,则则等待等待 若若为高电平为高电平,则读取拨段开则读取拨段开 关的当前关的当前位置位置,并将并将开关的开关的 当前位置状态当前位置状态用七段数码管用七段数码管 显示出来显示出来。 有任意键按下时有任意键按下时,工作结工作结 束束。 示例2 6 分析:分析: 由给定条件得由给定条件得82558255 CNTCNT0 0的计数初值:的计数初值: 1 1. .148148MHz/MHz/1 1Hz=Hz=11480001148000 6553665536 需要两级分频需要两级分频。可利用可利
6、用CNTCNT1 1实现实现。 由图得由图得7 7段数码管编码:段数码管编码: 符符 号号 “0”“0” “1”“1” “2”“2” “3”“3” “4”“4” “5”“5” “6”“6” “7”“7” 七段码七段码 3FH3FH 06H06H 5BH5BH 4FH4FH 66H66H 6DH6DH 7DH7DH 07H07H 示例示例2 2 I0 I1 I2 I3 I4 I5 I6 I7 D0 D7 D0 D7 Q1 Q0 Q2 Q3 Q4 Q5 Q6 Q7 反向器 7406 R8 +5V CP E2 E1 D0 D7 RD WR CS A0 A1 35EH 35FH & IOW IOR &
7、 A14 OUT0 CLK0 GATE0 D0 35DH A15 IOW IOR A0 A1 D0 D7 D0 D7 D0 D7 8088总线系统 a b c d e f g DP 74LS273 74LS244 8253 1Hz 1.148MHz 82538253输出端连接图:输出端连接图: CNTCNT1 1的输出脉冲频率设置的原的输出脉冲频率设置的原 则:则: 使两级分频时的计数初值在允许范使两级分频时的计数初值在允许范 围内围内。 7 1.148MHz D0 D7 RD WR CS A0 A1 OUT0 CLK0 GATE0 D0 35DH 8253 1Hz CLK1 GATE1 +5
8、V OUT1 1KHz 示例示例2 2 8 8253初始化程序: 8253_INIT PROC PUSH DX PUSH AX MOV DX,0C003H MOV AL,76H OUT DX,AL MOV DX,0C001H MOV AX,1148 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,0C003H MOV AL,36H OUT DX,AL MOV DX,0C000H MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL POP AX POP DX RET 8253_INIT ENDP 示例示例2 2 CNT0 CNT1 I/O
9、 控 制 程 序 DATA SEGMENT SEG7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,SEG7 XOR CX,CX CALL 8253_INIT AGAIN:MOV DX,35DH ;读;读OUTOUT0 0状态状态 WATT :IN AL,DX AND AL,01H JZ WATT MOV DX,35FH ;读开关状态;读开关状态 IN AL,DX NEXT:SHR AL,1 ;通过判断;通过判断CFCF状态确定开关臂位置状态确定开关臂位置 INC CX JC NEXT DEC CX ADD SI,CX ;得到开关位置编码;得到开关位置编码 MOV AL,SI MOV DX,35EH OUT DX,AL MOV AH,1 INT 16H JZ AGAIN MOV AH,4CH INT 21H CODE ENDS END START 最终的移动次数即为开关位置最终的移动次数即为开关位置 有任意键有任意键 按下退出按下退出