实验五七段数码管.docx

上传人:b****4 文档编号:3995199 上传时间:2022-11-27 格式:DOCX 页数:9 大小:235.59KB
下载 相关 举报
实验五七段数码管.docx_第1页
第1页 / 共9页
实验五七段数码管.docx_第2页
第2页 / 共9页
实验五七段数码管.docx_第3页
第3页 / 共9页
实验五七段数码管.docx_第4页
第4页 / 共9页
实验五七段数码管.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

实验五七段数码管.docx

《实验五七段数码管.docx》由会员分享,可在线阅读,更多相关《实验五七段数码管.docx(9页珍藏版)》请在冰豆网上搜索。

实验五七段数码管.docx

实验五七段数码管

实验二七段数码管

七段数码管静态显示

一、实验目的

掌握数码管显示数字的原理

二、实验内容

静态显示:

按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。

编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

三、编程提示

实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

四、实验原理图

 

五、程序流程图

六、程序原代码

datasegment

ioportequ0d400h-0280h

io8255aequioport+288h

io8255bequioport+28bh

leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

mesg1db0dh,0ah,'Inputanum(0--9h):

',0dh,0ah,'$'

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,io8255b;使8255的A口为输出方式

movax,80h

outdx,al

sss:

movdx,offsetmesg1;显示提示信息

movah,09h

int21h

movah,01;从键盘接收字符

int21h

cmpal,'0';是否小于0

jlexit;若是则退出

cmpal,'9';是否大于9

jgexit;若是则退出

subal,30h;将所得字符的ASCII码减30H

movbx,offsetled;bx为数码表的起始地址

xlat;求出相应的段码

movdx,io8255a;从8255的A口输出

outdx,al

jmpsss;转SSS

exit:

movah,4ch;返回DOS

int21h

codeends

七段数码管动态显示

一、实验目的

掌握数码管显示数字的原理

二、实验内容

动态显示:

按图23连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255C口的PC1,PC0。

编程在两个数码管上显示“56”

三、编程提示

实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

四、实验原理图

五、程序流程图

六、程序原代码

datasegment

ioportequ0d400h-0280h

io8255aequioport+28ah

io8255bequioport+28bh

io8255cequioport+288h

leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码

buffer1db5,6;存放要显示的个位和十位

bzdw?

;位码

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,io8255b;将8255设为A口输出

moval,80h

outdx,al

movdi,offsetbuffer1;设di为显示缓冲区

loop2:

movbh,02

lll:

movbyteptrbz,bh

pushdi

decdi

adddi,bz

movbl,[di];bl为要显示的数

popdi

moval,0

movdx,io8255a

outdx,al

movbh,0

movsi,offsetled;置led数码表偏移地址为SI

addsi,bx;求出对应的led数码

moval,byteptr[si]

movdx,io8255c;自8255A的口输出

outdx,al

moval,byteptrbz;使相应的数码管亮

movdx,io8255a

outdx,al

movcx,3000

delay:

loopdelay;延时

movbh,byteptrbz

shrbh,1

jnzlll

movdx,0ffh

movah,06

int21h

jeloop2;有键按下则退出

movdx,io8255a

moval,0;关掉数码管显示

outdx,al

movah,4ch;返回

int21h

codeends

endstart

 

实验三、交通灯控制实验

一.实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二.实验内容

如图-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

三.编程提示:

十字路口交通灯的变化规律要求:

(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。

(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5)转

(1)重复。

四、实验原理图

;***********************************;

;*十字路口红绿灯模拟演示程序*;

;*端口各灯的设置:

*;

;*1红1黄1绿002红2黄2绿*;

;***********************************;

datasegment

ioportequ0d400h-0280h

io8255aequioport+28ah

io8255bequioport+28bh

portc1db24h,44h,04h,44h,04h,44h,04h;六个灯可能

db81h,82h,80h,82h,80h,82h,80h;的状态数据

db0ffh;结束标志

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,io8255b

moval,90h

outdx,al;设置8255为C口输出

movdx,io8255a

re_on:

movbx,0

on:

moval,portc1[bx]

cmpal,0ffh

jzre_on

outdx,al;点亮相应的灯

incbx

movcx,20;参数赋初值

testal,21h;是否有绿灯亮

jzde1;没有,短延时

movcx,2000;有,长延时

de1:

movdi,9000;di赋初值5000

de0:

decdi;减1计数

jnzde0;di不为0

loopde1

pushdx

movah,06h

movdl,0ffh

int21h

popdx

jzon;没有,转到on

exit:

movah,4ch;返回

int21h

codeends

endstart

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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