2020蓝桥杯省赛准备日记1

#环境:IAP15F2K61S2,Keil5+

#一、关于51的Intel总线:XBYTE用法
当#include <absacc.h>后,可以用XBYTE[0x 4位16进制]控制 P2、P0、WR
例如:
XBYTE[0x8ff0] = 0x00
0x8ff0展开即是: P2部分1000 1111 、P0部分:1111 0000
但是 其实这个P0并没有什么卵用
!!!它真正的作用是:

									XBYTE[P2P0] = P0;

其实左边括号里的P0并没有什么卵用,右边的P0才是重点,左边P2有用
实现机制是:
①P2 + WR拉低
②WR拉高
③P0
刚好结合“国信长天”蓝桥杯板子的设计

#二、138译码器ABC脚 万万不可拆
可能会写这么一个函数:

void Change138(unsigned char num)
{
	//高位
	LSA = num/2/2%2;
	//中位
	LSB = num/2%2;
	//低位
	LSC = num%2;
}

千万别!!!
有没有想过这样一个问题:
在配合有锁存器的情况下,这样的转换将会在中间产生很多干扰
比如: 138译码器 4 变为 7
初始 4: ABC 100
末尾 8: ABC 111
第一行语句:ABC(100)->ABC(100)
第二行语句:ABC(100)->ABC(110)
第三行语句:ABC(110)->ABC(111)
在这中间转换 第二行函数就产生了干扰 不小心选中了 ABC=110时的状态

#三、别在C语言的 .h文件定义变量 要出现莫名其妙的问题!!!!

发布了1 篇原创文章 · 获赞 0 · 访问量 55

猜你喜欢

转载自blog.csdn.net/qq_43313844/article/details/104077532
今日推荐