首页 > 其他分享 >13-io扩展技术与存储器映射扩展

13-io扩展技术与存储器映射扩展

时间:2023-10-10 19:33:19浏览次数:41  
标签:P2 13 XBYTE ms void 扩展 unsigned Delay io

IO扩展技术与存储器映射扩展

20231010183201

io扩展方式代码如下:

#include <REGX52.H>

void Delay_ms(unsigned int xms) {
	unsigned int i,j;
	for(i = 0; i < xms;i++) {
		for(j= 0; j< 299;j++);
	
	}

}

void _74HC138(unsigned char n) {
	
	switch(n) {
		case 4:
			P2 = (P2 & 0x1f) | 0x80;
		break;
		case 5:
			P2 = (P2 & 0x1f) | 0xa0;
		break;
		case 6:
			P2 = (P2 & 0x1f) | 0xc0;
		break;
		case 7:
			P2 = (P2 & 0x1f) | 0xe0;
		break;
	
	}

}



void System_Init(void) {
	_74HC138(5);
	P0 = 0x00;
	
	_74HC138(4);
	P0 = 0xFF;

	
}



void LED_Running() {
	_74HC138(4);
	P0 = 0xF0;
	Delay_ms(1000);
	P0 = 0x0F;
	Delay_ms(1000);
	P0 = 0xFF;
	Delay_ms(1000);
	
}

void SMG_Running(void) {
	
	unsigned char i;
	
	for(i = 0; i < 8;i++) {
		_74HC138(6);
		P0 = 0x01 << i;
		_74HC138(7);
		P0 = 0x00;
		Delay_ms(1000);
	}
	P0 = 0xFF;
	Delay_ms(1000);
}

void main(void) {
	System_Init();
	
	
	while(1) {
		LED_Running();
		SMG_Running(); 
	}
	

}

存储器扩展方式代码如下:

#include <REGX52.H>
#include "absacc.h"
void Delay_ms(unsigned int xms) {
	unsigned int i,j;
	
	for(i= 0 ; i< xms;i++) {
		for(j=0; j < 299; j++);
	}

}

void System_Init(void) {
	XBYTE[0X8000] = 0XFF;
	XBYTE[0XA000] = 0X00;
	

}


void LED_Running(void) {
	
	XBYTE[0X8000] = 0XF0;
	Delay_ms(1000);
	XBYTE[0X8000] = 0X0F;
	Delay_ms(1000);
	XBYTE[0X8000] = 0XFF;
	Delay_ms(1000);
}

void SMG_Running(void) {
	
	unsigned char i;
	for(i=0;i<8;i++) {
		XBYTE[0XC000] = 0X01 << i;
		XBYTE[0XE000] = 0X00;
		Delay_ms(1000);
	}
	XBYTE[0XE000] = 0XFF;
	Delay_ms(1000);
}


void main(void) {
	System_Init();
	
	while(1) {
	
		LED_Running();
		SMG_Running();
	}

}

注意事项:

  1. XBYTE后面是中括号[]
  2. 如果用到矩阵键盘,就不雅用寄存器扩展方式,因为与P3^6产生冲突

标签:P2,13,XBYTE,ms,void,扩展,unsigned,Delay,io
From: https://www.cnblogs.com/bky111/p/17755527.html

