在放假之前就学完了这部分,所以以下大部分内容为总结性内容
一,初识开发板原理图和点灯原理
首先拿到板子,我们第一步应该去看原理图
1.从原理图我们可以看出来不论是数码管还是led灯,都是由那个74HC245寄存器控制的,然后再看那一排led灯,三极管的基极是LEDS6,根据这种三极管的特性我们可以知道当基极为低电平(即0)时三极管导通,而控制LEDS6的又是那个寄存器左边的74HC138来控制。以上阐述决定了我们在代码中除了要控制灯本身的高低电平外,还要控制74HC138和74HC245。
2.注:本套开发版中的灯引脚给1是灭给0是亮,默认为1.
二、在keil中写代码实现我们的点灯与闪烁
1.控制74HC245:只需要将ENLED对应的引脚P11赋0即可(即低电平),(对应的引脚在主芯片上有标注)
2.控制74HC138:这个要结合图片,我们的目的是让LEDS6赋0(即低电平)
从左图对应到右图(左图是规则,没有为什么)我们可以知道
P20=0
P21=1
P22=1
就能让LEDS6为低电平。
3.给灯赋0:想让哪个灯点亮就给他赋0,这里拿第一个灯为例那就是DB0对应的引脚P00=0;
最后的程序如图↑
三、以点灯为基础让灯闪烁
原理就是让灯不断的重复开-关-开-关的过程,我们需要在开和关之间加个延时
因为人眼的余晖效应,延时不能太短,否则你看到的依旧是一直亮着的灯。
延时我们可以自己摸索用循环写,也可以用stc的烧录软件自动生成(如下图)
选好基本配置后就能生成了
把开关这个过程写进while循环中,中间加个延时就可以了!!
(这是放假前写的老代码) while中我是对P0整体赋值的也就是P00-P07,这样一下可以控制八个引脚,用的是16进制,如果只想让一个灯闪烁可以把P0换成P0x,这些引脚可以在stc12c5a60s2的头文件中详细查阅
由此,我们实现了LED的点灯与闪烁
|