杰瑞科技汇

UG80编程实例教程图文怎么学?

UG80(也常被称为 STC80C52 或 STC89C52)是一款非常经典的、基于 8051 内核的增强型 8 位单片机,它因其高性价比、强抗干扰能力、宽电压工作范围以及ISP(在系统编程)功能,在电子制作、教学和工业控制中依然被广泛使用。

UG80编程实例教程图文怎么学?-图1
(图片来源网络,侵删)

本教程将以一个最经典的 LED闪烁实验 为例,带你从零开始,完成一个完整的 UG80 编程流程。


UG80编程实例教程:点亮第一个LED

准备工作

在开始之前,你需要准备以下硬件和软件:

硬件部分:

  • 主控板: 一块集成了 UG80/STC80C52 芯片的最小系统板,通常板上已经包含了:
    • UG80 芯片
    • 晶振 (通常为 11.0592MHz 或 12MHz)
    • 复位电路
    • 电源电路
  • 下载工具: 一个 USB 转 TTL 模块(如 CH340G、PL2303 或 CP2102),这是将电脑程序下载到单片机必不可少的桥梁。
  • LED灯: 一个任意颜色的发光二极管。
  • 电阻: 一个 220Ω ~ 1kΩ 的电阻(用于限流,保护LED)。
  • 杜邦线: 若干,用于连接。
  • USB数据线: 为下载模块和最小系统板供电。

软件部分:

UG80编程实例教程图文怎么学?-图2
(图片来源网络,侵删)
  • 编程/烧录软件:
    • Keil C51: 最经典的 8051 单片机开发环境,用于编写和编译 C 语言或汇编代码,你可以从 Keil 官网下载评估版。
    • STC-ISP: 官方提供的程序下载工具,用于将编译好的 .hex 文件烧录到 UG80 芯片中。
  • 代码编辑器(可选): VS Code、Notepad++ 等,用于编写代码。

硬件连接

这是最关键的一步,接错了可能会烧毁元件。

目标: 将 LED 连接到 UG80 芯片的 P1.0 引脚,并实现闪烁。

连接步骤(图文示意):

  1. LED 的引脚识别:

    UG80编程实例教程图文怎么学?-图3
    (图片来源网络,侵删)
    • LED 有两个引脚,长脚为正极(阳极,Anode),短脚为负极(阴极,Cathode)
    • 可以通过观察 LED 内部,较小的一边是负极,较大的一边是正极。
  2. 搭建电路:

    • LED 的长脚(正极) 连接到 220Ω 电阻 的一端。
    • 电阻的另一端 连接到 UG80 最小系统板的 P1.0 引脚。(板上通常有"P1.0"的丝印)
    • LED 的短脚(负极) 直接连接到 最小系统板的 GND(地)引脚

电路原理图:

      +5V (来自最小系统板)
        |
       [ 220Ω 电阻 ]
        |
        |-------------------> 连接到 UG80 的 P1.0 引脚
        |
      [ LED  长脚(+)]
      [ LED  短脚(-)]
        |
       GND (来自最小系统板)

实物连接示意图:


软件编程(使用 Keil C51)

我们将使用 C 语言来编写控制代码。

新建 Keil 项目

  • 打开 Keil μVision。
  • 点击 Project -> New μVision Project...,选择一个保存位置,并给项目命名(LED_Blink)。
  • 在弹出的 Select Device for Target 窗口中,选择你的芯片型号,由于 UG80 是 STC80C52 的兼容型号,所以我们选择 STC -> STC89C52RC,点击 OK
  • 接下来会询问是否添加启动文件,选择 Standard

创建源文件并编写代码

  • 在左侧 Project 窗口中,右键点击 Source Group 1 -> Add New Item to Group 'Source Group 1'...
  • 选择 C File (.c),给文件命名 main.c,然后点击 Add
  • 在打开的 main.c 文件中,输入以下代码:
#include <reg52.h> // 包含 8052 的特殊功能寄存器定义头文件
// 定义一个宏,方便操作 P1.0 引脚
// sbit 是 C51 中的关键字,用于定义一个特殊的位变量
sbit LED = P1^0; // 将 LED 连接到 P1.0 引脚
// 延时函数,简单但不够精确
void Delay(unsigned int t) {
    unsigned int i, j;
    for (i = 0; i < t; i++)
        for (j = 0; j < 120; j++); // 循环次数需要根据晶振频率调整
}
void main() {
    while (1) { // 主循环,程序会一直在这里执行
        LED = 0; // P1.0 输出低电平 (0V),LED 正极电压低于负极,LED 点亮
        Delay(500); // 调用延时函数,延时一段时间
        LED = 1; // P1.0 输出高电平 (5V),LED 正负极电压相等,LED 熄灭
        Delay(500); // 再次延时
    }
}

