栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

STC51单片机-应用系统并行扩展电路设计(存储器扩展)-物联网应用系统设计项目开发

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

STC51单片机-应用系统并行扩展电路设计(存储器扩展)-物联网应用系统设计项目开发

目录
  • 一、说明
  • 二、重点
  • 三、实现
  • 四、下载

一、说明

用Proteus仿真编程实现以下功能:

  • 并行扩展电路设计
二、重点
  • 单片机系统总线及其并行扩展的工作原理及实现方法
  • 外部常用的扩展元器件的功能及使用方法
  • 单片机串行扩展的基本方式
三、实现
#include 
#include 
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 初始化          廖轶超项目4
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;	//  一轮结果存放完毕,存放单元下标清零。
}
}

四、下载

详见:STC51单片机-应用系统并行扩展电路设计(存储器扩展)-物联网应用系统设计项目开发

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号