ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:134.98KB ,
资源ID:10638867      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10638867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术课程设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术课程设计.docx

1、微机原理与接口技术课程设计物理与信息工程学院课程设计报告 课程题目: 12 位 数 据 采 集 专 业: 电 子 信 息 工 程 指导教师: 班 级: 学 号: 姓 名: 同组成员: 2010年12月30日目录1.设计要求 32.设计思想 33.芯片介绍 44.设计电路图 55.芯片的调试与测试 6 (1)调试8254 6 (2) 调试8255A和AD574 86.程序流程图 107.设计源代码 118.设计结果与分析149.设计的体会 1510.参考文献 1512位数据采集系统12-bit system for data collection 摘要:利用8254的定时功能,产生一序列负脉冲信

2、号,做8259A的中断源,CPU响应中断,执行中断程序,启动A/D转换,通过8255并口传输,将数据送到数据总线,再读入CPU,在显示器上显示。SUMMARY:use the timing fuction of 8254,then produce a series of negative pulse and use it as the interrupt source of 8259A;As CPU responed the interrupt,the AD574 run the transformation after CPU operate the interrupt programe,t

3、hen the data is put to the data bus by the 8255,at the end,CPU read the data and show it in the screen of the computer.关键词:定时器 负脉冲 中断 A/D转换 KEY: Timing systemnegative pulseinterruptA/D transformation一设计要求: (1)程序要求:每秒钟产生一次中断,启动A/D转换,采集一次数据并显示。 (2)硬件要求:计算机,8254,8255A,AD574,8259,TD-PIF-B 型实验仪。 (3)软件要求:

4、MASM编译软件 (4)操作系统:WIN2000虚拟光驱二设计思想(1) 定时器-8254 将频率为10KHz的时钟信号送入8254进行10000分频,输出频率为1Hz的时钟负脉冲信号送到8259,使8259每秒钟产生一次中断。(2) 中断任务-8259 通过8254输入的时钟信号,定时向计算机系统的IRQ0申请中断。(3) A/D转换-AD574 将AD574接成查询式模数转换形式,通过查询转换结束信号EOC来实现。被转换的模拟电压,由电压为+10V的电源通过电位器分压来提供,最大值为+10V,只需要转换1-2路0-10V的模拟电压。(4) 数据传送-8255A 8255A用做计算机和AD5

5、74间的接口芯片,一方面,选用8255A的一个端口作数据口,AD574转换后的数字量经8255A的一个端口读入到计算机中,另一方面,选用8255A的一个端口作AD574的控制信号(5) 结果显示-缓冲区 数据通过8255A读入到BX的低12位,再调用显示子程序将数据在屏幕上显示。三.芯片介绍 Intel 8254 是具有计数、定时功能的可编程间隔定时器。8254内部具有3个独立的16位计数器通道,通过对它进行编程,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制格式进行计数,最高计数频率可以达到5MHz。 8255A是一种通用的可编程并行I/O接口芯片,通过对它进行编程,可以

6、工作在不同的工作方式,由3个8位数据输出端口(A、B、C),数据总线缓冲器和读/写控制逻辑电路组成。3个端口通过外部的24根输入输出线与外设交换数据或进行通信联络;双向三态8位数据缓冲器用作8255A和系统数据总线之间的接口;读/写电路用来管理所有内部或外部数据信息、控制字或状态字的传输过程。 8259是8086/8088系列的可编程中断控制器,由数据总线缓冲器,读写控制电路,级联缓冲/比较器,中断请求寄存器IRR,中断屏蔽寄存器IMR,优先级判别器PR,中断服务寄存器ISR,控制电路组成。具有8级优先级控制,通过级联可以扩展到64级优先级控制;每一级中断可由程序单独屏蔽或允许;可提供中断类型

7、号传送给CPU;可以通过编程选择多种不同工作方式。 AD574A是一种带有三态缓冲器的A/D转换器,可以直接与8位或16位微机接口,芯片内有高精度的参考电压源和时钟电路。此外,芯片内部还含有逐次逼近式寄存器SAR、比较器、控制逻辑、DAC转换电路及三态输出缓冲器等。四设计电路图 5芯片的调试与测试 (1)调试8254 INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址 INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8254的OCW1地址 INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8254的OCW2地址 INTR_IM EQU 0FBH ;

8、INTR对应的中断屏蔽字 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$ CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址变量 IM_BAK DB ? ;保存INTR原中断屏蔽字的变量 DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,

9、OFFSET MES ;显示退出提示 MOV AH,09H INT 21H CLI MOV AX,0000H ;替换INTR的中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,ES:DI MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:DI,AX ;设置当前中断处理程序入口偏移地址 ADD DI,2 MOV AX,ES:DI MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR MOV ES:DI,AX ;设置当前中断处理程序入口段地址 MO

10、V DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽位 IN AL,DX MOV IM_BAK,AL ;保存INTR原中断屏蔽字 AND AL,INTR_IM OUT DX,AL mov dx,3083h ;8254初始化程序 mov al,00110101b out dx,al mov dx,3080h mov al,85h out dx,al out dx,al STIWAIT1: MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 ;无按键则跳回继续等待,有则退出 QUIT: CLI MOV AX,0000H ;恢复INTR原中断矢量 MOV ES,

11、AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:DI,AX ADD DI,2 MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址 MOV ES:DI,AX MOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字 MOV AL,IM_BAK OUT DX,AL STI MOV AX,4C00H ;返回到DOS INT 21HMYISR PROC NEAR ;中断处理程序MYISR PUSH AX MOV AL,39H MOV AH,0EH INT 10H MOV AL,20H INT

