当前位置:文档之家› 实验五8255和LED数码管显示实验

实验五8255和LED数码管显示实验

实验五8255和LED数码管显示实验
实验五8255和LED数码管显示实验

基于8255的8LED显示的动态显示器

南京邮电大学 学年第学期 课程设计实验报告 题目基于8255的8LED显示的动态显示器专业通信工程 学号 姓名 指导老师 实验日期年月日

题目:基于8255的8LED显示的动态显示器 一,实验目的和要求 1,Proteus软件的MCS51单片机仿真学习 2,根据提供的参考工程,在proteus平台自己重新设计实验电路所需要的电器原理图,并在此基础上编写相对应的程序,实现其功能,学习proteus软件的使用,其中包括原理图器件的选取,原理图的电气连接,程序的编写编译以及运行,并能查出其错误等。 基本要求: 1. 用数码管正常显示数字“12345678”。 2. 通过按键可改变显示方式。 3. 设计显示屏的动态效果,用10个按键,每键对应一种滚动技术。 4. 基于8255口是指显示和键盘都由8255的IO口控制 发挥部分: 1 设计所有动作的联合效果。 2 设计二个变速按键,可多级改变滚动速度。 3 设计一台魔术电子钟,采用自动变换,随机组合,数据每10秒变换一次。 动态显示格式: 1 静止 2 整体闪烁 3 单字闪烁 4 整体向前、向后滚动 5 单字移动 6 两边向中间压缩 7 中间向两边扩张 8 上下压缩 9 文字上下滚动 10组合动作(每一字符执行上述一个动作,并同时运动) 二,实验仪器 微型计算机 三,实验原理 基于8255的8LED显示的动态显示器,是由8255a做键盘控制口连接c51,并驱动8位7段数码管实现相应显示功能。具体的,c51,p1口直接进行led数码管的位控制;p2口经74HC573译码后控制8255a的片选与内部奇存器选择;p0口连接8255a的D端口,并由它的PA口驱动7段led, PB口连接键盘,并做为I/O口与c51通信,以实现相应显示变化。 四,基本原件及其原理 单片机微型计算机简称单片机,是指在一块芯片体上集成了中央处理器CPU、随机存

用51单片机、8255、138、373等实现数码管显示按键数值的程序

姓名专业

学号 2013年10月28日 随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。 单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。

课题要求: 用51单片机、8255、138、373等实现数码管显示按键数值的程序 各芯片资料: 1.8255芯片资料如下 用8255A可编程器件扩展并行接口 8255: 有三个八位的并行口:PA、PB、PC。 有三种工作方式:方式0,方式1,方式2。 逻辑结构图: 包含四个部分:●三个并行数据输入输出端口 ●两个工作方式控制电路

●一个读写逻辑控制电路 ●八位总线缓冲器 ⑴.三个并行数据输入输出端口:A口;B口;C口 一般,A口,B口作为数据输入输出端口, C口作为控制/状态信息口,可以分为两个部分,分别与A口和B口配合使用,作为控制信息输出或状态信息输入。⑵.工作方式控制电路 工作方式控制电路有两个:A组控制和B组控制电路, A组控制用来控制A口和C口的上半部分PC7——PC4; B组控制用来控制B口和C口的下半部分PC3——PC0; 两组控制电路具有一个控制命令寄存器,用来接收来自 CPU的数据(控制字),以决定芯片的工作方式,或对 C口按位进行清“0”或者置“1”。 ⑶.总线缓冲器 三态双向八位缓冲器,作为微处理器数据总线与8255之间的接口,用来传送命令、数据及状态信息。 ⑷.读写逻辑控制电路 读写逻辑控制电路接受CPU来的控制信号:读、写、地址及复位信息,根据控制信号的要求,将数据读出,送往CPU,或者将CPU来的信息写入端口。 引脚说明: CS:片选信号,低电平有效,表示芯片被选中;

8255和led数码管显示-微机原理(精)

