微机原理课程设计 通信Word文档下载推荐.docx

上传人:b****7 文档编号:22575014 上传时间:2023-02-04 格式:DOCX 页数:24 大小:170.79KB
下载 相关 举报
微机原理课程设计 通信Word文档下载推荐.docx_第1页
第1页 / 共24页
微机原理课程设计 通信Word文档下载推荐.docx_第2页
第2页 / 共24页
微机原理课程设计 通信Word文档下载推荐.docx_第3页
第3页 / 共24页
微机原理课程设计 通信Word文档下载推荐.docx_第4页
第4页 / 共24页
微机原理课程设计 通信Word文档下载推荐.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

微机原理课程设计 通信Word文档下载推荐.docx

《微机原理课程设计 通信Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计 通信Word文档下载推荐.docx(24页珍藏版)》请在冰豆网上搜索。

微机原理课程设计 通信Word文档下载推荐.docx

DAC0832是8位双缓冲D/A转换器。

有8位输入锁存器,8位DAC寄存器,8位D/A转换电路组成。

有三种工作方式:

单缓冲方式,双缓冲方式,直通方式。

本实验用示波器观察其输出波形。

5).ADC0809是CMOS型的8位逐次逼近型A/D转换器,它由8路模拟开关、8位A/D转换器以及三态输出锁存器构成。

八路模拟量输入通道可以直接连通8个单端模拟信号。

6).键盘一般都是矩阵排列,行和列分别接微机的输出,输入端口,每个键都跨接在某行和某列上,当键按下时,该行与该列短路。

输入端口线一般都通过电阻拉至高电平,本实验中采用行扫描法来识别键盘上的闭合键。

行扫描法是使键盘的某一输出为低电平,其余为高电平,然后读取列植,如果列值中有某位为低电平,则表示行列交点处的键被按下,还可以知道是哪一行哪一列交点的键按下。

四、设计要求:

1)波特率设为9600hz或12000hz

2)内容一:

1、发送方通过选择采样通道,采集模拟信号,通过rs232接口发送到接受方

2、接受方接受到数据后,将数据送到数码管显示并且将数字还原为模拟信号,用示波器观察波形

3)内容二:

甲乙两台实验系统的键盘分别控制对方模拟输出产生—方波、三角波等;

4)硬件设计要求画出功能框图和逻辑原理图;

编程要有程序框图和流程图。

五、实验仪器与设备:

1)两台32位接口平台

2)微机及其兼容机两台

3)示波器两台

4)编程软件:

汇编语言或c语言等高级语言

六、设计过程:

1、扫描键盘显示部分

1)说明:

利用8255可编程并行口做一个扫描键盘实验,把按键输入的键码,显示在七段数码管上。

2)实验思路:

利用8255可编程并行口做一个扫描键盘(4×

4)实验,把按键输入的键码,显示在由8255PA口控制的七段数码管上。

8255PC口(PC7~PC4)作行扫描线。

PB口(PB3~PB0)做键盘输入列线。

本实验采用行扫描法

3)实验程序流程图:

 

N

Y

4)实验电路及连线:

5)程序代码:

DATASEGMENT

SEGTABDB0C0H,0F9H,0A4H,0B0H,99H;

七段显示编码

DB92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH

DATAENDS

STACK1SEGMENTPARASTACK

DB200DUP(?

STACK1ENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK1

START:

MOVAX,DATA

MOVDS,AX

MOVDX,9803H;

8255控制口

MOVAL,82H;

10000010方式0,A口输入,B口输入(读入列线状态),C口输出(控制行线)

OUTDX,AL

NEXT:

MOVDX,9802H;

PC口送低电平

MOVAL,0

DECDX;

B口

AB:

INAL,DX;

读列信息

CMPAL,0FH;

判断是否有键按下

JZAB

MOVCX,8000H;

时延

DELAY:

LOOPDELAY

MOVBH,00

MOVBL,0

MOVCX,4

MOVAH,0EFH

AGAIN:

MOVAL,AH;

逐行检测

MOVDX,9802H;

行线地址

B口列线地址

INAL,DX;

读入状态

ANDAL,0FH

CMPAL,0FH

JNZAB1;

在该行则转

ADDBH,4;

不在该行,总键值加4(换行)

SHLAH,1

LOOPAGAIN

JMPNEXT

AB1:

AB3:

SHRAL,1

JCAB2

JMPAB4

AB2:

INCBL

LOOPAB3

AB4:

ADDBH,BL

MOVAL,BH

LEABX,SEGTAB

XLAT

PUSHAX

MOVDX,9803H;

显示

MOVAL,80H

MOVDX,9801H

MOVAL,0FH

MOVDX,9800H

POPAX

MOVBX,0;

BQ:

MOVCX,00

AQ:

LOOPAQ

DECBX

CMPBX,0

JNZBQ;

JMPSTART

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

2、ADC0809A/D转换器

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器。

1)ADC0809的内部逻辑结构

由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

2)引脚结构

IN0-IN7:

8条模拟量输入通道

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;

输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:

4条

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

数字量输出及控制线:

11条

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;

下跳沿时,开始进行A/D转换;

在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;

否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;

OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,

VREF(+),VREF(-)为参考电压输入。

3)程序框图:

4)参考程序:

XDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

YDB5

ZDB10

DATA

MOVAL,89H

8255初始化

L5:

MOVAL,01H;

选择选择通道1

MOVDX,9840H

L1:

MOVDX,9802H

INAL,DX

TESTAL,01H;

测试EOC,是否转化完?

JNZL1

L2:

MOVDX,9840H

INAL,DX;

读入转换结果数

ANDAX,0FFH

DIVY;

采样值转化,除以5

DIVZ;

除以10

LEABX,X

