51单片机学习笔记——介绍和点亮LED

  • 单片机介绍
  1. 、命名规则
  1. 、系统

VCC代表正级end代表接地、负极。图中C6C5电容具有滤波作用。

XTAL1、XTAL2连接晶振,晶振的作用就是驱动程序往下走

RST为复位电路

  • 控制LED点亮

(1)、准备事项

需要使用的软件有:

如果需要仿真可以使用:

在安装时注意杀毒软件和防火墙是否都是关闭状态

(2)、新建文件

打开KEIL软件

选择【project】-【New project】

【建立文件夹】-【文件名】-【保存】

选择自己的芯片类型,我使用的是STC89c52RC,如果一开始发现没有STC的芯片需要用到下载软件STC-ISP

如何将STC芯片放入KEIL里?

找到KEIL仿真设置,选择好单片机型号加入KEIL中即可

创建好后右键【source Group】-【Add New ltem......】

加入之后选择c,并填写程序名,之后点击【Add】完成程序的创建

  • 如何点亮一个LED灯

首先我们需要找到板子的LED接到哪个端口,根据厂家提供的电路原理图可以看到网络标号从P20开始,模块中电阻为限流作用,图中正级接的VCC那么我们的P20应该给低电平才可以使得发光二极管点亮。

那如何控制IO口输出高低电平呢?

单片机里有一个cpu,cpu链接寄存器(以8个为一组),相当于按钮,每个存储器都有一根线和驱动器链接控制电路。如果写1就是高电平,写0就是低电平,

本项目中P2寄存器给1111.1111是不是就可以控制p20到p27的口了?当然不行还需要经过进制转换。

如果只是这样打是不行的,会提示P2口未定义,需要把头文件包含上

右键空白区域,点击第二个选项包含头文件

(不同芯片的头文件可能不一致,代码写法也不一致,具体需要打开头文件查看,比如有的是P2_1有的是P2.1有的是P2^1)

代码编写完成后点击画圈的地方

找到Output勾选Create HEX File这样做的目的是创建一个HEX程序文件,如果需要下载程序到单片机里必须勾选这个选项。

之后打开下载软件

芯片型号选择自己对应的型号,端口有点会自动找到,再点击打开程序文件,找到Objects里面就有我们的HEX文件,选择

下载时注意关闭单片机电源再开启

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数码管是一种常见的数字显示器件,可以用于显示各种数字、字母等字符。在单片机应用中,数码管通常用于显示计数器、计时器、温度、湿度等实时数据。 数码管的种类有很多,包括共阳数码管、共阴数码管、共阳共阴混合数码管等。其中,共阳数码管是最常见的一种,也是本文所涉及的数码管类型。 单片机控制数码管的原理是通过对数码管的各个管脚进行控制,使其显示相应的数字或字符。数码管的控制方式有两种,即静态显示和动态显示。 静态显示是指将要显示的数字或字符的每一位分别输出到数码管的每个管脚上,然后使其保持不变,从而实现显示效果。静态显示的缺点是需要使用大量的I/O口,且不能灵活地改变显示内容。 动态显示是指将要显示的数字或字符的每一位依次输出到数码管的每个管脚上,并在短时间内快速切换下一个数字或字符,从而形成连续的显示效果。动态显示的优点是可以使用较少的I/O口,且可以灵活地改变显示内容。 以下是一个简单的动态显示数码管的实现示例: 1. 定义数码管的引脚 ```c #define DIG_PORT P2 // 数码管位选端口 #define DIG_COM 0x00 // 数码管位选端口初始值 #define LED_PORT P0 // 数码管段选端口 ``` 2. 定义数码管显示的数字或字符 ```c unsigned char code ledChar[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; ``` 3. 实现数码管动态显示函数 ```c void display(unsigned char i) { unsigned char j, k; for (j = 0; j < 8; j++) { DIG_PORT = DIG_COM | (1 << j); // 选择数码管位(从左到右) for (k = 0; k < 100; k++); // 延时,视情况可调整 LED_PORT = ledChar[i]; // 显示数码管上的数字或字符 } } ``` 4. 调用数码管动态显示函数 ```c int main() { unsigned char i = 0; while (1) { display(i % 10); // 显示数字 i 的个位数 i++; } return 0; } ``` 以上就是一个简单的数码管动态显示的实现示例。需要注意的是,数码管的控制方式和具体实现方法可能因不同的硬件平台和编程语言而有所不同。因此,在具体应用中需要根据实际情况进行适当的调整和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值