登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 单片机学习——点亮你的LED

[复制链接]
发表于 2022-1-5 15:57:34 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 51单片机
学习安排: 学会根据原理图写出点亮led的程序
开始时间: 2022-01-04
结束时间: 2022-01-05
一:单片机基础知识
(1)单片机内部资源
内部资源指作为单片机用户,单片机提供给我们可使用的东西。
Flash——程序存储空间。(个人初期理解为计算机硬盘)
RAM——数据存储空间。 (个人初期理解成计算机的内存)
SFR——特殊功能寄存器。(不懂


(2)单片机最小系统
片机最小系统,也叫做单片机最小应用系统,是指用最少的原件组成单片机可以工作的系统。
单片机最小系统的三要素就是电源、晶振、复位电路。
ED小灯
LED(light-emitting diode),即发光二极管,俗称 LED 小灯,它的种类很多,参数也不尽
相同,我们板子上用的是普通的贴片发光二极管。这种二极管通常的正向导通电压是 1.8V
到 2.2V 之间,工作电流一般在 1mA~20mA 之间。在1mA~5mA之间,亮度随电流增大
而增大,在5mA~20mA之间,电流增大亮度变化不明显。注意电流参数防止烧坏led小灯。


如图VCC为正极,程序控制P0.0端为低电平来产生电压差,从而产生电流点亮led小灯。
若该端为高电平,那就没有电压差,没有电压差就不会产生电流,led就不亮。
三:程序编写
首先声明
#include<reg52.h>
该头文件类似于C语言中的<stdio.h>,为了方便程序调用
点亮小灯的程序是根据金沙滩的视频资料中的程序改写的,毕竟板子不一样,要看板子的
原理图来写。下面贴出我写的程序(依葫芦画瓢写的,原理还没完全看透彻,仅供参考)

#include <reg52.h>

sbit LED  = P0^0;    /*根据原理图,可以写为P0^1,P0^2等 来控制不同的小灯的亮灭*/
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;

sbit ENLED = P1^1;


void main()
{
       
       
        P20 = 0;
        P21 = 1;
        P22 = 1;

        ENLED = 0;
       
        LED = 0;
        while(1);
       
}



“sbit LED  = P0^0; ”就对应所以开发板上最左边的小灯亮
把“LED = 0;”改为“LED = 1;”小灯就灭了。
1和0在这里控制高低电平。


8267a47a72bdf009b60a44e1a7c75888e474a8256f70a10e4.jpg
手把手教你学51单片机-C语言版.png
IMG_20220105_150200.jpg
QQ截图20220105155235.png
QQ截图20220105155321.png
好懒~~不想说~~~
发表于 2022-1-7 18:27:45 | 显示全部楼层
寄存器相当于硬件工程师给软件工程师留的接口,软件工程师可以通过读写寄存器进而控制MCU的状态。举个例子,你可以通过空调面板上的按键控制温度,通过显示屏读取温度,按键就可以理解为只写寄存器,显示屏就是制度寄存器。但是面板后面的东西你不需要知道。可以理解为API吧。
好懒~~不想说~~~
 楼主| 发表于 2022-1-8 17:14:07 | 显示全部楼层
stoner 发表于 2022-1-7 18:27
寄存器相当于硬件工程师给软件工程师留的接口,软件工程师可以通过读写寄存器进而控制MCU的状态。举个例子 ...

谢谢,感觉好懂一些了(~ ̄▽ ̄)~
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表