微机实验6 数模与模数转换 东南大学微机实验

2020-06-17 11:07

《微机实验及课程设计》实验报告 学号

东南大学

《微机实验及课程设计》

实验报告

实验八 数模与模数转换

姓 名: 学 号:

专 业: 测控技术与仪器 实 验 室: 416 实验时间: 2010年05月20日 报告时间: 2010年05月20日 评定成绩: 审阅教师:

0

《微机实验及课程设计》实验报告 学号

一. 实验目的与内容 实验目的:

1) 掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示; 2) 掌握8段数码管的动态刷新显示控制;

3) 分析掌握8255工作方式1时的使用及编程,进一步掌握中断处理程序的编写。 实验内容:

(1)8255方式0:简单输入输出

根据实验电路,8255C口输入接逻辑电平开关K0~K7,编程A口输出接LED显示电路L0~L7; 用指令从C口输入数据,再从A口输出。

(2)编程将A口L0~L7控制成流水灯,流水间隔时间由软件产生;流水方向由K0键在线控制,随时可切换;流水间隔时间也可由K4~K7键编码控制,如0000对应停止,0001对应1秒,1111对应15秒,大键盘输入ESC键退出。

(3)8段数码管静态显示:按图连线,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

(4)8段数码管动态显示:按图连线,七段数码管段码连接不变,位码驱动输入端S1、S0接8255 C口的PC1、PC0。编程在两个数码管上显示“56”。(注意字符变换之间应使段位全灭,避免显示“影子”) 二. 基本实验原理 (1)8255方式0:简单输入输出

288h为8255A口地址,28ah为8255C口地址。C口输入,A口输出。K0~K7预置八位二进制数,即C口预置八位二进制数,编程通过指令 Mov dx,io8255a Out dx,al

实现从A口输出刚才自C口输入的数据 (2)流水灯

288h为8255A口地址,28ah为8255C口地址。C口输入,A口输出。流水方向由KO在线控制,K0=0时流水向左,K0=1时流水向右,通过指令 Test al,01

1

《微机实验及课程设计》实验报告 学号

Jne right Jmp left 判断流水方向;

K4~K7可编码控制流水间隔, and al,11110000b cmp al,00h

此指令用来判断高四位,判断延时,ah=00时停止,ah=10时延时移动显示。 (3)8段数码管静态显示

288h为8255A口地址,28ah为8255C口地址。C口输入,A口输出。主要编程思路为 mov ah,01 int 21h

此指令从键盘接受字符。输入的需是一位十进制数(0~9)。sub al,30h将所得字符的ASCII码减30H,mov dx,io8255a out dx,al 将输入信息从从8255的A口输出,显示于数码管。 (4)8段数码管动态显示

288h为8255A口地址,28ah为8255C口地址。C口输入,A口输出。Buffer db 5,6存放要显示的个位和十位。通过延迟程序段实现两个数码管分别显示5和6。首先mov bh,02 mov byte ptr bz,bh。而在DELAY中mov bh,byte ptr bz shr bh,1然后通过jnz lll返回LED点亮程序段实现两个数码管显示5和6 三. 方案实现与测试(或调试)

(1) 设置8255为 C口输入A口输出 将数据从A口输出 N 有键按下? 从C口输入数据 ioport equ 0b800h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh ;8255控制寄存器端口地址 equ ioport+28ah ;8255C口地址 开始 io8255c stacks segment stack db 100 dup (?) stacks ends code segment assume cs:code,ss:stacks main proc far start: mov ax,stacks mov ss,ax mov dx,io8255b out dx,al mov al,8bh inout: mov dx,io8255c in al,dx mov dx,io8255a out dx,al mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS 2 int 21h Y 结束

main endp code ends end start 《微机实验及课程设计》实验报告 学号

下面给出部分实验结果:

K0 K1 K2 K3 K4 K5 K6 K7 L0 L1 L2 L3 L4 L5 L6 L7 结果正确与否 0 1 1 1

(2)在实验原理中已经讲到一些实验实现语句,这里不再赘述,主要是由通过编程test al,01决定流水灯左移或者右移,然后再左移和右移的指令段实现K4~K7的编码控制,再通过延时子程序完全实现流水间隔时间控制。

部分结果如下:

K0=1,K4=0,K5=0,K6=0,K7=1此时流水灯右移,且间隔时间为01秒 K0=1,K4=1,K5=1,K6=1,K7=1此时流水灯右移,且间隔时间为15秒 K0=0,K4=0,K5=0,K6=0,K7=1此时流水灯左移,且间隔时间为01秒 K0=0,K4=0,K5=0,K6=0,K7=1此时流水灯左移,且间隔时间为15秒

(3)mov ah,01 int 21h从键盘接受字符,sub al,30h将所得字符的ASCII码减30H,ASCII码减30H正好为输入十进制数字对应的二进制码。mov dx,io8255a out dx,al输出到数码管。

结果如下:

输入字符’9’,数码管中显示9 输入字符’8’,数码管中显示8 输入字符’7’,数码管中显示7 输入字符’6’,数码管中显示6 输入字符’5’,数码管中显示5 输入字符’4’,数码管中显示4 输入字符’3’,数码管中显示3 输入字符’2’,数码管中显示2 输入字符’1’,数码管中显示1 输入字符’0’,数码管中显示0

(4) Buffer db 5,6存放要显示的个位和十位。通过延迟程序段实现两个数码管分别显示5

1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 1 正确 正确 正确 正确 实验结果正确,LED正常 和6。首先mov bh,02 mov byte ptr bz,bh。而在DELAY中mov bh,byte ptr bz shr bh,1然后通过jnz lll返回LED点亮程序段实现两个数码管显示5和6。

3

《微机实验及课程设计》实验报告 学号

实验结果:

数码管分别显示5和6 实验完成!

四.提高与创新研究 及问题审视

思考 递增00~99计数器 计数器需要用到8253内容 主要计数范围为0FH到59H。 利用方式0,一次脉冲计数一次直到59H。 MOV DX,28BH ;控制端口地址为28BH MOV AL,0FH ;00110010B

OUT DX,AL ;送方式控制字到控制寄存器 MOV DX,280H ;计数器0端口地址为280H MOV AL,09H

OUT DX,AL ;先写低8位计数值到计数器 MOV AL,50H

OUT DX,AL ;再写高8位计数值到计数器0

实验过程中由于实验室的实验板问题,导致很多次实验都没有成功,实践发现,实验室416没几块实验板是好的,因此换了做好的同学的板马上就可以做出来了。如果板好的,还是做不出来,那就是电脑坏了,被强大病毒侵害了。。。每次换板换电脑全是自己动手连线调试!

在实验板和电脑都完好的情况下,并没有发现实验存在错误之类难以解决的问题,谢谢老师审阅!

4


微机实验6 数模与模数转换 东南大学微机实验.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:行测-图形推理、数量关系、资料分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: