登录  | 立即注册

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

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 51单片机之点灯与闪烁

[复制链接]
发表于 2023-1-14 16:24:14 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 51单片机
学习安排: 点灯和闪烁
开始时间: 2022-11-09
结束时间: 2022-11-09

在放假之前就学完了这部分,所以以下大部分内容为总结性内容
一,初识开发板原理图和点灯原理
首先拿到板子,我们第一步应该去看原理图
1.png
    1.从原理图我们可以看出来不论是数码管还是led灯,都是由那个74HC245寄存器控制的,然后再看那一排led灯,三极管的基极是LEDS6,根据这种三极管的特性我们可以知道当基极为低电平(即0)时三极管导通,而控制LEDS6的又是那个寄存器左边的74HC138来控制。以上阐述决定了我们在代码中除了要控制灯本身的高低电平外,还要控制74HC138和74HC245。
2.注:本套开发版中的灯引脚给1是灭给0是亮,默认为1.


二、在keil中写代码实现我们的点灯与闪烁
1.控制74HC245:只需要将ENLED对应的引脚P11赋0即可(即低电平),(对应的引脚在主芯片上有标注)
2.控制74HC138:这个要结合图片,我们的目的是让LEDS6赋0(即低电平)
2.jpg 3.png
从左图对应到右图(左图是规则,没有为什么)我们可以知道
       P20=0
        P21=1
        P22=1
就能让LEDS6为低电平。
3.给灯赋0:想让哪个灯点亮就给他赋0,这里拿第一个灯为例那就是DB0对应的引脚P00=0;
4.png
最后的程序如图↑


三、以点灯为基础让灯闪烁
原理就是让灯不断的重复开-关-开-关的过程,我们需要在开和关之间加个延时
因为人眼的余晖效应,延时不能太短,否则你看到的依旧是一直亮着的灯。
延时我们可以自己摸索用循环写,也可以用stc的烧录软件自动生成(如下图)
5.png
选好基本配置后就能生成了
6.png
把开关这个过程写进while循环中,中间加个延时就可以了!!
(这是放假前写的老代码)while中我是对P0整体赋值的也就是P00-P07,这样一下可以控制八个引脚,用的是16进制,如果只想让一个灯闪烁可以把P0换成P0x,这些引脚可以在stc12c5a60s2的头文件中详细查阅






由此,我们实现了LED的点灯与闪烁





好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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