data segment ioport equ 2400h io8255a equ ioport+008h io8255b equ ioport+00bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num (0--9h:',0dh,0ah, '$' data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255b ; 使 8255的 A 口为输出方式mov al,80h ;10000000B ,控制字 PA 以方式 0输出out dx,al zby: mov dx,offset mesg1 ; 显示提示信息 mov ah,09h int 21h mov ah,01 ; 从键盘接收字符 int 21h

cmp al,'0' ; 是否小于 0 jl exit ; 如若小于 0,则跳转到 exit 退出程序 cmp al,'9' ; 是否大于 9 jg exit ; 如若大于 9,则跳转到 exit 退出程序 sub al,30h ; 将所得字符的 ASCII 码减 30H ,数字键 ascii 码同数值转换 mov bx,offset led ;bx 为数码表的起始地址 xlat ; 求出相应的段码 mov dx,io8255a ; 从 8255的 A 口输出 out dx,al jmp zby ; 转 zby exit: mov ah,4ch ; 返回 DOS int 21h code ends end start 动态显示 : data segment ioport equ 0c800h-0280h io8255a equ ioport+28ah io8255b equ ioport+28bh

实验2:8255七段数码管静动态显示

微机实验报告书 学号:姓名:班级: 同组名单:实验日期: 2012.12.21 实验题目:七段数码管的静态显示 实验目标:掌握数码管显示数字的原理 (功能:键盘输入一位十进制数字(0~9),用七段数码管显示。) 解题思路: 1.静态显示:按图 10(a)连接好电路,将8255的A口PA0-PA6分别与七段 数码管的断码驱动输入端a-g项链,位码驱动输入端S1接+5V,S0、dp 接地。编程从键盘输入一位十进制数字,在七段数码管上显示出来。 2.动态显示:按图10(b)连接好电路,七段数码管段码连接不变,位码驱 动输入端S1,S0接8255C口的PC1,PC0。编程在两个数码管上显示“56”。程序框图:静态显示见图11(a),动态显示见图11(b)。

关键问题分析(静态显示): 1、按键判断和程序结束判断 按键来说,由于程序中必须输入数字,所以没有必要对是否按键进行判断,只需要判断按键是否在0-9之间即可。用以下程序即可: cmp al,'0' jl exit ; jl,条件转移指令,即在小于时转移 cmp al,'9' jg exit ;jg, 条件转移指令,即在大于时转移程序中还要用到“cmp”即比较指令,用来比较输入数与0、9的大小关系。程序结束:如若输入的数字小于0或者大于9,必须直接跳出程序,即结束指令必须单独占用一个程序段,这样,程序顺序执行完毕也可以顺利返回DOS。 2、七段码显示。

实验指导书中给出了七段码的字型代码。这样一来,七段码的显示只需要用换码指令“XLAT”便可以轻松实现。前提是必须将七段码字型编成数码表以字符串的形式写进程序中。 3、数字键ASCII码与数值间的转换。 因为0的ASCII码为30H,所以数字键ASCII码与数值间的转换时只需减去30H即可,可用下列语句实现: sub al,30h 程序清单: 静态显示: data segment ioport equ 0c800h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$' data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255b ;使8255的A口为输出方式 mov al,80h ;10000000B,控制字PA以方式0输出 out dx,al zby: mov dx,offset mesg1 ;显示提示信息 mov ah,09h int 21h mov ah,01 ;从键盘接收字符 int 21h cmp al,'0' ;是否小于0 jl exit ;如若小于0,则跳转到exit退出程序 cmp al,'9' ;是否大于9 jg exit ; 如若大于9,则跳转到exit退出程序 sub al,30h ;将所得字符的ASCII码减30H,数字键ascii码同数值转换 mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp zby ;转zby exit: mov ah,4ch ;返回DOS

8255和LED数码管显示实验

实验八 8255和LED数码管显示实验 二、实验电路 实验电路如图2及图3所示。 图2 静态显示电路图3 动态显示电路 五、实验项目 1.静态显示:按图2连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。 程序框图、源代码(含注释)及实验结果如下: 1、静态显示 ;0-9程序: data segment ioport equ2400h-280h io8255a equ ioport+288h io8255ctr equ ioport+28bh led db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db0dh,0ah,'Input a num (0--9),other key is exit:',0dh,0ah,'$' data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,io8255ctr ;使8255的A口为输出方式 mov ax,80h out dx,al sss: mov dx,offset mesg1 ;显示提示信息 mov ah,9 int21h mov ah,1;从键盘接收字符 int21h

cmp al,'0' ;是否小于0 jb exit ;若是则退出 cmp al,'9' ;是否大于9 ja exit ;若是则退出 sub al,30h;将所得字符的ASCII码减30H mov bx,offset led ;bx为数码表的起始地址 xlat ;求出相应的段码 mov dx,io8255a ;从8255的A口输出 out dx,al jmp sss ;转SSS exit: mov ax,4c00h;返回 int21h code ends end start 2.动态显示(选做):按图3连接好电路,七段数码管段码连接不变,位码驱动输入端S1S0接8255C口的PC1、PC0。编程在两个数码管上显示56。 程序框图、源代码(含注释)及实验结果如下: data segment ioport equ 2400h-280h io8255a equ ioport+288h io8255c equ ioport+28Ah io8255ctr equ ioport+28bh mesg1 db 0dh,0ah,' Press any key to exit!',0dh,0ah,'$' data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov dx,offset mesg1 ;显示提示信息 mov ah,9 int 21h mov dx, io8255ctr ;将8255设为A口输出 mov al,80h out dx,al loop1: mov dx, io8255a mov al,6Dh out dx,al mov dx, io8255c mov al,2

8255a1(七段数码管)

实验4七段数码管 教具、教学素材准备:实验箱,多媒体 教学方法:网络讲授与实作 教学时数:2 一、实验目的 掌握数码管显示数字的原理 二、实验原理和内容 按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动 输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程 从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。 三、编程 1、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码,位码加反相驱动器,位码输入端高电平选中。 2、七段数码管的字型代码表如下表:

data segment ioport equ 0d400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh mesg1 db 0dh,0ah,'Input a num(0--9h):',0dh,0ah,'$' data ends

code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov dx,io8255b;使8255的A口为输出方式mov ax,80h out dx,alsss:mov dx,offset mesg1;显示提示信息mov ah,09h int 21h mov ah,01;从键盘接收字符 int 21h cmp al,'0';是否小于0 jl exit;若是则退出 cmp al,'9';是否大于9 jg exit;若是则退出 sub al,30h;将所得字符的ASCII码减30H mov bx,offset led;bx为数码表的起始地址xlat;求出相应的段码 mov dx,io8255a;从8255的A口输出 out dx,al jmp sss;转SSS exit:mov ah,4ch;返回DOS int 21h code ends end start 教学后记:

用51单片机、8255、138、373等实现数码管显示按键数值的程序.(DOC)

姓名 专业 学号 2013年10月28日

随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。 单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机了解计算机原理与结构的最佳选择。现在,这种单片机的使用领域已十分广泛。彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。 单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。 课题要求: 用51单片机、8255、138、373等实现数码管显示按键数值的程序

各芯片资料: 1.8255芯片资料如下 用8255A可编程器件扩展并行接口 8255: 有三个八位的并行口:PA、PB、PC。 有三种工作方式:方式0,方式1,方式2。 逻辑结构图: 包含四个部分:●三个并行数据输入输出端口 ●两个工作方式控制电路 ●一个读写逻辑控制电路 ●八位总线缓冲器 ⑴.三个并行数据输入输出端口:A口;B口;C口

一般,A口,B口作为数据输入输出端口, C口作为控制/状态信息口,可以分为两个部分,分别与A口和B口配合使用,作为控制信息输出或状态信息输入。⑵.工作方式控制电路 工作方式控制电路有两个:A组控制和B组控制电路, A组控制用来控制A口和C口的上半部分PC7——PC4; B组控制用来控制B口和C口的下半部分PC3——PC0; 两组控制电路具有一个控制命令寄存器,用来接收来自 CPU的数据(控制字),以决定芯片的工作方式,或对 C口按位进行清“0”或者置“1”。 ⑶.总线缓冲器 三态双向八位缓冲器,作为微处理器数据总线与8255之间的接口,用来传送命令、数据及状态信息。 ⑷.读写逻辑控制电路 读写逻辑控制电路接受CPU来的控制信号:读、写、地址及复位信息,根据控制信号的要求,将数据读出,送往CPU,或者将CPU来的信息写入端口。 引脚说明: CS:片选信号,低电平有效,表示芯片被选中; RD:读操作,低电平有效,控制数据读出; WE:写操作,低电平有效,控制数据写入; A1,A0:地址线, 端口选择信号,用来选择8255内部端口:

8255与多位LED数码管的显示

实验2 8255与多位LED数码管的显示实验 一、实验目的 掌握8255A的编程原理与多位LED数码管的显示方法。 二、实验设备 MUT—Ⅲ型实验箱、8086CPU模块。 三、实验内容 把待显示字符的LED代码组成一个七段代码表,存放在存储器中。通过对8255编写程序在多位LED 数码管上显示输出。 1、设计出8255与8086接口对应硬件电路,并完成相应的连接 2、设计出8255与LED数码管的对应硬件接口电路,并完成相应的连接 3、编写程序,在数码管上显示相应字符或数字 4、写出习题部分要求的程序 四、实验原理介绍 本实验用到两部分电路:8255可编程并口电路和LED数码管的显示电路。实验箱数码管采用共阴极形式。 五、实验步骤 1、实验接线 CS0?CS8255 (输出)PA0~PA7? LED-A~LED-DP(段控) (输出)PB0~PB5? LED-1~LED-6(位控) 2、编程并全速或单步运行。 3、全速运行时观察数码管的变化。 六、实验提示 1.8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。本实验中用到8255A 的A口和B口两个端口,A口和B口均作为输出口。实验中,8255A工作于基本输入输出方式(方式 0)。 2.用8255A端口B的PB0~PB5,控制LED的显示位,即8255A的端口B为LED数码显示器 的位控制端口。当B口中一位输出为“0”时,便在相应数码管的阴极加上了低电平,这个数码管就可 以显示数据。但具体显示什么数码,则由另一个端口,即段控制端口决定。段控制端口由6个数码 管共用,因此当CPU送出一个显示代码时,各数码管的阳极都收到了此代码。但是,只有位控制码 中低位对应的数码管才会导通而显示数字,其他管子并不发光。 3.对显示器采用动态扫描法控制显示。所谓动态扫描,就是逐个接通6位LED,把端口A送出 的代码送到相应的位上去显示。此时,8255A的端口A送出的一个七段码,虽然各位LED都能接收 到,但由于端口B只有一位输出低电平,所以只有一个LED的相应段导通显示数字,其他LED不 亮。这样,端口A依次输出LED七段代码,端口B依次选中一位LED,便可以在各位上显示不同 的数据。每个数码管显示数字,并不断地重复显示,由于人的视觉惯性作用,当重复频率达到一定 程度,不断地向8位LED输送显示代码和扫描各位时,就可以实现相当稳定的数字显示。显而易见,

利用8255和5单片机实现数码管显示按键值的实验共21页

物理与电子工程学院 单片机原理及其应用 期 中 大 作 姓名: 专业: 学号: 课题:使用8255和51单片机实现对数码管显示案件数值控制 要求:从0--15,数码管上分别显示0--9,A--F,4*4矩阵键盘 芯片资料 8255 一、简介 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O 口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。 二、内部结构 8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构

分为3个部分:与CPU连接部分、与外设连接部分、控制部分。 1)与CPU连接部分 根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C 口及控制寄存器,故地址线为两根A0~A1。此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下: (1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。 (2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。 (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。 2)与外设接口部分 根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下: (1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。 (2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。 (3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数

LED数码管显示实验

LED数码管显示实验 一、实验目的: (1)进一步掌握8255的工作原理。 (2)学习LED数码管的显示原理。 (3)熟悉LED数码管显示器的接口设计方法。 二、实验设备: MUT—Ⅲ型实验箱、8086CPU模块。 三、实验内容: 编程实现在六位LED数码管上“E”字跑马灯。 四、实验电路原理图: CPU 8255A 八段LED数码管显示器采用共阴极接法,其段码由8255A的A口输出,通过PA0~PA7分别送给LED1~LED6的段码输入端(LED-A,LED-B,…,LED-G,LED-DP)。显示器的位扫描信号经B口输出,通过PB0~PB5提供给数码管的公共极。数码管采用动态扫描的方式显示。 八段LED数码管显示原理: 如下图(a)所示,LED数码管的主要部分是由八段发光二极管构成,这八段发光二极管分别称为a,b,c,d,e,f,g和DP(小数点)。通过7个发光二极管的不同组合,可以显示数字0~9和字母A~F,从而实现十六进制数的显示。 LED数码管可以分为共阳极和共阴极两种结构,图(b)为共阳极结构,数码显示端输入低电平有效,当某一段为低电平时,该段便发光;图(c)为共阴极结构,数码显示端输

入高电平有效,当某一段得到高电平时,便发光。例如,当a,b,g,e,d为高电平,而其他段为低电平时,则显示数字“2”。 显示段码与各段的对应关系如下图所示。根据对应关系,LED数码管在共阴极结构下,数字“2”的显示段码为01011011 B(即5BH) 下表是数字0~9与字母A~F的七段数码管显示段码。 五、实验步骤: (1)实验连线 PA0连LED-A,PA1连LED-B,PA2连LED-C,PA3连LED-D,PA4连LED-E,PA5 连LED-F,PA6连LED-G,PA7连LED-DP; PB0连LED1,PB1连LED2,PB2连LED3, PB3连LED4,PB4连LED5,PB5连LED6。CS0 CS8255(注意:运行程序前,需 要除去电路板上数码管右侧的跳线!表示使用外部接口电路) (2)编写程序,全速运行,观察实验结果 六、参考程序 CODE SEGMENT ASSUME CS:CODE ORG 0100H START: MOV DX, 04A6H ;8255控制口地址 MOV AL, 80H ;A口和B口工作于方式0,输出 OUT DX, AL

基于8255驱动的数码管显示和键盘电路设计与编程

基础课程设计(论文) 基于8255驱动的数码管显示和键盘电路设计与编程专业:电气工程及其自动化 指导教师: 小组成员: 信息技术学院电气工程系 2014年10月28

摘要 本文主要是基于8255微处理器芯片,设计中包括数码管显示和矩阵键盘输入部分,可以完成一些简单4位以内的十进制计算。全文较为详细的介绍了芯片工作原理,硬件和软件的设计以及各部分的驱动程序和流程图。 关键词:矩阵按键,数码显示,运算

目录 摘要................................................... I 绪论 (1) 1 课程设计任务要求及规定 (2) 1.1 课程设计要求 (2) 1.2课程设计规定 (2) 2 整体设计思想 (2) 3硬件设计 (3) 3.1 原器件件清单 (3) 3.2 微处理器8086芯片 (3) 3.3 可编程并行接口芯片8255A (4) 3.4 LED数码管 (6) 3.5 4×4矩阵按键 (6) 3.6 硬件原理图 (7) 4 软件设计 (8) 4.1 程序流程图 (8) 4.2 总程序设计 (10) 4.3 按键扫描程序设计 (10) 4.4 矩阵键盘程序设计 (12) 4.5 运算程序设计 (17) 4.6 显示程序设计 (18) 4.7 延时子程序 (20) 参考文献 (21)

绪论 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。 通过课程设计,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。 通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。

使用8255A控制led

单片机第五周任务 一.实验要求 8255A的A口作为输出功能,连接8盏LED灯。 8255A的B口作为输入功能,连接8个按钮。 当B口的某一按钮按下,对应的LED灯就点亮同时。 同时,数码管上显示对应的按键号。如B口按钮1按 下,1号LED灯就点亮,8段数码管显示1. 二.硬件分析

三.代码分析 #include //单片机头文件 #include //扩展地址解析头文件 #define PAC XBYTE[0x7FFF] //控制地址定义#define PA XBYTE[0x7CFF] //A口地址定义#define PB XBYTE[0x7DFF] //B口地址定义#define PC XBYTE[0x7EFF] //C口地址定义

#define uint unsigned int #define uchar unsigned char sbit RST=P1^0; //复位引脚定义sbit RD1=P3^7; //读引脚定义sbit RW=P3^6; //写引脚定义unsigned char code Tab[]={0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80}; //共阳数码管码表 void main(void) //主函数 { RST=1; //复位置1 RST=0; //复位置0 PAC=0x82; //设控制字 PB=0xff; PA=0xff; P1=0xff; while(1) { switch(PB) { case 0xfe: {

P1=Tab[0]; PA=0xfe; break; } case 0xfd: { P1=Tab[1]; PA=0xfd; break; } case 0xfb: { P1=Tab[2]; PA=0xfb; break; } case 0xf7: { P1=Tab[3]; PA=0xf7; break;

微机接口实验三LED数码管显示

实验三 8255和LED数码管显示实验 一、实验目的 1.掌握并行接口8255A的工作原理及使用方法。 2.了解七段数码管显示数字的原理。 3.掌握多位数码显示的接口技术。 二、实验电路 实验电路如图3及图4所示。 图3 静态显示电路图4 动态显示电路 三、实验项目 1.静态显示:按图3连接好电路,将8255A的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g 相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。 2.动态显示:按图4连接好电路,七段数码管段码连接不变,位码驱动输入端S1S0接8255C口的PC1、PC0。编程在两个数码管上显示56。 四、编程提示 1.实验台上的七段数码管为共阴极,码段采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。 2.七段数码管的字形代码如下表: 3.程序参考框图:

五、实验程序和结果 (要求给出程序、注释、运行结果) assume cs:code a) 静态显示程序 b) 动态显示程序

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 ;设置为A口输出,B口输出 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口输出 mov dx, 04a2h ;B口地址 mov al, bl ;al=1111 1110B out dx, al ; al的内容从B口输出,使LED1有效 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和51单片机实现数码管显示按键值的实验

物理与电子工程学院单片机原理及其应用 期 中 大 作 姓名: 专业: 学号:

课题:使用8255和51单片机实现对数码管显示案件数值控制 要求:从0--15,数码管上分别显示0--9,A--F,4*4矩阵键盘 芯片资料 8255 一、简介 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。 二、内部结构 8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部分、控制部分。 1)与CPU连接部分 根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。此外CPU 要对8255进行读、写与片选操作,所以控制线为片选、复位、读、

写信号。各信号的引脚编号如下: (1)数据总线DB:编号为D0~D7,用于8255与CPU传送8位数据。 (2)地址总线AB:编号为A0~A1,用于选择A、B、C口与控制寄存器。 (3)控制总线CB:片选信号、复位信号RST、写信号、读信号。当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。 2)与外设接口部分 根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1)A口:编号为PA0~PA7,用于8255向外设输入输出8位并行数据。 (2)B口:编号为PB0~PB7,用于8255向外设输入输出8位并行数据。 (3)C口:编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。 3)控制器 8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A

