模拟电压采集电路及程序设计计科11002班 03674 林科.docx

上传人:b****6 文档编号:3045471 上传时间:2022-11-17 格式:DOCX 页数:18 大小:675.10KB
下载 相关 举报
模拟电压采集电路及程序设计计科11002班 03674 林科.docx_第1页
第1页 / 共18页
模拟电压采集电路及程序设计计科11002班 03674 林科.docx_第2页
第2页 / 共18页
模拟电压采集电路及程序设计计科11002班 03674 林科.docx_第3页
第3页 / 共18页
模拟电压采集电路及程序设计计科11002班 03674 林科.docx_第4页
第4页 / 共18页
模拟电压采集电路及程序设计计科11002班 03674 林科.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

模拟电压采集电路及程序设计计科11002班 03674 林科.docx

《模拟电压采集电路及程序设计计科11002班 03674 林科.docx》由会员分享,可在线阅读,更多相关《模拟电压采集电路及程序设计计科11002班 03674 林科.docx(18页珍藏版)》请在冰豆网上搜索。

模拟电压采集电路及程序设计计科11002班 03674 林科.docx

模拟电压采集电路及程序设计计科11002班03674林科

微型计算机技术

课程设计

 

指导教师:

李鹏、雷鸣

学生班级:

计科11002班

学生姓名:

林科

学号:

201003674

课设日期:

201年12月21日~201年12月28日

一.设计任务-3-

二.设计目的-3-

三.设计内容-3-

8255的自检测-3-

8253的自检测-3-

退出系统-3-

四.课程设计所用器件.............................................................................................................................-4

五.课程设计思路-4

六.课程设计步骤-4-

七.课程设计内容剖析-5

八、软件编程……………………………………………………………………………………-9-

九.调试分析-10-

1、8255初始化-10-

2、5253初始化-10-

3、编写中断服务子程序-11-

十.原理图-13-

十一.程序代码-13-

十二、程序运行界面……………………………………………………………………………-23-

十三.课设小结…………………………………………………………………………………-24

 

一.设计任务

利用《微型计算机技术》课程中所学的主要可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或IRQ10端引入)设计一个模拟电压采集电路及相应的程序。

二.设计目的

1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。

2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A等可编程器件的使用,掌握译码器74LS138的使用。

3.学会用汇编语言编写一个较完整的实用程序。

4.掌握微型计算机技术应用开发的全过程:

分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。

三、课程设计内容

采用ADC0809设计一个单通道模拟电压采集电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量一路送至发光二极管显示,一路送至计算机显示到屏幕上,每行显示5个数据,采集完100个数据后停止采集过程,采集过程中按下ESC键也可中断采集过程。

四、课程设计所用器材

1一台微机原理与接口实训平台。

2可编程芯片8253、8255A、ADC0809和译码器芯片74LS138、数据总路线缓冲器74LS245各一片。

3可调电位器4.7KΩ一个、发光二极管8个、74LS06芯片2个、排电阻1个。

4其它逻辑器件、导线若干。

5示波器、万用表、常用工具等。

五.课程设计思路

4.7KΩ电位器一端接+5V,一端接地,调节电位器得到变化的模拟电压,该电压接至ADC0809的某一通道输入端(如IN0),ADC0809的时钟为500KHz,由8253对面包板上时钟1MHz分频后得到,8253的端口地址:

300H~303H

编程启动ADC0809转换(ADC0809完成一次转换的时间大约为120μs),将ADC0809的EOC引脚信号作为中断信号,若转换结束则进入中断服务程序。

在中断服务程序中读入模数转换结果,一路送至发光二极管显示,一路送至计算机显示到屏幕上。

8255A用做CPU和ADC0809间的接口芯片,ADC0809的控制信号(如OE、ALE、EOC、START等)由8255A的PC口提供,模数转换后的数字量经8255A的PA口读入,经PB口输出到发光二极管。

8255A端口地址:

304H~307H。

译码电路由74LS138提供。

6.课程设计步骤

设计出正确的接口电路原理图,要求用PROTEUS绘图软件绘制电路图,并注明器件的名称和管脚。

根据要求用74LS138设计出正确的I/O译码电路。

正确运用所给器件布线,搭接硬件电路。

选用C语言或汇编语言编写主程序以及各芯片调试子程序,要求:

界面友好、操作方便;

实现功能要求;

功能模块应有详细注释。

调试并排错,包括硬件电路和软件编程部分的错误。

写出完整的课程设计总结报告,并按时提交。

七、课程设计内容剖析

(1).MFPTPCI总线驱动板逻辑结构如图所示

74LS245的功能表:

(2)芯片介绍

74LS245数据总路线缓冲器

(3).ADC0809简介

Ø提供一个8通道的多路开关和寻址逻辑

●IN0~IN7:

8个模拟电压输入端

●ADDA、ADDB、ADDC:

3个地址输入线

●ALE:

地址锁存允许信号

ØALE的上升沿用于锁存3个地址输入的状态,然后由译码器从8个模拟输入中选择一个模拟输入端进行A/D

