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文件定义变量 要出现莫名其妙的问题!!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值