此项目是作为单片机应用系统设计,通过STC单片机实验开发装置的结构、原理电路、以及其所能实现的功能和应用,建立单片机实现多功能综合应用系统的整体概念,打下实际工程项目设计、开发、应用的较好基础。
- 分析和熟悉实验装置的硬件结构
- 分析和掌握实验装置的电路原理:器件工作原理、电路接口原理、端口和编址分配原理、电路的主要技术参数等
- 分析和了解设计方法,理解器件的合理布局,装置的工艺设计及安装工艺
一、说明
并行扩展是指单片机与外围设备之间采用并行接口的连接方式,数据传输采用并行传送方式。并行扩展方式一般采用总线并行扩展,即数据传送由数据总线完成,地址总线负责外围设备的寻址,而传输过程中的传输控制,诸如读、写操作等,则由控制总线来完成。与串行扩展相比,并行扩展的数据传输速度较快,但扩展电路较复杂。
存储器的扩展方式有字扩展、位扩展、字位同时扩展。存储器芯片与单片机扩展连接具有共同的规律。即不论何种存储器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。另外,电源线接电源线,地线接地线。
用Proteus仿真编程实现以下功能:
- 并行扩展电路设计
二、重点
- 单片机系统总线及其并行扩展的工作原理及实现方法
- 外部常用的扩展元器件的功能及使用方法
- 单片机串行扩展的基本方式
三、实现
#include <reg52.h> #include <intrins.h> xdata unsigned char RAM8155[256] _at_ 0x3F00; xdata unsigned char IO8155[6] _at_ 0xBF00; unsigned char ad_result,j; unsigned int i,k ; //i 为 int 变量,和绝对地址匹配 sbit ADDA=P1^0; sbit ADDB= P1^1; sbit ADDC= P1^2; sbit STA= P1^3; sbit EOC= P1^4; sbit CLOCK= P1^6; sbit flag=PSW^5; void int_8155 (void) //8155 初始化函数 { IO8155[0]=0x4D; //PA、C 均为输出口,PB 为输入口。 for(i=0;i<256;i++) //8155 中 RAM 单元依次放 0、1、2、…255 RAM8155[i]=i; } void main() { int_8155(); //8155 初始化 for(i=0;i<256;i++) { j=RAM8155[i]; IO8155[1]=j; //读取 8155RAM 单元的内容,并由 PA 口输出驱动 LED 显示 for(k=0;k<1000;k++); } CLOCK=0;j=0;EOC=1; while(1) { //选择 A/D 通道 if(j<50){ADDA=1;ADDB=0;ADDC=0;} else if((j>=50)&&(j<100)){ADDA=1;ADDB=0;ADDC=0;} else if((j>=100)&&(j<150)){ADDA=0;ADDB=1;ADDC=0;} else if((j>=150)&&(j<200)){ADDA=1;ADDB=1;ADDC=0;} STA=0;STA=1; STA=0; //启动转换 while(1) { CLOCK=!CLOCK; if(EOC==1)break;} //转换结束信号 EOC 查询 ad_result=IO8155[2]; //由 PB 口读入 A/D 结果 j++; //计算 RAM 单元 RAM8155[j-1]=ad_result; // A/D 结果存入 8155 的 RAM 单元 IO8155[1]=ad_result; // A/D 结果送 PA 口显示 if (j>=200) j=0; // 一轮结果存放完毕,存放单元下标清零。 } }
四、下载