AutoLeaders控制组——51单片机学习笔记(一)

AutoLeaders控制组——51单片机学习笔记(一)

1.基础介绍

单片机(Microcontroller)是一种集成了处理器核心、存储器、输入/输出接口和定时器等功能的微型计算机系统。它通常被用于控制电子设备和系统,包括家用电器、汽车电子系统、医疗设备、工业自动化设备等。单片机通常比个人计算机和嵌入式系统中使用的微处理器更简单、更便宜

单片机型号有很多种,而我使用的则是STC89C52RCz这款,因此写的代码可能一样,但是实际结果可能不太相同

要想使用单片机,我们得先安装两个东西,一个是Kevil5,它可以理解为是我们的编程软件,我们的代码都是在这里进行编写和编译运行,另一个是stc-isp,它可以理解为是我们的工具箱,负责把我们写好的代码转换成单片机的命令,让其工作,同时也能为我们提供不少的便利

2.小试牛刀

关于如何安装,初始新建文件的过程这里略过不谈,我们直接着手开始尝试编写一个简单的代码,让LED模块动起来

LED,发光二极管,我们并不陌生,生活中处处是它的身影,因此把它选择我们的第一个对象,能更加让我们了解单片机的功能和各种操作

首先,让我们知道一些基础运算符号,学过c语言的我们不难理解其中的大部分符号,只有少部分是新知识,因此这里直接放出来:

  1. 算术运算符:

    • 加法:+
    • 减法:-
    • 乘法:*
    • 除法:/
    • 取余:%
  2. 关系运算符:

    • 相等:==
    • 不等:!=
    • 大于:>
    • 小于:<
    • 大于等于:>=
    • 小于等于:<=
  3. 逻辑运算符:

    • 逻辑与:&&
    • 逻辑或:||
    • 逻辑非:!
  4. 位运算符:

    • 按位与:&
    • 按位或:|
    • 按位异或:^
    • 按位左移:<<
    • 右移:>>

这里的按位左移右移看似很难理解,然而,要是我举下面这一个例子,阁下又该如何应对?

1100 0011 >> 1 == 1110 0001 
1100 0011 << 2 == 0000 1111

显而易见,这一对运算符就是移位,并无神秘感

在Kevil5中,如果我们想让一个灯亮,根据计算机基础知识,二进制是关键,1意味着关,0意味着开,而通过单片机的原理图我们发现P2这个“东西”正是控制LED模块的,因此,我们将围绕着P2来做功夫

单片机有八个led灯,而查阅资料我们得知每一个数字对应着每一盏灯的状态,因此我们想让第一个灯亮,显然我们得让其他灯灭

写成1111 1110是我们的第一个想法,然后单片机也是有脾气的,我们这样写进Kevil里面,它会把这串当成10进制,从而不能达到我们的目的,这时,简单的做法就是进制转换,方便起见我们把它转成16进制

于是,它就变成了 P2=0xFE

仅仅有这么一行代码是不够的,因为这样写,就等于空中楼阁,没有地基,一切白搭。类似于我们编写c语言代码,我们得写一个主函数,形成一定的框架,让这串代码能正常工作,同时,引入库的文件是我们的任务之一

因此,代码可以写成这样:

#include <REGX52.H>
void main()
{
	
		P2=0xFE;
}

写好后,使用stc-isp下载,烧录进单片机中,运行的结果就是D1亮。由此,我们的第一个任务完成了。

2.延时函数的运用

通过对第一个任务的理解,我们自然不费吹灰之力就能举一反三,可以让很多灯都亮起来,但我们不该就在此止步,我们得学有意思的,而灯的闪烁看起来挺简单而且有趣,于是让LED以一定的间隔间断性的闪烁就是我们的下一个任务

身为小白的我们,这时得把目光放在stc-isp上了,通过右方一大群功能的查找,我们看到了这么个功能:“软件延时计算器”,其中我的单片机可以使用11.0592的频率,我进行了改造,使其能造成任意时长的延时,代码如下:

void delay(unsigned int xms)		//@11.0592MHz
{while(xms--){
unsigned char i, j;

	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
	
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值