XLAT

显示整数部分

ADDAL,80H

MOVBX,50H;

L3:

MOVCX,0000H

L:

LOOPL

JNZL3

MOVCL,8

SHRAX,CL

MOVAL,02H;

显示小数部分

MOVDX,9801H

MOVBX,50H

L4:

P:

LOOPP

JNZL4

JMPL5

3、DAC0832数模转换部分

1)DAC0832内部结构图

0832的内部包括两个8位寄存器、1个8位

转换器和相应辅助电路:

˙8位输入寄存器为第一级锁存器,它的锁存信号为ILE。

当ILE为高电平、CS和W为低电平时,LE1为1,这种情况下,输入寄存器的输出随输入而变化。

此后,WR1由低变高时,ILE变为低电平,此时,数据被锁存到输入寄存器中。

˙8位DAC寄存器为第二级锁存器,它的锁存信号也称为通道控制信号。

WR2和XFEB同时为低电平时,LE2为高电平,这时,8位的DAC寄存器的输出随输入而变化,此后,当WR2由低变高时,LE2变为低电平,将输入寄存器的信息锁存到DAC寄存器。

˙8位D/A转换器,实际上是一个T型电阻网络,在外部运算放大器配合下完成D/A转换工作。

2)0832引脚图和工作时序

a.ADC0809的引脚定义

b.ADC0809的工作时序

ADC0809芯片是按典型的逐位比较工作原理集成的,但需外接参

考电源和时钟(10KHZ-1.2MHZ),在时钟为640KHZ时,一次变换时

间为100μs,且随时钟降低,变换时间加长,地址信号加入后,利用

LE加一个正跳变脉冲,将端口上的地址信号锁存于内部地址寄存器

中,对应着的模拟电压输入就和内部变换电路接通。

为了启动变换,

必须在START端加一个负跳变信号,此后变换就开始了。

当EOC为低

电平时,表示正在变换中,当EOC由低变高时,表示变换结束。

此时,

只要在此端加一个高电平,即可开启三态缓冲器,从数据线读数据。

芯片内有一个八选一的模拟开关,利用ADDA-ADDC三个信号编

码选择相应的输入。

3)0832输出连接方式

见附录图

4)实验程序如下(实现锯齿波,方波)

(1)方波波发生程序:

CODE

MOVAL,0

MOVDX,9880H

MOVBX,65H

MOVCX,0FFH

LOOPL

JNZL2

MOVAL,0FFH

LOOPP

(2)锯齿波发生程序:

OUTDX,AL

MOVBX,45H

MOVCX,0FFH;

延时决定了锯齿波的周期

INCAL

JMPL1

4、自发自收测试:

用8251实现自发自收,RxD,TxD连一起,CTS,RTS连一起。

程序代码:

ASCTADB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

XDB5

YDB10

CODE,DS:

MOVAX,DATA

MOVAL,89H;

10001001A,B口输出C口输入

L4:

MOVDX,9853H;

8254

MOVAL,37H

MOVDX,9850H;

0计数器

MOVAL,00H

MOVAL,05H

L1:

MOVAL,1

MOVDX,9840H;

启动0809,1通道

MOVDX,9802H;

是否转换结束

TESTAL,01H

L2:

读数据

L3:

MOVDX,98C1H;

8251控制口

MOVAL,0;

送三次0

S1:

LOOPS1

S2:

LOOPS2

S3:

LOOPS3

MOVAL,40H

S4:

LOOPS4

MOVAL,7EH;

方式指令01111110停止位1位,偶校验,字符长度8位,波特率因子16

S5:

LOOPS5

MOVAL,25H;

00100101允许发送与接收

S6:

LOOPS6

WAIT0:

MOVDX,98C1H

读8251状态字

TxRDY是否为1,不为1发送

JZWAIT0

MOVDX,98C0H

D1:

LOOPD1

WAIT1:

MOVDX,98C1H;

TESTAL,02H;

RxRDY是否为1,不为1接收

JZWAIT1

MOVDX,98C0H;

8251数据口

D2:

LOOPD2

PUSHAX

DIVX;

除以5

DIVY;

LEABX,ASCTA

MOVAL,01H

;

movbx,300

MOVCX,0FFFFH

L:

decbx

jnzl

MOVAL,02H

P:

MOVDX,9880H;

0832D/A

5、联机通信:

在以上分布实验的基础上,接入RS232串行接口,修改部分代码和对方计算机联机通讯。

七、实验总结

小键盘部分:

1.单步调试,若读入和写出的数据不同,要查看是否连接读或写的线接触不良或断掉,若不是就要查看8255是否烧坏。

2.注意选择合适的时延。

0809部分:

1.本实验中0809的数据口跟通道选择信号连在一起,向数据口送数就实现了芯片的启动和通道的选择。

2.模拟信号实际值是从0到5V,量化值是从00到FF,用本实验的转换算法显示的数字是从0.0到5.1,转化误差是0.1V。

3.实验中单步调试出现读取转化数据总是同一个数,不随模拟信号的变化而变化。

在指导老师的帮助下,检查连线,同时使用O、I命令直接测试芯片管脚电平,方便有效很快解决了问题。

4.若显示数据无法稳定就要通过修改延时来测试时钟信号的频率,看频率选择是否合适。

在实验中要学会分布实现各逻辑电路,逐步实现整个电路的功能。

在遇到问题时切忌急躁,要静下心分析程序代码和电路连线,在排查问题的过程中分布调试是很重要的,认真,仔细的分布测试定能解决问题。

在整体调试过程中要注意单步程序和整体程序在执行中的不同,考虑其中的细节方能解决整体的实验功能。

八、实验电路图(Protel)

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

当前位置:首页 > 高等教育 > 农学

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

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