8255与多位LED数码管的显示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
掌握8255A的编程原理与多位LED数码管的显示方法。 掌握8255A的编程原理与多位LED数码管的显示方法。 8255A的编程原理与多位LED数码管的显示方法
二、实验目的 三、实验内容
把待显示字符的LED代码组成一个七段代码表,存放在 代码组成一个七段代码表, 把待显示字符的 代码组成一个七段代码表 存储器中。通过对8255编写程序在多位 编写程序在多位LED数码管上显 存储器中。通过对 编写程序在多位 数码管上显 示输出。 示输出。 1、设计出8255与8086接口对应硬件电路,并完成相应 、设计出 与 接口对应硬件电路, 接口对应硬件电路 的连接 2、设计出 数码管的对应硬件接口电路, 、设计出8255与LED数码管的对应硬件接口电路,并 与 数码管的对应硬件接口电路 完成相应的连接 3、编写程序,在数码管上显示相应字符或数字 、编写程序, 4、写出习题部分要求的程序 、
实验2 8255与多位LED数码管的显示实验 与多位LED 实验2 8255与多位LED数码管的显示实验 复习8255 一、复习 1.8255相关知识 相关知识 8255功能特性 功能特性
三个独立的8位并行输入 输出端口 三个独立的 位并行输入/输出端口,各端口均 位并行输入 输出端口, 具有数据数据输入、输出能力; 具有数据数据输入、输出能力; 三种工作方式: 基本 基本、 选通 选通、 双向 双向; 三种工作方式:0基本、1选通、2双向; 可通过编程设置各端口的工作方式和数据传送 方向( 出 双向 双向)。 方向(入/出/双向)。
8255的内部结构 的内部结构
C下半部 下半部
图9.9 8285编程结构 编程结构
8255外部引脚 外部引脚
连接系统端的引线: 连接系统端的引线: D0~D7:数据线 ~ : CS:片选 : RD:读控制 : WR:写控制 : RESET:复位 : A1, A0:端口选择 :
A1 A0 0 0 0 1 1 0 1 1 选择 端口A 端口 端口B 端口 端口C 端口 控制寄存器 D0 ~ D7 CS RD WR RESET A1 A0
八、修改程序 将自己学号的最后6位同时显示出来 将自己学号的最后 位同时显示出来
注意: 注意: 1、编程前先在E盘目录下建一个文件夹,并取 编程前先在E盘目录下建一个文件夹, 一个英名名字,即名字中不能有汉字和数字。 一个英名名字,即名字中不能有汉字和数字。编完 程序将其存于该目录下。 程序将其存于该目录下。 2、做实验之前先取下跳线冒。 、做实验之前先取下跳线冒。 3、做完实验将实验箱右上角的CPU板卸下,再 、做完实验将实验箱右上角的CPU板卸下, CPU板卸下 关实验箱。 关实验箱。
七、实验程序流程图 初始化8255 初始化
取字形码
显示输出
九、实验程序
assume cs:code code segment org 100h start: nop nop start1: mov cx,08h ;设置循环次数 设置循环次数 mov bx,00feh ;bh=0000 0000,bl=1111 1110B mov dx, 04a6h ;控制寄存器地址 控制寄存器地址 mov ax,80h ;设置为 口输出,B口输出 设置为A口输出 设置为 口输出, 口输出 out dx, ax ;8255的初始化 的初始化 disp: mov di, offset segcod ;取偏移地址送入 寄存器 取偏移地址送入di寄存器 取偏移地址送入 mov dx, 04a0h ;A口地址 口地址 mov al, bh ;aL=0000 0000 mov ah, 00h ;ah=0000 0000 add di, ax ;得到第一个变量 字形码 得到第一个变量(字形码 得到第一个变量 字形码)3fh的偏移地址 的偏移地址 mov al, cs:[di] ;将3fh送入 寄存器 送入al寄存器 将 送入 out dx, al ;将字形码从A口输出 将字形码从 口输出
LED-A~LED-DP ~
(段控) 段控)
LED-1~LED-6 ~
(位控) 位控)
动态扫描显示字形码
LED数码管显示屏 数码管显示屏 跳线冒 电源电路
8255并行接口 并行接口 LED1 ~LED6 LED-A~LED-DP ~
CPU板座 板座
复位键
六、实验步骤
1、实验接线
本实验中8255的地址分配如下: 的地址分配如下: 本实验中 的地址分配如下 端口A 04A0H 端口 端口B 04A2H 端口 端口C 04A4H 端口 04A6H 控制口
CS0↔CS8255 ↔ 输出) (输出)PA0~PA7↔ LED-A~LED-DP(段控) ~ ↔ ~ (段控) 输出) (输出)PB0~PB5↔ LED-1~LED-6(位控) ~ ↔ ~ (位控)
2、编程并全速或单步运行。 编程并全速或单步运行。 全速运行时按动键盘,观察数码管的变化。 3、全速运行时按动键盘,观察数码管的变化。 编写实验报告。 4、编写实验报告。
四、实验设备
MUT— 型实验箱、8086CPU模块。 MUT—Ⅲ型实验箱、8086CPU模块。 模块
五、8255与8086及8255与键盘的电路连接 与 及 与键盘的电路连接
8255
DB D0~D7 系 统 总 线 IOW IOR A2 A1 A15~A19 ~ 地址 译码器 D0~D7 WR RD A1 A0 PB CS PC PA
本实验中8255的地址分配如下: 本实验中 的地址分配如下: 的地址分配如下 端口A 04A0H 端口 端口B 04A2H 端口 端口C 04A4H 端口 04A6H 控制口
mov dx, 04a2h ;B口地址 口地址 mov al, bl ;al=1111 1110B out dx, al ; al的内容从 口输出,使LED1有效 的内容从B口输出 的内容从 口输出, 有效 push cx ; 循环次数入栈保护 call delay pop cx ; 循环次数出栈 inc bh ;bh内容加 ,指向第二个字形码 内容加1, 内容加 rol bl,1 ; bl=1111 1110B循环左移,使下个位控有效 循环左移, 循环左移 loop disp jmp start1 delay: mov cx,43h ;延时程序,将此数改为最大观察结果 延时程序, 延时程序 delay1: nop nop loop delay1 ret segcod db 3fh,06h,5bh,4fh,66h,77h , code ends end start
三个端口可通过编程分别指 三个端口可通过编程分别指 编程 定为输入或输出口。 定为输入或输出口。
8255的初始化 8255的初始化
方式0:基本输入 输出方式 方式 :基本输入/输出方式 方式1: 方式 :选通方式 方式2:双向方式(仅 口 方式 :双向方式 仅A口)
8255工作前必须初始化,初始化时需设置: 工作前必须初始化,初始化时需设置: 工作前必须初始化
PA
PB
PC
8255外部引脚 8255外部引脚 连接外设端的引线: 连接外设端的Βιβλιοθήκη Baidu线:
PA0~PA7 PB0~PB7 PC0~PC7
分别对应PA、 、 分别对应 、PB、 PC三个 位输入/输 三个8位输入 三个 位输入/ 出端口
D0 ~ D7 CS RD WR RESET A1 A0 PC PB PA
工作方式 数据传送方向
输入 输出
通过向8255写入方式控制字实现: 写入方式控制字实现: 通过向 写入方式控制字实现
8255工作方式控制字格式 工作方式控制字格式
2.端口寻址方式 2.端口寻址方式
端口的访问格式: 对20H端口的访问格式:直接寻址 端口的访问格式 IN AL,20H ;从地址为 从地址为20H的端口输入一个字节到 的端口输入一个字节到AL 的端口输入一个字节到 OUT 20H,AL ;将AL的内容输出到地址为 的内容输出到地址为20H的端口 的内容输出到地址为 的端口 端口的访问格式: 对200H端口的访问格式:间接寻址 端口的访问格式 MOV DX,200H ;将端口地址送DX寄存器 将端口地址送 寄存器 IN AL,DX ;从地址为 从地址为200H的端口输入一个字节到 的端口输入一个字节到AL 的端口输入一个字节到 OUT DX,AL ;将AL的内容输出到地址为 的内容输出到地址为200H的端口 的内容输出到地址为 的端口