单片机的IO扩展技术简单来讲就是将原本赋予引脚的值直接写到存储器上(详细内容在手册太多了有点看不下去哈哈哈)。
以下就写IO扩展技术在代码中编写怎么使用吧。
使用:
跳帽一定要接到对应位置上别忘了!!
写代码时:
(1)按照上面的引入“absacc.h”
(2)在代码编写过程中,就是把原来HC173译码器选择通道来选择操控蜂鸣器,LED灯,数码管,直接变成了用一个地址代表这三个东西,即不用再进行锁存器的选择操作了。
比如:点亮一个LED灯
普通IO技术:
void selectHC138(unsigned int n)
{
switch(n)
{
case 0:
P2 = (P2 & 0x1f) | 0x00; break;
case 1:
P2 = (P2 & 0x1f) | 0x20; break;
case 2:
P2 = (P2 & 0x1f) | 0x40; break;
case 3:
P2 = (P2 & 0x1f) | 0x60; break;
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 LED()
{
selectHC138(4);
P0 = 0xfe;
}
当转换为存储扩展时:
#include"absacc.h"
void LED()
{
XBYTE[0x80000] = 0xfe;
}
即将selectHC138的操作换成下式的等号左边,P0 口的赋值放到下式的右边。
XBYTE[对应地址] = 0x...
各对应地址为:
欢迎指正。