AutoLeaders控制组-叶睿 51单片机LED与数码管学习笔记

目录

单片机的介绍:

        1.1单片机的介绍

        1.2单片机的应用领域

        1.3STC89C52单片机(我们所使用的)

        1.4命名规则(以STC89C52为例)

        1.5单片机的内部结构

2.点亮一个LED

        2.1电阻

        2.2硬件电路

        2.3存数据的小盒子(C51数据类型)

3.独立按键控制LED

        3.1独立按键

        3.2C51数据运算

        3.3C51基本语句

        3.4按键的抖动

        3.5按键的消抖

4.数码管

        4.1数码管介绍

        4.2数码管的引脚定义

        4.3 138译码器

        4.4 双向数据缓冲器(74HC245芯片)

        4.5C51数组

        4.6数码管的消影

        4.7数码管的驱动方式


单片机的介绍:

        1.1单片机的介绍

        •单片机,英文Micro Controller Unit,简称MCU

        •内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能

        •单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机,LED等)的控制

        •单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用

        •单片机跟计算机相比,单片机算是一个袖珍版计算机,一个芯片就能构成完整的计算机系统。但在性能上,与计算机相差甚远,但单片机成本低、体积小、结构简单,在生活和工业控制领域大有所用

        1.2单片机的应用领域

        •单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

        1.3STC89C52单片机(我们所使用的)

        •为什么叫51单片机?

                51单片机是一种intel开发的8051单片机内核的统称。只要可以兼容这种内核的单片机都称作“五幺单片机”。

        •所属系列:51单片机系列

        •公司:STC公司

        •位数:8

        •RAM512字节

        •ROM8KFlash

        工作频率:12MHz(本开发板使用)

        •RAM和ROM的区别:

                RAM和ROM是两种存储器

                RAM叫做Random Access Memory,也就是随机存储器

                ROM叫做Read Only Memort,也就是只读存储器

                RAM的特点是掉电丢失(相当于工作的工厂,只要停止工作就不再保存了)

                ROM的特点是长期存储(相当与仓库,掉电不丢失)

                RAM相当于电脑的内存条

                ROM相当于电脑的硬盘

        1.4命名规则(以STC89C52为例)

        •STC:公司名称

        •89:代表的是该单片机的系列

        •C:代表工作电压

                C:5.5~8.8V

                LE:3.6V~2.4V / 3.4V~2.4V

        52:程序空间及RAM空间的大小

                52表示8字节程序空间及512字节的RAM空间大小

        •35:表示工作频率

                35表示工作频率可达35MHz

        •I:表示工作温度范围

                I:工业级:40℃~85℃

                C:商业级:0℃~70℃

        •DIP:封装类型

        •40:管脚数

        1.5单片机的内部结构

         •这一整个结构都是在单片机的芯片内,芯片又分为内核和一些周边设备

                8051微处理器就是8051单片机的内核

                E²PROM:用于存储数据

                看门狗:防止数据丢失

                I/O口:引出单片机的引脚

         •所有的周边设备都是连接在总线结构上的

        •CPU访问主线便可访问到全部的周边设备

        •单片机的管脚图:

         •管脚图是需要记忆的

                P1/P2:用于连接外部设备的

                Vcc:电源正极

                Gnd:电源负极

                XTAL:外接晶振给单片机提供时钟,用于驱动代码运行

                RST:用于复位的

        开发板介绍:

        •单片机的缺口一定要朝上安装进开发板

        •在单片机的右侧有一排D1-D8为LED

        •开发板下方的红色与黑色为按键

                红色的为矩阵按键

                黑色的为独立按键

                按键用于接收我们输入的按键数值从而达到一定的功能

        •单片机的下方右侧的IR1为红外接收头,可以接受遥控器的控制

        •单片机下方左侧的R13为无线模块,调动无线模块可以实现有一个单片机到另一个单片机

        •单片机左侧的DS1302为时钟芯片可以读取它的时间以达到控制效果

        •单片机左侧有一个复位按键可以手动使单片机从头再次开始执行程序

        •单片机左侧的AD/DA为模数转换器用于将输入的高低电频转换为数字信号交给单片机来处理,同时也可以将输出的数字信号转换为模拟电压给外界使用

        •单片机左侧的74H595芯片可以扩展单片机的I/O口数量

        •单片机左侧的步进电机可以精确的控制角度,且不会随电压的改变而改变转速

        •单片机左侧的蜂鸣器可以被单片机控制发出一定的声音 

        •单片机左侧的译码器用于驱动数码管

        •单片机左侧的24C02为一个ROM

        •单片机上方的74HC245也是用于驱动数码管

        •上面的电位器用于调整液晶屏的对比度,它右侧的排座是用于插入液晶屏

        •液晶屏排座下方的为点阵屏,可以驱动它使它显示不同的图案

