51单片机入门 - 学习笔记

最新更新时间:2022-05-28来源: eefocus关键字:51单片机  入门  学习笔记 手机看文章 扫描二维码
随时随地手机看文章

什么是单片机


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

Intel公司推出了MCS-51系列单片机:集成 8位CPU、4K字节ROM、128字节RAM、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64K,并有控制功能较强的布尔处理器。
 

51单片机封装

这里写图片描述

 

单片机工作的基本时序

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


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


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


指令周期: 它是指CPU完成一条操作所需的全部时间。


每条指令执行时间都是有一个或几个机器周期组成。MCS - 51 系统中, 有单周期指令、双周期指令和四周期指令。


数字电路基础

 

电平特性 

数字电路中只有两种电平:高电平和低电平 
高电平:5V或者3.3V,取决单片机电源。 
低电平:0V 
RS232电平:计算机串口的电平 
高电平:-12V 
低电平:+12V 
所以当我们用单片机跟电脑通信的时候,我们要通过各种元器件将单片机的电平转换为计算机可识别的电平才能跟电脑进行通信。
 

二进制逻辑运算

“与”运算 
    有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;

 

80C51的引脚

这里写图片描述


P3口第二功能各引脚功能 定义: P3.0:RXD串行口输入 
P3.1:TXD串行口输出 
P3.2:INT0外部中断0输入 
P3.3:INT1外部中断1输入 
P3.4:T0定时器0外部输入 
P3.5:T1定时器1外部输入 
P3.6:WR外部写控制 
P3.7:RD外部读控制
 

建立keil工程文件


1.创建工程文件夹 
2.创建工程文件 
3.选择正确的单片机型号 
4.创建新的C语言文件 
5.保存并添加C语言文件 
6.开始编写程序


LED

Light Emitting Diode 
LED,即发光二极管,是一种半导体固体发光器件。 插件  贴片  LED 原理图 

这里写图片描述 
贴片 
这里写图片描述 
LED 原理图 
这里写图片描述
工作原理:单向导电性


LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。

开发板LED原理图

 

点亮LED


 

#include “reg52.h”   

 

                   //此文件中定义了单片机的一些特殊功能寄存器,调用头文件

 

 sbit led=P0^0;    //将单片机的P0.0端口定义为led,p是port的缩写

 

 

 

void main()

 

{

 

    while(1)

 

    {

 

        led=1;  //P0.0端口设置为高电平

 

    }       

 

}

 

//补充:bit和sbit都是C51扩展的变量类型。sbit用法:sbit 变量名=地址值;在给某个引脚取名的时候经常会用到。

LED闪烁

 

1.C语言常用的预处理命令


typedef使用 
typedef unsigned char u8; 
typedef unsigned int u16;(后面要加分号)


新定义一些常用的关键词,可以增强程序的可移植性,因为在不同的编译软件上面,C语言的数据类型的关键词的位宽是不一样; 
 


2.延时函数

void delay(u16 i)//大约延时10us{    while(i--); }
 

#include "reg52.h"          

 

typedef unsigned int u16;                    //预处理命令

 

typedef unsigned char u8;

 

    sbit led=P0^0;                       //端口定义

 

 

 

void delay(u16 i)                                   //大约延时10us

 

{

 

    while(i--);                                     

 

}

 

 

 

void main()                                            

 

{

 

    while(1)

 

    {

 

        led=0;                         //管脚置低电平

 

        delay(50000);             //大约延时0.5秒

 

                            led=1;                         //管脚置高电平      

 

        delay(50000);   

 

    }       

 

}                                            

 

//Pracitce:控制第一个和第二个LED交替闪烁,周期为两秒。


静态数码管

原理图

这里写图片描述

 led数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。 


LED数码管根据LED的不同接法可以分为2类:共阴和共阳。


封装

这里写图片描述

工作原理

这里写图片描述


因为是共阳数码管,所以控制端为低电平才能导通,LED发光,所以如果需要静态数码管显示固定字符只要找到对应的端口状态,进而控制显示字符。


关键字:51单片机  入门  学习笔记 编辑:什么鱼 引用地址:51单片机入门 - 学习笔记

上一篇:51单片机入门 - 按键驱动程序设计实验
下一篇:51单片机入门 - 寄存器功能一览表

推荐阅读

