利用8255和51单片机实现数码管显示按键数值的程序_第1页
利用8255和51单片机实现数码管显示按键数值的程序_第2页
利用8255和51单片机实现数码管显示按键数值的程序_第3页
利用8255和51单片机实现数码管显示按键数值的程序_第4页
利用8255和51单片机实现数码管显示按键数值的程序_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

期中大作业 学院: 物理与电子信息工程学院课 题 :【 利 用 8255和 51单 片 机 实 现 数 码 管 显 示 按 键 数 值 的 程 序 】要 求 :【 4*4矩 阵 键 盘 , 按 0到 15, 数 码 管 上 分 别 显 示 09, AF】芯 片 资 料 :8255:8255是 Intel公 司 生 产 的 可 编 程 并 行 I/O接 口 芯 片 , 有 3个 8位 并 行 I/O口 。具 有 3个 通 道 3种 工 作 方 式 的 可 编 程 并 行 接 口 芯 片 ( 40引 脚 ) 。 其 各 口 功 能可 由 软 件 选 择 , 使 用 灵 活 , 通 用 性 强 。 8255可 作 为 单 片 机 与 多 种 外 设 连 接时 的 中 间 接 口 电 路 。8255作 为 主 机 与 外 设 的 连 接 芯 片 , 必 须 提 供 与 主 机 相 连 的 3个 总 线 接 口 ,即 数 据 线 、 地 址 线 、 控 制 线 接 口 。 同 时 必 须 具 有 与 外 设 连 接 的 接 口A、 B、 C口 。 由 于 8255可 编 程 ,所 以 必 须 具 有 逻 辑 控 制 部 分 , 因 而 8255内 部结 构 分 为 3个 部 分 : 与 CPU连 接 部 分 、 与 外 设 连 接 部 分 、 控 制 部 分 。8255特 性 :1.一 个 并 行 输 入 /输 出 的 LSI芯 片 ,多 功 能 的 I/O器 件 ,可 作 为 CPU总 线 与 外 围 的接 口 。2.具 有 24个 可 编 程 设 置 的 I/O口 ,即 3组 8位 的 I/O口 , 分 别 为 PA口 、 PB口 和 PC口 。 它 们 又 可 分 为 两 组 12位 的 I/O口 : A组 包 括 A口 及 C口 (高 4位 ,PC4PC7),B组 包 括 B口 及 C口 (低 4位 ,PC0PC3)。 A组 可 设 置 为 基 本 的 I/O口 ,闪 控 (STROBE)的 I/O闪 控 式 ,双 向 I/O三 种 模 式 ;B组 只 能 设 置 为 基 本 I/O或 闪 控 式 I/O两 种 模 式 ,而这 些 操 作 模 式 完 全 由 控 制 寄 存 器 的 控 制 字 决 定 .引脚说明 RESET:复 位 输 入 线 , 当 该 输 入 端 处 于 高 电 平 时 , 所 有 内 部 寄 存 器 ( 包 括 控 制寄 存 器 ) 均 被 清 除 , 所 有 I/O口 均 被 置 成 输 入 方 式 。 CS:芯 片 选 择 信 号 线 , 当 这 个 输 入 引 脚 为 低 电 平 时 ,即 CS=0时 ,表 示 芯 片 被 选中 , 允 许 8255与 CPU进 行 通 讯 ; CS=1时 , 8255无 法 与 CPU做 数 据 传 输 。 RD:读 信 号 线 , 当 这 个 输 入 引 脚 为 低 电 平 时 ,即 CS=0且 RD=0时 ,允 许 8255通 过数 据 总 线 向 CPU发 送 数 据 或 状 态 信 息 , 即 CPU从 8255读 取 信 息 或 数 据 。 WR:写 入 信 号 , 当 这 个 输 入 引 脚 为 低 电 平 时 ,即 CS=0且 WR=0时 ,允 许 CPU将 数据 或 控 制 字 写 入 8255。 D0 D7:三 态 双 向 数 据 总 线 , 8255与 CPU数 据 传 送 的 通 道 , 当 CPU 执 行 输 入输 出 指 令 时 , 通 过 它 实 现 8位 数 据 的 读 /写 操 作 , 控 制 字 和 状 态 信 息 也 通 过 数据 总 线 传 送 。 PA0 PA7:端 口 A输 入 输 出 线 , 一 个 8位 的 数 据 输 出 锁 存 器 /缓 冲 器 , 一 个 8位的 数 据 输 入 锁 存 器 。 PB0 PB7:端 口 B输 入 输 出 线 , 一 个 8位 的 I/O锁 存 器 , 一 个 8位 的 输 入 输 出 缓冲 器 。 PC0 PC7:端 口 C输 入 输 出 线 , 一 个 8位 的 数 据 输 出 锁 存 器 /缓 冲 器 , 一 个 8位 的 数 据 输 入 缓 冲 器 。 端 口 C可 以 通 过 工 作 方 式 设 定 而 分 成 2个 4位 的 端 口 , 每 个 4位 的 端 口 包 含 一 个 4位 的 锁 存 器 , 分 别 与 端 口 A和 端 口 B配 合 使 用 , 可作 为 控 制 信 号 输 出 或 状 态 信 号 输 入 端 口 。A1,A0:地 址 选 择 线 ,用 来 选 择 8255的 PA口 ,PB口 ,PC口 和 控 制 寄 存 器 。 当 A1=0, A0=0时 ,PA口 被 选 择 ;当 A1=0, A0=1时 ,PB口 被 选 择 ;当 A1=1, A0=0时 ,PC口 被 选 择 ;当 A1=1. A0=1 时 ,控 制 寄 存 器 被 选 择 。74ls373 芯片资料: 74ls373 是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的 8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块 74ls373 芯片.本文将介绍 74ls373 的工作原理,引脚图(管脚图),内结构图、主要参数及在单片机系统中的典型应用电路.L低电平;H高电平;X不定态;Q0建立稳态前 Q 的电平;G输入端,与 8031ALE 连高电平:畅通无阻低电平:关门锁存。图中 OE使能端,接地。当 G=“1”时,74LS373 输出端 1Q8Q 与输入端 1D8D 相同;当 G 为下降沿时,将输入数据锁存。E G 功 能0 0 直通 Qi = Di0 1 保持(Qi 保持不变)1 X 输出高阻774ls373 在单片机系统中的应用电路图:当 74LS373 用作地址锁存器时,应使 OE 为低电平,此时锁存使能端 C 为高电平时,输出 Q0Q7 状态与输入端 D1D7 状态相同;当 C 发生负的跳变时,输入端D0D7 数据锁入 Q0Q7。51 单片机的 ALE 信号可以直接与 74LS373 的 C 连接。在 MCS-51 单片机系统中,常采用 74LS373 作为地址锁存器使用,其连接方法如上图所示。其中输入端 1D8D 接至单片机的 P0 口,输出端提供的是低 8 位地址,G 端接至单片机的地址锁存允许信号 ALE。输出允许端 OE 接地,表示输出三态门一直打开。1D8D 为 8 个输入端。1Q8Q 为 8 个输出端。G 是数据锁存控制端;当 G=1 时,锁存器输出端同输入端;当 G 由“1”变为“0”时,数据输入锁存器中。OE 为输出允许端;当 OE=“0”时,三态门打开;当 OE=“1”时,三态门关闭,输出呈高阻状态。(1).1 脚是输出使能(OE),是低电平有效,当 1 脚是高电平时,不管输入3、4、7、8、13、14、17、18 如何,也不管 11 脚(锁存控制端,G)如何,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部呈现高阻状态(或者叫浮空状态);(2).当 1 脚是低电平时,只要 11 脚(锁存控制端,G)上出现一个下降沿,输出2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)立即呈现输入脚 3、4、7、8、13、14、17、18 的状态.锁存端 LE 由高变低时,输出端 8 位信息被锁存,直到 LE 端再次有效。 当三态门使能信号 OE 为低电平时,三态门导通,允许 Q0Q7 输出,OE 为高电平时,输出悬空。74LS138:无论从逻辑图还是功能表我们都可以看到 74LS138的八个输出引脚,任何时刻要么全为高电平 1芯片处于不工作状态,要么只有一个为低电平 0,其余 7个输出引脚全为高电平 1。如果出现两个输出引脚同时为 0的情况,说明该芯片已经损坏。80C51 单片机引脚图及引脚功能介绍:单片机的 40 个引脚大致可分为 4 类:电源、时钟、控制和 I/O 引脚。 电源: VCC - 芯片电源,接+5V; VSS - 接地端; 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有 4 根, ALE/PROG:地址锁存允许/片内 EPROM 编程脉冲 ALE 功能:用来锁存 P0 口送出的低 8 位地址 PROG 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,此引脚输入编程脉冲。 PSEN:外 ROM 读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD 功能:在 Vcc 掉电情况下,接备用电源。 EA/Vpp:内外 ROM 选择/片内 EPROM 编程电源。 EA 功能:内外 ROM 选择端。 Vpp 功能:片内有 EPROM 的芯片,在 EPROM 编程期间,施加编程电源Vpp。 I/O 线80C51 共有 4 个 8 位并行 I/O 端口:P0、P1、P2、P3 口,共 32 个引脚。P3 口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。拿到一块单片机,想要使用它,首先必须要知道怎样去连线,我们用的一块89C51 的芯片为例,我们就看一下如何给它连线。1、 电源:这当然是必不可少的了。单片机使用的是 5V 电源,其中正极接40 管脚,负极(地)接 20 管脚。 2、 振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接 18、19 脚。只要买来晶体震荡器,电容,连上就能了,按图 1 接上即可。 3、 复位管脚:按图 1 中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。 4、 EA 管脚:EA 管脚接到正电源端。 至此,一个单片机就接好,通上电,单片机就开始工作了。【实验电路图】【单片机源程序】#include /51 单片机头文件#include /该可使用其中定义的宏来访问绝对地址#include #define uchar unsigned char /宏的定义变量类型 uchar 代替 unsigned char#define uint unsigned int /宏的定义变量类型 uint 代替 unsigned int#define PA8255 XBYTE0x4000 / 8255 的 A 口地址#define PB8255 XBYTE0x4001 / 8255 的 B 口地址#define PC8255 XBYTE0x4002 / 8255 的 C 口地址#define PD8255 XBYTE0x4003 / 8255 的控制口地址uchar temp,key; /定义变量 temp,key 为按键键值,无实际意义void delay(uint z) /延迟程序uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void ini_8255() /初始化 8255 函数PD8255 = 0x81; void display() /显示函数,不可删除,删除出现连闪情况PB8255 = 0xff; / PB8255 全部置 1,数码管清 0PA8255 = 0x00; / PA8255 全部置 0,对数码管进行位选,选中六个数码管delay(100); /延迟 void keyscan(void) /按键扫描程序,让数码管显示按键数值 PC8255 = 0xef; /PC8255 选中 JL1 列,JL1 置 0,其他置 1 if(temp != 0xef) delay(10); /延迟防抖temp = PC8255;switch(temp)case 0xee: key = 0x0f; PB8255 = 0x8e; /第 15 按键键值,数码管显示Fbreak;case 0xed: key = 0x0b; PB8255 = 0x83; /第 11 按键键值,数码管显示Bbreak;case 0xeb: key = 0x07; PB8255 = 0xf8; /第 7 按键键值,数码管显示 7break;case 0xe7: key = 0x03; PB8255 = 0xb0; /第 3 按键键值,数码管显示3break;while(temp != PC8255);PC8255 = 0xdf;if(temp != 0xdf) /PC8255 选中 JL2 列,JL2 置 0,其他置 1 delay(10);temp = PC8255;switch(temp)case 0xde: key = 0x0e; PB8255 = 0x86; /第 14 按键键值,数码管显示E break;case 0xdd: key = 0x0a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论