镇江还有什么网站吗,下城区网站建设价格查询,程序员外包公司有哪些,免费域名申请哪个网站好本节将向大家介绍如何用 51 单片机去控制开发板上的 LED。开发板上的 LED 位置标注有 “LED 模块”。
第二章要写 3 个程序代码#xff1a;第一个代码实现点亮开发板上的第一个 LED#xff1b;第二个代码让第一个 LED 以 1 秒为周期闪烁#xff1b;第三个代码使 8 个 LED 以…本节将向大家介绍如何用 51 单片机去控制开发板上的 LED。开发板上的 LED 位置标注有 “LED 模块”。
第二章要写 3 个程序代码第一个代码实现点亮开发板上的第一个 LED第二个代码让第一个 LED 以 1 秒为周期闪烁第三个代码使 8 个 LED 以流水灯的方式一位一位移动。左上角数码管可能因引脚冲突乱跳不用理会只要 LED 显示正确即可。
目录
一、新建工程
二、LED介绍
三、开发板上LED连接方式 一、新建工程
上一节已安装好软件现在双击打开。编写代码前需新建一个工程工程就像办公的桌子有了它才能编写代码。
建工程步骤如下
点击 “project”选择 “new project” 提示保存工程位置时默认会保存到文档建议在桌面上新建一个名为 “keilproject” 的文件夹将代码集中放在这里。
双击打开该文件夹再新建一个名为 “2 -1 点亮一个 LED” 的文件夹。
工程名字建议起通用的如 “project”点击保存。 此时会弹出对话框让选择单片机型号51 单片机有很多公司生产有多种型号我们用的是 STC89C52但软件中没有STC可选用 Atmel文件夹里的 AT89C52它与 STC89C52 操作方式和功能一样。 接着会弹出复制启动文件到工程文件底下的对话框选 “是” 或 “否” 均可选 “是” 新建工程后会自动添加启动文件一般不需要修改所以选 “否”。 工程建立完成后可看到工程及 “target 1”点击左边加号能看到编写代码的文件夹。 新建好工程后要在工程里新建一个 C 语言程序文件。
选中组右键点击添加新文件到组里 51 单片机可用 C 语言、C 语言和汇编语言编写一般用 C 语言因为 C 效率慢汇编语言更底层难理解。
选中 C 语言文件名起 “main”点击添加此时会出现 “main.c” 文件和编辑框。 先编译试一下有三个按钮“translate” 是编译“build” 是建立工程“rebuild” 是重新编译所有文件一般点 “build”。 点击后下面会出现建立信息提示没有错误但有一个警告警告是 “无法确定根段”这意味着缺少主函数 “main”。 在右边添加 “main” 函数格式为 “void main ()”回车后打两个花括号再按 “Tab” 键缩进使代码更有层次。 主函数字体太小可通过 “configuration” 配置选择第二个选项卡 “颜色和字体”选择 “C C” 编辑文件点击 “font” 字体在右边设置字体大小。 再次点击 “build”显示 “0 error 0 warning”即没有错误和警告。
二、LED介绍
建立好工程后先了解本节要讲的 LED。学一个器件前应通过百度等方式了解其原理和用法。LED 中文名是发光二极管外文名是 “light emitting diode”缩写为 LED。其用途广泛可用于照明、广告灯、指引灯、屏幕等在照明方面优势明显相比白炽灯和节能灯LED 更省电且亮度高。 LED 在电路图里的符号如上图所示右边是较大的 LED 实物图它区分正负极图中左边是正极右边是负极只有正极接正极、负极接负极才有电流通过LED 才会亮接反则不亮。
区分直插 LED 正负极的方法里面较大的一块可看作 “大红旗”较小的看作 “小红旗”小的代表正极大的代表负极若引脚没剪过长角是正极短角是负极。开发板上的是贴片 LED个头小背面画有箭头指示正负极方向。
三、开发板上LED连接方式
接下来了解开发板上的 LED 连接方式。打开开发板资料找到新版原理图新版和旧版连接方式一样 在原理图右下角可看到 LED 模块。 有 8 个 LED右边是 VCC电源正极左边红色字是网络编号连接到单片机的 P2引脚P2引脚出来直接连到 LED 负极。
LED 正极出来通过一个电阻这个电阻是四个一体的排阻开发板上两个小黑块就是它有八个引脚里面是四个电阻阻值为 1000 欧。 从排阻上写的数字 “102” 可看出在电路元器件编号中“102” 表示前两位 “10” 是有效数字第三位 “2” 是倍率即后面加2个 0所以是 1000 欧。同理“473” 是 47 后面加 3 个 0即 47000 欧“1001” 是 100 后面加1个 0即 1000 欧。
电阻的作用是限流若 LED 直接接 5V 电压可能因电流过大烧毁所以串联一个电阻。
当 LED 正极接正负极接负时会点亮若正负极都接正则不亮。
这就将问题转化为控制单片机引脚输出高低电平高电平是 5V低电平是 0V单片机使用的是 TTL 电平规范。接下来的主要任务是控制单片机的 P2 口输出高低电平。 通过上图解释单片机如何控制硬件设备。单片机名字叫 MCU里面集成了 CPU代码在 CPU 里执行。外部是引脚如 P2 口引脚。CPU 通过寄存器控制引脚寄存器是一种存储器8 个为一组每个寄存器下面都连着一根线控制硬件。比如 P2 口寄存器有 8 位每一位背后都有一根导线通过驱动器增大电流后连接到 P2 口端口。CPU 可通过程序直接访问寄存器并写值写 “1” 引脚为高电平5V写 “0” 为低电平。P2 口也是 8 个为一组寄存器每一位对应一个 P2 口引脚。 要点亮第一个 LED需给 P2 口最低位低电平0其余为高电平1即二进制 “1111 1110”。但 C 语言程序不能直接写二进制需将其转化为十六进制或十进制一般转化为十六进制因为二进制转十六进制可一眼看出。十六进制是二进制的简写把四个二进制数化成一个十六进制数十六进制数从 0 到 910 用字母 a 表示依次是 b、c、d、e、ff 代表 15覆盖了四位二进制的所有情况。将 “1111 1110” 四个一组分开“1111” 对应十六进制的 “f”“1110” 对应 “e”完整语句为 “P2 0xfe;”在 C 语言里语句要以分号结尾。 写好代码点击 “build” 编译提示 “P2 口是未定义的标识符”需要在主函数之前添加头文件。右键点击 “insert”选择头文件打开里面定义了很多寄存器包括 P2 寄存器地址是十六进制的 A0。添加头文件后再次编译显示没有错误和警告。 下一步将代码下载到单片机打开 STC-ISP 软件选择单片机型号为 STC89C52新版本串口号可自动搜索。 点击 “打开程序文件”在工程目录里找不到文件因为编译器默认不生成下载文件需在 “output” 选项卡里勾选 “create” 创建 HEX 文件点击 “OK” 后再次编译会生成 HEX 文件 选择该文件点击 “打开”再点击 “下载”下载后重新打开单片机开关第一个 LED 点亮第一个任务完成。 但代码还少一步单片机上电后程序不会停止主函数执行完会从头开始执行“P2 0xfe” 会不断被执行这不是我们想要的。
为让程序停下来可在主函数下面写一个 “while” 循环格式为 “while (1)”回车后加一对花括号“while” 是关键字会变成蓝色。“while” 循环判断括号里的逻辑表达式若为真则执行花括号里的语句这里写 “1”“1” 代表永远为真程序会一直在循环里相当于停下来。再次编译下载现象不变但程序实际上已停止对 P2 口的操作。 #includevoid main(){P20xFE; //1111 1110while(1){}
还可对程序进行升级之前让 P2 口引脚电平为 “1111 1110” 点亮一个 LED若想让 8 个 LED 一个亮一个灭可把 “fe” 改成 “55”十六进制的 “55” 是二进制的 “0101 0101”下载后可看到 LED 间隔亮灭的现象。