12、10HOVER: MOV DX,INTR_OCW2 ;向PC机内部8254发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL POP AX IRET MYISR ENDP CODE ENDS END START (2)调试8255A和AD574STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTSTR1 DB Press any key to exit!,0AH,0DH,0AH,0DH,$ DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAST

13、ART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET STR1 MOV AH,9h INT 21H mov dx,3043h ;8255A初始化 mov al,10010011b out dx,albreak:mov ah,11 int 21h cmp al,0 jnz exit mov dx,3000h ;启动A/D转换 out dx,al wat:mov dx,3042h ;检测转换是否启动 in al,dx test al,01h ;检查STS是否为1 jnz wat ;为0,则转换结束 mov dx,3000h ;读取转换数据 in al,dxcheck:

14、;读取数据到BX低12位 mov dx,3041h ;8255 B端口地址 in al,dx mov bh,al ;高8位送到BH mov dx,3040h ;A口端口地址 in al,dx mov bl,al ;低4位送BL高4位 mov cl,4 shr bx,cl ;BX右移4位 call disp ;调用显示子程序 jmp breakexit: mov ah,4ch int 21hdisp proc near mov cx,0404h lop:rol bx,cl mov ax,bx and ax,000fh cmp al,0ah jb next add al,07next:add al

15、,30h mov dl,al mov ah,2 int 21h dec ch jnz lop mov dl,20h mov ah,2 int 21h ret disp endp CODE ENDS END START六.程序流程图()七.设计源代码 INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址 INTR_OCW1 EQU 0A1H ;INTR对应PC机内部8259的OCW1地址 INTR_OCW2 EQU 0A0H ;INTR对应PC机内部8259的OCW2地址 INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字 STACK1 SEGMENT STACK D

16、W 256 DUP(?) STACK1 ENDS DATA SEGMENT MES DB Press any key to exit!,0AH,0DH,0AH,0DH,$ CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址变量 IM_BAK DB ? ;保存INTR原中断屏蔽字的变量 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,OFFSET MES ;显示退出提示 MOV AH,09H INT

17、21H CLI MOV AX,0000H ;替换INTR的中断矢量 MOV ES,AX MOV DI,INTR_IVADD MOV AX,ES:DI MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR MOV ES:DI,AX ;设置当前中断处理程序入口偏移地址 ADD DI,2 MOV AX,ES:DI MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR MOV ES:DI,AX ;设置当前中断处理程序入口段地址 MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR屏蔽

18、位 IN AL,DX MOV IM_BAK,AL ;保存INTR原中断屏蔽字 AND AL,INTR_IM OUT DX,AL mov dx,3083h ;8254初始化程序 mov al,00110101b out dx,al mov dx,3080h mov al,00h out dx,al out dx,al mov dx,3043h ;8255A初始化程序 mov al,10010011b out dx,al STIWAIT1: MOV AH,1 ;判断是否有按键按下 INT 16H JZ WAIT1 QUIT: CLI MOV AX,0000H ;恢复INTR原中断矢量 MOV ES

19、,AX MOV DI,INTR_IVADD MOV AX,IP_BAK ;恢复INTR原中断处理程序入口偏移地址 MOV ES:DI,AX ADD DI,2 MOV AX,CS_BAK ;恢复INTR原中断处理程序入口段地址 MOV ES:DI,AX MOV DX,INTR_OCW1 ;恢复INTR原中断屏蔽寄存器的屏蔽字 MOV AL,IM_BAK OUT DX,AL STI MOV AX,4C00H ;返回到DOS INT 21HMYISR PROC NEAR ;中断处理程序MYISR PUSH AX push bx push cx push dx mov dx,3000h ;启动A/D转

20、换 out dx,alwat:mov dx,3042h ;检测转换是否启动 in al,dx test al,01h ;检查STS是否为1 jnz wat ;为0,则转换结束 mov dx,3000h ;读取转换数据 in al,dxcheck: ;读取数据到BX低12位 mov dx,3041h ;8255 B端口地址 in al,dx mov bh,al ;高8位送到BH mov dx,3040h ;A口端口地址 in al,dx mov bl,al ;低4位送BL高4位 mov cl,4 shr bx,cl ;BX右移4位 call disp ;调用显示子程序OVER: MOV DX,I

21、NTR_OCW2 ;向PC机内部8259发送中断结束命令 MOV AL,20H OUT DX,AL MOV AL,20H OUT 20H,AL pop dx pop cx pop bx POP AX IRET ;中断返回disp proc near ;数据显示子程序 mov cx,0404h lop:rol bx,cl ;bx左移四位 mov ax,bx and ax,000fh ;ax低四位保留 cmp al,0ah ;ax与十比较 jb next ;大于9加37H,否则加30H add al,07next:add al,30h mov dl,al mov ah,2 int 21h dec

22、ch jnz lop mov dl,20h mov ah,2 int 21h ret disp endp MYISR ENDP CODE ENDS END START8.实验结果与分析 当改变滑动变阻器时,采集的数据发生改变。在设计指标的允许范围内,采集的数据存在误差。九.设计的体会 在这次设计中主要是利用中断来工作的,在中断中先保护现场再读取数据、恢复现场、再执行中断命令;主要是有CPU以中断方式读取采集数据。虽然这次设计很成功,但是也遇到了很多问题,但是经过我们不断的查询有关资料和努力调试,再加上同学和老师的指导和帮助终于把每个问题解决。总之,这次设计给我收获还真不少,它不但使我增添了不少知识,增添了我们同学之间的友谊,更锻炼了我们的实践能力,使我们为以后工作积累了不少经验,最重要的是它给我们带来成功的喜悦,那是最有价值的,因为它使我们有了对实践和工作的乐趣。十.参考文献 1、微型计算机原理接口技术周荷琴、吴秀清编著 北京:中 国科技技术大学出版社。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1