用AT89C51单片机显示倒计时程序
;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时;倒计时时间由四位拨码开关的2/3/4位来控制,;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟,;通过不同的组合可以产生5/15/20/30/35/45/50分钟倒计时;P1.0口的外接的发光二极管为状态LED,定时未开始时LED常亮,定时过程中LED闪烁;K1为开始按钮,K2为停止按钮适用STM8S/STM8L/STM8A N76E003 脱机编程器/烧录器/下载器/SP_00【包邮】m.tb.cn/h.UlXVKiOa_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置temp eq
发表于 2023-01-13
总结大佬经验,如何学习STM32?(入门、进阶)
一、想快速入门进阶,面向工作时先把工作中需要的东西学会,一项一项的来,比如先把GPIO弄清楚,怎么初始化,怎么输入输出,然后定时器、串口、ADC、DAC、DMA、SPI等等先把用得着的一个一个地做,都弄明白了再往一块整合,从简单到复杂,硬件操控起来了也就算对这种单片机入门了吧,软件方面,不管用什么单片机,用什么编译器,区别不大初学的最好还是买个开发板,不需要多高级的,有几个常用功能做出来,其它就容易了。--------hdxet关于初学者是否需要弄清底层函数问题:先玩起来再说底层函数,一般就用现成的库,绝大多数应用都没问题的,至于库里面是什么,先不管它,到了高级阶段再去看--------hdxet二、进阶步骤会点灯-入门;会使用各个
发表于 2023-01-13
143条 超详细整理STM32单片机学习笔记(必看)
1、AHB系统总线分为APB1(36MHz)和APB2(72MHz),其中2>1,意思是APB2接高速设备2、Stm32f10x.h相当于reg52.h(里面有基本的位操作定义),另一个为stm32f10x_conf.h专门控制外围器件的配置,也就是开关头文件的作用3、HSE Osc(High Speed External Oscillator)高速外部晶振,一般为8MHz,HSI RC(High Speed InternalRC)高速内部RC,8MHz4、LSE Osc(Low Speed External Oscillator)低速外部晶振,一般为32.768KHz,LSI RC(Low Speed InternalRC)
发表于 2023-01-13
51单片机数码管静态显示和动态显示原理及实验 夜猫子
数码管多位数码管,即是两个或两个以上单个数码管并列集中在一起形成一体的数码管。当多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”有了这两个线后,通过单片机及外部驱动电路就可以控制任意的数码管显示。一般一位数码管有10个引脚,二位数码管也是10个引脚,四位数码管是12个引脚。为了更方便区分段选和位选,请看下原理图:如图为两个4位一体的数码管,可以看到与8个com相连的是两个数码管的位选,位选与引脚相连,所以位选控制那个灯亮。段选可以看到a
发表于 2023-01-12
<font color='red'>51单片机</font>数码管静态显示和动态显示原理及实验 夜猫子
51单片机独立按键和矩阵按键实现
独立按键实验按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时,开关断开。我们开发板上使用的按键及内部简易图如下图所示管脚与管脚之间(注意是距离)距离长的是导通状态,短的是接通状态。通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号如下图所示:如图所示,按键闭合式不会立刻稳定的接通,断开时也不会一下子断开,会伴随一些抖动。抖动的时间长短有按键特性决定,一般为5Ms到10ms.按键抖动会引起按键被误读多次。为了确保 CPU 对按键的一次闭合仅作一次处理,必须进行消抖。消抖消抖可分为硬件消抖和软件消抖。为了使电路更加简单,通常采用软件消抖。一般来说一个简单的按键消抖就是先读取按键的状态, 如果得到按键按下
发表于 2023-01-12
51单片机8*8点阵原理及实现
LED点阵(8*8)LED 点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。通常应用较多的是 8* 8 点阵,然后使用多个 8 * 8 点阵可组成不同分辨率的 LED点阵显示屏,比如 16* 16 点阵可以使用 4 个 8* 8 点阵构成。因此理解了 8* 8LED点阵的工作原理,其他分辨率的 LED 点阵显示屏都是一样的。这里以 8* 8LED 点阵来做介绍。发光原理8* 8 点阵共由 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置 1 电平(行所接的是二极管的阳极,所以为高电平),某一列置 0 电平(列所接的是二极管的阴极极,所以为低
发表于 2023-01-12

推荐帖子

图像处理能力评测之三--JPEG图片解码能力
图像处理能力评测之三--JPEG图片解码能力硬件平台:STM32F769IDISCOVERY软件开发平台:Keil5.1测试方法:1.采用SD卡,并把测试的图片存放到根目录中。SD卡的容量为8G,Class4。选用3种色彩丰富程度差别较大的图片,并把每种图片裁剪成800X480、480X320、320X240大小,作为基准测试图片。2.配置系统时钟为200MHZ,SD卡时钟为25MHZ,SDRAM的时钟为100MHZ,使用FATFS文件系统。关闭LCD层0的显示,开启LCD层1的
ilovefengshulin stm32/stm8
基于max038的函数发生器的问题
用max038产生的高频信号有很大的干扰如何滤除??产生的波形很粗!!!仔细看像扭得麻花?????这如何解决???为什么4051不能换挡??这也是个麻烦事!!希望哪个专家高手给点意见和经验!!!谢谢!!基于max038的函数发生器的问题
蠡降睿 测试/测量
关于windriver 如何将其自动生成的函数封装成DLL
我想在终端中对板卡读取特定IO口数据,利用windriver自动生成了ISA总线的驱动程序。程序可以正常运行。但是当我将其封装成DLL时,它总是报错:errorC2059:syntaxerror:\'__stdcall\' 不知道为什么。哪位高手帮我解释一下啊。或者给我些相关做成DLL的例子chm1984120@163.com万分感谢啊!呵呵。关于windriver如何将其自动生成的函数封装成DLL
lyb358 嵌入式系统
瞅瞅195万的布加迪台球桌:采用陀螺仪伺服调平系统,在船上稳如老狗
想在船上打场台球需要这么难吗?可以跟着下面的视频看看这款土豪级别的玩具它采用了陀螺仪伺服驱动调平系统,由于台球桌每个桌腿上都配备了西门子伺服驱动器,可以在5ms内调平,那么,问题来了,难道给台球运动造成的影响就可以消失吗?感觉让它悬浮起来受到的影响可以更小。 瞅瞅195万的布加迪台球桌:采用陀螺仪伺服调平系统,在船上稳如老狗
nmg 电机驱动控制(Motor Control)
《一生必读的中国帝王史》作者:周云芳
《一生必读的中国帝王史》作者:周云芳《一生必读的中国帝王史》作者:周云芳
wangqingtao 嵌入式系统
嵌入式系统开发圣经
嵌入式系统开发圣经.part1嵌入式系统开发圣经
lixiaohai8211 嵌入式系统
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved