C51寄存器点灯入门学习

前期准备

首先我们肯定是需要一个兼容80c51的板子,本人选择的是N76E003这块板子。如图所示
下载调试器





程序写得再完美,如果无法成功下载到板子中运行,那也只是纸上谈兵。对于 N76E003 这块开发板,其官方配套的下载调试器为 Nu-Link。
要想程序成功下载,我们需要提前安装 两个驱动程序。
这两个驱动通常会在购买开发板时由商家一并提供,如 图 2 所示。
安装这些驱动的目的,是为了:
- 保证 Keil 能正确识别 Nu-Link 下载调试器
- 确保程序能够稳定、正确地下载到单片机中
安装完成后,在 Keil 中即可看到对应的下载调试器设备,如 图 3 所示。
下面用我自己比较薄弱、但直观的理解来解释一下 为什么一定要安装下载调试驱动:
首先,我们编写的程序是运行在上位机(电脑)中的,而单片机程序最终需要被烧录到开发板里运行。
那么问题来了:电脑如何把程序“送”进单片机?
这时,就需要一个“中间人”——也就是 下载调试器(Nu-Link),它负责在上位机和单片机之间进行数据传递。
但下载调试器并不是“插上就会用”的,它要能正确理解上位机发送的程序数据,就必须:
- 上位机 ↔ 下载调试器
- 下载调试器 ↔ 单片机
双方都遵守同一套通信协议
而下载调试驱动程序的作用,正是:
- 让 操作系统与下载调试器之间建立统一、正确的通信协议
- 从而保证 Keil 发送的程序数据,能被 Nu-Link 正确识别和解析
- 最终确保程序能够稳定、准确地下载到单片机中
只有在驱动、调试器、开发环境三者都正常工作的情况下,程序下载和调试才能顺利完成。
开始点灯

一、基本流程说明
- 配置端口为推挽输出模式
- 通过端口置 1 或清零控制 LED 的亮灭
二、N76E003 端口模式配置说明
在 N76E003 中,端口的工作模式由 PxM1 和 PxM2 两个寄存器共同决定,具体对应关系如下:
PxM1.n | PxM2.n | I/O 类型 |
0 | 0 | 准双向 |
0 | 1 | 推挽输出 |
1 | 0 | 输入(高阻) |
1 | 1 | 开漏 |
三、LED 所在端口分析
根据板子的原理图可以看到,LED 连接在 P1.2 端口。
因此,要将 P1.2 配置为推挽输出模式,需要:
- P1M1.2 = 0
- P1M2.2 = 1
这样即可使 P1.2 工作在推挽输出模式。
同时,从原理图可以确定:
- P1.2 = 1 → LED 熄灭
- P1.2 = 0 → LED 点亮
四、程序编写前需要明确的两个知识点
启动文件的重要性
无论是 51 单片机 还是 32 位 MCU,程序要正常运行都必须有启动文件。
因此,在 Keil 工程中需要在 Source Group 中添加:
STARTUP.A51
该文件用于完成上电后的初始化并跳转到 main 函数。
51 单片机对寄存器和位操作的限制
在 51 单片机 中,有以下几点需要注意:
- 不能像 32 位 MCU 一样通过指针直接操作寄存器地址
- 所有特殊功能寄存器(SFR)都需要使用
sfr进行定义 - 如果需要进行位操作:
- 该位必须位于 0x80–0xFF 范围内
- 且地址必须以 0H 或 8H 结尾
- 此时需要使用
sbit来定义和操作单个位
代码

0
0
0
qq空间
微博
复制链接
分享
0