当前位置:主页 > 查看内容

<蓝桥杯>两种编程方式(I/O和MM)

发布时间:2021-09-18 00:00| 位朋友查看

简介:蓝桥杯两种编程方式I/O和MM 一、MM编程 1.MM编程实际是存储器映射编程直接操作寄存器。这种编程是操作外部扩展RAM随机存取存储器的一种编程方式可通过配置跳线J13。 2.51单片机内核有16根地址线可寻址2^16位P2和P0作为16位AddressP0又作为8位Data。因此可以……

<蓝桥杯>两种编程方式(I/O和MM)

一、MM编程

1.MM编程实际是存储器映射编程,直接操作寄存器。这种编程是操作外部扩展RAM(随机存取存储器)的一种编程方式,可通过配置跳线J13。
2.51单片机内核有16根地址线,可寻址2^16位,P2和P0作为16位Address,P0又作为8位Data。因此可以使用XBYTE[Address] = Data 来描述进行的操作。
3. P2口是地址线的高8位,由竞赛平台的硬件电路图我们知道,当P2.7 = 1,P2.6 = 0,P2.5 = 0时;可将与LED指示灯模块连接的74HC573“打通”,此时可以通过P0端口控制LED灯的状态。其LED灯的地址为0x8000,相应地址线如图1-1所示。图1-1

                                                                            图1-1

4.计算地址
根据元件连接的方向(结合图1-2),可以看出是P2端口的高三位控制,例如要控制端口Y5,则让P27 = 1,P26 = 0,P25 = 1;则在P2端口为1010 0000化为十六进制0xA0,因为单片机内核有16根地址线,P2和P0作为16位Address,所以在XBYTE[Address] = Data中,Address =0xA0000  图1-2

                                                  图1-2

代码实现:关闭蜂鸣器继电器

void cls_buzz(void)  //关闭蜂鸣器,继电器函数
{
  XBYTE[0xA000] = 0x00;
}

5.存储类型与存储区关系
data —> 可寻址片内ram
bdata —> 位寻址的片内ram
idata —> 可寻址片内ram,允许访问全部内部ram
pdata —> 分页寻址片外ram (MOVX @R0) (256 BYTE/页)
xdata —> 可寻址片外ram (64k 地址范围FFFFH)
code —> 程序存储区 (64k 地址范围),对应MOVC @DPTR

二、I/O编程

1.输出功能是单片机数字控制的最基础功能。 I/O是input/output的缩写,即输入输出端口。 每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息,I/O编程就是平时见到常见的编程。
2.以关闭蜂鸣器为例(结合图1-2)
代码实现:

void cls_buzz(void)  
{
	P2 = (P2&0x1F|0xA0);   //将P27-P25清零,在定位Y5C
	P0 = 0x00;             //关闭蜂鸣器,继电器
	P2 &= 0x1F;
}

//蜂鸣器上端为VCC(供电),下端为N_buzz端口;
说明在N_buzz给一个低电平,蜂鸣器开始响;
蜂鸣器上对应的端口Nbuzz在元器件ULN2003中Nbuzz对应(ULN叫做达林顿管,里面是非门,例如输入0,就输出1);
要关闭蜂鸣器就要给N_buzz一个高电平,此时找到74HC573锁存器,LE为控制端口,P0为输入端口,要让Nbuzz为1
Y5C就要输入0,Y5C对应下面的或非门,Y5C要为0,输入端Y5就要为1
在74HC138译码器中P25、P26、P27端口控制Y5.
//电路逻辑结构:138译码器–或非门–573寄存器–达林顿管ULN2003–蜂鸣器
//P2 = (P2&0x1F|0xA0);将P27-P25清零,在定位Y5C,用0x1F清零的原因:高三位P25、P26、P27要为零,即0001 1111
//P0 = 0x00;P0端口清零
//P2 &= 0x1F;//P27~P25清零
//P0总共有8个端口,分别对应8位二进制数字0x1F转为二进制为0001 1111而0xA0对应的二进制1010 0000
在P2端口中P25 P26 P27为高三位,即 0001 1111,经过代码或变为
1010 0000
1011 1111,取高三位101,即为对应的端口P25 P26 P27
经过138译码器(结合图138译码器真值表,H高电平,L低电平,X任意值),输出的Y5为1,蜂鸣器关闭
这里对应Y5的端口,为101,转化为十进制为5;同理如果为100,即为Y4端口
138译码器真值表

                                                  图1-3
;原文链接:https://blog.csdn.net/qq_52670281/article/details/116032284
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