2.点亮一个LED

        2.1电阻

        •作用:限流

        •读数方法

                前面的数字为有效数字,最后一位为倍率

                102 = 10*10^2 = 1K

                1002 = 100*10^2 = 10K

        2.2硬件电路

        •输出高低电频的根本是配置P2口的寄存器

        •CPU通过控制的寄存器来控制硬件电路,然后硬件电路来实现我们想要进行的功能

        

        2.3存数据的小盒子(C51数据类型)

        •unsigned表示“无符号”及用于表示非负数

        float与double没有unsigned类型

3.独立按键控制LED

        3.1独立按键

         •又叫轻触按键

        •相当于一种电子开关,按下时开关接通,松开时开关断开

        •原理:轻触按键内部的金属弹片手里弹动来实现接通和断开

        •按键的按下与松开由寄存器来识别

        3.2C51数据运算

        •移位操作

                •0011 1100<<1    ->    0111 1000

                •0011 1100>>2    ->    0000 1111

                即将所有数向左/向右移动,超出的位数直接抹去,位上无数的用0代替

        •按位与  &

                •0001 1000  &  0010 1010    ->    0000 1000

                两个1才为1,有0就为0

        •按位或  |

                •0001 1000  |  0010 1010    ->    0011 1010

                •有1就为1

        •按位异或  ^

                •0001 1000  ^  0010 1010    ->    0011 0010

                相同为0,不同为1

        •按位取反  ~

                •~0001 1000    ->    1110 0111

        3.3C51基本语句

        3.4按键的抖动

        •对于机械开关,当机械出点断开、闭合时,由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以再开关闭合及断开的瞬间会伴随一连串的抖动

        3.5按键的消抖

        •硬件的消抖:通过增加电路,然后将需要消抖的线连接到新增电路中,经过一些触发器来将抖动过滤掉,以此来进行消抖

        •软件的消抖:通过延迟来将抖动的时间过滤掉

                利用Delay()函数

                void Delay(xms) 
                {
                        unsigned char i, j;
                        while (xms--)
                        {
                                i = 2;
                                j = 239;
                               do
                                {
                                while (--j);
                                } while (--i);
                        }
                }

        输入在()内输入需要延迟的时间即可

4.数码管

        4.1数码管介绍

               •LED数码管:数码管是一种简单、廉价的显示器,是由多个发光二极管封装在一起组成“8”字型的器件

        4.2数码管的引脚定义

                分类:

                                        一位的数码管

                                        四位一体的数码管

                结构:

                           一位的数码管

共阴极连接

共阳极连接

                        引脚排列原则:就近排列

                        N.B.•我们的开发板用的是共阴极连接的方式,使用前要将公共端接地(给数据0或者给低电频),称之为位选端。

                                需要点亮的LED输入1,不需要点亮的则输入0。这些数据共称为段码

                                •共阴极连接的段码与共阳极连接的段码是相反的。

                        四位一体的数码管

                                 •一个时间只能有一个数码管被点亮,即使多个同时点亮了,那么他们的数据也是相同的

                                •这种连接方式可以节约I/O口

        4.3 138译码器

                

                •6 4 5三个引脚叫做使能端

                •优点:可以用3个I/O口控制8个输出端

                •工作原理:给C B A三个端口二进制数,然后138译码器会将二进制转换为十进制后,从而选中相应的LED

        4.4 双向数据缓冲器(74HC245芯片)

                •DIR:direction的缩写,用于告诉缓冲器数据缓冲的方向

                        •若接高电频则数据从左到右输出

                        •若接低电频则数据从右向做读回

                •用处:提高电频的驱动能力

        4.5C51数组

                •数组:把相同类型的一系列数据统一编制到某一个组别中,可以通过数组名+索引号简单快捷的操作大量数据

                        int  x[3];               //定义一组变量

                        int  x[]={1,2,3};    //定义一组变量并初始化

                        x[0]                     //引用数组的第0个变量

                        x[1]                     //引用数组的第1个变量

                        x[2]                     //引用数组的第2个变量

                N.B.引用x[3]时,数组越界,读出的数值不确定,且编译器不会报错,应该避免这种操作

        4.6C51子函数

                •子函数:将完成某一种功能的程序代码单独抽取出来形成一个模块,在其他函数中可随时调用此模块,以达到代码的复用和优化程序结构的目的

                        void Function(unsigned  char  x)

                        {

                        }

    模板:        返回值  函数名(形参)

                        {

                                函数体

                        }

                •有三种输入与输出方法

                        有参数,有返回值。

                        无参数,有返回值。

                        有参数,无返回值。

                N.B.有形参的函数在引用时要有在()内写参数

                        •无返回值的函数用void

                        •有返回值的函数记得末尾有return语句

        4.6数码管的消影

                •数码管在选中各个位选和段选的过程中,由于数据传输过快会导致数据的篡位。

                •所以要在传递玩一个段选后将段选清零,这样之后即使数据篡位也不会对下一个段选造成影响

        4.7数码管的驱动方式

                •单片机直接扫描:硬件设备简单,但会稿费大量的单片机CPU时间

                •专用驱动芯片:内部自带显存、扫描电路、单片机只需告诉它显示什么即可

                                           (TM1640  74HC595等)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值