微机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

东南大学

《微机实验及课程设计》

实验报告

实验七8251串行通信

实验八数模与模数转换

姓名:学号:

专业:实验室:

实验时间:报告时间:

评定成绩:审阅教师:

实验七8251串行通信

一、实验目的与内容

(一)实验目的:

(1)了解串行通信的基本原理,认识串行收发过程;

(2)掌握串行接口芯片8251 的工作原理和编程方法。

(二)实验内容:

(1)编写测试程序,初始化8251,实现连续发送固定字符,用示波器观察发送波形,试用多种不同字符格式和字符;

(2)编程实现从键盘输入一个字符, 将其ASCII 码加1 后发送出去,再接收回来在屏幕上显示,实现自发自收;

二、基本实验原理

(1)按图连接好电路 (8251 插在带锁通用插座D 上),其中8253 计数器用于产生8251 的发送和接收时钟,TXD 和RXD 直接相连;

(2)编写测试程序,初始化8251,实现连续发送固定字符,用示波器观察发送波形,试用多种不同字符格式和字符;

(3)编程实现从键盘输入一个字符, 将其ASCII 码加1 后发送出去,再接收回来在屏幕上显示,实现自发自收;

(4)若在调试方式下用命令或单步初始化8251,用端口输出(发送)和输入(接收)检查硬件;编程简单周期连续发送,用示波器观察发送过程和波特率(波形)。

三. 方案实现与测试

(1)8251 通信查询程序流程图:

8251串行通信程序关键程序段:

start:

mov ax,stacks

mov ss,ax

mov ax,data

mov ds,ax

mov dx,io8253b ;设置8253 计数器0 工作方式

mov al,16h

out dx,al

mov dx,io8253a

mov al,52 ;给8253 计数器0 送初值

out dx,al

mov dx,io8251b ;初始化8251

xor al,al

mov cx,03 ;向8251 控制端口送3 个0

delay: call out1

loop delay

mov al,40h ;向8251 控制端口送40H,使其复位 call out1

mov al,4eh ;设置为1 个停止位,8 个数据位

call out1 ;波特率因子为16

mov al,27h ;向8251 送控制字允许其发送和接收 call out1

lds dx,mes2 ;显示提示信息

mov ah,09

int 21h

waiti: mov dx,io8251b

in al,dx

test al,01 ;发送是否准备好

jz waiti

mov ah,01 ;是,从键盘上读一字符

int 21h

cmp al,27 ;若为ESC,结束

jz exit

mov dx,io8251a

inc al

out dx,al ;发送

mov cx,0F00h

s51: loop s51 ;延时

next: mov dx,io8251b

in al,dx

test al,02 ;检查接收是否准备好

jz next ;没有,等待

mov dx,io8251a

in al,dx ;准备好,接收

inc al ;如果需要处理,如加1

mov dl,al

mov ah,02 ;将接收到的字符显示在

int 21h 屏幕上

jmp waiti

out1 proc near ;向外发送一字节的子程序

out dx,al

push cx

mov cx,0F00h

gg: loop gg ;延时

pop cx

ret

实验八数模与模数转换

一、实验目的与内容

(一)实验目的:

(1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法;

(2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。(二)实验内容:

(1)分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。

(2)编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。

二、基本实验原理

(1)DAC 实验电路原理如图3.9-1,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。进入DEBUG 调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。

(2)分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。(3) ADC 实验电路原理图如图3.9-2,通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。启动IN0 开始转换: O 0C818 0;读取转换结果: I 0C818。

(4) 编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。

(5) 将JP3 的1、2 短接,使IN1 处于双极性工作方式,并给IN1 输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。

三. 方案实现与测试

(1)DA转换关键程序段:

程序1:锯齿波发生程序

start: mov ax,stacks

mov ss,ax

mov cl,0

mov dx,io0832a

lll: mov al,cl

out dx,al

inc cl ;cl 加1

inc cl

inc cl

inc cl

inc cl

inc cl

inc cl

push dx

mov ah,06h ;判断是否有键按下

mov dl,0ffh

int 21h

pop dx

jz lll ;若无则转LLL

mov ah,4ch ;返回DOS

int 21h

程序2:正弦波发生程序

data segment

ioport equ 0d400h-0280h ;tpc 卡中设备的io 地址

io0832a equ ioport+290h ;DAC0832 的口地址为290H

sin db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh

db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h

db 80h,66h,4eh,38h,25h,15h,09h,04h

db 00h,04h,09h,15h,25h,38h,4eh,66h ;正弦波数据

data ends

stacks segment

start: mov ax,stacks

mov ss,ax

mov ax,data

相关文档
最新文档