《EDP培训-3.ppt》由会员分享,可在线阅读,更多相关《EDP培训-3.ppt(32页珍藏版)》请在金锄头文库上搜索。
1、I/O 扩展模块,EDP培训第三讲 青岛科技大学 李进,431 设计目的及任务 1、设计任务:设计一个基于单片机的I/O 扩展模块以及相应的外围电路。 2、 功能指标:扩展I/O 数量大于16 个,可以通过编程控制输入或者输出方向,电源为5V 供电。 3、 设计要求:所设计的I/O 扩展模块应满足EDP 实验仪系统设计要求,并能与整个系统有效结合。,8155 I/O 扩展芯片的基本工作原理,Intel 8155 芯片内包含有: 1. 256 个字节RAM 2. 两个8 位、一 个6 位的可编程并行I/O 口 3. 一个14 位定时器/计数器。 8155 可直接与MCS-51 单片机连接不需要增
2、加任何硬件逻辑。由于8155 既有RAM 又具有I/O 口,因而是MCS-51 单片机系统中最常用的外围接口芯片之一,,图4-3-1: 8155 的引脚及内部结构,内部寄存器,与单片机的连接方式,注:IO/M 端接单片机的P2.0 脚,CE 端接单片机的P3.1 脚。,8155 共有40 个引脚,采用双列直插式封装。各引脚功能如下: AD7AD0:地址数据总路线。 CE:片选信号线,低电平有效 RD:存储器读信号线,低电平有效。 WR:存储器写信号线,低电平有效。 LE:地址及片选信号锁存线,高电平有效,其后沿将地址及片选信号锁存到器件中。 IO/M:I/O 接口与存储器选择依赖线,高电平表示
3、选择I/O 接口,低电平选择存储器。,PA7PA0:A 口输入/输出线。 PB7PB0:B 口输入/输出线。 PC5PC0:C 口输入/输出或控制信号线。用作控制信号线时,其功能如下: 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
4、、试验仪8155 模块接口定义 试验8155 模块接口定义如图4-3-2。,EDP 试验仪的显示采用6 位共阴极动态扫描方式,段选码由8155 的8 位并行口 PB 提供,位选线则由8155 的PA 口提供。单片机通过一片I/O 扩展芯片8155 为LED 显示器提供LED 段选码和位选线。由于8155 的I/O 口不能提供足够的灌电流,因此,通过两次正向驱动器7407 与LED 段选线连接;通过一片反向驱动器7406 与LED 的位选线连接,以提供给LED 足够的显示电流,详细的LED 设计请参考4.4 节。8155 除了为LED 模块提供扩展接口外,还同时为键盘和LCD 模块提供外部扩展接
5、口,请参考相关的章节。,单片机通过片选线选通8155 芯片,然后将要传输的数据通过D0D7 送8155 芯片,8155 芯片把输入的地址进行译码并通过PA、PB、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 必须使用的头文件
6、#define ORDER8155 XBYTE0 xfd00 / 定义8155 命令寄存器地址 #define PA8155 XBYTE0 xfd01 / 定义8155 PA 口地址 #define PB8155 XBYTE0 xfd02 / 定义8155 PB 口地址 #define uchar unsigned char,uchar data dis_buffer = 0 x1,0 x2,0 x3,0 x4,0 x5,0 x6; / 位选线,16 uchar code table20 = 0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d ; / 段选码,显示16,/*
7、 延时子程序 */ void delay(uchar x) while(x-); ,/* 显示子程序 */ void display(uchar *p) uchar 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; 7 ,void main() while(1) display(dis_buffer); ,4、 设计调试步骤 1、 把电源模块、CPU 模块、81
8、55 扩展模块、LED 显示器模块、串口通信模块插在正确的位置上,并把跳帽进行正确短接。 2、 建立Keil 工程,编辑、编译源代码并生成可下载的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。,Protel电子电路设计应用软件介绍,仿真软件Proteus应用介绍,仿真软件Multisim应用介绍,再见!,