相关文章

  • CSP模拟51联测13 B.狗
    CSP模拟51联测13B.狗目录CSP模拟51联测13B.狗题目大意题目描述输入格式输出格式样例样例1inputoutput思路题目大意题目描述小G养了很多狗。小G一共有\(n\timesn\)条狗,在一个矩阵上。小G想让狗狗交朋友,一条狗狗最多只能交一个朋友,不必所有狗狗都有朋友。但是狗狗交朋友......
  • MT8390安卓核心板参数_联发科Genio 700智能模组
    MT8390安卓核心板是一款功能强大且高度集成的平台,专为广泛的人工智能(AI)和物联网(IoT)应用案例而设计。它具备高性能边缘处理、先进的多媒体和连接能力、多个高分辨率摄像头、连接的触摸屏显示以及多任务高级操作系统的使用。MT8390安卓核心板采用高性能的八核应用处理器,......
  • 在ts时使用axios请求类型定义增加属性
    1.需求在后台请求中有一些请求数据量比较大无法一下返回,需要增加loading动画,为了方便控制想在请求的时候增加一个参数isLoading,默认关闭,传真值时开启动画。这便需要拓展axios中增加个性化参数配置。但是如何进行类型的定义呢?2.操作 如上,在做左边增加了isLoading参数,代码......
  • Educational Codeforces Round 156 (Rated for Div. 2)
    Preface沉迷Galgame不打CF懒狗闪总出列!这场在大物课上口胡了前四个题,回去写了也都很顺,然后E题本来做不来的,看了眼昨天校队群里的消息就会做了F题什么东西直接弃A.SumofThree当\(n\bmod3\ne0\)时,用\((1,2,z)\)来凑;否则当\(n\bmod3=0\)时,用\((1,4,z)\)来凑#include<cst......
  • FaceFusion:探索无限创意,创造独一无二的面孔融合艺术!
    FaceFusion:探索无限创意,创造独一无二的面孔融合艺术!它使用先进的图像处理技术,允许用户将不同的面部特征融合在一起,创造有趣和令人印象深刻的效果。这个项目的潜在应用包括娱乐、虚拟化妆和艺术创作,为用户提供了创造性的工具1.效果预览2.安装请注意,安装需要技术技能,不适合初学......
  • LY1376 [ 20231008 NOIP 模拟赛 T0 ] 递增路径
    题意\(A\),\(B\)两人轮流在一张图上移动一个点。要求这次移动的边权必须大于上次的。\(A\)希望游戏进行的轮数多,\(B\)希望游戏进行的轮数少。对于每个\(s=1,2,...,n\)作为起点,若双方都采用最优策略,游戏会进行多少轮。Sol考虑将所有边按照从大到小的顺序排序。每......
  • 前端网页sessionStorage对值的获取与传值
    前端网页sessionStorage对值的获取与传值sessionStorage主要在页面之间进行值得传输·允许跨页面。可以是单个值,以及JSON对象的传递,主要方法有这些sessionStorage[key]=val//保存一个数据sessionStorage.setItem(key,val)//保存一个数据varval=sessionStorage[key]//读取一个数......
  • [arc135f] Delete 1, 4, 7, ...
    F-Delete1,4,7,...设\(f(i)\)表示第一次操作后,第\(i\)个位置的数,那么\(f(i)=\lfloor\frac{3i+1}2\rfloor\)那么\(k\)次操作后,第\(i\)个位置上的数就是:\[f(f(...f(f(i))...))=f^k(i)\]设\(cnt_k\)表示\(k\)次操作后剩下的数的个数,那么显然有:\(cnt_i=\lfloor\frac{cnt_......
  • [gym103860D]Tree Partition
    D-TreePartition考虑将树转换到一个序列上,钦定\(1\)为根节点,\(1\)的父亲为\(0\),在序列上,孩子向父亲连边然后考虑设\(dp\)状态\(dp[i][j]\)表示前\(i\)个点,分成\(j\)段的方案数,那么\(dp[i][j]\)从\(dp[k][j-1]\)转移过来要满足以下条件之一:点\(i\)的后向边\((a,b)\)满足\(a\l......
  • 洛谷P3300 [SDOI2013] 城市规划 题解
    [SDOI2013]城市规划题意:给你一个\(6\timesn\)的网格题,单点修改,询问区间联通块数,\(n\le10^5\)。解:看起来就很显然的一道题......线段树每个点用一个ufs维护连通性;我为了方便思考把图转成横着的了。写起来真是毒瘤......重点在于:\(\bullet\)1、建立叶节点。\(\bull......