微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PSD813F1及其接口编程技术

PSD813F1及其接口编程技术

时间:03-17 来源:互联网 点击:

80C196KC80c196kc为INTEL公司16位单片机。该单片机具有16位多路复用的地址/数据总线,工作于12MHz的时钟频率,系统主体程序采用C96语言设计,程序空间大小占用32K,系统设计要求采用非易失性存储器进行数据存储,另外需外扩SRAM用于数据缓存。程序存储、数据存储和数据缓存分别由PSD813F1的FLASH MEM、EEPROM和SRAM完成
。 A/D转换采用80C196KC自身的10位8路逐次比较型A/D,键盘/显示接口芯片采用8279,与PC机通信采用MAXIM公司的MAX232用于RS-232通信,由MAX874经精密调整后给80C196KC提供4.096V电压。8279的片选和地址译码由PSD813F1的FGPLD完成。
3.2 软件设计
3.2.1 PSD813F1配置文件设计
该电路在PSDSOFT(WSI公司提供的下载软件)中的配置为:
·多路复用工作方式
·ALE高电平有效
·读/写控制选择RD/WR
PSD813F1以ABEL语言为硬件描述语言,在本电路中的设计方法为:
(1)内部译码实现:
fs0=!a15*!a14*!a13*!a12; /*fs为设计中FLASH MEM 的保留名 fs0地址空间为0000h~0fffh*/
fs1=!a15*!a14*!a13*a12; /*fs1地址空间为1000h -->1fffh*/
fs2=!a15*!a14*a13*!a12; /*fs2地址空间为2000h -->2fffh*/
fs3=!a15*!a14*a13*a12; /*fs3地址空间为3000h -->3fffh*/
ees0=!a15*a14*!a13*a12; /*ees为EEPROM的保留名, ees0地址空间为4000h-->4fffh*/
ees1=!a15*a14*a13*!a12; /*ees1地址空间为5000h -->5fffh*/
ees2=!a15*a14*a13*!a12; /*ees2地址空间为6000h -->6fffh*/
ees3=!a15*a14*a13*a12;/*ees3地址空间为7000h -->7fffh*/
rs0=a15*!a14*!a13*!a12*!a11*!a10; /*rs为SRAM 的保留名,地址空间为8000-83fffh*/
csiop=a15*!a14*!a13*a12;/*csiop基地址为9000h*/
2) 外部译码的实现:
将PB的最低位端口设计为片选信号的设计方法为
cs1 pin7; /*PB的0端口*/
cs1=!a15 *a14*/a13*a12); /*8279的地址空间为 d000h-->dfffh*/
3.2.2 程序设计
程序设计语言为C96,其实现如下: 对SRAM的操作为:
static const unsigned char *pointer_sram=0x8000; /*设置SRAM数据单元的基址指针*/
pointer_sram=0xaa; /*将数据写入基址单元*/
pointer_sram[1]=0xbb; /*将数据写入下一地址单元*/
……
对EEPROM的操作为:
static const unsigned char *pointer_ee=0x4000; /*设置EEPROM空间的基址指针*/
pointer_ee=0xaa;
…… /*延时等待,对EEPROM的单元写入数 据时必须增添一定的时间延时*/
pointer_ee[i]=0xbb; /*i为地址增量,即相对于基地 址的偏移量*/
……
端口A、B的地址及各控制寄存器的地址由CSIOP的基地址加偏移地址来决定,本设计中PA.0用于为8279的A0提供地址信号。如不采用PSD813F1,则需在80C196KC和8279之间接74373用于地址锁存输出,采用PSD813F1则只需配置端口A的PA.0工作于地址锁存工作方式,配置由A口的控制寄存器(占据一字节空间)决定,实现方法如下:
static const unsigned char *csiop=0x9000;
csiop[2]=0xfe; /*端口A的控制寄存器相对于 CSIOP基地址的偏移地址为02H;此时PA.0 在控制寄存器中的相应位为0,因此PA.0 工作于地址锁存输出方式,其他高7位相 应位为1,因此工作于MCU I/O方式*/ 对8279的初始化操作为:
static const unsigned char *pointer_8279=0xd000h; /*基址为数据口地址*/
pointer_8279[1]=0xd1;/*对命令端口写入清除命令*/
do{}
whilepointer_8279[1]‖0x7f==0x7f); /*等待清除完成*/
pointer 8279[1]=0x2a; /*送程序时钟分频常数*/pointer_
8279[1]=0x08; /*写键盘/显示器工作方式命令*/
pointer_8279[1]=0x90; /*写显示RAM命令*/
pointer_8279=0x10;/*向数据口送入显示数据0x10*/
总之,本文通过设计该数据采集系统,表明PSD813F1芯片集FLASH MEM、EERPOM、SRAM、PLD等于一体,可代替电路设计中的程序存储、数据存储、数据缓存和译码等芯片,从而可使单片机系统大大简化,一个实用系统可简化为"两片"系统,而其JTAG技术更是为该芯片的使用增添了便捷的设计和使用手段。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top