实验简介
实验原理图

实验原理
- 基本原理:LED阳极接着VCC(电源引脚),根据LED的单向导电性,我们只需软件控制通用输入输出端口中的P0(GPIO引脚),使其输入低电平(0),即可点亮对应的LED,输入高电平(1),熄灭对应的LED,在 LED 管脚上串联一个电阻,目的就是为了限制通过发光二极管的电流不要太大,因此这些电阻又可以称为“限流电阻”。
- 实现须知:锁存端LE得为高电平,即得控制Y4C为高电平,下图知Y4C,受Y4控制,WR输入固定为低电平(0),了解数字电路中或非门知识,我们得使得Y4输出低电平,才能使的Y4C输出高电平,而Y4为74HC138芯片(38译码器)的一个管脚,查阅对应芯片手册可知,其真值表满足C = 1,B = 0,A = 0,(对应管脚P27,P26,P25),才能使得Y4输出低电平,同时代码实现时要保证管脚P2的其他的管脚(0~4)保持原来的状态 。


实验程序
点亮第一个LED灯
//config.h--用于声明头文件,声明函数,声明一些经常使用的变量
#ifndef _CONFIG_H
#define _CONFIG_H
#include <STC15F2K60S2.H>//对应芯片函数头文件,定义了一些特殊功能寄存器
#endif
#include "config.h"
void led_init()
{
P2 = (P2 & 0x1f) | 0x80;//保证低五位不变,且高三位为100
P0 = 0xff;
}
void main()
{
led_init();
P0 = ~(0x01);
while(1);
}
LED灯闪烁实验
//config.h--用于声明头文件,声明函数,声明一些经常使用的变量或难书写的语句
#ifndef _CONFIG_H
#define _CONFIG_H
#include <STC15F2K60S2.H>//对应芯片函数头文件,定义了一些特殊功能寄存器
#include<intrins.h>//使用_nop_()函数所需的头文件
void Delay100ms();//@12.000MHz
#endif
#include "config.h"
void led_init()
{
P2 =

最低0.47元/天 解锁文章
4078

被折叠的 条评论
为什么被折叠?



