51单片机的入门知识(献给初学者最易懂的文章)

前言:
✌ 作者简介:CC++Edge淇,大家可以叫我--斯淇。(CSDN优质博客的建议加这一条)
📑 个人主页:CC++Edge淇主页
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
🔥 如果感觉博主的文章还不错的话,还请不吝👍关注、点赞、收藏三连支持👍一下博主哦
💬 人生格言:琴键有限,人生无限--《海上钢琴师》💬
每日推荐歌曲:毛不易-《无名的人》
我一直很想写一篇初学者最快入门的文章,我原称为最简单的入门级STM51单片机的入门打法!!!!!(后续文章会更新)
最后祝贺一下自己访问量冲到了一万一!!!!!
————————————————
————————————————

目录

单片机入门

首先讲一讲单片机入门知识!!!!

单片机工作的基本时序

LED灯!原理图

LED,即发光二极管,是一种半导体固体发光器件。

 LED的点亮方法 

1.蜂鸣器!简介:

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。我们开发板上常用的蜂鸣器就是常常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器)。 直流蜂鸣器是给一定的驱动直流电压就会响。而交流蜂鸣器是需要给蜂鸣器一个脉冲才会响。常见的有PWM波控制蜂鸣器的频率。脉冲就是高低电平的切换,如下图:一个方波脉冲 ​

( 来一个实训内容:三次闪灯,加上两次左右灯光循环最后使用蜂鸣器发声)!(手动打码)

单片机入门

首先讲一讲单片机入门知识!!!!

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

这里写图片描述

直接上展示图!!!

 

 

单片机工作的基本时序

(1)振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,我们开发板上为12MHZ。

(2)状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的

(3)机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。

  (4)指令周期:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。

  MCS-51系统中,有单周期指令、双周期指令和四周期指令。

  2.接受外部的控制,通过I/O来感受外部的电压。

  3.51单片机总共有P0、P1、P2、P3四个8位双向输入输出端口,每个端口都有锁存器、输出驱动器和输入缓冲器。4个I/O端口都能作输入输出口用。

二进制逻辑运算
“与”运算 
有0得0 
1&1=1 ; 1&0=0 ; 0&0=0 ;
“或”运算 
有1得1 
1|1=1 ; 1|0=1 ; 0|0=0;
“非”运算 
1的非得0,0的非得1。 
~1=0; ~0=1;
“异或”运算 
必须不同,否则没有(0) 
1^1=0;1^0=1;0^0=0;

来原理图!!! 

LED!原理图

LED,即发光二极管,是一种半导体固体发光器件。

 LED的点亮方法 

点亮LED颗!!

#include <REGX52.H>
#include <INTRINS.H>
void Delay50ms()		//@11.0592MHz
{
unsigned char i,j,k;
_nop_();
i=4;
j=205;
k=187;
do{
	do{
while (--k);
	}while (--j);
}while(--i);

}
void main(){
while(1){
P2=0xAA;
Delay50ms();
P2=0XFF;
Delay50ms();
}
}

LED流水灯!

#include <REG52.H>
#include <INTRINS.H>
void Delay500ms()		//@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}
void main(){
while (1){
P2=0xFE;
Delay500ms();
P2=0xFD;
Delay500ms();
P2=0xFB;
Delay500ms();
P2=0xF7;
Delay500ms();
P2=0xEF;
Delay500ms();
P2=0xDF;
Delay500ms();
P2=0xBF;
Delay500ms();
P2=0x7F;
Delay500ms();
}

按住一个K1,亮起LED灯

#include <REGX52.H>
void main(){
while(1){
	if(P3_1==0){
		P2_0=0;
	}
	else{
		P2_0=1;
	}
}

}
#include <REGX52.H>
void Delay(unsigned int xms)		
{
unsigned char i, j;
while (xms){
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main(){
while(1){
if(P3_1==0){
Delay(20);
while(P3_1==0);
Delay(20);
		P2_0=~P2_0;
	
	
		}

}
}

独立按键控制按键显示二进制灯光

工程代码:#include <REGX52.H>
void Delay(unsigned int xms)		
{
	unsigned char i, j;
while (xms--){
	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
	
}
}
void main(){
	while(1){
			P2_0=0;
			Delay(500);
			P2_0=1;
			Delay(500);
		
			}
}
	

 插一张运算符含义图(太重要了)

1.蜂鸣器!简介:

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。我们开发板上常用的蜂鸣器就是常常说的交流蜂鸣器或直流蜂鸣器(自激式蜂鸣器)。 直流蜂鸣器是给一定的驱动直流电压就会响。而交流蜂鸣器是需要给蜂鸣器一个脉冲才会响。常见的有PWM波控制蜂鸣器的频率。脉冲就是高低电平的切换,如下图:一个方波脉冲

 

( 来一个实训内容:三次闪灯,加上两次左右灯光循环最后使用蜂鸣器发声)!(手动打码)

#include <REGX52.H>
#include <INTRINS.H>
typedef unsigned int u16;
typedef unsigned char   u8;
	sbit BEEP=P1^5;
	void delay(u16 xs){
		while(xs--);
	}
	void main(){
		u16 i=2000;
		u16 j=0;
		while(1){
			P2=0x00;
			delay(50000);
				P2=0xFF;
			delay(50000);
			P2=0x00;
			delay(50000);
			P2=0xFF;
			delay(50000);
			P2=0x00;
			delay(50000);
			P2=0xFF;
			delay(50000);
			P2=0xfe;
			for(j=0;j<7;j++){
				P2=_crol_(P2,1);
				delay(50000);
			}
				for(j=0;j<7;j++){
						P2=_cror_(P2,1);
					delay(50000);
				}
				while(i--){
					BEEP=!BEEP;
					delay(300);
				}
				i=0;
				BEEP=0;
			}
		}

单片机

相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机,具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候,我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出,或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢?这个问题,困扰了我好久。具体选择C51还是A51呢?汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似,编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,一定会对以下几个词见的比较多,但是具体的概念还是比较模糊,现作如下说明:
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值