C 语言书
模块三 · 进阶与实战 / 第 17 课

17 · 可选延伸:C 用在单片机上时

延伸 30 分钟 跳到过关题
学习目标
  • 知道嵌入式 C 和桌面 C 的差别
  • 了解 sbit / 中断 / 定时器是「应用概念」
  • 明确:先把 C 学好,再碰硬件

先说清楚定位

这一课是延伸,不是主线
你已经具备的 C 能力(变量、循环、函数、指针、结构体)足以读懂大部分单片机例程。 下面只是「以后会见到什么」,不用现在背。

和桌面 C 的主要差别

方面桌面 C51 单片机 C
入口main 返回后进程结束常写 while(1) 一直跑
输出printf 到屏幕常通过串口/LED/数码管
内存很大,可 malloc很小,省着用
特殊语法标准 CKeil 有 sbit、interrupt 等扩展

例程长什么样(混个眼熟)

#include <reg52.h>

sbit LED = P1^0;   /* 把名字 LED 绑到引脚 P1.0 */

void main(void)
{
    while (1)
    {
        LED = 0;           /* 点亮(视电路而定) */
        /* 延时省略 */
        LED = 1;           /* 熄灭 */
    }
}

建议路径

1C 学扎实(本课之前) 2再学数字电路基础 3Keil + 点灯 4定时器 / 中断 / 串口

不要跳过 C 直接背寄存器——那会越学越痛苦。

本课过关

必做

单片机主程序最常见的结构是?

必做作业
  1. 用自己的话总结:桌面 C 和单片机 C 最大的三点不同。
  2. 若以后要学 51,你现在最想先补哪一块 C?写下来。
先自己写完,再点开看解答

1:入口/是否一直跑、输出方式、资源与扩展语法。