华南理工大学微机原理课程设计_第1页
华南理工大学微机原理课程设计_第2页
华南理工大学微机原理课程设计_第3页
华南理工大学微机原理课程设计_第4页
华南理工大学微机原理课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一设计目的(3)二实验器件(3)三设计内容(3)四设计原理(3)1、设计思想(3)2、ADC0809 简介(3)(1)ADC0809 功能及引脚(3)(2)ADC 地址译码与通道选择(4)(3)ADC0809 工作时序图(4)(4)ADC0809 与系统总线的连接(5)(5)ADC0809 编程(5)(6)8255 与 ADC0809 的连接示意图(6)3、8253 简介(6)(1)8253 内部结构(6)(2)A0,A1 功能说明(6)(3)8253 读写操作(7)(4)8253 控制字(7)(5)8253 初始化编程(7)4、8255 简介(8)(1)8255 内部结构(8)(2)82

2、55 寻址(8)(3)8255 工作方式控制字(9)(4)8255 端口 C 置位/复位控制字(9)(5)8255 与 cpu 的连接(9)(6)8255 初始化编程(10)5、编写中断程序(10)五程序流程图(11)1、主程序流程图(11)2、中断子程序流程图(12)六硬件接线图(12)七实验源程序(13)八调试分析(16)九设计总结(16)一、设计目的(1)掌握 8086、8253、8254、8259 等常用芯片的使用及连接方法(2)掌握 8253、8254 等初始化编程方式(3)加深对中断控制方式的理解以及中断的具体使用(4)学习使用 ADC0809 芯片进行数模转换(5)深化汇编语言的

3、编程思想同时对本学期所学内容进行综合二、实验器件8086、74LS138、74LS373、74LS245、8253、8255、ADC0809、7 段数码管、5K电位器、+5v 电源等三、设计内容利用微型计算机原理课程中所学的主要可编程接口芯片74LS138、8253、8255A、 ADC0809 和中断控制器 8259 设计一个模拟电压采集电路。采用 ADC0809 设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管 LED 指示,采集完 100 个数据后停止采集过程。四、设计原理1、设计思想(1)利用 8086 和 74LS373 的连接进行地址

4、的锁存,输出用作控制信号 A0-A4,其中 A0,A1 接至 8253 及 8255 的 A0,A1 端,A2,A3,A4 用作 74LS138 译码器的输入(2)5K电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,该电压接至 ADC0809 的通道输入端 IN0,ADC0809 的时钟为 500KHz,由 8253 进行计数分频得到,用 8253 进行定时中断,中断后进行 A/D 转换,在完成 100 次的数据采集之后停止采集产生中断信号。8253 的端口地址:000H006H(3)编程启动 ADC0809 转换(ADC0809 完成一次转换的时间大约为 120s),在中断服务程

5、序中读入模数转换,其结果送入 7 段数码管进行显示(4)8255 用做 CPU 和 ADC0809 间的接口芯片,用作读写数据通道,ADC0809 的控制信号(如 OE、ALE、START 等)可由 8255 提供,模数转换后的数字量经 8255 的 A 口读入,由 B 口输出,PC 口控制。8255 的端口地址:300H306H(5)译码电路由 74LS138 提供,其输出信号用来控制当前工作在模拟量采集还是数模转换的工作状态以确保电路正常工作。在总线和其它接口芯片之间还必须加入74LS245,起到隔离作用。2、ADC0809 简介(1)ADC0809 功能及引脚提供一个 8 通道的多路开关

6、和寻址逻辑IN0IN7:8 个模拟电压输入端ADDA、ADDB、ADDC:3 个地址输入线ALE:地址锁存允许信号ADC0809 的数字输出ADC0809 内部锁存转换后的数字量具有三态数字量输出端 D0D7配合输出允许信号 OE(2)ADC 地址译码与通道选择(3)ADC0809 工作时序图:(4)ADC0809 与系统总线的连接(5)ADC0809 编程:(6)8255 与 ADC0809 的连接示意图:3、8253 简介(1)8253 内部结构拥有 3 个独立的 16 位计数器通道每个计数器有 6 种工作方式按二进制或十进制(BCD 码)计数(2)A0,A1 功能说明(3)8253 读写

7、操作(4)8253 控制字:(5)8253 初始化编程输入时钟信号位 1MHz,由计数器 0 分频得到 500KHz 供 ADC0809 的时钟使用,然后使用计数器 1,将 500KHz 接入计数器 1 时钟,由于 100 次数据采集需要时间位 100ms,故设定计数初值为 50000,8253 的计数器 0、计数器 1、计数器 2、方式控制字的端口地址分别为 000H、002H、004H、006H,工作方式 3,故初始化编程如下:start:mov dx, 006hmov al,36hout dx,almov dx,000hmov al,2out dx,almov al,0out dx,al

8、;初始化计数器 0 进行 2 分频mov dx, 006hmov al,76hout dx,almov dx,002hmov al,50hout dx,almov al,0c3hout dx,a;初始化计数器 1 进行 50000 分频4、8255 简介:(1)8255 内部结构(2)8255 寻址(3)8255 工作方式控制字(4)8255 端口 C 置位/复位控制字(5)8255 与 cpu 的连接(6)8255 初始化编程:8255 使用 A 口输入,B 口输出,A、B、C 及控制字端口分别为 300H、302H、304H、306H,工作方式 0,故初始化编程如下:mov dx,306h

