- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
② 软件设计:程序流程图 整个程序分主程序和中断服务程序两部分。 程序清单如下: STACK SEGMENT PARA′STACK′ DW 256 DUP(?) STACK ENDS DATA SEGMENT PARA′DATA′ OLD_OFF DW ? OLD_SEG DW ? BUFR DB 100 DUP(0) PRT DW ? DATA ENDS 主程序 CODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATA, SS:STACK ADC PROC FAR MOV AX, DATA MOV DS,AX MOV ES, AX MOV AX, STACK MOV SS, AX 825C5A初始化 MOV DX, 303H ; 82C55A命令端口 MOV AL, 90H ; 82C55A的方式命令字 OUT DX, AL MOV AL, 0EH ; 置PC7=0, 使START和ALE无效 OUT DX, AL MOV AL,0CH ; 置PC6=0, 使OE无效 OUT DX, AL ; 修改中断向量 MOV AX, 350CH ; 取IRQ4的中断向量,并保存 INT 21H MOV OLD_OFF, BX MOV BX, ES MOV OLD-SEG, BX CLI; 置新中断向量 MOV AX, 250CH MOV DX, SEGA_D MOV DS, DX MOV DX, OFFSET A_D INT 21H MOV AX, DATA ; 恢复数据段 MOV DS, AX STI ; 开放中断请求 IN AL, 21H ; 开放IRQ4 AND AL, 0EFH OUT 21H, AL 主程序主体 MOV CX, 100; 设置采样次数和内存指针 MOV AX, OFFSET BUFR MOV PRT, AX MOV DX, 301H ; 82C55A的B端口 MOV AL, 07H ; 选通道号 OUT DX, AL BEGIN:MOV DX,303H ; 启动转换 MOV AL, 0FH ; 产生START启动脉冲信号 OUT DX, AL NOP NOP MOV AL, 0EH OUT DX, AL STI ; 开中断 HLT ; 等待中断 DEC CX;修改采样次数 JNZ BEGIN ; 未完,继续启动CLI; 已完,关中断 MOV AX, 250CH;恢复IRQ4原中断向量 MOV DX, OLD-SEG MOV DS, DX MOV DX, OLD-OFF INT 21H MOV AX, DATA; 恢复数据段 MOV DS, AX STI ; 屏蔽中断请求 IN AL, 21H ; 屏蔽IRQ4 OR AL,10H OUT 21H, AL; 返回DOS MOV AX, 4C00H INT 21H ADC ENDP 中断服务程序 A_DPROCFAR ;寄存器进栈 PUSH AX PUSH DX PUSH DI ; 服务程序主体 CLI ; 关中断 MOV DX, 303H; 82C55A的命令端口 MOV AL, 0DH ; 产生OE信号,打开三态锁存器 OUT DX, AL NOP NOP MOV AL,0CH OUT DX, AL MOV DX, 300H; 825C5A的A端口 IN AL, DX ; 读数据 NOP MOV DI, PRT; 存数据 MOV[DI], AL INC DI MOV PRT, DI ; 发中断结束命令 MOV AL, 20H; 主片82C59A中断结束 OUT 20H, AL ;寄存器出栈 POP DI POP DX POP AX STI ; 开中断 ;中断返回 IR
文档评论(0)