并行IO口扩展
- 格式:ppt
- 大小:737.00 KB
- 文档页数:33


实验八、8155可编程并行I/O扩展接口实验
一、实验目的
1.熟悉8155并行接口芯片的基本工作原理及应用
2.掌握单片机与8155的接口电路设计和编程
二、实验设备
1. 仿真器
2. 8155可编程并行I/O扩展接口模块
3. 单片机最小系统模块
4. 数码管动态扫描显示模块
5.矩阵式键盘模块
三、实验要求
连接单片机最小系统、8155扩展接口实验模块、数码管动态扫描显示模块、矩阵式键盘模块,要求在键盘按下时,8位LED动态显示器上最低位显示相应的字符,以前的各位字符向高位推进1位。
四、实验原理
8155芯片内包含有256字节RAM,2个8位、1个6位的可编程并行I/O口,和1个14位定时器/计数器。由于8155既具有RAM又具有I/O口,因而是单片机系统中最常用的外围接口芯片之一。
4.1引脚说明
8155共40个引脚,采用了双列直插的封装,主要引脚功能如下:
AD7—AD0:地址数据总线;单片机和8155之间的地址、数据、命令、状态信息都是
通过它来传送的。
CE:片选信号线,低电平有效。
RD:存储器读信号线,低电平有效。
WR:存储器写信号线,低电平有效。
ALE:地址及片选信号锁存信号线,高电平有效。在下降沿时将地址及片选信号锁存到器件中。
IO/M:IO接口与存储器选择信号线,高电平选择I/O,低电平选择存储器。
PA7—PA0:A口输出/输入线。
PB7—PB0:B口输出/输入线。
PC5—PC0:C口输出/输入或控制信号线,用作控制信号时其功能如下:
PC0:A INTR(A口中断信号线) PC1:A BF(A口缓冲器满信号线)
PC2:ASTB(A 口选通线)
PC3:B INTR(B口中断信号线)
图8-1 8155引脚与逻辑图
PC4:B BF(B口缓冲器满信号线)
PC5:BSTB(B 口选通线)
《冶金自动化>>2004年增刊
单片机I/o口键盘扩展方法
王怀瑞1,顼庆坤2
(1.河北省应用数学研究所,河北石家庄050081;2.河北省医疗保险管理中心)
[摘要]介绍了几种通过单片机I/O口键盘扩展的方法。主要探讨了几种采用较少的I/O口实现较多按键的方法。[关键词]单片机;I/O口;键盘扩展
随着单片机应用领域的扩大,操作人员与单片机系统需要交流的信息越来越多,用来交流的手段和
途径也更为灵活多样,而有着不可替代作用的键盘输入是最常用的输入方法。
1传统键盘简介
键盘的结构通常有两种形式:线性键盘和矩阵键盘。在不同的场合下,这两种键盘均得到了广泛的
应用。线性键盘由若干个独立的按键组成,每个按键的一端与单片机的一个I/O口相连。有多少个键就
要有多少根连线与单片机的I/O口相连,因此,只适用于按键少的场合。矩阵键盘的按键按N行M列
排列,每个按键占据行列的一个交点,需要的i/o口数目是N+M,容许的最大按键数是N×M。显然,
矩阵键盘可以减少与单片机接口的连线数,简化结构,是一般单片机常用的键盘结构。根据矩阵键盘的
识键和译键方法的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。非编码键盘主要用软件的方
法识键和译键。根据扫描方法的不同,可以分为行扫描法、列扫描法和反转法3种。编码键盘主要用硬
件来实现键的扫描和识别,通常使用专用接口芯片,在硬件上要求较高。
2新式键盘设计
在扩充键盘时,需要考虑与单片机的接口方式、采用芯片的价格、应用环境等因素。传统的键盘与单
片机的接口方式有独立式、行列式,采用的芯片有8255、8279、MAX7219、14499等。采用这些方法或芯
片存在着占用I/O口资源过多、方法不通用、可扩充性不好、方案的整体成本较高等缺点。因此,探讨一
些键盘的特殊结构,用尽可能少的输入输出端口实现较多数量的按键数仍具有重要的应用价值。
有些特殊情况下,在组成一个最小的单片机系统的过程中,由于通用的I/O口有限,而又需要大量的
单片机并行I/O口的应用实验
一、实验目的
1、熟悉Proteus软件和Keil软件的使用方法 。
2、熟悉单片机应用电路的设计方法 。
3、掌握单片机并行I/O口的直接应用方法 。
4、掌握单片机应用程序的设计和调试方法。
二、实验内容或原理
1、利用单片机并行I/O口控制流水灯 。
2、利用单片机并行I/O口控制蜂鸣器 。
三、设计要求
1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口
线上分别接LED0至LED7八个发光二极管,在P3.0口线上
接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。
3、编写程序:要求LED0至LED7以秒速率循环左移。
4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。
四、实验报告要求
1、实验目的和要求。
2、设计要求。
3、实验程序流程框图和程序清单。
4、电路原理图。
5、实验结果
6、实验总结。
7、思考题。
五、思考题
1、编程实现LED0至LED7以十六进制计数规律亮灯 ?
参考实验图:
程序参考:
ORG 0000H
LJMP MAIN
ORG 00B0H
LJMP LOOP1
MAIN:MOV SP,#10H
MOV A,#01H
LOOP:MOV P1,A
CLR P3.0
LCALL DELAY
RL A
LJMP LOOP
LOOP1:SETB P3.0
MOV TH0,#3CH
MOV TL0,#0B0H
INC R2
CJNE R2,#20,LOOP2
CLR TR0
LOOP2:RETI
DELAY:MOV R2,#00H
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#03H
实验二 并行I/O端口的使用
一、实验目的
1.进一步熟悉Keil C、proteus软件的使用方法。
2.掌握分支结构语句、运算符和数组的运用。
3.掌握LED数码管的结构和静态显示工作原理。
二、实验内容
1.程序一:按键K0~K3,用分支语句实现P0口的多值输出。
2.程序二:用循环语句实现P0口的多值输出。
3.程序三:用数组方式控制跑马灯。
4程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。三、实验仿真硬件图
在Proteus软件中建立如下图所示仿真模型并保存。
图2-1 并行I/O端口应用原理图
四、编程提示
程序一: 分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。
程序二:运用三种基本的循环语句: for语句、while语句和do-while语句,实现D1~D8循环点亮。
程序三:用数组方式控制跑马灯。将跑马灯的全部状态用数组表达,然后用循环语句依次读取数组各元素,送P0口显示。
程序四:在P2口连接的LED数码管上循环显示“0”,“1”,“2”,“3”,“4”。
思路同程序一,只不过数组元素是由共阴极数码管所对应的字形码所组成。
五、调试运行
1.四个程序在proteus仿真通过。 分别用if语句、if-else-if语句、switch语句来实现当按下按键K0~K3时,对应D1~D4点亮。
if语句的一般形式:
if ( 表达式1 )
{
语句组1;
}
if ( 表达式 2)
{
语句组2;
}
...
if-else-if语句的一般形式:
if ( 表达式 1)
{
语句组1;
}
else if( 表达式 2)
{
语句组2;
}