2020蓝桥杯省赛单片机1

#环境:IAP15F2K61S2,Keil5+

一、关于51的Intel总线:XBYTE用法

当#include 后,可以用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文件定义变量 要出现莫名其妙的问题!!!!

你可能感兴趣的:(蓝桥杯)