9、mov al,99hout dx,al5.编写中断编程首先要设置好中断向量,这里是调用 72H 号中断,在里面写入 A/D 转换的中断服务子程序地址,所以要保存原来 72H 中断向量表里面的内容,最后在程序完成时要恢复 72H 里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用一下指令来完成:cli;获取原中断向量里的内容并保存mov ax,3572hint 21hmov intoff,bxmov intseg,espush dsmov dx,offset convert;设置新的中断向量mov ax,seg convertmov ds,axmov ax,2

10、572hint 21hpop dssticli ;恢复 72 号中断向量mov dx,intoffmov ax,intsegmov ds,axmov ax,2572hint 21hsti中断服务子程序:要想启动 0809 进行转换,首先必须有一个 start 信号,该信号为:在转换的时候通过 EOC 信号来判断转换是否结束,当 EOC 信号由 0 变为 1 时就代表转换结束,此时让 OE 引脚为 1,这时转换出来的数据就输出了,部分代码如下:mov dx,306Hmov al,99Hout dx,almov dx,306H;送启动信号mov al,00hout dx,alnopmov al,0

11、1hout dx,alnopmov al,00hout dx,almov dx,304Hquery:in al,dxtest al,10hjz querymov dx,300Hin al,dxinc dxout dx,al注意在每次转换完后都必须将 C 端口置位:mov dx,306H;将 C 口复位,以保证下次能正确转换数据mov al,90hout dx,almov dx,304Hmov al,0ffhout dx,al在中断服务子程序结束之前,必须发中断结束命令:mov al,20h ;结束中断out 20h,alout 0a0h,al在进入 A/D 转换之前,必须开发 72H 号中断:

12、in al,0a1h;设置中断屏蔽寄存器,系统开放 72 号中断 and al,0fbh五、程序流程图1、主程序流程图:开始8253、8255 初始化中断向量的设置启动 8253 定时否采集是否结束是结束2、中断子程序流程图保护现场启动 ADC否是否 EOC=1 束是读转换结果数据处理传送数码管显示恢复现场中断返回六、硬件接线图使用软件进行线路连接仿真,电路连接如下:七、实验源程序.model small.386.s tack.d ataintoff dw 0;存放原来中断向量里的偏移地址intseg dw 0;存放原来中断向量里的段地址.code.startup;显示菜单及提示信息start

13、:cli;获取原中断向量里的内容并保存and al,0fbhout 0a1h,almov ax,3572hint 21hmov intoff,bxmov intseg,espush dsmov dx,offset convert_proc;设置新的中断向量mov ax,seg convert_procmov ds,axmov ax,2572hint 21hpop dssti;开中断,进行判断选择按什么键jmp exe1wait_press:nopnopnopjne wait_pressexe1:mov ah,1int 21hcmp al,33h;退出系统je quit_systemexe2:m

14、ov dx,006hmov al,36hout dx,almov dx,000hmov al,2out dx,almov al,0out dx,al;初始化计数器 0 进行 2 分频mov dx,006hmov al,76hout dx,almov dx,002hmov al,50hout dx,almov al,0c3hout dx,al;初始化计数器 1 进行 50000 分频in al,0a1h;设置中断屏蔽寄存器,系统自动产生 72 号中断and al,0fbhout 0a1h,aljmp wait_pressjne exe1mov dl,35hmov ah,2int 21hmov d

15、x,306Hmov al,99Hout dx,almov al,0fhmov dx,302Hout dx,aljmp exe1quit_system: climov dx,intoff;恢复 1c 号中断向量mov ax,intsegmov ds,axmov ax,2572hint 21hsti.exit 0convert_proc procmov dx306Hmov al,99Hout dx,almov dx,306H;送启动信号mov al,00hout dx,alnopmov al,01hout dx,alnopmov al,00hout dx,almov dx,304Hquery1:i

16、n al,dxtest al,10hjz query1mov cx,5000;read:mov dx,300H;读写模拟量并进行数模转换输出 in al,dxinc dxout dx,alloop readpush axmov al,90hout dx,almov dx,304Hmov al,0ffhout dx,alpop axmov bl,alpush axmov dx,306Hmov al,99Hout dx,almov dx,302Hmov al,blout dx,alconvert_proc endp八、调试分析在调试仿真过程中,先是由于仿真库中缺少某些 IC 块器件,故经查找资料进

17、行等同替换,在确认硬件连接无误之后将已经汇编好的可执行程序文件载入到 8086 中,调整设置好仿真需要的参数,进行仿真。在仿真过程中发现,数据采集及转换的过程中有时会出现异常,在多次检查之后,试着将 8253 的计数方式改为由工作方式 2 改为工作方式 3,但是还是出现问题,然后在查看仿真时对应 IC 块的控制字及计数才发现是在程序编写过程中将计数器 0 和计数器 1 的控制字写成一样了,在修改过后重新仿真发现数据的采集及数模转换之后的显示表现正常。九、设计总结通过本次的课程设计,学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼,进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。本次的课程设计,最主要的是了解可编程外围芯片 8255、定时器 8253/4 的工作原理,以及学会对 AD0809、8255 和 8253 芯片的应用和设计技术。对微型计算

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论