代码详解:

  • #include <reg52.h>:包含了 8052 单片机所有寄存器(如 P0, P1, P2, P3, TMOD, TCON 等)的定义,没有它,P1^0 这样的写法是无效的。
  • sbit LED = P1^0;:这是 C51 的特色语法。sbit 定义了一个“位变量”,我们给它起名叫 LED,它直接对应到 P1 端口的第 0 号引脚,之后对 LED 的操作就是对 P1.0 引脚的操作。
  • void main():C 程序的入口函数,程序从这里开始执行。
  • while(1):这是一个无限循环,确保单片机程序不会跑飞,会不断地重复执行循环体内的代码。
  • LED = 0;:将 LED 对应的 P1.0 引脚置为低电平(0V),对于这个电路,电流从 VCC 流经电阻和 LED 到 GND,形成回路,LED点亮
  • LED = 1;:将 P1.0 引脚置为高电平(5V),LED 的正负极电压几乎相等,没有电流流过,LED熄灭
  • Delay():自定义的延时函数,通过 for 循环的空执行来消耗时间,实现“等待”的效果,这里的 120 是一个经验值,如果你的 LED 闪烁太快或太慢,可以调整这个数字。

编译项目

  • 点击工具栏上的 Build 按钮(一个锤子图标)。
  • 如果代码无误,下方的 Build Output 窗口会提示 0 Error(s), 0 Warning(s)
  • 在项目文件夹下会生成一个 Objects 文件夹,里面有一个名为 LED_Blink.hex 的文件,这就是我们需要的、可以烧录到单片机的目标文件!

程序烧录(使用 STC-ISP)

连接硬件

  • USB 转 TTL 模块UG80 最小系统板 连接起来:
    • 模块的 VCC -> 板的 VCC (5V)
    • 模块的 GND -> 板的 GND
    • 模块的 RXD (接收) -> 板的 TXD (发送)
    • 模块的 TXD (发送) -> 板的 RXD (接收)
    • 模块的 DTR -> 板的 RST (复位) (此步对于自动下载很重要,如果下载失败可以尝试手动按复位键)
  • 用 USB 数据线将 USB 转 TTL 模块 连接到电脑。

配置 STC-ISP 软件

  • 打开 STC-ISP 软件。
  • 单片机型号: 选择 STC89C52RC
  • 工作频率: 填写你的板子上晶振的频率,这里是 0592MHz
  • 选择程序文件: 点击“打开文件”按钮,找到刚刚在 Keil 中生成的 LED_Blink.hex 文件。
  • 串口号: 在右上角的“串口号”下拉菜单中选择你的 USB 转 TTL 模块对应的 COM 端口(可以在设备管理器中查看)。
  • 其他选项: 勾选“下载前复位”和“下载后自动运行”。

开始烧录

  • 点击软件界面左下角的 “下载/编程” 按钮。
  • STC-ISP 会提示“正在检测目标单片机...”。
  • 关键一步: 看到提示后,立即按下 UG80 最小系统板上的复位按钮,或者如果连接了 DTR 到 RST,软件会自动复位。
  • 如果一切正常,软件会显示“完成!”,表示程序已成功烧录到芯片中。

成果验证

烧录完成后,神奇的事情发生了!

你的 UG80 最小系统板上的 LED 灯开始以大约 1 秒的频率闪烁了!

恭喜你,你已经成功完成了第一个 UG80 编程实例!


总结与进阶

这个教程涵盖了单片机开发的完整流程:硬件连接 -> 代码编写 -> 编译 -> 烧录 -> 运行

进阶建议:

  1. 修改闪烁频率: 尝试修改 Delay() 函数中的参数,观察 LED 闪烁速度的变化。
  2. 控制多个 LED: 将另外的 LED 连接到 P1.1, P1.2 等引脚,修改代码,实现流水灯效果。
  3. 使用定时器: Delay() 函数会“阻塞”CPU,让它什么也做不了,学习使用 UG80 的定时器,可以实现更精确的延时,CPU 还可以执行其他任务。
  4. 按键控制: 在某个引脚上连接一个按键,编写代码,实现“按一下键,LED 状态翻转一次”的效果。

希望这份图文并茂的教程能帮助你顺利入门 UG80 编程!

分享:
扫描分享到社交APP
上一篇
下一篇