实验四 8255与LED数码管的显示

实验四8255a与LED数码管的显示 一. 实验目的 掌握8255A的编程原理与LED数码管的显示方法。 二. 实验环境 硬件环境:奔3以上处理器,512MB以上内存空间 软件环境:windowsXP以上操作系统,emu8086编译环境,Proteus7.5sp3。 三.实验内容与完成情况 1.仿真电路图 2.实验原理 (1)8255A可编程I/O接口芯片具有三种工作方式:方式0(简单的输入输出方式)、方式1(选通式输入/输出方式)和方式2(双向数据传送方式)。它分别能够控制把CPU的控制命令或输出数据送至相应的端口,也可以控制把外设的状态信息或输入的数据通过相应端口送至CPU。 (2)8255芯片具有三个数据端口A、B和C。每个端口都为8位,可以由编程来选择作为输入端口或输出端口。在一般情况下,常利用A、B两个端口来完成与外设之间的数据交换过程,而利用C端口来完成与外设的状态控制信息的交换过程。 3.实验过程 首先打开电源,由8086向8255a发出指令,选定8255的工作方式,然后,读A口数据,高四位清零,取LED灯偏移地址。当4个按钮的开关情况发生变化时,电信号的变化被读入8255a,经一系列的信号处理,从B口输出到LED灯显示数字。 4.编程调试程序 data segment ; add your data here! PORTD EQU 66H ;CPU-8255控制寄存器 PORTA EQU 60H ;8086 A1接8255 A0;A2 接8255A1 PORTB EQU 62H