ØADC0809的转换时序:

ØADC0809内部锁存转换后的数字量

Ø具有三态数字量输出端D0~D7

Ø配合输出允许信号OE

Ø当输出允许信号OE为高电平有效时,将三态锁存缓冲器的数字量从D0~D7输出

其它的芯片查阅微型计算机技术的书。

(4).8255A与ADC0809的连接

(5).8253定时/计数器

对8253进行编程,8253的时钟(CLK0)取自MFID实验平台(1MHz或2MHz)。

对该信号进行分频后的500KHz作为ADC0809的转换时钟信号CLOCK,转换结束后,由EOC产生中断信号,送入到系统预留给用户的IRQ2(或IRQ10)引脚产生中断,在中断服务子程序中,启动一次模数转换。

8、软件编程

采用C语言或汇编语言编程均可。

(1)主菜单编写

1、8255自检

2、8253自检

3、ADC0809转换

返回

(2)ADC主程序编写

(3)ADC中断程序的编写

9、调试分析

(1)、初始化8255

8255有四个寄存器,地址为300h-303h,分别为A口,B口,C口,和控制口

可用如下代码初始化8255:

movdx,303h

moval,10011001B

outdx,al

(2)初始化8253

输入时钟信号为0.5MHZ,需要写入的计数初值为2,选用计数器0,工作方式3,代码如下:

movdx,307h

moval,00110110B

outdx,al

movax,2

movdx,304h

outdx,al

moval,ah

outdx,al

(3)编写中断服务子程序

设置好中断向量,调用72H号中断,在里面写入A/D转换的中断服务子程序地址,保存原来72H中断向量表里面的内容,最后在程序完成时要恢复72H里的内容,在执行这些操作的时候是不容许中断的,所以要关中断,操作完成后要开中断,可以用一下指令来完成:

cli;获取原中断向量里的内容并保存

inal,0a1h;设置中断屏蔽寄存器,系统自动产生72号中断

andal,0fbh

out0a1h,al

movax,3572h

int21h

movintoff,bx

movintseg,es

pushds

movdx,offsetconvert_proc;设置新的中断向量

movax,segconvert_proc

movds,ax

movax,2572h

int21h

popds

sti;开中断,进行判断选择按什么键

cli;恢复1c号中断向量

movdx,intoff

movax,intseg

movds,ax

movax,2572h

int21h

sti

中断服务子程序:

要想启动0809进行转换,首先必须有一个start信号,该信号为:

在转换的时候通过EOC信号来判断转换是否结束,当EOC信号由0变为1时就代表转换结束,此时让OE引脚为1,这时转换出来的数据就输出了。

10、原理图

11、程序代码

STACK1SEGMENTSTACK

DW200DUP(?

STACK1ENDS

DATASEGMENT

MESG1DB'8255checkself8253checkselfandA/Dconversion',0ah,0dh

DB'ExitwithEsc',0ah,0dh,'$'

LEDDATADB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

NUMdb0

count1db0

INT0A_OFFDW(?

INT0A_SEGDW(?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

DELAYPROC

PUSHCX

PUSHBX

MOVBX,0FFFH

LOOP2:

MOVCX,0FFFFH

LOOP1:

LOOPLOOP1

DECBX

JNZLOOP2

POPBX

POPCX

RET

DELAYENDP;延时程序

START:

MOVAX,DATA

MOVDS,AX

MOVAH,09H

MOVDX,OFFSETMESG1

INT21h;显示提示信息

MOVDX,303H;初始化8255

MOVAL,80H

OUTDX,AL

MOVDX,301H;LED灯亮4盏灭四盏

MOVAL,0F0H

OUTDX,AL

MOVAX,3572H;获取原中断向量

INT21H

MOVINT0A_OFF,BX;保存原中断向量

MOVBX,ES

MOVINT0A_SEG,BX

CLI;关中断

MOVAX,2572H

MOVDX,SEGLEDLIGHT;设置新的中断向量

PUSHDS

MOVDS,DX

MOVDX,OFFSETLEDLIGHT

INT21H

POPDS

STI;开中断

INAL,0A1H;打开IRQ10

ANDAL,0FBH

OUT0A1H,AL

INAL,21H;打开IRQ2

ANDAL,0FBH

OUT21H,AL

MOVDX,307H;8253定时1S

MOVAL,01110110B

OUTDX,AL

MOVDX,305H

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

MOVDX,307H

MOVAL,10110110B

OUTDX,AL

MOVDX,306H

MOVAL,0E8H

OUTDX,AL

MOVAL,03H

OUTDX,AL

L1:

MOVAH,0BH;检查是否有Esc键按下

INT21H

INCAL

JNZNEXT0;若无键按下,则程序往下执行

MOVAH,08H;如有Esc键按下,则程序退出

INT21H

CMPAL,27

JZEXIT

NEXT0:

CALLDELAY

JMPL1

EXIT:

MOVAX,2572H;恢复中断向量

MOVDX,INT0A_SEG

PUSHDS

MOVDS,DX

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

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

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