1、431 设计目的及任务设计目的及任务1、设计任务:设计一个基于单片机的、设计任务:设计一个基于单片机的I/O 扩展扩展模块以及相应的外围电路。模块以及相应的外围电路。2、功能指标:扩展功能指标:扩展I/O 数量大于数量大于16 个,可以个,可以通过编程控制输入或者输出方向,电源为通过编程控制输入或者输出方向,电源为5V 供电。供电。3、设计要求:所设计的设计要求:所设计的I/O 扩展模块应满足扩展模块应满足EDP 实验仪系统设计要求,并能与整个系统有实验仪系统设计要求,并能与整个系统有效结合。效结合。8155 I/O 扩展芯片的基本工作原理扩展芯片的基本工作原理Intel 8155 芯片内包含
2、有芯片内包含有:1.256 个字节个字节RAM2.两个两个8 位、一位、一 个个6 位的可编程并行位的可编程并行I/O 口口3.一个一个14 位定时器位定时器/计数器。计数器。8155 可直接与可直接与MCS-51 单片机连接不需要增加单片机连接不需要增加任何硬件逻辑。由于任何硬件逻辑。由于8155 既有既有RAM 又具有又具有I/O 口,口,因而是因而是MCS-51 单片机系统中最常用的外围接口芯单片机系统中最常用的外围接口芯片之一,片之一,图图4-3-1:8155 的引脚及内部结构的引脚及内部结构内部寄存器内部寄存器与单片机的连接方式与单片机的连接方式PC31PC42TIMER IN3RE
3、SET4PC55TIMER OUT6IO/M7CE8RD9WR10ALE11AD012AD113AD214AD315AD416AD517AD618AD719VSS20PA021PA122PA223PA324PA425PA526PA627PA728PB029PB130PB231PB332PB433PB534PB635PB736PC037PC138PC239VCC408155U?EA/VP31X119X218RESET9P37(RD)17P36(WR)16P32(INT0)12P33(INT1)13P34(T0)14P35(T1)15P10/T21P11/T2-EX2P123P134P145P15
4、6P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30(TXD)P3111(RXD)P3010VCC4089C52U?注:IO/M 端接单片机的P2.0 脚,CE 端接单片机的P3.1 脚。8155 共有共有40 个引脚,采用双列直插式封装。各引个引脚,采用双列直插式封装。各引脚功能如下:脚功能如下:AD7AD0:地址数据总路线。:地址数据总路线。CE:片选信号线,低电平有效:片选信号线,低电平有效RD:存储器读信号线,低电平有效。:存储器读信号
5、线,低电平有效。WR:存储器写信号线,低电平有效。:存储器写信号线,低电平有效。LE:地址及片选信号锁存线,高电平有效,其后沿:地址及片选信号锁存线,高电平有效,其后沿将地址及片选信号锁存到器件中。将地址及片选信号锁存到器件中。IO/M:I/O 接口与存储器选择依赖线,高电平表示接口与存储器选择依赖线,高电平表示选择选择I/O 接口,低电平选择存储器。接口,低电平选择存储器。PA7PA0:A 口输入口输入/输出线。输出线。PB7PB0:B 口输入口输入/输出线。输出线。PC5PC0:C 口输入口输入/输出或控制信号线。用作输出或控制信号线。用作控制信号线时,其功能如下:控制信号线时,其功能如下
6、:PC0:A INTR(A 口中断信号线)。口中断信号线)。PC1:A BF(A 口缓冲器满信号线)。口缓冲器满信号线)。PC2:ASTB(A 口选通线)。口选通线)。PC3:B INTR(B 口中断信号线)。口中断信号线)。PC4:B BF(B 口缓冲器满信号线)。口缓冲器满信号线)。PC5:BSTB(B 口选通线)口选通线)TIMER IN:定时器:定时器/计时器输入端。计时器输入端。TIMER OUT:定时器:定时器/计数器输出端。计数器输出端。RESET:复位信号线。:复位信号线。VCC:5V 电源。电源。VSS:地。:地。433 设计内容设计内容1、试验仪、试验仪8155 模块接口定
7、义模块接口定义试验试验8155 模块接口定义如图模块接口定义如图4-3-2。EDP 试验仪的显示采用试验仪的显示采用6 位共阴极动态扫描方式,段位共阴极动态扫描方式,段选码由选码由8155 的的8 位并行口位并行口 PB 提供,位选线则由提供,位选线则由8155 的的PA 口提供。单片机通过一片口提供。单片机通过一片I/O 扩展芯片扩展芯片8155 为为LED 显示器提供显示器提供LED 段选码和位选线。由于段选码和位选线。由于8155 的的I/O 口不能提供足够的灌电流,因此,通过两次正向口不能提供足够的灌电流,因此,通过两次正向驱动器驱动器7407 与与LED 段选线连接;通过一片反向驱动
8、段选线连接;通过一片反向驱动器器7406 与与LED 的位选线连接,以提供给的位选线连接,以提供给LED 足够的足够的显示电流,详细的显示电流,详细的LED 设计请参考设计请参考4.4 节。节。8155 除了除了为为LED 模块提供扩展接口外,还同时为键盘和模块提供扩展接口外,还同时为键盘和LCD 模块提供外部扩展接口,请参考相关的章节。模块提供外部扩展接口,请参考相关的章节。单片机通过片选线选通单片机通过片选线选通8155 芯片,然后将要传输的芯片,然后将要传输的数据通过数据通过D0D7 送送8155 芯片,芯片,8155芯片把输入的地址进行译码并通过芯片把输入的地址进行译码并通过PA、PB
9、、PC 口口输出。输出。3、软件设计方法软件设计中,首相定义8155 的命令寄存器的外部地址是0 x0fd00,定义PA 和PB 口的外部地址为0 x0fd01 和0 x0fd02。然后定义一个数据缓存数组data dis_buffer,存储显示数据。其流程见图4-3-5,根据软件流程的51 单片机的C 语言接口函数见例4-3-1。例例4-3-1:8155 测试程序测试程序#include#include /使用使用XBYTE 必须使用的头文件必须使用的头文件#define ORDER8155 XBYTE0 xfd00/定义定义8155 命令寄存器命令寄存器地址地址#define PA8155
10、 XBYTE0 xfd01/定义定义8155 PA 口地址口地址#define PB8155 XBYTE0 xfd02/定义定义8155 PB 口地址口地址#define uchar unsigned charuchar data dis_buffer=0 x1,0 x2,0 x3,0 x4,0 x5,0 x6;/位选线,16uchar code table20=0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d;/段选码,显示16/*延时子程序*/void delay(uchar x)while(x-);/*显示子程序*/void display(uchar*p)ucha
11、r i,sel;ORDER8155=0 x03;/设定8155 工作在I/O 口扩展方式sel=0 x01;for(i=0;i=5;i+)PB8155=table*p;PA8155=sel;del_ms(50);p+;sel=sel1;7void main()while(1)display(dis_buffer);4、设计调试步骤设计调试步骤1、把电源模块、把电源模块、CPU 模块、模块、8155 扩展模块、扩展模块、LED 显示器模块、串口通信模块插在正确的位置显示器模块、串口通信模块插在正确的位置上,并把跳帽进行正确短接。上,并把跳帽进行正确短接。2、建立建立Keil 工程,编辑、编译源代
12、码并生成可下工程,编辑、编译源代码并生成可下载的载的HEX 文件文件3、连接串口线,通过串口通信模块使用连接串口线,通过串口通信模块使用STC-ISP 软件下载程序软件下载程序4、观察观察LED 显示数据,如果以上步骤正确的话,显示数据,如果以上步骤正确的话,在在LED 上应能显示上应能显示0、1、2、3、4、5 六个数字。六个数字。4 电子设计电子设计DIY设计要求:请参考上述设计要求:请参考上述8155 模块电原理图在模块电原理图在EDP 试验仪的面包板上自行完成一个试验仪的面包板上自行完成一个16路路I/O 扩展电路扩展电路设计,画出电原理图并完成相应的硬件设计。电源设计,画出电原理图并完成相应的硬件设计。电源为单为单5V。设计提示:可以采用并行设计提示:可以采用并行8155 或或8255 I/O 扩展芯扩展芯片或者串行片或者串行I/O 扩展芯片,与实验仪单片机的连接扩展芯片,与实验仪单片机的连接可以采用串行或并行方式。试验仪面包板的引脚定可以采用串行或并行方式。试验仪面包板的引脚定义可参照图义可参照图4-3-6。ProtelDXP电子电路设电子电路设计应用软件介绍计应用软件介绍仿真软件仿真软件Proteus应用应用介绍介绍仿真软件仿真软件Multisim应应用介绍用介绍演讲完毕,谢谢观看!