PORTC EQU 64H REGIS EQU 10010000B ;A IN, B OUT,AB口工作方式0 LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H data ends stack segment dw 128 dup(0) stack ends code segment ASSUME CS:code, DS:data BEGIN: MOV DX,PORTD ;设置8255工作方式 MOV AL,REGIS ;control byte OUT DX,AL G1: MOV DX,PORTA IN AL,DX ;读A口数据 AND AL,00001111B ;高四位清零 ;数码管译码 MOV BX,OFFSET LED XLAT ;取LED表 ;------------- PUSH CX MOV CX,40H ;延时 DELAY:LOOP DELAY POP CX ;------------- MOV DX,PORTB OUT DX,AL JMP G1 code ends end BEGIN ; set entry point and stop the assembler. 四.出现的问题 1.不知道如何选定8255a的A,B,C三个端口的工作状态; 2.对74ls183的电信号处理机制不清楚。 五.对问题的解决方法 1.查看8255a的方式控制字说明。 2.询问老师,问题得以解决。

微机原理8255A并行接口按键数码管显示讨论报告

讨论课报告 学校:上海电机学院 班级:电子13XX 学号:XXXXXXXX 姓名:WX 一、题目:通过8255A 并行接口,8086CPU 连接LED 数码管、4X4矩阵键盘。按下任意键,数码管显示对应键号。 二、硬件设计 讨论问题: (1)CPU8086与8255A 的连接问题: ● 复用引脚上的数据信号与地址信号如何分离?画出电路连接示意图,解释实现的方法。 答: 将8086上的20位复用数据地址引脚分别接数据缓存器和地址锁存器在8086总线周期的T1期间作为存储器/IO 地址总线将地址锁存在地址锁存器中,另外期间作为数据总线将8位数据缓存在数据缓存器中。缓存器与8255A 数据引脚相连,地址锁存后经过译码与地址线相连。 ● 假设8255A 的芯片地址范围为80H~86H (偶地址),利用74LS138译码器实现8255A 芯 DEN DT/R 8086 AB/TB ALE M/IO WR RD 数据缓存 地址锁存 地址译码 D7~D0 A0 A1 8255A CS WR RD A15~A3 A1 A2

