7、单片机扩展 8255A 控制显示器实验一、实验目的及要求学习利用 Proteus 软件,通过 8255 扩展接口,仅通过 P0 端口控制 8 只集成式 7 段数码的显示控制。本例的接口扩展电路与 6264 数据内存扩展电路非常相似,都使用了地址锁存芯片 74LS373,单片机还使用 ALE,/RD,/WR 连接地址锁存芯片及接口扩展芯片。8255 仅使用 PA 和 PB 端口。二、实验原理(图)1、使用 Proteus ISIS 7 Professional 应用程序,建立一个.DSN 文件2、在“库”下拉菜单中,选中“拾取元件”(快捷键 P),分别选择以下元件:AT89C51、74LS373、7seg-MPX8-CA-GRN。3、构建仿真电路4 、 创 建 一 个 Keil 应 用 程 序 : 新 建 一 个 工 程 项 目 文 件 ; 为 工 程 选 择 目 标 器 件(AT89C51);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。5、把用户程序经过编译后生成的 HEX 文件添加到仿真电路中的处理器中(编辑元件→文件路径)三、实验设备(环境):电路一台Proteus ISIS 7 Professional 应用程序Keil 应用程序四、实验内容(算法、程序、步骤和方法):#include
#include#define uchar unsigned char#define uint unsigned int#define PA XBYTE[0x0000]#define PB XBYTE[0x0001]#define PC XBYTE[0x0002]#define COM XBYTE[0x0003]uchar code DSY_Index[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};uchar code DSY_CODE[]={0xa4,0xc0,0xf9,0xa4,0xf9,0xf9,0xf9,0x99};void delayms(uint x){uchar i;while(x--) for(i=0;i<120;i++); }void main(){uchar i,j;COM=0x80; //1000、0000while(1){for(i=0;i<40;i++){for(j=0;j<8;j++){PB=DSY_Index[j];//j=0,PB=DSY_Index[0],=0x01PA=DSY_CODE[j];//j=0;PA=DSY_CODE[0],=0xa4delayms(1);}}}}五、实验结论(结果):本实验实现了 XXX 功能,核心算法采纳了 XXX 的方式,达到了预期目的。六、实验心得与小结:(自行填写,如:功能是否实现;整个过程中存在哪些问题;如何解决的….)