蓝桥杯单片机备赛

本文介绍了如何使用STC15单片机点亮LED,涉及特殊功能寄存器SFRs的操作,包括P0~P3寄存器地址,以及通过74HC573锁存器实现数据存储和控制的过程。通过编程示例展示了如何配置IO口并实现LED亮起。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点亮一个LED

 在学习大多数单片机的第一步,点亮一颗LED

 点亮LED能帮我们更好的理解IO口的使用,早日成为点灯大师

 我们蓝桥杯单片机实训平台CT107D用的是STC15的单片机

 我们打开STC15单片机的资料我们可以看见,里面有介绍特殊功能寄存器(SFRs),我们操作IO口也是对其中的关于IO口的内容进行写入。

     特殊功能寄存器(SFRs)

  在STC15单片机里面是这样描述特殊功能寄存器(SFRs)的:

  特殊功能寄存器(SFRs)是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的RAM区。STC15系列单片机内的特殊功能寄存器(SFRs)与高128字节RAM共用相同的地址范围,都使用80H~FFH,特殊功能寄存器(SFR)必须用直接寻址指令访问。

  在该资料中给出了STC15单片机的特殊功能寄存器名称以及地址。

在图中我们可以找到:P0寄存器地址为:0x80;

                                    P1寄存器地址为:0x90;

                                    P2寄存器地址为:0xA0;

                                    P3寄存器地址为:0xB0;

                                    ……

知道了寄存器地址,我们这个时候就可以操作寄存器了。离点灯大师又近了一步。

现在我们来看蓝桥杯单片机CT107D原理图

  这个时候我们发现,我们成为点灯大师路上的第一只拦路虎出现了——74HC573

  这个芯片是锁存器,通俗来说就是一个抽屉,用来保存你P0IO口输出的数据的,在该芯片左上方有一个“Y4C”的网络标号连接了该芯片的LE引脚。LE引脚就相当于你抽屉的锁,“Y4C”就相当于你的钥匙,给LE赋予高电平就相当于“开锁”,给LE低电平就相当于“上锁”。

  当你给LE赋予高电平时,你就可以对HC573进行操作,通过P0IO口分别给HC573上的D1~D8引脚赋予高低电平,这个时候HC573就会记住输入的高低电平,然后在Q1~Q8输出你输入的信号。当你再对LE引脚赋予低电平时,HC573就会保存你最后一次赋予的值。这个时候无论怎么给D1~D8赋值都没办法改变Q1~Q8的输出。

  那么Y4C的信号又是由谁输出的呢,我们顺着“Y4C”网络编号找到

  Y4C最先开始由HC138译码器发出,经过了一个或非门最后生成Y4C信号。

  在蓝桥杯CT107D开发板上J13是使用跳线帽选择寄存器映射还是IO控制。这里我们示例是IO控制。

  由于我们想让Y4C输出高电平,WR接地,在通过或非门时我们就要让Y4输出低电平。利用138译码器,我们控制P25~P27输出高低电平就可以选择Y4输出低电平。

  

  了解了硬件原理之后我们就要开始编程操作了。

  首先定义我们要用的IO口的地址,便于后面访问。

sfr P0 = 0x80;
sfr P2 = 0xA0;

然后编写主函数。 

void main()
{
	P2 = (P2 & 0x1f)| 0xa0;
	P0=0x00;
	P2 = (P2 & 0x1f)| 0x80;
	P0=0xfe;
	while(1)
	{
		
	}
}

最后将代码编译进单片机。

然后我们就可以看到,第一颗LED灯被点亮了。

恭喜你离点灯大师又近了一步。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值