片的片选控制,画出电路连接示意图,解释译码电路的设计原理。 8086系统有16根数据线,而8255A 只有8根数据线,将8255A 的8条数据线与低8位数据线相连。此时8255A 的4个端口地址必须为偶地址,即8086寻址8255A 时A0脚必须为低,将8255A 的A0、A1分别接8086的A1、A2脚。 由图可见,8255A 的数据线D7~D0与8086的低8位数据总线D7~D0相连,A0必须总等于0,用地址线的A2、A1来选择片内4个端口。图中地址线A7接译码器的G1,M/IO 与G2a 相连,A6、A5接或门输入端,或门输出与G2b 相连。当A7A6A5=100,A4A3A0=000时,Y0=0,选中8255A ,4个端口地址分别为80H 、82H 、84H 和86H ,对应于8255A 的A 口、B 口、C 口和控制寄存器。 (2)LED 数码管与8255A 的连接问题: ● 数码管采用共阴极连接,需要驱动电路,请画出与8255APA 口的连接示意图,简要说明。 D7~D0 RD WR RESET M/IO 8086 A7 A6 A5 A4 A3 A0 A2 A1 D7~D0 RD WR RESET CS 8255A A1 A0 G2a Y0 Y1 G1 Y2 G2b Y3 74LS138 Y4 C Y5 B Y6 A Y7 ≥1 +5V

相关主题
文本预览
相关文档 最新文档