没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
;
;********************************************************
; /* 8255 可编程并行接口实验 */ *
;********************************************************
;
MY_STACK SEGMENT PARA 'STACK'
DB 500 DUP(?)
MY_STACK ENDS
;
;-------------------- 获取 PCI 卡 PNP 设备配置资源定义区 -------------------------------------
;
MY_DATA SEGMENT PARA 'DATA'
;
BADR2 = 18H ; 基地址寄存器 2
IO_port_addre EQU 0CF8H ; 32位配置地址端口
IO_port_data EQU 0CFCH ; 32位配置数据端口
IO_PLX_ID EQU 200810B5H ; PCI卡设备及厂商 ID
IO_base_address DB 4 DUP(0) ; PCI卡 I/O 基地址暂存空间
PCIcardnotfind DB 0DH,0AH,'PCI card not find or address/interrupt error !!!',0DH,0AH,'$'
GOOD DB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'
;
;------------------------------ 实验程序定义区 -----------------------------------------------
;
COUNT DB ?
IO_8255_A DW 0070H ; 8255 A 口地址缓冲区
IO_8255_B DW 0071H ; 8255 B 口地址缓冲区
IO_8255_C DW 0072H ; 8255 C 口地址缓冲区
IO_8255_M DW 0073H ; 8255 控制口地址缓冲区
IO_8253_0 DW 0060H ; 8253 计数器 0 口地址缓冲区
;********************************************************
; /* 8255 可编程并行接口实验 */ *
;********************************************************
;
MY_STACK SEGMENT PARA 'STACK'
DB 500 DUP(?)
MY_STACK ENDS
;
;-------------------- 获取 PCI 卡 PNP 设备配置资源定义区 -------------------------------------
;
MY_DATA SEGMENT PARA 'DATA'
;
BADR2 = 18H ; 基地址寄存器 2
IO_port_addre EQU 0CF8H ; 32位配置地址端口
IO_port_data EQU 0CFCH ; 32位配置数据端口
IO_PLX_ID EQU 200810B5H ; PCI卡设备及厂商 ID
IO_base_address DB 4 DUP(0) ; PCI卡 I/O 基地址暂存空间
PCIcardnotfind DB 0DH,0AH,'PCI card not find or address/interrupt error !!!',0DH,0AH,'$'
GOOD DB 0DH,0AH,'The Program is Executing !',0DH,0AH,'$'
;
;------------------------------ 实验程序定义区 -----------------------------------------------
;
COUNT DB ?
IO_8255_A DW 0070H ; 8255 A 口地址缓冲区
IO_8255_B DW 0071H ; 8255 B 口地址缓冲区
IO_8255_C DW 0072H ; 8255 C 口地址缓冲区
IO_8255_M DW 0073H ; 8255 控制口地址缓冲区
IO_8253_0 DW 0060H ; 8253 计数器 0 口地址缓冲区
IO_8253_1 DW 0061H ; 8253 计数器 1 口地址缓冲区
IO_8253_2 DW 0062H ; 8253 计数器 2 口地址缓冲区
IO_8253_M DW 0063H ; 8253 控制口地址缓冲区
DISP_CLK0 EQU 00000000B ; 8255_PC0 164 串并显示时钟端置'0'
DISP_CLK1 EQU 00000001B ; 8255_PC0 164 串并显示时钟端置'1'
DISP_DIN0 EQU 00000010B ; 8255_PC1 164 串并显示数据端置'0'
DISP_DIN1 EQU 00000011B ; 8255_PC1 164 串并显示数据端置'1'
Base_address EQU 0A400H ; 获取 PCI 卡 PNP 设备配置资源后直接加入基地址参数
DELAY_SET EQU 2800H ; 要延时约 1000ms 根据 PC 机速度 调整其参数!!
LB_WCQ DB ? ; 缓冲区
MY_DATA ENDs
MY_CODE SEGMENT PARA 'CODE'
MY_PROC PROC FAR
ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK
.386 ; 386 模式编译
START: MOV AX,MY_DATA
MOV DS,AX
MOV ES,AX
MOV AX,MY_STACK
MOV SS,AX
CALL FINDPCI ; 自动查找 PCI 卡资源及 IO 口基地址
MOV AX,word ptr IO_base_address
ADD IO_8255_A,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_B,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_C,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_M,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
IO_8253_2 DW 0062H ; 8253 计数器 2 口地址缓冲区
IO_8253_M DW 0063H ; 8253 控制口地址缓冲区
DISP_CLK0 EQU 00000000B ; 8255_PC0 164 串并显示时钟端置'0'
DISP_CLK1 EQU 00000001B ; 8255_PC0 164 串并显示时钟端置'1'
DISP_DIN0 EQU 00000010B ; 8255_PC1 164 串并显示数据端置'0'
DISP_DIN1 EQU 00000011B ; 8255_PC1 164 串并显示数据端置'1'
Base_address EQU 0A400H ; 获取 PCI 卡 PNP 设备配置资源后直接加入基地址参数
DELAY_SET EQU 2800H ; 要延时约 1000ms 根据 PC 机速度 调整其参数!!
LB_WCQ DB ? ; 缓冲区
MY_DATA ENDs
MY_CODE SEGMENT PARA 'CODE'
MY_PROC PROC FAR
ASSUME CS:MY_CODE, DS:MY_DATA, SS:MY_STACK
.386 ; 386 模式编译
START: MOV AX,MY_DATA
MOV DS,AX
MOV ES,AX
MOV AX,MY_STACK
MOV SS,AX
CALL FINDPCI ; 自动查找 PCI 卡资源及 IO 口基地址
MOV AX,word ptr IO_base_address
ADD IO_8255_A,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_B,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_C,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
ADD IO_8255_M,AX ; 目标芯片偏移地址+PC 机基地址 --> 口地址缓冲区
剩余13页未读,继续阅读
资源评论
坚强再自信
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功