当前位置:
文档之家› 51单片机项目教程项目 3 点亮一个LED灯
51单片机项目教程项目 3 点亮一个LED灯
compact
data idata interrupt large pdata sbit sfr sfr16 small using xdata
存储器模式
存储器类型声明 存储器类型声明 中断函数声明 存储器模式 存储器类型声明 位变量声明 特殊功能寄存器声明 特殊功能寄存器声明 存储器模式 寄存器组定义 存储器类型声明
3.2 技术准备
2、常量和变量 常量又称为标量,它的值在程序执行过程中不能改变,常量的数据类型有整型、浮 点型、字符型和字符串型等。 实际使用中用#define定义在程序中经常用到的常量,或者可能需要根据不同的情 况进行更改的常量,例如译码地址。而不是在程序中直接使用常量值。这样一方面 有助于提高程序的可读性,另一方面也便于程序的修改和维护,例如:
项目 3 点亮一个LED灯
项目目标 通 过 单 片 机 最 小 系 统 点 亮 L E D 灯 , 了解 单 片机 开 发程 序 基础 及 系统 结 构和 流 程。 建议学时 8学时 知识要点 1.单片机系统开发流程 2.C51程序基础 3.进行程序烧写 技能掌握 1 、 了 解 发 光 二 极 管 介 绍 , 硬件 。 2 、 建 立 工 程 、 完 成 “ 点 亮 一 个发 光 管 ” 掌握程序的编写、编译 3、C51的标识符和关键字; 4、常用数据类型; 5、运算符和表达式; 6 、 程 序 结 构 、 函 数 、 数 组 和指 针 ; 7、预处理。 8、进行程序烧写 学 习 目 标 : 学 会 用 C 语 言 控制 单 机, 点 亮开 发 板上 的 第 1 个 L E D 发 光 管。
按compact模式分配变量的存储空间
直接寻址MCS-51的内部数据寄存器 间接寻址MCS-51的内部数据寄存器 定义一个中断服务函数 按large模式分配变量的存储空间 分页寻址的MCS-5外部数据空间 声明一个位变量 声明一个8位特殊功能寄存器 声明一个16位特殊功能寄存器 按small模式分配变量的存储空间 定义MCS-5的工作寄存器组 定义MCS-5外部数据空间
while
程序语句
构成while和do…while循环结构
C51在此基础上,针对单片机功能进行了扩展。如表3-2所示。
表3-2 C51编译器扩充关键字
关键字 _at_ _priority_ _task_ alien bdata bit code 用途 地址定位 多任务优先声明 任务声明 函数特性声明 存储器类型声明 位变量声明 存储器类型声明 说明 为变量进行绝对地址定位 规定RTX51或RTX51 Tiny的任务优先级 定义实时多任务函数 用于声明与PL/M51兼容的函数 可位寻址的MCS-51内部数据存储器 声明一个位变量或位类型函数 MCS-51的程序存储空间
数据类型声明 运算符 存储种类说明 数据类型声明 程序语句 数据类型声明 数据类型声明 数据类型声明 数据类型声明 数据类型声明
有符号整型数 计算表达式或数据类型的字节数 静态变量 结构体类型数据 构成switch选择结构 重新进行数据类型定义 联合类型数据 无符号数据 无类型数据或函数 声明该变量在程序执行中可被隐含地改变
continue default do double else enum extern float for
程序语句 程序语句 程序语句 数据类型声明 程序语句 数据类型声明 存储种类说明 数据类型声明 程序语句
转向下一次循环 switch语句中缺省选择项 构成do…while 循环结构 双精度浮点数 构成if…else 条件结构 枚举类型数据 在其他程序模块中声明了的全局变量 单精度浮点数 构成for循环结构
表3-1 ANSI C关键字
关键字 关键字 auto auto break break case case char char const const 用途 用途 存储种类说明 存储种类说明 程序语句 程序语句 程序语句 程序语句 数据类型声明 数据类型声明 存储种类说明 存储种类说明 说明 说明 用于声明局部变量,为默认值 用于声明局部变量,为默认值 退出最内层循环体 退出最内层循环体 switch switch 语句中的选择项 语句中的选择项 单字节整型数或字符型数据 单字节整型数或字符型数据 在程序执行过程中不可修改的值 在程序执行过程中不可修改的值
3.1 项目分析
单片机最小系统就是在单片机上接上最少的外围电路元件让单 片机工作。让输入/输出口的P1.0连接一盏LED灯进行点亮。通过 这一项目将整个开发流程展示出来,包括点亮LED灯,闪烁LED灯, 控制闪烁时间多项任务。
3.2 技术准备
1、LED发光二极管。 它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极 管与普通二极管一样是由一个PN结组成,也具有单向导电性。 2、LED的工作原理。 LED的符号为: LED的工作是有方向性的,只有当正级接到LED阳极,负 极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。 3、LED的原理图解析 开发板上面LED的原理图如右图,LED的阳极串联一个电阻,然后连接到电源 VCC,而LED的阴极连接到单片机的P1口,如果你想点亮一盏LED就对把单片 机相对应的IO赋为低电平。
图3- 1 LED流水灯
3.2 技术准备
1、C51的标识符和关键字
C语言的标识符用来标识源程序中某个对象的名字,这些对象可以 是语句、数据类型、函数、变量、数组等。标识符由字符串、数 字和下划线等组成,第一个字符必须是字母或下划线。错误的标 识符,编译时会有错误提示。由于C51中有些库函数的标识符是以 表3-1 ANSI C关键字 下划线开头的,所以一般不要以下划线开头命名标识符。 例如:f-2,4am,a.m等均为错误标识符。 标准C语言定义了32个关键字,如表3-1所示:
goto
if int long register return short
程序语句
程序语句 数据类型声明 数据类型声明 存储种类说明 程序语句 数据类型声明
构成goto循环结构
构成if…else 条件结构 整型数 长整型数 使用CPU内部寄存器变量 函数返回 短整型
signed sizeof static struct switch typedef union unsigned void volatile