首页资源分类嵌入式处理器51内核 > 德飞莱 LY-51S V2.33用户使用说明书

德飞莱 LY-51S V2.33用户使用说明书

已有 445491个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:51单片机技术资料

    分    享:

    文档简介

    买单片机时的附赠资源,从硬件连接到软件操作都很详细。顺便问一下,怎样可以将传感器的数据通过CC3200无线传输到手机啊(红外传感器计数)? 1252896324a@sina.com

    文档预览

    LY-51S 单片机开发板 指导教程 上海朗译电子科技有限公司 Shanghai LangYi electric and technology Co.,Ltd. 电 话:+86-25-52158963 技术网站:www.doflye.net E-mail: defeilai@126.com 淘宝店铺:http://doflye.taobao.com 天猫店铺:http://qixingchong.tmall.com 版本:V2.33 朗译电子科技 ☏ 025-52158963 www.doflye.net 1 / 404 修改 增加自恢复保险丝,有效保护电脑 USB 口 点阵和共阴数码管增加电源跳线,可 以通过短路块(跳帽)通断供电 增加喇叭调音功能,可以通过跳线控 制是否调音 增加功能的程序参考附带光盘,请自 行分析 日期 2011.11.25 2011.11.25 2011.11.25 2011.11.25 负责人 朗译电子科技 ☏ 025-52158963 www.doflye.net 2 / 404 前言 致用户: 欢迎使用 德飞莱® 系列开发板!恭喜您成为朗译电子产品的用户!我们非常高兴您选 择了本款产品。我们将为你提供最真诚最优质的服务,让您在以后的日子里尽情发挥你的创 意!为了使您的产品功能得到充分发挥,我们建议在连接和操作之前,通读一遍说明书,请 务必了解本产品各功能模块、跳线、开关和接口等的功能和设置方法后再使用,这样有便于 您掌握系统的连接方法和使用要点,有助于您更好的使用本款开发板! 我们对用户使用手册的编排力求全面且简单易懂,目的是您可以获取与您购买的开发板 相关的软件安装、基本操作、软硬件使用方法等知识,但为了提高产品的性能,我们会对产 品的硬件和软件做些改动和升级,这样可能会产生软硬件配置和本手册在某些细节上不符, 请以最新软件和您购买的开发板实际配置为准。本手册的更改或升级不另行通知客户!在编 写手册时我们难免会有疏漏甚至错误之处,请您多加包涵并热烈欢迎指正,朗译电子将不为 本手册可能产生的疏漏和错误负责! 本开发板随机光盘中含有大量的例程和参考资料供您学习和参考,如果您学习过程中遇 到问题或者,可以拨打我们的技术支持电话或者发邮件咨询,另外本公司有专业的技术论坛, 论坛提供大量以往用户常见问题和学习经验供您分享,推荐您使用论坛发帖的方式咨询问 题,可以和众多的用户一起学习交流。您可以登录论坛网址:www.doflye.net 单片机爱好 者论坛。 上海朗译电子科技有限公司 声明: 本指导教程和配套例程仅在开发板学习中参考,不得用于商业用途,如需转载或引用, 请保留版权声明和出处。如果您在学习中有任何疑问,请到论坛发帖咨询! 光盘中包含产品使用的基础资料,资料不能公开下载,保险起见,建议第一次使用时需 要把光盘资料拷贝到电脑中或者做其他备份,防止光盘丢失或者损害导致产品不能正常使 用。 本产品使用电脑 USB 口通讯,通讯接口使用了自恢复保险丝保护,可以在意外短路时 保护您的电脑 USB 口,但是为防止意外,请务必小心使用产品,尽量避免短路,严禁高压 (高于 5V)反串现象,因为在某些特殊情况下,它并不能完全有效的保护您的电脑。 朗译电子科技 ☏ 025-52158963 www.doflye.net 3 / 404 目录 前言................................................................................................................................................... 3 致用户:................................................................................................................................... 3 声明:....................................................................................................................................... 3 第 1 章 简介................................................................................................................................... 12 1.1 性能特点....................................................................................................................... 12 1.2 板载实验硬件组成....................................................................................................... 13 1.3 产品初次使用注意事项............................................................................................... 16 2 章 烧录第一个程序.................................................................................................................... 18 2.1 STC89C51、52 等 单片机下载(烧写程序)方法................................................... 18 2.1.1 硬件连接............................................................................................................... 18 2.1.2 驱动安装与程序下载........................................................................................... 19 2.2 安装 keil C51 软件然后编写第一个程序................................................................. 32 2.2.1 keil C51 安装...........................................................................................................32 2.2.2 用 keil C51 编写一个新程序............................................................................... 38 2.3 仿真芯片 SST89E516 使用方法.................................................................................. 51 第 3 章 跳帽定义与硬件检测....................................................................................................... 58 第 4 章 功能模块使用方法........................................................................................................... 59 4.1 发光二极管..................................................................................................................... 59 4.1.1 硬件连接原理........................................................................................................ 59 4.1.2 IO 输出-点亮 1 个 LED 灯方法 1........................................................................... 63 朗译电子科技 ☏ 025-52158963 www.doflye.net 4 / 404 4.1.3 IO 输出-点亮 1 个 LED 灯方法 2........................................................................... 67 4.1.4 IO 输出-点亮多个 LED 灯方法 1........................................................................... 71 4.1.5 IO 输出-点亮多个 LED 灯方法 2........................................................................... 72 4.1.6 闪烁 1 个 LED........................................................................................................ 73 4.1.7 不同频率闪烁 1 个 LED........................................................................................ 76 4.1.8 不同频率闪烁多个 LED........................................................................................ 78 4.1.9 8 位 LED 左移......................................................................................................... 79 4.1.10 8 位 LED 右移....................................................................................................... 81 4.1.11 LED 循环左移....................................................................................................... 83 4.1.12 LED 循环右移....................................................................................................... 85 4.1.13 查表显示 LED 灯................................................................................................. 87 4.1.14 双灯左移右移闪烁............................................................................................. 89 4.1.15 花样灯................................................................................................................. 91 4.1.16 PWM 调光............................................................................................................ 94 4.2 共阳数码管..................................................................................................................... 95 4.2.1 硬件连接............................................................................................................... 95 4.2.2 共阳数码管静态显示....................................................................................... 100 4.2.3 一个共阳数码管显示变化数字....................................................................... 101 4.2.4 单个数码管模拟水流....................................................................................... 102 4.2.5 按键控制单个数码管....................................................................................... 104 4.2.6 单个共阳数码管指示逻辑电平....................................................................... 106 4.3 8 位共阴数码管............................................................................................................ 107 4.3.1 硬件连接............................................................................................................. 107 4.3.2 8 位数码管显示其中之一................................................................................... 109 4.3.3 8 位数码管显示其中之二................................................................................... 110 朗译电子科技 ☏ 025-52158963 www.doflye.net 5 / 404 4.3.4 8 位数码管动态扫描........................................................................................... 112 4.3.5 8 位数码管动态扫描演示................................................................................... 115 4.3.6 数码管显示动态数据......................................................................................... 117 4.3.7 9 累加................................................................................................................... 119 4.3.8 99 累加................................................................................................................. 122 4.3.9 999 累加............................................................................................................... 124 4.3.10 9999 累加........................................................................................................... 125 4.3.11 9 累减................................................................................................................. 126 4.3.12 99 累减............................................................................................................... 127 4.3.13 999 累减............................................................................................................. 128 4.3.14 9999 累减........................................................................................................... 129 4.3.15 显示小数点....................................................................................................... 130 4.3.16 数码管消隐....................................................................................................... 131 4.3.17 递加递减带消隐............................................................................................... 133 4.3.18 数码管左移....................................................................................................... 135 4.3.19 数码管右移 1.................................................................................................... 137 4.3.20 数码管右移 2.................................................................................................... 138 4.3.21 数码管循环左移............................................................................................... 139 4.3.22 数码管循环右移 1............................................................................................ 140 4.3.23 数码管循环右移 2............................................................................................ 141 4.3.24 数码管闪烁....................................................................................................... 142 4.3.25 数码管局部闪烁............................................................................................... 143 4.4 定时器........................................................................................................................... 145 4.4.1 硬件连接............................................................................................................. 145 4.4.2 定时器 0.............................................................................................................. 150 朗译电子科技 ☏ 025-52158963 www.doflye.net 6 / 404 4.4.3 定时器 1.............................................................................................................. 151 4.4.4 定时器 2.............................................................................................................. 152 4.4.5 产生 1ms 方波.................................................................................................... 153 4.4.6 产生 200ms 方波................................................................................................ 154 4.4.7 产生多路不同频率方波..................................................................................... 155 4.5 独立按键....................................................................................................................... 156 4.5.1 硬件连接............................................................................................................. 156 4.5.2 一个独立按键控制 LED.................................................................................... 159 4.5.3 一个独立按键控制 LED 状态转换................................................................... 160 4.5.4 2 按键加减操作数码管显示............................................................................ 168 4.5.5 多位数按键加减数码管显示(闪烁)........................................................... 170 4.5.6 多位数按键加减数码管显示(不闪烁)....................................................... 173 4.5.7 定时器扫描数码管........................................................................................... 174 4.5.8 按键长按短按效果........................................................................................... 176 4.5.9 抢答器............................................................................................................... 179 4.5.10 独立按键依次输入数据................................................................................... 181 4.5.11 按键输入从右至左显示................................................................................. 186 4.5.12 8 位端口检测 8 位独立按键.......................................................................... 188 4.6 矩阵键盘....................................................................................................................... 189 4.6.1 硬件连接............................................................................................................. 189 4.6.2 矩阵键盘行列扫描............................................................................................. 191 4.6.3 矩阵键盘反转扫描............................................................................................. 194 4.6.4 矩阵键盘中断扫描............................................................................................. 196 4.6.5 矩阵键盘密码锁................................................................................................. 197 4.6.6 矩阵键盘简易计算器......................................................................................... 201 朗译电子科技 ☏ 025-52158963 www.doflye.net 7 / 404 4.7 外部中断....................................................................................................................... 202 4.7.1 中断原理............................................................................................................. 202 4.7.2 外部中断 0 电平触发......................................................................................... 209 4.7.3 外部中断 1 电平触发......................................................................................... 210 4.7.4 外部中断 0 边沿触发......................................................................................... 211 4.7.5 外部中断 1 边沿触发......................................................................................... 212 4.7.6 T0 外部计数输入................................................................................................. 213 4.7.7 T1 外部计数输入................................................................................................. 214 4.8 看门狗........................................................................................................................... 215 4.8.1 硬件原理............................................................................................................. 215 4.8.2 看门狗溢出测试................................................................................................. 216 4.8.3 按键喂狗............................................................................................................. 217 4.9 喇叭............................................................................................................................... 219 4.9.1 硬件原理与连接................................................................................................. 219 4.9.2 喇叭发声原理..................................................................................................... 222 4.9.3 警车声音............................................................................................................. 223 4.9.4 救护车声音......................................................................................................... 224 4.9.5 喇叭嘀嗒声音..................................................................................................... 225 4.9.6 报警发声............................................................................................................. 226 4.9.7 消防车................................................................................................................. 227 4.9.8 音乐播放............................................................................................................. 228 4.10 步进电机..................................................................................................................... 230 4.10.1 硬件原理............................................................................................................ 230 4.10.2 步进电机转动原理........................................................................................... 234 4.10.3 步进电机正反转............................................................................................... 236 朗译电子科技 ☏ 025-52158963 www.doflye.net 8 / 404 4.10.4 步进电机按键控制........................................................................................... 237 4.10.5 步进电机转速数码管显示............................................................................... 239 4.10.6 步进电机调速原理........................................................................................... 241 4.10.7 步进电机综合控制........................................................................................... 243 4.11 直流电机..................................................................................................................... 244 4.11.1 硬件原理........................................................................................................... 244 4.11.2 直流电机按键控制........................................................................................... 246 4.11.3 直流电机调速控制........................................................................................... 249 4.12 继电器......................................................................................................................... 251 4.12.1 硬件原理........................................................................................................... 251 4.12.2 继电器控制原理............................................................................................... 253 4.12.3 双继电器模拟洗衣机控制原理....................................................................... 256 4.13 LCM1602 液晶.............................................................................................................. 260 4.13.1 硬件原理与连接............................................................................................... 260 4.13.2 1602 液晶静态显示........................................................................................... 265 4.13.3 1602 液晶动态显示........................................................................................... 266 4.13.4 1602 液晶滚动显示........................................................................................... 268 4.13.5 1602 液晶移动显示........................................................................................... 269 4.13.6 1602 液晶按键输入显示................................................................................... 271 4.14 LCM12864 液晶............................................................................................................ 273 4.14.1 硬件连接........................................................................................................... 273 4.14.2 字库 ST7920 12864 液晶基础显示.................................................................. 276 4.14.3 按键 12864 液晶显示....................................................................................... 278 4.15 24c02........................................................................................................................... 280 4.15.1 硬件原理与连接............................................................................................... 280 朗译电子科技 ☏ 025-52158963 www.doflye.net 9 / 404 4.15.2 24c02 存储一个数据......................................................................................... 283 4.15.3 24c02 存储多个数据......................................................................................... 285 4.15.4 24c02 存储花样流水灯..................................................................................... 286 4.15.5 24c02 记忆开机次数......................................................................................... 287 4.15.6 24c02 记忆上次使用者状态............................................................................. 289 4.16 DS1302......................................................................................................................... 291 4.16.1 硬件原理与连接............................................................................................... 291 4.16.2 DS1302 时钟原理...............................................................................................293 4.16.3 DS1302 可调时钟...............................................................................................296 4.16.4 DS1302 串口自动更新时间...............................................................................297 4.16.5 1602 液晶显示 DS1302 时钟.............................................................................300 4.17 双色点阵...................................................................................................................... 301 4.17.1 硬件连接与电路原理....................................................................................... 301 4.17.2 双色点阵一种颜色显示................................................................................... 304 4.17.3 双色点阵二种颜色显示................................................................................... 307 4.17.4 双色点阵显示特定图形................................................................................... 308 4.17.5 双色点阵显示交替图形................................................................................... 309 4.17.6 双色点阵显示交替动态图形........................................................................... 310 4.18 AD/DA(模数/数模转换)实验................................................................................. 312 4.18.1 硬件原理与连接............................................................................................... 312 4.18.2 1 路 AD 数码管显示.......................................................................................... 314 4.18.3 4 路 AD 数码管显示.......................................................................................... 316 4.18.4 DA 输出模拟...................................................................................................... 318 4.18.5 输出锯齿波....................................................................................................... 319 4.18.6 AD 转换 1602 液晶显示.................................................................................... 320 朗译电子科技 ☏ 025-52158963 www.doflye.net 10 / 404 4.19 串口通讯..................................................................................................................... 321 4.19.1 硬件原理与连接............................................................................................... 321 4.19.2 串口通讯........................................................................................................... 325 4.19.3 串口通讯中断应用........................................................................................... 326 4.19.4 RS485 基本应用原理......................................................................................... 328 4.20 红外收发................................................................................................................... 329 4.20.1 硬件原理与连接............................................................................................... 329 4.20.2 红外接收原理................................................................................................... 333 4.20.3 红外解码数码管显示....................................................................................... 334 4.20.4 红外解码 1602 液晶显示................................................................................. 338 4.20.5 红外发射原理................................................................................................... 339 4.20.6 火焰传感器测试............................................................................................... 340 4.21 18B20 温度传感器...................................................................................................... 341 4.21.1 硬件原理和连接............................................................................................... 341 4.21.2 温度采集数码管显示....................................................................................... 343 4.21.3 温度采集 1602 液晶显示................................................................................. 345 4.21.4 多个温度采集液晶显示................................................................................... 346 4.21.5 超温报警测试................................................................................................... 347 4.21.6 温度可调上下限 1602 液晶显示..................................................................... 348 4.22 舵机............................................................................................................................. 351 4.22.1 硬件原理与连接............................................................................................... 351 4.22.2 舵机扇形摆动................................................................................................... 353 4.23 热敏电阻、光敏电阻................................................................................................. 354 4.23.1 硬件原理与连接............................................................................................... 354 4.23.2 热敏电阻测试数码管显示............................................................................... 357 朗译电子科技 ☏ 025-52158963 www.doflye.net 11 / 404 4.23.3 光敏电阻测试数码管显示............................................................................... 359 4.24 复位电路..................................................................................................................... 360 4.24.1 硬件原理与连接............................................................................................... 360 4.25 晶振............................................................................................................................. 361 4.25.1 硬件原理与连接............................................................................................... 361 4.26 电源............................................................................................................................. 363 4.26.1 硬件原理与连接............................................................................................... 363 4.27 ISP 下载...................................................................................................................... 364 4.27.1 硬件原理与连接............................................................................................... 364 第 5 章 常见问题解答................................................................................................................. 365 第 6 章 特殊功能寄存器介绍..................................................................................................... 366 附录 A 汇编指令集合.................................................................................................................. 370 附录 B ASCII 码表...................................................................................................................... 385 第 1 章 简介 1.1 性能特点 本开发板使用独立模块式结构,大部分模块都是完全独立的,仅有电源部分连接,信号 接口部分默认悬空,需要用到该器件时,用杜邦线连接到对应的单片机端口,不使用时悬空 即可。这种方式大大提高了自由度,这些模块完全独立,可以自由配置端口,连接其他类型 单片机的最小系统板就可以组成相应的开发板。 杜邦线的图片如下:分单芯杜邦线和多芯杜邦线。 朗译电子科技 ☏ 025-52158963 www.doflye.net 12 / 404 8P 杜邦线 朗译电子科技 ☏ 025-52158963 www.doflye.net 13 / 404 4P 杜邦线 1.2 板载实验硬件组成 1P 杜邦线 朗译电子科技 ☏ 025-52158963 www.doflye.net 14 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 15 / 404 主板上丝印使用粗线条把对应的模块分开,从上图可以清晰看出模块区域。 由于主板模块较多,所以使用之前必须看懂电路图,并能在开发板上找到对应的位置, 只有对硬件连接了解到一定层次后,才能去学习写程序。 如何学好单片机? 有人说几天就可以学会单片机,也不是不可以,但需要基础和足够高的领悟能力。单片 机毕竟是专业知识,大部人学习单片机的人要么是出于爱好,要么是为了工作,不管出于哪 种目的,学习必须要循序渐进,可以尝试加快速度,但是没有捷径。 欲速则不达,相信大家都明白这个道理,有人说,我马上要做个产品,我要快速学好单 片机,怎么办?仔细想想,拿到一个新买的手机仅仅使用这些功能还要花好长时间操作研究, 并且要仔细阅读说明书才行。何况单片机这种相对专业的产品。 开发板是学习和实践的最好产品,因为有配套测试好的软件和硬件,这样用户就不必操 心组建开发系统的过程。只需要专心研究程序。这并不是说有了开发板你就能学会单片机, 开发板只不过是个工具,利用这个工具,让它帮助你更快的了解并掌握这个知识才是关键, 开发板配套的光盘资料都会有相关的电路、程序、使用说明书以及多种学习资料。使用开发 朗译电子科技 ☏ 025-52158963 www.doflye.net 16 / 404 板之前应该先仔细看一遍光盘配套的资料。不要拿到开发板后就把光盘丢到一边了,即便你 是高手,也要花点时间看一下使用说明。 有些朋友没有硬件电路基础,看不懂电路图,有的朋友也没有 c 语言基础,看不懂程序, 这个往往是阻碍学习的主要问题,基础固然很重要,但是没有基础也不用灰心,很多知识都 是从无到有学习来的,只要足够努力就可以了。 单片机是硬件和软件结合的产品,所以不能忽略其中任何一个,程序一定要根据对应的 硬件来写,不要随便从网上下载个程序直接下载到板子上运行,然后发现开发板上没有对应 的效果就怀疑是硬件出了问题,单片机不是电脑主板,尤其是单片机开发板,它们的通用性 并不高,对应的程序也是有差别的,但差别也不大,这时候就需要根据硬件修改程序。所以 如果看不懂电路的朋友请先去学习电路基础原理后再去编写程序。 这里说一下个人建议: 1、多看书,尤其是单片机基础的书,了解单片机原理才能更好的使用它,国内 51 系列推 广了很多年,资料最为丰富。 2、多上网查资料,群众的力量是伟大的,单片机是外国人发明的,我们首先要学会它的 语言才能使用它,所以多出了很多过程,由于语言问题,很多人对单片机的理解层次也不同, 写程序的风格也各异。这个都没有关系,同一个问题看的多了,自己就能分析出他的道理来。 3、多调试。程序无论如何分析,不去实物调试,就属于纸上谈兵。一般的单片机芯片可 以反复擦写上万次,有的数十万次,一个单片机芯片不过几元钱,所以不要担心芯片损坏而 不敢去反复烧写实验,开发板就是帮助我们学习开发的工具,不要让它成了花瓶! 1.3 产品初次使用注意事项 在使用之前,需要确认以下状况,这是在初次使用的时候比较容易忽视的细节。对应下图画 红圈位置参考。 1、 单片机芯片是否插到了板子上,确保芯片放在锁紧插座的正中间,不能靠左或者靠右, 这样会导致部分引脚接触不到锁紧插座导致多种不确定故障。芯片不能插反,插反会导 致开发板短路,由于开发板使用了自恢复保险丝,芯片插反的现象是:打开电源开关, 电源 led 闪烁 1 下就熄灭。保险丝发烫,甚至有烧焦的味道。此时应立即断电。 2、 晶振是否脱落,晶振是单片机工作的三要素之一,由于开发板设计了可以拔插晶振,可 能出现在运输、移动过程中造成晶振松动甚至脱落,需要重新安装晶振,确认其接触良 好。 3、 主板供电跳帽,J54 插针上的跳帽是负责个给整个主板供电,如果这个跳帽丢失或者损 坏,开发板没有电源将不能使用,但是仍可以发现 USB 设备。CH340 串口芯片不受这个 跳帽控制。 用 keil 写 C 语言程序时候注意事项: 朗译电子科技 ☏ 025-52158963 www.doflye.net 17 / 404 1、c 语言需要区分字母大小写,新手最常见的错误是大写 P1 写成小写 p1,造成 编译错误。默认端口 P 大写字母,尤其注意。其它的类似问题依此类推,举 一反三。 2、标点符号,C 语言的任何语句和标点都是在英文状态下书写的,中文符号是 不能识别的。中文仅仅能作为注释使用。最常见的错误是标点符号错误,比 如语句后面忘记加分号,大括号只有前半部分,缺少后半部分,关键位置缺 少逗号,这样简单的错误会引发非常多的错误。实际上可能只漏掉一个标点 符号,双击错误提示就可以使光标跳转到对应的错误位置附近,仔细在光标 位置附近检查语法、拼写等错误。 朗译电子科技 ☏ 025-52158963 www.doflye.net 18 / 404 2 章 烧录第一个程序 2.1 STC89C51、52 等 单片机下载(烧写程序)方法 2.1.1 硬件连接 1 根 USB 线,包含,供电、下载程序和串口通讯功能(仅用于串口下载的芯片,比 如 STC) 朗译电子科技 ☏ 025-52158963 www.doflye.net 19 / 404 单片机放置方向 朗译电子科技 ☏ 025-52158963 www.doflye.net 20 / 404 只需用连接一根 usb 线即可,usb 线的另外一端连接到电脑 usb 口 朗译电子科技 ☏ 025-52158963 www.doflye.net 21 / 404 2.1.2 驱动安装与程序下载 Usb 线插入电脑后会提示如上信息,点击“取消”,我们需要手动安装驱动程序 手动打开 CH341 文件夹(驱动程序文件夹内) ,双击安装驱动 朗译电子科技 ☏ 025-52158963 www.doflye.net 22 / 404 点击“安装” 出现上图安装成功界面 XP 系统右击“我的电脑”->“属性”->“硬件”->“设备管理器” 朗译电子科技 ☏ 025-52158963 www.doflye.net 23 / 404 出现虚拟口 COM6 必须认清是 USB-SERIAL CH340 字样,否则表明驱动不正确 使用我们新版本的串口调试软件也可以检测是否安装有串口,截图如下,德飞莱串口调试软 件 V2.0 版本内置串口检测功能。此版本软件可以到论坛下载或者百度搜索。 朗译电子科技 ☏ 025-52158963 www.doflye.net 24 / 404 上图表示没有串口或者串口安装不正确 上图检测到可以使用的串口,但不能检测出具体的芯片型号,所以仍需要去设备管理器查询 Win7/win8 操作系统部分会自动安装驱动程序,会根据型号自动上网搜索,这个前提是 必须连接互联网。如果提示驱动未正确安装,按照上述 XP 系统的手动安装方法直接运行 exe 文件即可。 有部分系统安装驱动后会出现感叹号,按以下方法解决:计算机,右键》管理》设备 管理器》在串口设备上点一下》操作(Alt+A)》添加过时硬件》下一步》 》安装我手动从列表选择的硬件(高级)》下一步》选择 端口(com 和 LPT)》选择通信 端口》下一步,完成。 这时候就可以支持 USB 串口线了,不需要额外的驱动。 如果上述方法也不能使用,请百度搜索“安装虚拟 xp”,在系统上安装虚拟系统进行 开发板调试。 安装下载软件下载程序 打开 STC-ISP 软件,如果不能正常打开请去官方网站 http://www.stcmcu.com/下载其他 安装版本安装。 朗译电子科技 ☏ 025-52158963 www.doflye.net 25 / 404 双击打开 STC 非安装版的压缩文件 解压到指定文件夹(记住文件夹路径),按照以下顺序操作 朗译电子科技 ☏ 025-52158963 www.doflye.net 26 / 404 找到对应的文件夹,双击打开 STC_ISP_V483.EXE 可执行文件。或者点击右键->发送到-> 桌面快捷方式,可以建立桌面快捷图标。如果此时你的软件不能打开或者出现缺少插件,说 明电脑系统不能兼容,请去 STC 官方网站下载安装版本。 Win7/win8 系统如果出现缺少“XXXX 插件”,只需要在软件图标上点击右键->使用管 理员身份打开即可,以后就能正常模式打开软件了。 朗译电子科技 ☏ 025-52158963 www.doflye.net 27 / 404 正常打开界面如上图 朗译电子科技 ☏ 025-52158963 www.doflye.net 28 / 404 第一次下载主要设置上述 4 个步骤: 1、选择芯片型号,必须与开发板上单片机型号对应(主板上锁紧座上的就是单片机)如果 下载软件中没有对应型号,请去 stc 官网下载最新版本。这里以 STC89C54RD+为例。 朗译电子科技 ☏ 025-52158963 www.doflye.net 29 / 404 2、打开需要烧写的 hex 后缀的文件(例如:LY-51S 开发板配套资料->5、配套程序->LY-51S C 语言程序->14-花样灯->obj 文件夹->花样灯.hex) 朗译电子科技 ☏ 025-52158963 www.doflye.net 30 / 404 3、选择对应的 COM 口,安装驱动程序时虚拟出来的 COM 口(到电脑设备管理器里查看) 4、点击“下载”,稍等片刻打开电源,等待下载完成 朗译电子科技 ☏ 025-52158963 www.doflye.net 31 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 32 / 404 上述第 4 步的操作顺序非常重要,冷启动:点击下载按钮前开发板电源是关闭的,点 击下载按钮后,大概 2 秒钟,打开开发板电源!出现蓝色进展条并有提示音表示下载成功。 朗译电子科技 ☏ 025-52158963 www.doflye.net 33 / 404 如果出现上图现象长期不动作,请检查以下几点: 1、第 4 步开关顺序不正确 2、串口没有选择正确 3、串口线或者 usb 线没有连接好 4、晶振没有插紧(主板左下角) 5、芯片没有放置端正(不要放偏) 6、软件不兼容,去 STC 官网下载最新版本 7、最低波特率调至 1200 如果选配自动下载模块,则可以省去冷启动步骤。 下载完成后必须按照说明书(第四章 功能模块使用方法)连接对应的杜邦线才能看到 程序运行效果。每个功能模块的介绍部分都会提及杜邦线连接方式。 朗译电子科技 ☏ 025-52158963 www.doflye.net 34 / 404 德飞莱论坛及时更新不能下载程序的注意事项和解决方法,请点击链接查看 http://www.doflye.net/thread-905-1-1.html 2.2 安装 keil C51 软件然后编写第一个程序 2.2.1 keil C51 安装 双击光盘中 LY-51S 开发板光盘资料\3、各种配套软件\keil C51 完全破解版\setup 文件 夹中 setup.exe 可执行安装文件,出现如下界面: 选择 full Version 朗译电子科技 点击 Next ☏ 025-52158963 www.doflye.net 35 / 404 点击 Yes 点击 Browse 选择安装路径,我们这里选择 D:\Keil 朗译电子科技 ☏ 025-52158963 www.doflye.net 36 / 404 点击 Next 需要输入序列号,这个时候打开 LY-51S 开发板光盘资料\3、各种配套软件\keil C51 完全破 解版 文件夹中 安装方法.txt 文档,本破解版本仅做测试使用,请测试完成后自行删除。 朗译电子科技 ☏ 025-52158963 www.doflye.net 37 / 404 分别复制 SN = K1DZP-5IUSH-A01UE 序列号到相应位置 姓名和公司名字可任意填写,点击 Next 朗译电子科技 ☏ 025-52158963 www.doflye.net 38 / 404 点击 Next 点击 Next 朗译电子科技 ☏ 025-52158963 www.doflye.net 39 / 404 点击 Next 朗译电子科技 ☏ 025-52158963 www.doflye.net 40 / 404 点击“Finish”完成安装 声明:本破解版本仅作测试使用,测试完成后请自行删除。长期使用请到 keil 公司购买正版 软件产品。 2.2.2 用 keil C51 编写一个新程序 双击打开桌面上 图标 朗译电子科技 ☏ 025-52158963 www.doflye.net 41 / 404 点击 Project->New Project 朗译电子科技 ☏ 025-52158963 www.doflye.net 42 / 404 选择保存路径并填写文件名,这里文件名为 test1 注:)尽量单独建立一个文件夹存放一个工程,这样方便管理,如下: 存放在 test1 文件夹中,单击 保存 朗译电子科技 ☏ 025-52158963 www.doflye.net 43 / 404 选择对应的芯片型号,假设我们开发板上使用的是 AT89S52 单片机,直接选择 AT89S52, 如果使用的 STC 系列单片机,不管具体是什么型号,都可以选择 AT89S52 或者 AT89C52 替 代,这个对编译完全不影响。或者使用 STC 的建议,Keil 开发环境下请选择 Intel 的 8051、 52、58 等芯片型号进行编译。 如果必须要选择 STC 对应的芯片型号,请到 STC 官方网站下载 keil 对应的文件,并覆盖 keil 安装文件下同名文件。官方网站地址:http://www.stcmcu.com/ 本部分内容德飞莱不提供技术支持,请自行搜索资料。 朗译电子科技 ☏ 025-52158963 www.doflye.net 44 / 404 选择 Atmel 厂商中的 AT89S52 单击确定 注:)STC 系列单片机在 keil 中没有此型号,可以直接用 Atmel 的型号代替,可以用 AT89C52 或者 AT89S52 代替,其他依次类推,也可以到 STC 官网下载 STC 芯片型号插件。 提示是否加载 “标准启动文件”,刚开始学习可以不用加载,选择 “否” 这个时候工程就建立完成了,下一步需要建立一个 c 或者 Asm 类型的文件,并添加到该工 程中,这里我们以 c 文件为例讲解 朗译电子科技 ☏ 025-52158963 www.doflye.net 45 / 404 点击 File ->New 出现一个空白 Text1 文档 在空白文档中输入需要写的程序,我们这里赋值一段代码做为演示 朗译电子科技 ☏ 025-52158963 www.doflye.net 46 / 404 点击 File ->Save 出现如下对话框 需要输入文件名,这里要特别注意,文件默认的保存类型是 All Files,而我们需要的类型是 C 文件,所以需要输入后缀为“.c”的文件名,如下输入 led.c 朗译电子科技 ☏ 025-52158963 www.doflye.net 47 / 404 单击“保存” 可以看到保存正确的 c 文件,关键字是蓝色显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 48 / 404 点击前面“+”号,出现下图 右击 Source Group 1 出现下图 点击添加文件选项 Add Files to Group 朗译电子科技 ☏ 025-52158963 www.doflye.net 49 / 404 选中刚才保存的 led.c 的文件,点击 Add,然后点击 Close,文件添加完成 点击“+”号,可以看到 c 文件已经添加到工程中了 下一步需要进行编译前工程设置 朗译电子科技 ☏ 025-52158963 www.doflye.net 50 / 404 点击 Options for Target 出现如下对话框 编译工程之前需要设置 OutPut 一项,点击 OutPut 朗译电子科技 ☏ 025-52158963 www.doflye.net 51 / 404 在“Create HEX File”前打钩,表示编译需要产生十六进制文件,这个文件是我们烧写到单 片机必须的文件,所以必须勾选此项。点击“确定” 至此,基础设置完成,下一步进行编译工作 朗译电子科技 ☏ 025-52158963 www.doflye.net 52 / 404 点击 Project -> Rebuild all target files (重新编译所有目标文件) 底部编译结果显示"test1" - 0 Error(s), 0 Warning(s). 表示没有错误没有警告; Program Size: data=9.0 xdata=0 code=21 可以看到程序大小,data 占用 9 字节,程序代码占 用 21 字节; creating hex file from "test1"... 产生 hex 文件,这个文件就是烧写单片机需要的文件 然后用把产生的 HEX 文件烧写到单片机中(参考上一节烧写第一个程序),就可以在开发 板中看到运行效果。 朗译电子科技 ☏ 025-52158963 www.doflye.net 53 / 404 2.3 仿真芯片 SST89E516 使用方法 仿真芯片的使用(没有选购仿真芯片的直接跳过该章节) 硬件要求:1、已经固化仿真程序的仿真芯片,如 SST89E58、SST89E516(选购配件) 2、带有串口资源的目标板,如开发板 硬件连接:1、将仿真芯片直接插到目标板上,代替原有单片机的位置。 2、用一根 usb 线连接电脑 3、打开电源开关,电源指示灯亮 连接图同 STC 单片机,使用时需要把 STC 单片机换成 SST89E516 仿真芯片 朗译电子科技 ☏ 025-52158963 www.doflye.net 54 / 404 只需要连接一根 usb 线至电脑,usb 线的另外一段连接到电脑 USB 口,黄线部分需要换成仿 真芯片就可以了。 软件设置: 1、 打开 keil 软件,并打开一个需要仿真的程序(已经编译通过的工程)如下图: 以下以“流水灯”工程为例。 2、 点击上图箭头图标打开如下对话框 朗译电子科技 ☏ 025-52158963 www.doflye.net 55 / 404 3、 点击“Debug(调试)”选项,按照下图设置 4、 如上图设置后,点击“Setting”选项,出现如下对话框 朗译电子科技 ☏ 025-52158963 www.doflye.net 56 / 404 ★ Com 口选在当前硬件连接的端口,不能选择错误,否则不能通讯 ★ 波特率默认选择 38400,也可以尝试选其他波特率,速度较低 然后“OK”“确认”完成设置 5、 点击如下图仿真“ ”图标 即可看到状态栏有蓝色程序载入进展条,完成后出现如下界面 如果出现如下界面 朗译电子科技 ☏ 025-52158963 www.doflye.net 57 / 404 说明通讯异常请按一下目标板复位键或者重新启动电源,然后点击“Try Again”即可,如果多次尝试仍不能进入仿真界面,请点击“Settings”检测端口和波特率是 否正确。然后重复操作。 下图是成功进入的界面,供参考对比 朗译电子科技 ☏ 025-52158963 www.doflye.net 58 / 404 左侧栏有如图现象,状态栏显示仿真器的版本,这里显示 Monitor – 51 V3.4 这个时候就可以进入仿真步骤了。 6、 以下是常用的仿真按钮图标 以上图标分别是(从左往右):复位、全速运行、停止、单步、跨步 点击全速运行就可以看到实际执行效果。 用户也可以单步、跨步或者断点运行。 使用注意事项: 1、 全速运行后不能通过点击“ ” 停止。产生原因如下: 下图中“ ”未勾选。建议不要勾选,否则会影响仿真的正确性。 朗译电子科技 ☏ 025-52158963 www.doflye.net 59 / 404 这时候我们如果想停止正在全速运行的程序可以通过用户板的复位按键停止,然后重新 进入其他仿真步骤。 2、 不能正常进入仿真界面 请检查一下原因: ◆ 硬件是否连接牢靠 ◆ 电源是否打开 ◆ 软件设置是否正确 ◆ 重新启动 keil 软件 朗译电子科技 ☏ 025-52158963 www.doflye.net 60 / 404 第 3 章 跳帽定义与硬件检测 跳帽定义 1、 电源跳帽 J54:在不使用“下载插接扩展板”的时候,主板供电需要按照上图指示部分 跳上跳帽,用于接通主板供电。任何时刻拔掉跳帽开发板都不能正常使用。 2、 串口跳帽 J18:串口跳帽主要用于选择外接 DB9 公口或者母口,单片机串口默认连接到 主板集成的 usb 转 232 芯片上,所以这部分没有跳帽。 3、 复位跳帽 J19:用于选择 51 或者 AVR 复位,如果选择不正确,程序不能正常运行。使 用 AVR 芯片时必须跳至 AVR 端。 4、 AD 通道选择跳帽说明 J31/J32:2 个电位器通过跳帽可以切换 4 路模拟信号输入通道, 另外 2 个通道悬空或者连接其他电压源。开发板上已经清晰标明。 5、 DA 指示灯跳帽 J33:DA 输出一般使用电压表或者示波器测量,如果需要了解输出结果 而不需求精度,就可以使用 DA 输出模拟指示灯,插上此跳帽,指示灯连接到 DA 输出 口。LED 的亮度会随着 DA 输出信号的大小改变。 6、数码管电源跳帽 J:50:插上后,8 位共阴数码管才能正常使用。 7、双色点阵电源跳帽 J49:插上后,双色点阵才能正常使用。 朗译电子科技 ☏ 025-52158963 www.doflye.net 61 / 404 第 4 章 功能模块使用方法 4.1 发光二极管 发光二极管是半导体二极管的一种,可以把电能转化成光能。常简写为 LED(light emitting diode)。 发光二极管与普通二极管一样也具有单向导电性。当给发光二极管加上正向电压(大于 LED 的正向压降)就会发光,当给发光二极管加上负向电压就不会发光。发光二极管的发光 亮度与通过的工作电流成正比,一般情况下,LED 的正向工作电流在 10mA 左右,若电流过 大时会损坏 LED,因此使用时必须串联限流电阻以控制通过管子的电流。限流电阻 R 可用下 式计算: R=(E-UF)/IF 式中 E 为电源电压,UF 为 LED 的正向压降,IF 为 LED 的一般工作电流。 普通发光二极管的正向饱和压降为 1.4~2.1V,正向工作电流为 5~20mA. LED 广泛应用于各种电子电路、家电、仪表等设备中、做电源或电平指示。 4.1.1 硬件连接原理 朗译电子科技 ☏ 025-52158963 www.doflye.net 62 / 404 RP1 排阻:330~430 欧姆,J9 插针,用于连接需要使用的 IO 口。LED 模块的所有样例 程序,该插针都需要连接到 P1 口,如下图: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 朗译电子科技 ☏ 025-52158963 www.doflye.net 63 / 404 贴片 led 灯,节省空间 插件 led 灯 J9 端低电平时 LED 点亮,高电平时 LED 熄灭。 此实验之前首先需要了解 IO 端口原理,简单介绍如下: 1、I/O 英文全称是 Input/Output,即输入/输出。单片机端口是标准双向口,就是说, 单片机的端口既可以作为输出信号端(如控制灯亮灭、继电器吸合释放、喇叭发声等),也 可以作为输入信号端(如按键信号输入、红外波形输入、开关信号输入等)。 8 V( D: y$ c4 r% y0 h 2、暂且不管 IO 内部详细结构,先把单片机当黑匣子对待,假设我们需要控制一个 LED 的亮灭,应该怎么做? 4 }, G( Q4 n; c7 G$ G G) a& f 这里列出一个最简单的硬件控制电路: 朗译电子科技 ☏ 025-52158963 www.doflye.net 64 / 404 上图中 A 点就相当于单片机的 I/O 口,A 点相当于单刀双掷开关,可以接到+5V,也可 以接到电源地。接到+5V 或者悬空,整个电路中没有电流流过,LED 的状态是熄灭。如果 A 点接到电源地,2 端压差 5V,假设 LED 正常工作压降 1.5V,正常工作电流 10mA。我们通过 图上的参数得知实际工作参数:电流 I=(5V-1.5V)/390 欧姆=8.9mA,接近于正常工作电流, 所以 LED 被点亮。在数字电路中,接+5V 为电平“1”,接地为“0” 说 j; ]5 ?6 w2 l ; J" p2 _( n1 B" d& Q 所以在单片机中,按照上图连接 LED 到 P1.1 口,我们只需要控制 P1.1 口的电平是“0” 或“1”就可以控制 LED 的亮灭。 & ^5 c# p8 `6 L# O3 \, f 7 T) `4 k- Q2 p, n) T2 {% c0 G 汇编语句:SETB P1.1 即 set bit 置位 P1.1,语句的作用是把 P1.1 赋值电平“1” - i+ u4 _2 k- M- q% W CLR P1.1 即 clear(清除,清零) P1.1 ,语句的作用是把 P1.1 赋值电平“0” c 语句: c 语句中“=”即赋值的意思,如 A=B;即把 B 赋值给 A。 P1_1 = 0; P1_1 = 1; 这 2 句作用等同于上述汇编 ! V; O% w8 y9 d _6 C 如果在 keil 中编译,c51 中没有 P1_1 这个表示,需要预先定义, * x( T% z3 i; J- u sbit P1_1 = P1^1; 这是固定格式 朗译电子科技 ☏ 025-52158963 www.doflye.net 65 / 404 4.1.2 IO 输出-点亮 1 个 LED 灯方法 1 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0 口的 LED 点亮,其他 LED 熄灭。 知识要点: 1、 #include, # 说明这是个预处理命令(在编译之前进行的处理), include 是文件包含命令。C 语言的预处理主要有三个方面的内容: 1-宏定义 朗译电子科技 ☏ 025-52158963 www.doflye.net 66 / 404 2-文件包含 3-条件编译 这里包含的 reg52.h 基本内容如下: 朗译电子科技 ☏ 025-52158963 www.doflye.net 67 / 404 从 reg52.h 的内容可以看到,头文件主要定义了端口和特殊功能寄存器的物理地址,包 含这个头文件后,我们在程序中就可以直接使用定义过的标识符。如果需要对 P1 口进行操 作,因为 P1 的寄存器地址是 0x90,我们不需要了解单片机具体内部结构和地址,直接针对 P1 进行操作,单片机内部就会对 0x90 这个地址操作,P1=0xFF;语句的作用是直接赋值十 六进制 FF 到 P1 端口。 2、sbit 这个关键字是 C51 中特有的,用于定义 SFR(特殊功能寄存器)的位变量。 sbit LED=P1^0; 表示定义发光管连接的硬件端口,LED 定义在 P1(特殊功能寄存器) 的第 0 位,即 P1.0,定义了这个端口以后,下面对 P1.0 的操作,我们就可以直接用 LED 代 替, LED=1; //将 P1.0 口赋值 1,对外输出高电平 LED=0; //将 P1.0 口赋值 0,对外输出低电平 由于 sbit 定义位变量,所以赋值结果只有 0 和 1。 朗译电子科技 ☏ 025-52158963 www.doflye.net 68 / 404 3、main() 函数。C 程序最大的特点就是所有的程序都是用函数来装配的。 main()称之为主函数,是所有程 序运行的入口。其余函数分为有参或无参两种,均 由 main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递。 一个程序有且只有一个 main 函数。 4、while ()。计算机的一种基本循环模式。 当满足条件时进入循环,不满足 跳出。C 语言中 while 可以有以下 2 种形式: do <语句> while(<条件>); while(<条件>) <语句>; 我们分析一下本例中的语句,while(1){} 小括号中表示循环条件,大括号中是循环主体。 当循环条件为真,执行大括号中的循环主体,否则跳出循环主体。条件不为 0 即为真, 所以这里我们使用数字 1,表示条件永远为真,然后就会一直执行大括号中的语句,本例中 不需要循环操作,所以大括号中为空语句。在以后的所以程序中,都会存在 while 循环主体, 所有需要循环操作的函数和变量都需要放在 while 循环中。本例中进入 main 函数对 LED 进 行了 2 次操作后进入 while 循环,并一直在循环中等待,不进行任何操作。因此 LED 的亮灭 状态也不会改变。 本程序虽然短小,但包含了一个 c 程序最基础的部分,以后的程序会在这个基础上不断 添加内容用于增加功能,但整体结构不会改变。 5、 // 和 /* */ 这 2 种符号表示注释,注释不是程序,不影响程序结果,注释是给我 们程序员看的,我们可以通过注释了解程序的意图,尤其在程序庞大时,注释尤为重要,如 果没有注释,一段时间后,我们自己写的程序自己都看不懂了。所以养成一个好的习惯,写 程序的时候及时注释。上述 2 种注释符号的区别如下,// 后面的语句都为注释,换行后无 效,/* */中间的内容皆为注释,换行有效。上述样例中开头的描述使用了/* */注释,而程序 中各个语句后面的注释使用了 // 。这个注释可以根据个人喜好和习惯,并没有具体要求。 朗译电子科技 ☏ 025-52158963 www.doflye.net 69 / 404 4.1.3 IO 输出-点亮 1 个 LED 灯方法 2 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0 口的 LED 点亮,其他 LED 熄灭。 知识要点: P1 要用大写字母 朗译电子科技 ☏ 025-52158963 www.doflye.net 70 / 404 与第一个程序不同,这里更简单,直接对 P1 口整体操作,我们使用的是 8 位单片机, 所以一个口占的宽度是 8 位,用二进制表示 xxxx xxxx ,样例注释中有详细解释。请参考样 例程序。0xFF 和 0xff 相同,c 语言中数值不区分大小写,标识符一定要区分大小写。0x 前 缀表示这个是十六进制数,如果直接用十进制则可以用下面方式表示:P1=255 此句等效于 P1=0xff,单片机中常用的进制是:十进制、二进制和十六进制,三种进制只是表现形式不 同,可以相互转换。在写程序之前需要详细了解这 3 中进制并能熟练进行换算。最简单的 换算办法可以通过电脑自带的计算器。这里演示一下: 点击开始 -> 程序 -> 附件 -> 计算器 上图是普通计算器,我们需要科学型计算器 点击 查看 -> 科学型 朗译电子科技 ☏ 025-52158963 www.doflye.net 71 / 404 这就包含进制计算和转换了,输入数据比较一下,先输入十进制 255,然后分别点击十六进 制和二进制 十进制 朗译电子科技 ☏ 025-52158963 www.doflye.net 72 / 404 十六进制 二进制 自己尝试计算一下 0xfe 这个数据,并对比结果。多计算一些数据以便熟悉进制转换。 朗译电子科技 ☏ 025-52158963 www.doflye.net 73 / 404 4.1.4 IO 输出-点亮多个 LED 灯方法 1 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0、P1.2、P1.4、P1.6 口的 LED 点亮,其他 LED 熄灭。 知识要点: 同样使用了位操作,不过是针对多个位的定义和操作。 朗译电子科技 ☏ 025-52158963 www.doflye.net 74 / 404 4.1.5 IO 输出-点亮多个 LED 灯方法 2 从程序可以看出主题和结构与“2-IO 输出-点亮 1 个 LED 灯方法 2”完全相同,只有 P1 口赋值不同。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0、P1.2、P1.4、P1.6 口的 LED 点亮,其他 LED 熄灭。 知识要点: 再次学习针对整个端口的赋值操作。 朗译电子科技 ☏ 025-52158963 www.doflye.net 75 / 404 4.1.6 闪烁 1 个 LED 流程图 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0 的 LED 闪烁,其他 LED 熄灭。 朗译电子科技 ☏ 025-52158963 www.doflye.net 76 / 404 知识要点: 1、void Delay(unsigned int t) 延时函数。许多程序设计语言中,可以将一段经常需要 使用的代码封装起来,在需要使用时可以直接调用,这就是程序中的函数。C 语言的 函数可以分为两类:带参数的函数和不带参数的函数,一般类型如下: 类型标示符+ 函数名+(类型标示符+参数) void Delay (unsigned int t ) void 的字面意思是“无类型”,如何函数没有返回值,则声明为 void 类型,如果函数没 有输入参数,也需要声明为 void 类型。 可以看出 Delay()函数有输入参数,输入参数是无符号整型变量 t ,但没有返 回值。 在主调函数中调用某函数之前应对该被调函数进行说明(声明),这与使用变量之前要 先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函 数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。 其一般形式为: 类型说明符 被调函数名(类型 形参,类型 形参…); 或为: 类型说明符 被调函数名(类型,类型…); 括号内给出了形参的类型和形参名,或只给出形参类型。这便于编译系统进行检错,以防止 可能出现的错误。 函数声明: C语言中又规定在以下几种情况时可以省去主调函数中对被调函数的函数说明。 1) 如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这 时系统将自动对被调函数返回值按整型处理。 2) 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作 说明而直接调用。 3) 如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数 中,可不再对被调函数作说明。例如: char str(int a); float f(float b); main() { …… } 朗译电子科技 ☏ 025-52158963 www.doflye.net 77 / 404 char str(int a) { …… } float f(float b) { …… } 其中第一,二行对 str 函数和 f 函数预先作了说明。因此在以后各函数中无须对 str 和 f 函数再作说明就可直接调用。 4)对库函数的调用不需要再作说明,但必须把该函数的头文件用 include 命令包含在源文件 前部。 函数调用: 程序中是通过对函数的调用来执行函数体的,其过程与其它语言的子程序调用相似。 C语言中,函数调用的一般形式为: 函数名(实际参数表) 对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型 数据及表达式。各实参之间用逗号分隔。 在C语言中,可以用以下几种方式调用函数: 1. 函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的 运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把 max 的返 回值赋予变量 z。 2. 函数语句:函数调用的一般形式加上分号即构成函数语句。例如: printf ("%d",a);scanf ("%d",&b);都是以函数语句的方式调用函数。 3. 函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作 为实参进行传送,因此要求该函数必须是有返回值的。例 如: printf("%d",max(x,y)); 即是把 max 调用的返回值又作为 printf 函数的 实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。所谓求值顺序是指 对实参表中各量是自左至右使用呢,还是自右至左使用。对此,各系统的规定不一定相同。 朗译电子科技 ☏ 025-52158963 www.doflye.net 78 / 404 4.1.7 不同频率闪烁 1 个 LED 以下是流程图 朗译电子科技 ☏ 025-52158963 www.doflye.net 79 / 404 基本流程图 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1.0 口 LED 先短闪烁 10 次,然后长闪烁 10 次,再到短 闪 10 次,反复循环,其他 LED 熄灭。 知识要点: 1、for 循环。for 循环是开界的。它的一般形式为: for(<初始化>; <条件表达式>; <增量>) 语句; 初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个 关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后 按什 么方式变化。这三个部分之间用";"分开。 例如: for(i=1; i<=10; i++) 语句; 上 例中先给 " i " 赋初值 1, 判断 " i " 是否小于等于 10, 若是则执行语句, 之后值 增加 1。再重新判断, 直到条件为假, 即 i>10 时, 结束循环。 朗译电子科技 ☏ 025-52158963 www.doflye.net 80 / 404 4.1.8 不同频率闪烁多个 LED 朗译电子科技 ☏ 025-52158963 www.doflye.net 81 / 404 与点亮 1 个 LED 原理相同。 4.1.9 8 位 LED 左移 朗译电子科技 ☏ 025-52158963 www.doflye.net 82 / 404 流程图 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1 的 8 个 LED 从 LED1 开始点亮,依次点亮 LED2 直到全 部点亮,然后保持全部点亮状态。 知识要点: 1、 << 符号。这个是左移符号,P1<<=1;等效于 P1=P1<<1; 例如:temp = 14; temp <<=1; 14 二进制 为 0000 1110 ,左移 1 位后,右端自动补 0,变成 0001 1100,此时 temp = 28 数值左移一位相当于乘以 2,反之右移一位相当于除以 2。 朗译电子科技 ☏ 025-52158963 www.doflye.net 83 / 404 4.1.10 8 位 LED 右移 与左移程序只有 2 处区别:1、P1 口赋初值不同 2、使用>>符号 流程图 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 84 / 404 单片机 IO 口 P1 模块接口 J9 杜邦线数量 8 功能 LED 下载程序后,可以看到连接在 P1 的 8 个 LED 从 LED8 开始点亮,依次点亮 LED7 直到全 部点亮,然后保持存全部点亮转态。 知识要点: 1、>>符号。这个是左移符号,P1>>=1;等效于 P1=P1>>1; 例如:temp = 14; temp >>=1; 14 二进制 为 0000 1110 ,右移 1 位后,左端自动补 0,变成 0000 0111,此时 temp = 7 数值左移一位相当于乘以 2,右移一位相当于除以 2。 朗译电子科技 ☏ 025-52158963 www.doflye.net 85 / 404 4.1.11 LED 循环左移 与左移程序比较不同点:1、for 循环部分放到 while 主循环体当中 2、左移语句后多加了一句语句 3、for 循环结束后添加重新赋值语句 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1 的 8 个 LED 从 LED1 开始点亮,依次点亮 LED2 直到 LED8 点亮,然后从 LED1 点亮开始循环。任何时刻只有一个 LED 点亮。 朗译电子科技 ☏ 025-52158963 www.doflye.net 86 / 404 知识要点: 1、| 符号。这个是按位或符号,这是数字电路基础,1 或 1 =1,1 或 0=1,0 或 1=1,0 或 0=0。 例如,0xfe = 1111 1110 左移 1 位后变为 1111 1100,然后通过按位或语句,1111 1100 | 0000 0001(0x01) = 1111 1101 ,这就能保证任何时候 8 位当中只有一位为 0, 在 LED 上表现出只有一位点亮。 流程图 朗译电子科技 ☏ 025-52158963 www.doflye.net 87 / 404 4.1.12 LED 循环右移 与循环左移不同点:1、初值不同 2、使用右移符号 3、添加左端补 1 语句 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1 的 8 个 LED 从 LED8 开始点亮,依次点亮 LED7 直到 LED1 点亮,然后从 LED8 点亮开始循环。任何时刻只有一个 LED 点亮。 朗译电子科技 ☏ 025-52158963 www.doflye.net 88 / 404 知识要点: 1、| 符号。这个是按位或符号,这是数字电路基础,1 或 1 =1,1 或 0=1,0 或 1=1,0 或 0=0。 例如,0x7f = 0111 1111 右移 1 位后变为 0011 1111,然后通过按位或语句,0011 1111 | 1000 0000(0x80) = 1011 1111 ,这就能保证任何时候 8 位当中只有一位为 0,在 LED 上表现出只有一位点亮。 流程图 朗译电子科技 ☏ 025-52158963 www.doflye.net 89 / 404 4.1.13 查表显示 LED 灯 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,可以看到连接在 P1 的 8 个 LED 有顺序点亮。 知识要点: 1、 ROM 表格。这里定义表格 table 使用关键字 code,c51 中 code 定义的常量 会被存放在代码区,即 ROM 区,这种定义主要用于定义常量不需要变化的 值或者一些固定参数。定义在 ROM 区可以大量节省 RAM 的空间。 2、 table[] 。 这里表格实际上就是一个数组,table[0]表示表格的第一个元 素。table[15]表示表格的第 16 个元素。ROM 允许情况,table 表格的数量 朗译电子科技 ☏ 025-52158963 www.doflye.net 90 / 404 可以自由增加。在循环查表过程中则需要改变循环的最大次数与表格的最 大元素个数相等,上述样例中如果查表 table[16],由于没有这个元素,超 出表格范围,实际取出的值是个随机数值。这种情况往往会导致不可预知 的情况。 朗译电子科技 ☏ 025-52158963 www.doflye.net 91 / 404 4.1.14 双灯左移右移闪烁 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 朗译电子科技 ☏ 025-52158963 www.doflye.net 92 / 404 下载程序后,双灯左移 7 次,然后右移 7 次,然后全部闪烁 3 次 知识要点: 综合前面样例所使用到的内容,这里重新提及一次 1、 左移符号<< 2、 右移符号>> 3、 函数调用 4、 for 循环 5、 按位或 | 朗译电子科技 流程图 ☏ 025-52158963 www.doflye.net 93 / 404 4.1.15 花样灯 朗译电子科技 ☏ 025-52158963 www.doflye.net 94 / 404 流程图 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 95 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,左移 8 次,右移 8 次,循环左移 8 次,循环右移 8 次,查表 16 次。 知识要点: 综合前面样例所使用到的内容,这里重新提及一次 1、左移符号<< 以及循环左移 2、右移符号>> 以及循环右移 3、函数调用 4、for 循环 5、按位或 | 6、查表 朗译电子科技 ☏ 025-52158963 www.doflye.net 96 / 404 4.1.16 PWM 调光 朗译电子科技 流程图 ☏ 025-52158963 www.doflye.net 97 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 下载程序后,P1.0 连接的 LED 渐亮渐灭。 知识要点: 1、for 循环 4.2 共阳数码管 4.2.1 硬件连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 98 / 404 上图是独立共阳数码管,用于演示数码管基本结构。 共阳共阴数码管基础连接方式如上图 朗译电子科技 ☏ 025-52158963 www.doflye.net 99 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 100 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 101 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 朗译电子科技 ☏ 025-52158963 www.doflye.net 102 / 404 4.2.2 共阳数码管静态显示 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 下载程序后,连接好杜邦线,数码管显示“0”。 知识要点: 8 位数码管就是 8 个 LED 的组合。会使用 LED 就会使用单个数码管。 朗译电子科技 ☏ 025-52158963 www.doflye.net 103 / 404 4.2.3 一个共阳数码管显示变化数字 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 朗译电子科技 ☏ 025-52158963 www.doflye.net 104 / 404 下载程序后,连接好杜邦线,数码管循环显示“0-9”。 知识要点: 4.2.4 单个数码管模拟水流 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 105 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 数码管转圈做流水动作。 知识要点: 与流水灯原理完全相同,这里顺便用不同显示器件演示一下。 朗译电子科技 ☏ 025-52158963 www.doflye.net 106 / 404 4.2.5 按键控制单个数码管 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 P3 J26 8 独立按键 按键 K1-K8,数码管显示 1-8 知识要点: 1、switch case 语句。C语言提供了一种用于多分支选择的 switch 语句, 其一般形 式为: 朗译电子科技 ☏ 025-52158963 www.doflye.net 107 / 404 switch(表达式){ case 常量表达式 1: 语句 1; case 常量表达式 2: 语句 2; … case 常量表达式 n: 语句 n; default : 语句 n+1; } 其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某 个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有 case 后的语句。如表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后 的语句。 朗译电子科技 ☏ 025-52158963 www.doflye.net 108 / 404 4.2.6 单个共阳数码管指示逻辑电平 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J6 8 共阳数码管 通过数码管显示“H”或者“L”,表示高电平或者低电平,检测引脚定义在 P3.2 口, 平时引脚悬空,数码管显示“H”,用杜邦线将 P3.2 连接到 GND,则显示“L”。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 109 / 404 4.3 8 位共阴数码管 4.3.1 硬件连接 使用前必须把 J50 插针用短路块(跳帽)跳上。此跳帽用 于数码管的整体供电,如果平时不需要使用公阴数码管,把跳 帽拔掉即可。 朗译电子科技 ☏ 025-52158963 www.doflye.net 110 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 111 / 404 4.3.2 8 位数码管显示其中之一 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 112 / 404 单片机 IO 口 P0 P2.2(段锁存) P2.3(位锁存) 模块接口 J3 J2(B) J2(A) 杜邦线数量 8 1 1 功能 共阳数码管数据端 段锁存 位锁存 第一位数码管显示数字 3 知识要点: 1、锁存器。锁存器就是把当前的状态锁存起来,使 CPU 送出的数据在接口电路 的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。 74hc573 就是锁存器,锁存引脚高电平表示直通状态,为低电平表示锁存状 态,可以通过控制锁存引脚,控制 74hc573 后端输出数据。 4.3.3 8 位数码管显示其中之二 朗译电子科技 ☏ 025-52158963 www.doflye.net 113 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 第 1 个和第 8 位数码管显示同样数字 3 知识要点: 与显示一位相比较,同时选通 2 位数码管,也可以同时选通多位数码管,但是所有选 通的数码管显示的数据只能是相同的。如果需要显示不同数据,就需要用到动态扫描。 朗译电子科技 ☏ 025-52158963 www.doflye.net 114 / 404 4.3.4 8 位数码管动态扫描 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 8 位数码管显示 01234567 知识要点: 1、动态扫描。由于任一时刻只能显示一种数字,当需要多位数码管显示多位数 据的时候就需要动态扫描。动态扫描实际上执行的是动态显示,由于动态速度很 朗译电子科技 ☏ 025-52158963 www.doflye.net 115 / 404 快,人眼分辨不出是在动态显示,所以看上去是静态显示,这种效果正是我们所 需要的。动态扫描的优点是,在不影响显示效果的前提下,大量节省 IO 端口。 2、If 条件语句。用 if 语句可以构成分支结构。它根据给定的条件进行判断,以 决定执行某个分支程序段。C语言的 if 语句有三种基本形式。 第一种形式为基本形式:if if(表达式) 语句 其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示 为下图。 第二种形式为: if-else if(表达式) 语句 1; else 语句 2; 其语义是:如果表达式的值为真,则执行语句 1,否则执行语句 2 。 其执行过程可表示为下图。 第三种形式为 if-else-if 形式 前二种形式的 if 语句一般都用于两个分支的情况。 当有多个分支选择时,可采用 if-else-if 语句,其一般形式为: if(表达式 1) 朗译电子科技 ☏ 025-52158963 www.doflye.net 116 / 404 语句 1; else if(表达式 2) 语句 2; else if(表达式 3) 语句 3; … else if(表达式 m) 语句 m; else 语句 n; 其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整 个 if 语句之外继续执行程序。 如果所有的表达式均为假,则执行语句 n。然后继续执行后 续程序。 if-else-if 语句的执行过程如图 朗译电子科技 ☏ 025-52158963 www.doflye.net 117 / 404 4.3.5 8 位数码管动态扫描演示 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 朗译电子科技 ☏ 025-52158963 www.doflye.net 118 / 404 P2.2(段锁存) P2.3(位锁存) J2(B) J2(A) 1 段锁存 1 位锁存 扫描速度很慢,可以清楚看到每个数码管显示的数字,并顺序显示,任一时刻显示一 个数码管。 知识要点: 故意增加了延时长度,目的是为了更直观了解动态扫描原理。通过软件减少延时时间, 就可以看到动态扫描静态显示效果。 朗译电子科技 ☏ 025-52158963 www.doflye.net 119 / 404 4.3.6 数码管显示动态数据 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 首先显示 01234567,然后显示 12345678,最后显示 89abcdef 朗译电子科技 ☏ 025-52158963 www.doflye.net 120 / 404 。 。 。 。 。 。 知识要点: 不论数据如何改变,循环扫描的整个部分不能停止,不然就会产生闪烁。 朗译电子科技 ☏ 025-52158963 www.doflye.net 121 / 404 4.3.7 9 累加 主函数部分作用:延时一段时间后让数值加 1,范围是 0-9,然后把该数据送至显示缓 冲区 TempData 朗译电子科技 ☏ 025-52158963 www.doflye.net 122 / 404 显示处理函数,可以通过输入参数选择需要显示的起始位置和一共需要显示的位数。 FirstBit 表示第一个数据需要显示的位置,如果需要把第一个数据显示在第 4 位,则 FirstBit 位置输入 3,带入函数的参数相当于 DataPort=dofly_WeiMa[i+3],后面用到的程序这个函数 就固定成这种模式,我们只需要针对输入参数调整然后直接调用即可。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 123 / 404 Display(2,1); 主函数中调用显示函数的输入参数为 2 和 1,2 表示从第三位开始显示,1 表示只显示 1 位数据,如果把前面的 2 改成 7,则上图 5 就显示在最后一位,如下图: 知识要点: 主程序中只需要处理数据 num 从 0-9 累加,并不停循环调用显示函数。 动态扫描显示一个变化的数字是真正意义数码管显示。 朗译电子科技 ☏ 025-52158963 www.doflye.net 124 / 404 4.3.8 99 累加 与 1 位数码管显示比较如下: 1、num 取值范围从 0-9 扩大到 0-99 2、显示缓冲区部分 TempData 需要处理 2 位数据 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 125 / 404 数值从 00 一直累加到 99,然后循环。 知识要点: 1、 运算符。 C语言的运算符不仅具有不同的优先级,而且还有一个特点,就 是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符 优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算 还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此 也增加了C语言的复杂性。 C语言的运算符可分为以下几类: 1.算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模 运算,%)、自增(++)、自减(--)共七种。 2.关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(= =)、大于等于(>=)、 小于等于(<=)和不等于(!=)六种。 3.逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 4.位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、 位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 5.赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=) 和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符:这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符:用于把若干表达式组合成一个表达式(,)。 8.指针运算符:用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符:用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符:有括号(),下标[],成员(→,.)等几种。 结合本例中使用的算术运算符除(/)、求余(或称模运算,%) 举例如下:假设 a=5,b=3, a、b 均为无符号整形变量, 5/3 =1,因为结果必须是整数,所以是看不到小数部分的,得到的结果就是 1 5%3=2,求余数,很显然,余数为 2, 再分析一下例句:如要显示 68,则 68/10=6 68%10=8 朗译电子科技 ☏ 025-52158963 www.doflye.net 126 / 404 6 显示到第一个数码管,8 显示到第二个数码管,这样我们就能看到数值是 68。以后所有的 算术运算都会用到这种方式。学习并深入理解。 4.3.9 999 累加 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 127 / 404 知识要点: 同上 4.3.10 9999 累加 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 128 / 404 知识要点: 同上 4.3.11 9 累减 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 同 9 位累加相同,不过数字是从 9-0 累减,然后循环,其他部分一样 知识要点: 同上 朗译电子科技 ☏ 025-52158963 www.doflye.net 129 / 404 4.3.12 99 累减 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 同 99 位累加相同,不过数字是从 99-0 累减,然后循环,其他部分一样 知识要点: 同上 朗译电子科技 ☏ 025-52158963 www.doflye.net 130 / 404 4.3.13 999 累减 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 同 999 位累加相同,不过数字是从 999-0 累减,然后循环,其他部分一样 知识要点: 同上 朗译电子科技 ☏ 025-52158963 www.doflye.net 131 / 404 4.3.14 9999 累减 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 同 9999 位累加相同,不过数字是从 9999-0 累减,然后循环,其他部分一样 知识要点: 上述 4 个累加 4 个累减,8 个样例大部分程序都是相同的,通过这种强化方式了 解动态扫描和数值的处理。这里再次提及其中知识要点: 1、if else 判断语句 2、运算符 朗译电子科技 ☏ 025-52158963 www.doflye.net 132 / 404 3、显示函数输入参数意义和整体结构 4.3.15 显示小数点 上图可以看出,在原来 999 累加的程序中加了一句 |0x80,在之前学习过这个按位或 的符号,这里采取同样方法显示小数点,在需要显示小数点的位的语句后面加上这一句就可 以实现小数点功能,用户可以根据样例更改到其他位,以熟悉“按位或”符号用法。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 133 / 404 知识要点: 1、按位或 “|” 4.3.16 数码管消隐 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 134 / 404 单片机 IO 口 P0 P2.2(段锁存) P2.3(位锁存) 模块接口 J3 J2(B) J2(A) 杜邦线数量 8 1 1 功能 共阳数码管数据端 段锁存 位锁存 知识要点: 消隐是数码管显示中经常用到的部分,上图运行效果显示的消隐的效果,在前 面 9999 累加时如果没有使用消隐则显示 1 的时候会显示 0001,对于数字显然不 符合我们平时的使用习惯,这个时候消隐处理就变得非常重要。 数字部分消隐主要是判断出无用的“0”,然后让其不显示即可。 朗译电子科技 ☏ 025-52158963 www.doflye.net 135 / 404 4.3.17 递加递减带消隐 朗译电子科技 ☏ 025-52158963 www.doflye.net 136 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 137 / 404 4.3.18 数码管左移 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 138 / 404 P0 P2.2(段锁存) P2.3(位锁存) J3 J2(B) J2(A) 8 共阳数码管数据端 1 段锁存 1 位锁存 从最右端开始左移 移到最左端 第二位数左移到位 第三位数左移过程中 。。。 。。。 最后显示效果 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 139 / 404 4.3.19 数码管右移 1 其他部分相同,蓝色圈中部分 i 改成 7-i,运行方向就相反了。 实验现象: 同左移现象相反 知识要点: 同上 朗译电子科技 ☏ 025-52158963 www.doflye.net 140 / 404 4.3.20 数码管右移 2 在显示缓冲区处理上与左移相反过程。 实验现象: 同左移现象相反 知识要点: 同上 朗译电子科技 ☏ 025-52158963 www.doflye.net 141 / 404 4.3.21 数码管循环左移 主循环部分增加了循环动作。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 142 / 404 左移 。。。。。。 。。。。。。 知识要点: 4.3.22 数码管循环右移 1 程序见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 143 / 404 P2.3(位锁存) J2(A) 现象同左移相反 知识要点: 1 位锁存 4.3.23 数码管循环右移 2 程序见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 现象同左移相反 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 144 / 404 4.3.24 数码管闪烁 一般用标志位处理,闪烁原理与 LED 闪烁相同,不过是整个部分闪烁,可以用延时, 也可以用定时器。本样例是 8 位数码管全部闪烁。比较容易操作和理解。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 145 / 404 知识要点: 4.3.25 数码管局部闪烁 朗译电子科技 ☏ 025-52158963 www.doflye.net 146 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 共阳数码管数据端 P2.2(段锁存) J2(B) 1 段锁存 P2.3(位锁存) J2(A) 1 位锁存 中间横杠显示 延时 0.5s 左右横杠不显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 147 / 404 知识要点: 然后循环 4.4 定时器 4.4.1 硬件连接 定时器是单片机内部的特殊功能模块。 在控制系统中,常常要求有一些实时时钟以实现定时或者延时控制,如定时中断、定时 检测、定时扫描等等,也往往要求有计数器,对外部事件进行计数。 要实现定时或者延时功能,一般有三种方法:软件定时,不可编程硬件定时,可编程硬 件定时。 软件定时——让软件循环执行一段程序,程序本身并无执行目的,而是通过执行程序延 时固定的时间,也就是以前的程序中经常使用的延时程序。这种方法降低了 cpu 的利用率。 不可编程硬件定时——如外部芯片 555 时基电路,通过外部阻容,达到一定的延时功能, 改变阻容大小可以改变延时长度。这种定时器取决于硬件,设定好以后不能通过软件更改。 可编程定时器——这种定时器的定时值可以通过软件确定和修改,使用灵活 T0/T1 2 个相同的 16 位定时/计数器 TR. 定时计数器的启动控制开关。 TR=1:计数器开始计数; TR=0:计数器停止计数。 C/T. 计数器输入脉冲选择开关,决定着计数器的 “定时”或“计数”的两种工作方式。 C/T=0:计数器接收内部时钟信号 fosc--- 定时方式;C/T=1:计数器接收引脚上的外部 信号---计数方式。 TF. 计数器溢出标志。 TF=1 :定时或计数时间到,可以采用查询或中断方式处理; 初值寄存器:预装用来决定计数器产生溢出周期的参数, 此参数决定着定时或计数的 朗译电子科技 ☏ 025-52158963 www.doflye.net 148 / 404 周期。通常要预算并送入初 值寄存器中。 定时/计数器的 4 种工作模式,由特殊功能寄存器 TMOD 决定 模式 0:13 位定时/计数器 在某一个初值的基础上加 1 计数,当计数器计满为全“1”,再来一个计数脉冲时,就产生一 个“溢出中断信号”TF1=1。 由于低 8 位计数器中的高三位没有参与工作,故填装初值时应“避开”此三位。 模式 1:16 位定时/计数器 朗译电子科技 ☏ 025-52158963 www.doflye.net 149 / 404 类同于模式 0。由于两个计数器为完整的 8 位,故将计算好的 16 位初值可直接填装到 TH、TL 中。 模式 2:8 位自动重装值模式 TL 做计数器,TH 做初值寄存器,工作前 TL1,TH1 分别预置相同的初值。 TL1 计数时, 产生溢出的同时, 将 TH1 中的初值自动重装 TL1。TL1 继续计数。 8 位计数器的模式,定时或计数的范围远远小于模式 0 和模式 1; 具备初值“硬件自动重装”功能,非常适合进行重复性定时的场合,如产生连续方波信号等。 编成中省去了软件重装初值的麻烦 ; 模式 3:组合扩展模式(只适用于 T0) 朗译电子科技 ☏ 025-52158963 www.doflye.net 150 / 404 将 T0 和 T1 重新进行“拆分、组合”。将 T0 变为由 TH0,TL0 组成的两个独立的 8 位定时/计 数器。 模式 模式0 模式1 模 式 2, 3 计数模 M 13位 16位 8位 最大计数值 T m ax = 213 = 8192 T m ax = 216 = 65536 T m ax= 28 =256 定时时长比较,晶振 12M,指令周期 1us 情况 模式 计数模 M 模式0 13位 模式1 16位 最 大 定 时 时 间 T m ax ( fo s c = 1 2 M ) T m ax=8192*1 μ Ѕ = 8 .1 9 2 m s T m ax=65536* 1μ Ѕ = 6 5 .5 3 6 m s 模 式 2, 3 8位 T m a x = 2 5 6 * 1 μ Ѕ = 0 .2 5 6 m s T=(M-TC)×t 其中,T: 定时时间,M: 计数器的模,TC:计数初值, t:计数器计数脉冲的周期(t = fosc/12)。 朗译电子科技 ☏ 025-52158963 www.doflye.net 151 / 404 GATE 选通门: GATE=0 时,只要 TR=1,计数器就开始工作; GATE=1 时,只有 INT=TR=“1”时,计数器工作 (用来测量 INT 脚高电平脉冲的宽度)。 C/T 计数、定时方式选择位: C/T=1 时,计数方式。 C/T=0 时:定时方式。 M1 、M0 模式选择:确定四种工作模式. TF0 定时器 T0 的溢出标志: 计数器溢出时硬件自动置位,即 TR=1。进入中断后再由硬件自动清除(TF0=0); TR0 计数器 T0 的控制位: 由软件设定: TR0=1 计数器开始工作; TR0=0 计数器停止计数。 TF1、TR1 同上。 IE1,IE0 外部中断 INT1,INT0 的请求标志: 当单片机检测到 INT 引脚上有下降沿时,IE=1 申请中断.进入中断服务程序时,硬件 自动清除 IE 标志. IT1,IT0 外中断触发类型控制: IT=1 时,外中断信号的下降沿触发 IE 标志; IT=0 时,外中断信号的低电平触发 IE 标志。 朗译电子科技 ☏ 025-52158963 www.doflye.net 152 / 404 4.4.2 定时器 0 定时/计数器 0 使用 16 位定时模式,计数初值为 0,计数到 65536 溢出,中断程序中 LED 取反,LED 以 65536x2 个时钟周期为周期闪烁。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J9(任意端口) 1 演示 LED 以 65536x2 个时钟周期为周期闪烁。 朗译电子科技 ☏ 025-52158963 www.doflye.net 153 / 404 知识要点: 4.4.3 定时器 1 原理和方法同 T0 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 154 / 404 P1.3 J9(任意端口) 1 LED 以 65536x2 个时钟周期为周期闪烁。 知识要点: 4.4.4 定时器 2 演示 16 位定时器自动重装,60ms 定时周期,LED 闪烁演示 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 155 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J9(任意端口) 1 演示 LED 以 60ms 时长为周期闪烁。 知识要点: 4.4.5 产生 1ms 方波 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 示波器探头 1 测波形 示波器显示 1ms 周期方波。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 156 / 404 4.4.6 产生 200ms 方波 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J9(任意端口)或示波器 1 演示或者测波形 200ms 周期闪烁或者示波器显示 200ms 周期方波。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 157 / 404 4.4.7 产生多路不同频率方波 中断部分,相当于一个分频器,在 P1 口可以测量出 8 路方便。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 示波器 8 测波形 P1 口测量不同频率方波,周期依次增大一倍。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 158 / 404 4.5 独立按键 4.5.1 硬件连接 把对应的端口赋值高电平,即“1”,按键按下,端口被拉低至低电平,即“0”, 通过检测该端口的电平即可判断按键是否按下。 去抖概念: 按键是机械器件,按下或者松开时有固定的机械抖动,抖动图如下: 上图看出按键按下和松开的瞬间出现机械抖动,这个抖动时间虽然很短,一般 10~15ms,不同按键抖动不同,但对应单片机来说,很轻松就能检测到,单片机是 uS 级别。 但这个结果并不是我们需要的,实际上只进行一次按键操作,但有可能执行了多次按键结果, 这就是抖动造成的,所以大多数产品实际使用中都使用了按键去抖功能。 按键去抖分为硬件去抖和软件去抖,硬件去抖最简单的就是按键 2 端并联电容,容量根据 实验而定。软件去抖使用方便不增加硬件成本,容易调试,所以现在大都使用软件去抖。 软件去抖原理: 朗译电子科技 ☏ 025-52158963 www.doflye.net 159 / 404 1、 检测到按键按下后进行 10~15ms 延时,用于跳过这个抖动区域 2、 延时后再检测按键状态,如果没有按下表明是抖动或者干扰造成,如果仍旧按下,可以 认为是真正的按下。并进行对应的操作。 3、 同样按键释放后也要进行去抖延时,延时后检测按键是否真正释放。 程序样例中没有使用按键释放去抖程序,用户可以参考按下去抖程序自行添加。 多数时候按键需要在释放时才起作用,像电脑鼠标一样,这个时候需要检测按键是否释放, 如果没有释放则一直等待。还有需要长按短按的按键,如手机关机按键。后面会有对应例程。 朗译电子科技 ☏ 025-52158963 www.doflye.net 160 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3 J26 8 独立按键 朗译电子科技 ☏ 025-52158963 www.doflye.net 161 / 404 4.5.2 一个独立按键控制 LED 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 162 / 404 P3.3 J26 1 独立按键 P1.2 J9(任意端口) 1 LED 显示 LED 显示取决于按键状态,按键按下,LED 点亮,否则熄灭。 知识要点: 1、if else 语句。 4.5.3 一个独立按键控制 LED 状态转换 朗译电子科技 ☏ 025-52158963 www.doflye.net 163 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 164 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键 P1.2 J9(任意端口) 1 LED 显示 按一次按键,led 点亮,再按一次熄灭,以此循环 知识要点: 1、按键去抖 硬件部分讲解过去抖波形,下面分析一下去抖程序的流程: 首先检测按键是否按下,如果没有则退出,如按下调用延时去抖,延时过后重新检测按键 状态,如果没有按下,说明是抖动或其他干扰误触发,放弃该结果,退出,反之,如果仍然 按下,表明按键确实被按下,此时可以处理按键对应的程序。流程图如下: 朗译电子科技 ☏ 025-52158963 www.doflye.net 165 / 404 2、按键等待释放 等待按键释放是可选功能,很多时候可以不用。这里我们提及一下使用方法,一般情况按键 释放的作用是防止单次按键持续作用,确保每次按键只能作用一次,而且必须是在释放后工 作。一般用 while 循环语句等待。 while(!KEY);//如果确认按下按键等待按键释放,没有释放则一直等待 3、精确延时 这个延时是重点部分,以后的程序都会用到该延时程序,延时主要是 us 延时和 ms 延时。 具体分析如下: 前提是晶振 12M。 延时程序的程序名定义位 DelayUs2x,2x 表示 2 倍,从上图注释可以看出,延时的总长度为 T=tx2+5us 假设 DelayUs2x(1)按上述公式计算,延时长度 T=1x2+5=7us,所以这个程序最小只能延时 7us ,那么小于 7us 的延时如何操作呢?常用方法是使用 空操作指令 nop,如果晶振 12M, 则指令周期 1us,一个 nop 延时 1us 。 朗译电子科技 ☏ 025-52158963 www.doflye.net 166 / 404 由于 t 最大值只能是 255,计算得 T=255x2+5=515us, 1ms=1000us,最大值达不到 1ms,所 以 500us 到 1ms 之间的延时需要调用 2 次 us 延时即可。 Ms 延时调用了 us 延时,输入参数是通过软件模拟仿真调试得出的教精确时间,此程序最大 延时 255ms。 如自行写延时程序,可以通过软件仿真,并设置断点来实际调试延时以达到尽可能 精确。仿真断点基本截图如下: 设置晶振频率,这里使用 12M 为例 朗译电子科技 ☏ 025-52158963 www.doflye.net 167 / 404 调试栏选择模拟仿真,其他参数默认,点击确定 朗译电子科技 ☏ 025-52158963 www.doflye.net 168 / 404 点击仿真按钮或者按 Ctrl+F5 双击需要设置断点处,设置如上图断点,2 断点直接的是运行时间就是 DelayMs(10)的时 长 点击全速运行,发现到按键检测语句时便停止不动了 这是因为检测按键程序没有检测到按键按下,由于使用软件仿真,不能使用按键操作,可以 通过以下方式解决 朗译电子科技 ☏ 025-52158963 www.doflye.net 169 / 404 打开 P3 端口,由于按键使用到 P3 端口,我们需要对端口操作模拟按键按下 由于按键定义在 P3.3,把 P3 口的第四位的勾去掉,表示该端口是低电平。这样就模拟了按 键按下的操作。此时记住左边栏 cpu 窗口中运行时间 然后继续点击全速运行 ,程序停止到另外一个断点。 朗译电子科技 ☏ 025-52158963 www.doflye.net 170 / 404 此时再次记录左边运行时间 二者差值 0.01039300-0.00039800=0.00999500 时长是 9.995ms,十分接近 10ms,在 c 语言 应用中精度足够了。 4.5.4 2 按键加减操作数码管显示 端口定义。包括按键与数码管。 朗译电子科技 ☏ 025-52158963 www.doflye.net 171 / 404 按键增加数值部分程序 按键减少数值部分程序,从加减程序中可以看到按键处理部分是完全相同的,不过此处 使用了检测 2 个按键,更多按键可以使用 if 语句自行添加,后面会有相关程序用到。按键 有效按下时处理程序不同,上一样例直接反转 LED 状态,这里则加减 num 数值,主循环中 还添加了调用显示程序,把对应的数值显示到数码管上,这些内容在数码管部分都已经讲解。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 172 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键+ P3.4 J26 1 独立按键- P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 知识要点: 按键检测和数码管扫描综合应用 4.5.5 多位数按键加减数码管显示(闪烁) 朗译电子科技 ☏ 025-52158963 www.doflye.net 173 / 404 多位数值加减和 1 位加减基本相同,该程序扫描 2 位数码管,用于显示 0-99 的按键加 减,数值扫描处理部分与 99 累加或者 99 累减相同。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键+ P3.4 J26 1 独立按键- P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 174 / 404 同样按下增加按键或者减少按键,可以看到数码管数值增加或者减少,但是和上一个样 例唯一不同的是此程序按键的时候数码管会闪烁,没有按键则正常。分析原因如下: 数码管是个快速器件,动态扫描显示就是利用人眼的视觉暂留效应,一般 8ms 以内的 速度扫描人眼基本不会感觉闪烁。所以数码管扫描程序中使用的延时时间是 2ms,如下图: 当我们按下按键的时候,按键使用了等待按键释放语句,程序是顺序执行的,只有执行 完按键程序后才能继续执行扫描程序,所以这个连贯的显示就被打断了,如果按键一直不松 开,程序就会等待在按键扫描的地方,不能执行动态扫描,这个时候就能看到数码管显示就 不正常了,这种闪烁不是我们需要的。后面的程序会提出解决办法。 知识要点: 动态扫描闪烁的原因。 朗译电子科技 ☏ 025-52158963 www.doflye.net 175 / 404 4.5.6 多位数按键加减数码管显示(不闪烁) 样例中可以看到改变了按键释放等待程序部分,在等待的同时增加了调用显示扫描程 序。我们知道闪烁是由于等待释放语句引起的,因此就在此处增加显示扫描,这就根本上解 决了闪烁问题。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键+ P3.4 J26 1 独立按键- P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 176 / 404 P2.3 J2(A) 按键加减数码管不闪烁 知识要点: 解决数码管闪烁的方法 4.5.7 定时器扫描数码管 1 位码锁存 这里列出上述样例不同的地方,定时器我们前面已经学习过,这里加以复习和应用,我们知 道闪烁形成的原因,实际上程序越大导致闪烁的原因会越多,上述样例中的处理方法在程序 比较大的时候会变得比较复杂,而且不容易处理,这里我们通过定时器专门操作数码管扫描, 使之不受其他程序影响。这个就是中断的优越性。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 177 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键+ P3.4 J26 1 独立按键- P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 知识要点: 通过定时器中断扫描数码管,在主程序中无论有多少延时程序都不会影响到显示效果。这种 方法经常用在实际应用中。 朗译电子科技 ☏ 025-52158963 www.doflye.net 178 / 404 4.5.8 按键长按短按效果 朗译电子科技 ☏ 025-52158963 www.doflye.net 179 / 404 长按短按效果是在实际应用中最长使用的,就比如我们的手机挂机键,短按表示挂机或 者结束操作,长按则表示关机或者开机。长按短按可以节省按键。 分析样例如下,所有的主要程序都在等待按键释放的时候进行,在没有长按功能时,等 待释放所做的工作无非是等待或者调用数码管扫描,由于使用了定时器中断数码管扫描,所 以等待释放的主要工作就是等待。我们利用等待的这个时间来做一些事情,判断长按键并执 行对应的动作。 定义一个临时变量用于计数按键的时长,这里使用 key_press_num,检测到这个数值大 于 200,也就是 2s 时,我们认为按键进入长按动作,此时进入长按键处理程序,首先清零 计数变量,以待下次使用,再次检测按键是否按下,如果按下,执行长按程序,否则退出。 朗译电子科技 ☏ 025-52158963 www.doflye.net 180 / 404 此程序中长按键的动作是快速加减数值,没有这个按键的时候,按一次按键值加减一次, 如果数值比较大,调节占用的时间会比较长,进入长按键后,可以快速对数值进行连加或者 连减动作,并实时调用显示处理。 该语句用于调节连续操作的速度,时间越小操作越快。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J26 1 独立按键+ P3.4 J26 1 独立按键- P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 短按按键,数值加 1 或者减 1,长按按键超过 2s,数值快速连加或者连减,直到按键松 开。 知识要点: 释放等待中进行连按处理 朗译电子科技 ☏ 025-52158963 www.doflye.net 181 / 404 4.5.9 抢答器 抢答器的原理是,首先按下的按键有效,其他的按键均会被屏蔽。这里提供了简单思 路,实际上防止误触发,还需要添加去抖程序。程序的思路是循环检测按键,检测到任何一 个按键按下时,标志位置 1 并退出,不再检测其他按键。其他按键即便按下也无效。 朗译电子科技 ☏ 025-52158963 www.doflye.net 182 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3 J26 8 独立按键 P1 J9 8 LED 显示 按下任意按键,先按下的按键对应的指示灯点亮,此时任何按键都不起作用,需要复位 单片机后重新有效。 知识要点: 按键的先后检测原理。 朗译电子科技 ☏ 025-52158963 www.doflye.net 183 / 404 4.5.10 独立按键依次输入数据 定义 8 个按键 定时数码管扫描端口 定义数码管段码位码表格和存储显示全局变量 朗译电子科技 ☏ 025-52158963 www.doflye.net 184 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 185 / 404 定义按键扫描子程序并返回键值 朗译电子科技 ☏ 025-52158963 www.doflye.net 186 / 404 主循环中首先检测按键并返回按键值,如果按键值小于 8,表示是正确按键,然后把 按键值对应的显示数字送到显示缓冲区,如果输入端是第 9 个数的时候表示 8 位数码管显 示满,需要清屏并把数值变量清理,等待下次重新输入。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 按下任一按键,数码管在第一位显示对应的数值,如果按了 8 次按键,数码管全部显 示,再次按下任一按键,数码管全部清除显示,之后再按按键则重复从第一个数码管开始显 示。 朗译电子科技 ☏ 025-52158963 www.doflye.net 187 / 404 按第一次按键 按第二次按键 按第八次按键 按第九次按键清屏 按第十次按键重新输入 知识要点: 按键扫描返回值并对返回值判断,如果是按键有效值则进行按键显示处理,否则退出。 朗译电子科技 ☏ 025-52158963 www.doflye.net 188 / 404 4.5.11 按键输入从右至左显示 其他程序与上例相同,这仅列出主程序部分,主程序中多定义一个中间变量数组 temp, 首先把需要显示的数值送到中间变量,然后通过组合变化赋值给显示缓冲区。第一个输入数 值应该显示在数码管最右端,即 TempData 最后一个元素 TempData[7],输入的第二个数的时 候第一个数显示在倒数第二个数码管,第二个数显示在最后一位。实现左移显示。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 189 / 404 按第一次按键 按第二次按键 按第三次按键 按第八次按键 按第九次按键清屏 知识要点: 按第十次按键重新输入 朗译电子科技 ☏ 025-52158963 www.doflye.net 190 / 404 显示部分倒序显示的处理方法,需要用到中间变量。 4.5.12 8 位端口检测 8 位独立按键 按键扫描部分不同,这里仅分析不同部分,程序中检测 8 个按键没有使用上述方法, 上述方法比较繁琐,这个使用 swtich 多分支选择语句可以变得简单,直接对整个 8 位口检 测,对应的按键按下会返回 8 位的数值,通过对这个数值的判读可以检测对应的按键,如 果没有按键按下返回 0,调用按键程序时可以判断返回值是否为 0,如果不为 0,表示有正 确有效按键按下,否则需要重新检测。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 191 / 404 P3 J26 P0 J3 P2.2 J2(B) P2.3 J2(A) 效果同上。 知识要点: 1、switch case 多分支选择语句 4.6 矩阵键盘 4.6.1 硬件连接 8 独立按键 8 数码管数据 1 段码锁存 1 位码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 192 / 404 单片机 IO 口 P1 或者 P3 P3.2 模块接口 J24 J25(仅中断扫描用到) 杜邦线数量(根) 8 1 朗译电子科技 ☏ 025-52158963 www.doflye.net 193 / 404 4.6.2 矩阵键盘行列扫描 朗译电子科技 ☏ 025-52158963 www.doflye.net 194 / 404 同数码管扫描一样,因为不能同时检测所有按键,所以必须有先后检测顺序,行列扫描 就是这种典型样例。通过流程图能更清楚了解行列扫描。 朗译电子科技 ☏ 025-52158963 www.doflye.net 195 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J24 8 矩阵键盘 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 196 / 404 连接好杜邦线,按 S1-S16 按键,数码管显示对应的键值,如果与设计字符不对应,把 矩阵键盘 8 根杜邦线扭转交叉连接,如原来 P1.0 连接到 J24 第一脚,现在用 P1.7 连接到 J24 第一脚。也可以自行更改键值。 知识要点: 学习矩阵键盘原理,并会自行更改扫描顺序和键值。 4.6.3 矩阵键盘反转扫描 扫描原理:1、行线输出全为 0 2、读入列线值 3、列线输出上次读入的值 4、读入行线值 5、组合 2 种读入值 朗译电子科技 ☏ 025-52158963 www.doflye.net 197 / 404 优点:m*n 个按键值需要一次反转(2 次输入输出)就可以检测到结果,比行列扫描简单 方便。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J24 8 矩阵键盘 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 连接好杜邦线,按 S1-S16 按键,数码管显示对应的键值,如果与设计字符不对应,把 矩阵键盘 8 根杜邦线扭转交叉连接,如原来 P1.0 连接到 J24 第一脚,现在用 P1.7 连接到 J24 第一脚。也可以自行更改键值。 知识要点: 1、反转扫描于行列扫描区别。 2、 | 符号 和 &符号的使用方法 3、学习矩阵键盘原理,并会自行更改扫描顺序和键值。 朗译电子科技 ☏ 025-52158963 www.doflye.net 198 / 404 4.6.4 矩阵键盘中断扫描 中断程序中检测到按键中断信号后把按键标志位置 1。 朗译电子科技 ☏ 025-52158963 www.doflye.net 199 / 404 主循环中按键标志位为 1 时进行按键扫描并进行相关处理。否则做其他工作。 硬件中 4 个二极管是用于中断扫描的,中断扫描可以有效节省 cpu 资源,在按键按下时 才进行扫描,平时去处理其他程序。 扫描程序是与普通程序相同的,主程序中增加了中断判读的语句,把连接二极管的 4 根线拉高,另外 4 根拉低,如果有按键按下,二极管上被拉低的信号就会传到 J25 端,用杜 邦线连接 J25 到中断引脚 P3.2,在程序中打开外部中断,按键按下时就会触发中断,中断程 序中就可以处理扫描程序或者更改标志位。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J24 8 矩阵键盘 朗译电子科技 ☏ 025-52158963 www.doflye.net 200 / 404 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 P3.2 J25 1 中断信号 连接好杜邦线,按 S1-S16 按键,数码管显示对应的键值,如果与设计字符不对应,把 矩阵键盘 8 根杜邦线扭转交叉连接,如原来 P1.0 连接到 J24 第一脚,现在用 P1.7 连接到 J24 第一脚。也可以自行更改键值。 知识要点: 1、中断信号的触发原理 2、硬件的连接原理 4.6.5 矩阵键盘密码锁 密码定义,密码是在程序中固定的,用户使用过程中不能更改,可以在程序中更改。 朗译电子科技 ☏ 025-52158963 www.doflye.net 201 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 202 / 404 其他程序部分同键盘扫描,这里列出主程序部分,下面给出流程图 朗译电子科技 ☏ 025-52158963 www.doflye.net 203 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J24 8 矩阵键盘 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 P3.2 J25 1 中断信号 朗译电子科技 ☏ 025-52158963 www.doflye.net 204 / 404 连接好杜邦线,按 S1-S16 按键,数码管显示对应的键值,输入完 8 位数字,如果与密 码相同,数码管显示“OPEN”,否则显示“Err”。需要重新输入,直到密码正确。如果按键 与设计字符不对应,把矩阵键盘 8 根杜邦线扭转交叉连接,如原来 P1.0 连接到 J24 第一脚, 现在用 P1.7 连接到 J24 第一脚。也可以自行更改键值。 知识要点: 4.6.6 矩阵键盘简易计算器 按键处理函数部分,键值可以根据自己需要更改。 朗译电子科技 ☏ 025-52158963 www.doflye.net 205 / 404 主程序部分参考光盘配套程序。主要使用整数的加减乘除运算。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J24 8 矩阵键盘 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 P3.2 J25 1 中断信号 连接好杜邦线,按 S1-S16 按键,数码管显示对应的键值,符号不显示,输入符号后, 再次输入数字则是第二个操作数,然后按等号即可显示结果。因为没有小数部分,除法值不 准确,光盘样例中有液晶显示计算器,可以显示小数,可以参考并自行修改。如果按键与设 计字符不对应,把矩阵键盘 8 根杜邦线扭转交叉连接,如原来 P1.0 连接到 J24 第一脚,现 在用 P1.7 连接到 J24 第一脚。也可以自行更改键值。 知识要点: 数学运算基本算法和按键输入操作方法。 4.7 外部中断 4.7.1 中断原理 中断是指计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止 现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间 断处,继续执行原程序。 中断是单片机实时地处理内部或外部事件的一种内部机制。当某 朗译电子科技 ☏ 025-52158963 www.doflye.net 206 / 404 种内部或外部事件发生时,单片机的中断系统将迫使 CPU 暂停正在执行的程序,转而去进 行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。如下图 中断的好处 1、 提高了 CPU 的效率 CPU 是计算机的指挥中心,它与外围设备(如按键、显示器等)通讯的方法有查 询和中断 2 种。 查询的方法是无论外围 IO 是否需要服务,CPU 每隔一段时间都要依次查询一遍, 这种方法 CPU 需要花费一些时间在做查询服务工作。 而中断则是在外围设备需要通讯服务时主动告诉 CPU,CPU 停下当前工作去处理 中断程序,从而提高了 CPU 效率。 2、 可以实现实时处理 外设任何时刻都可能发出请求中断信号,CPU 接到请求后及时处理,以满足实时 系统的需要。 3、 可以及时处理故障 计 算 机 系 统 运 行 过 程 中 难 免 会 出 现 故 障 ,有 许 多 事 情 是 无 法 预 料 的 ,如 电 源 掉 电 、 存储器出错、外围设备工作不正常等,这时可以通过中断系统向中断源 CPU 发送 中断请求,由 CPU 及时转到相应的出错处理程序,从而提高计算机的可靠性。 中断的处理过程 朗译电子科技 ☏ 025-52158963 www.doflye.net 207 / 404 1、 中断当前程序并保护断点 2、 转入中断服务入口 3、 保护现场 4、 执行中断服务程序 5、 恢复现场 6、 中断返回 中断源及入口地址 80c51 含有 3 类 5 个中断源,分别是 2 个外部中断,2 个定时器中断和 1 个串口中断。 52 系列则多出了一个定时器 2 中断 中断名称 外部中断 0 外部中断 1 定时器 0 溢出中断 定时器 1 溢出中断 串口中断 各个中断源入口地址如下 朗译电子科技 中断源 外部事件由 P3.2 提供 外部中断有 P3.3 提供 由片内定时器/计数器 0 提供 由片内定时器/计数器 1 提供 由片内串口提供 ☏ 025-52158963 www.doflye.net 208 / 404 中断名称 外部中断 0 外定时器 0 溢出 中断部中断 1 定时器 1 溢出中断 串口中断 C51 中中断则直接使用中断号 中断名称 外部中断 0 定时/计数器 0 外部中断 1 定时/计数器 1 串口中断 定时/计数器 2 入口地址 0003H 000BH 0013H 001BH 0023H 中断号 中断号 0 中断号 1 中断号 2 中断号 3 中断号 4 中断号 5 中断控制及设置 中断系统结构如下图所示,从图可见,中断控制实际是对 4 个特殊功能寄存器 T CON、SCON、IE 和 IP 进行管理和控制。 朗译电子科技 ☏ 025-52158963 www.doflye.net 209 / 404 以下分别介绍 4 个寄存器 1、IE(Interrupt enable) 中断允许控制寄存器 EA ES ET1 EX1 ET0 EX0  EA (IE.7):EA=0 时,所有中断禁止(即不产生中断) EA=1 时,各中断的产生由个别的允许位决定  -(IE.6):保留  ET2(IE.5):定时 2 溢出中断充许(8052 用)  ES (IE.4):串行口中断充许(ES=1 充许,ES=0 禁止)  ET1(IE.3):定时 1 中断充许  EX1(IE.2):外中断 INT1 中断充许  ET0(IE.1):定时器 0 中断充许  EX0(IE.0):外部中断 INT0 的中断允许 2、IP(Interrupt Priority) 中断优先级控制寄存器 朗译电子科技 ☏ 025-52158963 www.doflye.net 210 / 404 PS PT1 PX1 PT0 PX0 IP 有效控制位的含义:  PX0:外部中断 0 的中断优先级控制位,PX0=1,外部中断 0 被定义为高优先级 中断;PX0=0,外部中断 0 定义为低优先级中断。  PT0:定时/计数器 T0 的中断优先级控制位,PT0=1,定时/计数器 T0 被定义为 高优先级中断;PT0=0,定时/计数器 T0 定义为低优先级中断。  PX1:外部中断 1 的中断优先级控制位,PX1=1,外部中断 1 被定义为高优先级 中断;PX1=0,外部中断 1 定义为低优先级中断。  PT1:定时/计数器 T1 的中断优先级控制位,PT1=1,定时/计数器 T1 被定义为 高优先级中断;PT1=0,定时/计数器 T1 定义为低优先级中断。  PS:串行口中断优先级控制位,PS=1,串行口中断被定义为高优先级中断;PS =0,串行口中断定义为低优先级中断。 3、TCON(Timer Control Register)定时器/计数器控制寄存器 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0  TF1:定时器 1 溢出标志位。当字时器 1 计满溢出时,由硬件使 TF1 置“1”,并且 申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。  TR1:定时器 1 运行控制位。由软件清“0”关闭定时器 1。当 GATE=1,且 INT1 为高电平时,TR1 置“1”启动定时器 1;当 GATE=0,TR1 置“1”启动定时器 1。  TF0:定时器 0 溢出标志。其功能及操作情况同 TF1。  TR0:定时器 0 运行控制位。其功能及操作情况同 TR1。  IE1:外部中断 1 请求标志。  IT1:外部中断 1 触发方式选择位。  IE0:外部中断 0 请求标志。 朗译电子科技 ☏ 025-52158963 www.doflye.net 211 / 404  IT0:外部中断 0 触发方式选择位。 4、SCON (Serial Port Control Register) 串口控制寄存器 SM0 SM1 SM2 REN TB8 RB8 TI RI  SM0、SM1:串行口工作方式控制位。 SM0,SM1 工作方式 00 方式 0 01 方式 1 10 方式 2 11 方式 3  SM2:多机通信控制位。 多机通信是工作于方式 2 和方式 3,SM2 位主要用于方式 2 和方式 3。接收状态, 当串行口工作于方式 2 或 3,以及 SM2=1 时,只有当接收到第 9 位数据(RB8) 为 1 时,才把接收到的前 8 位数据送入 SBUF,且置位 RI 发出中断申请,否则 会将接受到的数据放弃。当 SM2=0 时,就不管第位数据是 0 还是 1,都难得数 据送入 SBUF,并发出中断申请。 工作于方式 0 时,SM2 必须为 0。  REN:允许接收位。 REN 用于控制数据接收的允许和禁止,REN=1 时,允许接收,REN=0 时,禁止 接收。  TB8:发送接收数据位 8。 在方式 2 和方式 3 中,TB8 是要发送的——即第 9 位数据位。在多机通信中同样 亦要传输这一位,并且它代表传输的地址还是数据,TB8=0 为数据,TB8=1 时 为地址。 朗译电子科技 ☏ 025-52158963 www.doflye.net 212 / 404  RB8:接收数据位 8。 在方式 2 和方式 3 中,RB8 存放接收到的第 9 位数据,用以识别接收到的数据特 征。  TI:发送中断标志位。 可寻址标志位。方式 0 时,发送完第 8 位数据后,由硬件置位,其它方式下,在 发送或停止位之前由硬件置位,因此,TI=1 表示帧发送结束,TI 可由软件清“0”。  RI:接收中断标志位。 可寻址标志位。接收完第 8 位数据后,该位由硬件置位,在其他工作方式下,该 位由硬件置位,RI=1 表示帧接收完成。 在串口中断处理时,TI,RI 都需要软件清"0",硬件置位后不可能自动清 0,此 外,在进行缓冲区操作时,需要 ES=0,以防止中断出现。 4.7.2 外部中断 0 电平触发 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 213 / 404 单片机 IO 口 P1 P3.2 模块接口 J9 J26 杜邦线数量 8 1 功能 LED 显示 按键中断信号 按下按键,P1 口 LED 灯取反,如果一直按下,LED 全部点亮。表示中断一直进行,不间断 取反操作,所以看不到变化。 知识要点: 4.7.3 外部中断 1 电平触发 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 214 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 显示 P3.3 J26 1 按键中断信号 按下按键,P1 口 LED 灯取反,如果一直按下,LED 全部点亮。表示中断一直进行,不间断 取反操作,所以看不到变化。 知识要点: 4.7.4 外部中断 0 边沿触发 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 215 / 404 P1 J9 8 LED 显示 P3.2 J26 1 按键中断信号 按下按键,P1 口 LED 灯取反,如果一直按下,无变化,对比电平触发。 知识要点: 4.7.5 外部中断 1 边沿触发 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 216 / 404 P3.3 J26 1 按键中断信号 按下按键,P1 口 LED 灯取反,如果一直按下,无变化,对比电平触发。 知识要点: 4.7.6 T0 外部计数输入 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 217 / 404 P1 J9 8 P3.4 J26 1 连续按 5 次按键,计数器 0 溢出,LED 取反。 知识要点: 4.7.7 T1 外部计数输入 LED 显示 按键信号 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 218 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 显示 P3.5 J26 1 按键信号 连续按 5 次按键,计数器 0 溢出,LED 取反。 知识要点: 4.8 看门狗 4.8.1 硬件原理 看门狗用于恢复程序错乱的方法,看门狗包含一个 13 位计数器和定时计数器复位寄存 器(WDTRST),缺省情况下禁止看门狗复位。用户必须按顺序向 WDTRST 寄存器写入 01EH 和 0E1H(寄存器地址 0A6H),当使能了 WDT,它将在每个机器周期加 1,WDT 定时周期取决于外部晶振频率,WDT 启动后不能停止除非重新写入看门狗的启动值,WDT 溢出时,会将 RST 引脚拉高。 用户必须按顺序向 WDTRST 寄存器写入 01EH 和 0E1H(寄存器地址 0A6H)使能 WDT, 为了防止 WDT 溢出,必须经常向 WDTRST 寄存器写入 01EH 和 0E1H。13 位计数器达到 8191(1FFFH)个机器脉冲后溢出,此时将复位器件。当使能了 WDT,它将在每个机器周 期加 1,这就意味着用户必须在少于 8191 个周期时复位 WDT。复位 WDT 的方法是按顺序 向 WDTRST 寄存器写入 01EH 和 0E1H,WDTRST 是只写寄存器,,WDT 计数器不能读 写。WDT 溢出时,会在 RST 引脚输出一个复位信号,复位脉冲持续 96 个机器周期,为了 更好的使用 WDT。 掉电模式下,振荡器停振,也就是说 WDT 停止了,也就是在掉电模式下,不用处理 WDT,这里有两种方式退出掉电模式,一种是硬件复位,令外一种是通过已经在掉电前激 活的中断。硬件复位退出掉线模式于正常的器件复位一样。中断退出就不同了,中断低脉冲 保持足够长的时间保证振荡稳定,当中断拉高时进入中断服务程序。为了防止 WDT 复位器 件,当中断保持低电平时看门狗停止,知道中断拉高,建议在使用中断退出掉电模式时在中 断服务程序中复位 WDT。 朗译电子科技 ☏ 025-52158963 www.doflye.net 219 / 404 为保证在掉电模式退出前的几种情况下 WDT 不会溢出,最好的方法是在进入掉电模式 前复位 WDT。 在进入空闲模式前,WDIDLE 位决定在空闲模式下 WDT 是否继续计数,默认情况下 WDT 在空闲模式下继续计数,为了防止 WDT 复位器件,必须周期性退出空闲模式并且复 位 WDT 然后进入空闲模式。当使能 WDIDLE 位是,WDT 在空闲模式是停止计数,并在退 出空闲模式时继续计数。 4.8.2 看门狗溢出测试 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 220 / 404 单片机 IO 口 P1 P3.1 模块接口 J9 J26 杜邦线数量 8 1 功能 LED 显示 按键信号 没有按键按下,LED 全部点亮,按键后,程序被打断,喂狗程序得不到调用,LED 闪烁。表 示程序不停复位。此程序仅对 AT89s 系列单片机有效。STC 单片机有单独的看门狗寄存器, 详情参考官方文档。 知识要点: 4.8.3 按键喂狗 朗译电子科技 ☏ 025-52158963 www.doflye.net 221 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1 J9 8 LED 显示 P3.0 J26 1 按键信号 P3.1 J26 1 按键信号 按下 Key1,LED2 闪烁,按下 Key2,LED1 闪烁。此程序仅对 AT89s 系列单片机有效。STC 单片机有单独的看门狗寄存器,详情参考官方文档。 朗译电子科技 ☏ 025-52158963 www.doflye.net 222 / 404 知识要点: 4.9 喇叭 4.9.1 硬件原理与连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 223 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 J51 插针用于选择是否使用调音功能,跳上跳帽代表喇叭正常功能, 不能调音,如果需要使用调音(音量大小)功能,需要拔掉 J51 上的跳 帽,用 PWM 或者 DAC 信号接入 J51 的 PWM/DAC Signal IN 端口(使用 一根杜邦线)。具体程序参考配套调音量样例,这里不做赘述。 朗译电子科技 ☏ 025-52158963 www.doflye.net 224 / 404 蜂鸣器和喇叭主要区别:蜂鸣器是有源器件、喇叭是无源器件,这里有源的源指振荡源。 6 \& c9 u' }; c. r) [2 m# S 特点: * L( E6 u0 t" [) o# P1 T4 M 1、蜂鸣器直接接固定直流电压,通电即发出固定频率的声音。 电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 3 C& D, |# J* j' G2 u& L; L% u 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在 电磁线圈和磁铁的相互作用下,周期性地振动发声。 压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、 外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路 构成。当接通电源后(1.5~15V 直流工作电压),多谐振荡器起振,输出 1.5~2.5kHZ 的音频信 号,阻抗匹配器推动压电蜂鸣片发声。 ) i9 \% a- `: [, Z 喇叭就是线圈、磁铁、振膜及外壳。少了振荡源 2、蜂鸣器只能用固定电压驱动,发生频率出厂固定的。 / C) l; T, \5 D2 F 喇叭通过驱动器可以发出各种声音。 我们的音响、MP3、耳机、手机上都是用的喇叭,声音频率是可以改变的 & u5 P0 }# W V* Q- h 一些报警器只能发出 “滴 滴”声响的一般都是蜂鸣器 # [+ H/ J! 应用特点:蜂鸣器驱动比较简单,假设 5V 蜂鸣器,2 端电压加 5V 就能发声音。 4.9.2 喇叭发声原理 朗译电子科技 ☏ 025-52158963 www.doflye.net 225 / 404 产生 500Hz 的方波驱动喇叭发声。此功能等效于 500Hz 的蜂鸣器。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 产生 500Hz 的方波驱动喇叭发声。 知识要点: 4.9.3 警车声音 主程序部分初始化定时器 0,做定时器功能用。主循环中累加频率值,frq 是 unsigned char 类型,超出范围后溢出。 朗译电子科技 ☏ 025-52158963 www.doflye.net 226 / 404 定时器中断服务子程序,装入初值,由于 frq 不断变化,所输出频率也不断变化,进而 输出类似警车的声响。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 227 / 404 4.9.4 救护车声音 救护车声音是 2 种频率不断交替发声形成,上述主程序部分通过循环延时输出一种频 率,然后循环延时输出另外一种频率,反复循环,达到救护车声音。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 228 / 404 4.9.5 喇叭嘀嗒声音 如救护车声音类似,输出 2 种频率声音,本样例没有使用定时器,直接用循环延时产 生需要的频率。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 229 / 404 4.9.6 报警发声 通过延时发出短促的嘟嘟声响,类似警报声音。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 230 / 404 4.9.7 消防车 与警车声音类似,警车声音频率增加到最大值后直接回到最小值然后继续增加,类似锯 齿波型,而消防车则类似三角波,在频率增加的最大值后以相反的方式减小到最小值,然后 反复循环。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 231 / 404 4.9.8 音乐播放 上图定义频率表格,第一个表格定义了音乐的节拍,就是每个频率的声音存在的时长。 第二个和第三个表格定义了音符的频率所需要的定时器值,分高 8 位和低 8 位。 节拍延时函数,该频率的音调结束时需要关掉定时器。 朗译电子科技 ☏ 025-52158963 www.doflye.net 232 / 404 定时器中断函数,用于读取音符频率值,产生对应的音符。 歌曲处理函数:调去音符的频率值和节拍值,打开定时器。 主函数:初始化定时器,歌曲没播放完时,不断取出音符频率值和节拍时长,并调用歌 曲处理函数。音乐结束后重新播放。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2 J42 1 喇叭信号 朗译电子科技 ☏ 025-52158963 www.doflye.net 233 / 404 知识要点: 4.10 步进电机 4.10.1 硬件原理 朗译电子科技 ☏ 025-52158963 www.doflye.net 234 / 404 4 相电机 2/4 相电机 4 相 5 线步进电机,以下步进电机程序均以 1/64 减速比的电机设计。如果实物变 更为其他变速比的电机,运行结果会不同,请参考现有程序更改部分参数。 朗译电子科技 ☏ 025-52158963 www.doflye.net 235 / 404 如果只有 1 个步进电机,拔掉其中一组线和电机 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 236 / 404 单片机 IO 口 P1.0~P1.3 P1.4~P1.7 模块接口 J42(a、b、c、d) J45(a、b、c、d) 杜邦线数量 4 4 功能 J44 步进电机 J47 步进电机 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的 情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影 响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角 度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控 制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度 和加速度,从而达到调速的目的。 步进电机驱动方式: 1、1 相励磁法:每一瞬间只有一个线圈导通,其他线圈休息。其特点是励磁方法简单,耗 电低,精确度良好。但是力矩小、震动大,每次励磁信号走的角度是标称角度。 2、2 相励磁法:每一瞬间有两个线圈同时导通,特点是力矩大、震动较小,每次励磁转动 角度是标称角度。 3、1-2 相励磁法:1 相和 2 相轮流交替导通,精度较高,且运转平滑。每送一个励磁信号转 动二分之一标称角度。有称为半步驱动。4 相电机中,1、2 种方式称 4 相 4 拍,3 种称 4 相 8 拍。 1 相励磁、2 相励磁和 1-2 相励磁方式如下表所示。 1 相励磁 步A B C D 11000 20100 2 相励磁 步A B C D 11100 20110 1-2 相励磁 步A B C D 11000 21100 朗译电子科技 ☏ 025-52158963 www.doflye.net 237 / 404 30010 40001 51000 60100 70010 80001 30011 41001 51100 60110 70011 81001 30100 40110 50010 60011 70001 81001 4.10.2 步进电机转动原理 简单示意图 定义步进电机连接端口。 朗译电子科技 ☏ 025-52158963 www.doflye.net 238 / 404 循环使用 1 相励磁方法驱动。可以参考上述驱动表格。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 239 / 404 4.10.3 步进电机正反转 定义端口,使用 2 相励磁。 主函数处理正转 1 周,反转 1 周,使用 2 相励磁方法。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 240 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 正转 1 周,反转 1 周。 知识要点: 4.10.4 步进电机按键控制 定义端口,使用 1-2 相驱动,抖动小,定义了全局变量。 朗译电子科技 ☏ 025-52158963 www.doflye.net 241 / 404 主函数部分初始化外部中断,外部中断作为按键输入使用。正向转动的条件取决于是否 旋转一周和按键标志位。 按键处理,按键按下标志位取反。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 242 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 P3.2 J26 1 按键中断信号 按一次按键,电机反转,再按一次,电机正转。 知识要点: 4.10.5 步进电机转速数码管显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 243 / 404 数码管显示速度等级。 外部中断做为按键输入,调节速度等级。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 P3.2 J26 1 按键中断信号 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 中断作为按键输入,按一次按键,速度值加 1,到 19 后自动回到 3,然后反复循环。 朗译电子科技 ☏ 025-52158963 www.doflye.net 244 / 404 初始值 知识要点: 4.10.6 步进电机调速原理 最大值 定时器作为数码管扫描和步进电机转动的时间基础。 朗译电子科技 ☏ 025-52158963 www.doflye.net 245 / 404 主函数中循环扫描按键,并执行按键加减速度等级的语句。然后处理显示数据。主函数 中没有驱动步进电机的函数,由于步进电机和数码管类似,是连续工作器件,所以驱动部分 放在定时器中进行。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 2 个按键,一个用于加速,一个用于减速,数码管显示对应数值。 朗译电子科技 ☏ 025-52158963 www.doflye.net 246 / 404 知识要点: 4.10.7 步进电机综合控制 主程序中用 4 个按键,加速、减速、启动和停止。定时器做数码管动态扫描和步进电 机驱动。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0~P1.3 J42(a、b、c、d) 4 J44 步进电机 朗译电子科技 ☏ 025-52158963 www.doflye.net 247 / 404 P3 P0 P2.2 P2.3 知识要点: J26 J3 J2(B) J2(A) 4.11 直流电机 4.11.1 硬件原理 8 独立按键 8 数码管数据 1 段码锁存 1 位码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 248 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 249 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 250 / 404 注意:直流电机运行功耗大,USB 供电会导致一定程度的电压下降,启动时启动电 流非常大,会导致电压大幅度跌落导致单片机复位。建议用外部电源供电,1A 以上 5V 电源,下载电机程序之前拔掉电机,等完全下载以后还原接线,这样可以避免电 机启动导致下载失败的情况。 脉宽调制(PWM) PWM 是英文“Pulse Width Modulation”的缩写,简称脉宽调制。它是利用微处理 器 的 数 字 输 出 来 对 模 拟 电 路 进 行 控 制 的 一 种 非 常 有 效 的 技 术 ,广 泛 应 用 于 测 量 ,通 信 , 功 率 控 制 与 变 换 等 许 多 领 域 。一 种 模 拟 控 制 方 式 ,根 据 相 应 载 荷 的 变 化 来 调 制 晶 体 管 栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这 种方式能使电源的输出电压在工作条件变化时保持恒定。 这里用软件模拟最简单的 PWM,频率不变,脉冲高电平宽度可以调节,实际是调节 作用时间,从而达到调节电压、电流或者功率等参数。 朗译电子科技 ☏ 025-52158963 www.doflye.net 251 / 404 4.11.2 直流电机按键控制 朗译电子科技 ☏ 025-52158963 www.doflye.net 252 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2、P1.1 J45(DC1、DC2) 2 DC1、DC2 直流电机 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 253 / 404 P2.3 J2(A) 1 位码锁存 初始化界面 按第一个按键 再按一次 按第二个按键 在按一次 知识要点: 控制部分简单,只需要高低电平即可。 朗译电子科技 ☏ 025-52158963 www.doflye.net 254 / 404 4.11.3 直流电机调速控制 主程序中针对一个直流电机操作,2 个按键分别是加速和减速,数码管显示对应速度等 级数值。 定时器中断部分做 PWM 调速。 朗译电子科技 ☏ 025-52158963 www.doflye.net 255 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.1 J45(DC1 或者 DC2) 1 DC1、DC2 直流电机 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 初始化界面 知识要点: 速度可以调节,最大值 10 朗译电子科技 ☏ 025-52158963 www.doflye.net 256 / 404 4.12 继电器 4.12.1 硬件原理 朗译电子科技 ☏ 025-52158963 www.doflye.net 257 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 258 / 404 如果用分立元器件就可以用上图电路代替 uln2003,继电器旁边并联的二极管是续流二 极管,由于继电器线圈是个电感,关断时会产生瞬间反向高压,防止损坏三极管和线包,所 以需要并联续流二极管。但是 uln2003 内部含有保护二极管,所以使用 uln2003 时可以不用 单独外接续流二极管。 继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输 出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自 动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加 上 一 定 的 电 压 ,线 圈 中 就 会 流 过 一 定 的 电 流 ,从 而 产 生 电 磁 效 应 ,衔 铁 就 会 在 电 磁 力 吸 引 的 作 用 下 克 服 返 回 弹 簧 的 拉 力 吸 向 铁 芯 ,从 而 带 动 衔 铁 的 动 触 点 与 静 触 点( 常 开 触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返 朗译电子科技 ☏ 025-52158963 www.doflye.net 259 / 404 回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而 达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来 区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态 的静触点称为“常闭触点”。 开发板只有 5V 电源,如果需要控制 220V 的电压设备,最简单的方式就是通过继电器, 由于继电器通过电隔离,保证操作安全。 小功率继电器结构原理图 5 是常开触点,4 是常闭触点,3 是动触点,1、2 是线圈 朗译电子科技 ☏ 025-52158963 www.doflye.net 260 / 404 4.12.2 继电器控制原理 朗译电子科技 ☏ 025-52158963 www.doflye.net 261 / 404 从上述程序中看出,继电器控制与直流电机开关控制是相同的。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.2、P1.1 J42(RL1、RL2) 2 RL1、RL2 继电器 P3 J26 8 独立按键 P0 J3 8 数码管数据 P2.2 J2(B) 1 段码锁存 P2.3 J2(A) 1 位码锁存 初始化状态 朗译电子科技 ☏ 025-52158963 www.doflye.net 262 / 404 按键 1 切换继电器 1 的状态 继电器 2 关闭 按键 2 切换继电器 2 状态 按键 1 按一次继电器 1 关闭,再按一次开启。 按键 2 按一次继电器 2 关闭,再按一次开启。 知识要点: 按键开关要领,显示处理要领。 朗译电子科技 ☏ 025-52158963 www.doflye.net 263 / 404 4.12.3 双继电器模拟洗衣机控制原理 外部连接原理图,需要外接 3 接口正反转交流电机测试。可以用低压电机测试,需保证试 验安全。 朗译电子科技 ☏ 025-52158963 www.doflye.net 264 / 404 主函数中初始化定时器,洗衣机停止转动。 朗译电子科技 ☏ 025-52158963 www.doflye.net 265 / 404 中断程序功能:1、数码管动态扫描 2、继电器控制 电机进行如下控制:1、正转 3S 2、停止 2S 3、反转 3S 4、停止 2S 5、跳至步骤 1 实验现象: 初始化显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 266 / 404 按加按键,数字累加,同时倒计时启动,没有设置单独启动按键 知识要点: 最大可定时 99 分钟 倒计时结束后电机停止 朗译电子科技 ☏ 025-52158963 www.doflye.net 267 / 404 4.13 LCM1602 液晶 4.13.1 硬件原理与连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 268 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 269 / 404 液晶插接方向,主体子在主板外面 由于液晶使用插件连接,所以本开发板液晶部分端口连接是固定的,如果需要使用到其他端 口驱动液晶,需要用杜邦线单独连接。 引脚 符号 功能说明 1 VSS 一般接地 2 VDD 接电源(+5V) 液 晶 显 示 器 对 比 度 调 整 端 ,接 正 电 源 时 对 比 度 最 弱 ,接 地 电 源 时 3 V0 对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度)。 4 RS RS 为寄存器选择,高电平1时选择数据寄存器、低电平0时选择 指令寄存器。 5 R/W R/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行 写操作。 6 E E(或 EN)端为使能(enable)端,下降沿使能。 7 DB0 底4位三态、 双向数据总线 0位(最低位) 8 DB1 底4位三态、 双向数据总线 1位 9 DB2 底4位三态、 双向数据总线 2位 10 DB3 底4位三态、 双向数据总线 3位 11 DB4 高4位三态、 双向数据总线 4位 12 DB5 高4位三态、 双向数据总线 5位 13 DB6 高4位三态、 双向数据总线 6位 14 DB7 高4位三态、 双向数据总线 7位(最高位)(也是 busy flag) 15 BLA 背光电源正极 16 BLK 背光 电源负极 朗译电子科技 ☏ 025-52158963 www.doflye.net 270 / 404 RS R/W 操作说明 0 0 写入指令寄存器(清除屏等) 0 1 读 busy flag(DB7),以及读取位址计数器(DB0~DB6)值 1 0 写入数据寄存器(显示各字型等) 1 1 从数据寄存器读取数据 1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点阵字符图形, 这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都 有一个固定的代码,比如大写的英文字母“A”的代码是 01000001B(41H),显示时模块把地 址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”。 因为 1602 识别的是 ASCII 码,试验可以用 ASCII 码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。 以下是 1602 的 16 进制 ASCII 码表: 朗译电子科技 ☏ 025-52158963 www.doflye.net 271 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 272 / 404 读的时候,先读上面那列,再读左边那行,如:感叹号!的 ASCII 为 0x21,字母 B 的 ASCII 为 0x42(前面加 0x 表示十六进制)。 显示地址: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 朗译电子科技 ☏ 025-52158963 www.doflye.net 273 / 404 4.13.2 1602 液晶静态显示 主函数中首先初始化 1602 液晶,然后再次清屏,进入主循环,主循环中第一行中通过 写字符方式写入“ok”,然后在第二行写字符串“www.doflye.net” 实验现象: 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 274 / 404 4.13.3 1602 液晶动态显示 初始化液晶,主循环中第一行固定显示“Welcome to”,第二行逐字显示“www.doflye.net” 实验现象: 朗译电子科技 第一行固定显示 ☏ 025-52158963 www.doflye.net 275 / 404 第二行显示第一个字符 显示第二个字符 类推显示所有字符,然后从第一个字符循环 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 276 / 404 4.13.4 1602 液晶滚动显示 使用自带指令左移或者右移。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 277 / 404 知识要点: 4.13.5 1602 液晶移动显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 278 / 404 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 279 / 404 知识要点: 4.13.6 1602 液晶按键输入显示 初始化液晶,打开光标,第一行显示提示语句“Press the key !” 主循环中检测矩阵键盘,如果检测到按键,从屏的第一行第一个字符开始显示,如果第 一行写满,自动跳转到第二行,如果 2 行都写满,清屏后从第一行第一个字符开始显示。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 280 / 404 P1 J24 8 矩阵键盘 显示即将满屏 知识要点: 从头开始显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 281 / 404 4.14 LCM12864 液晶 4.14.1 硬件连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 282 / 404 12864 液晶插接方向 以下列表包含 ST7920 引脚和 KS0108 两种接口定义,具体使用需要参考对应的液晶文档。 样例程序中使用 ST7920 字库液晶。 引脚 符号 功能说明 1 VSS 一般接地 2 VDD 接电源(+5V) 3 V0 液晶显示器对比度调整端 4 RS RS 为寄存器选择,高电平1时选择数据寄存器、低电平0时选 (CS) 择指令寄存器;串行片选信号。 5 R/W R/W 为读写信号线,高电平(1)时进行读操作,低电平(0)时进行 朗译电子科技 ☏ 025-52158963 www.doflye.net 283 / 404 (SID) 写操作;串行数据口。 E 6 (CLK E(或 EN)端为使能(enable)端,下降沿使能;串行同步时钟。 ) 7 DB0 底4位三态、 双向数据总线 0位(最低位) 8 DB1 底4位三态、 双向数据总线 1位 9 DB2 底4位三态、 双向数据总线 2位 10 DB3 底4位三态、 双向数据总线 3位 11 DB4 高4位三态、 双向数据总线 4位 12 DB5 高4位三态、 双向数据总线 5位 13 DB6 高4位三态、 双向数据总线 6位 14 DB7 高4位三态、 双向数据总线 7位(最高位)(也是 busy flag) 15 CS1 (PSB) 12864左半屏选择;ST7920中串并口模式选择。H-并行,L-串行 16 CS2 12864右半屏选择 17 RESET 复位 18 VEE 负压输出端(用于调节对比度) 19 BLA 背光电源正极 20 BLK 背光 电源负极 朗译电子科技 ☏ 025-52158963 www.doflye.net 284 / 404 4.14.2 字库 ST7920 12864 液晶基础显示 主函数开始写入自定义字符,循环中第一部分初始化液晶到字符模式,写入对应的 4 行字符,并写入自定义笑脸符号。 延时一段时间后显示第二屏字符。 最后一部分调用图片数据,显示图片,然后再从第一部分反复循环显示。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 285 / 404 第一屏信息 第二屏信息 朗译电子科技 ☏ 025-52158963 www.doflye.net 286 / 404 知识要点: 第三屏信息 4.14.3 按键 12864 液晶显示 程序详细见光盘资料。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3 J26 8 独立按键 初始化状态 朗译电子科技 ☏ 025-52158963 www.doflye.net 287 / 404 按下调按键 超过 4 行翻页 朗译电子科技 最下端则只能上调 ☏ 025-52158963 www.doflye.net 288 / 404 知识要点: 4.15 24c02 4.15.1 硬件原理与连接 WP 写保护端口可以通过杜邦线接 VCC 或者 GND 朗译电子科技 ☏ 025-52158963 www.doflye.net 289 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 串行 E2PROM 是基于 I2C-BUS 的存储器件,遵循二线制协议,由于其具有接口方便, 体积小,数据掉电不丢失等特点,在仪器仪表及工业自动化控制中得到大量的应用。 I2C 总线定义 I2C(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连 接微控制器及其外围设备。I2C 总线产生于在 80 年代,最初为音频和视频设备开发,如今 主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查 朗译电子科技 ☏ 025-52158963 www.doflye.net 290 / 404 询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、 网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 I2C 总线特点 I2C 总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此 I2C 总线 占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度 可高达 25 英尺,并且能够以 10Kbps 的最大传输速率支持 40 个组件。I2C 总线的另一个优 点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主 总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 I2C 总线工作原理 I2C 总线是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被 控 IC 之间、IC 与 IC 之间进行双向传送,最高传送速率 100kbps。各种被控制电路均并联在 这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯 一的地址,在信息的传输过程中,I2C 总线上并接的每一模块电路既是主控器(或被控器), 又是发送器(或接收器),这取决于它所要完成的功能。CPU 发出的控制信号分为地址码和 控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该 调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线 上,却彼此独立,互不相关。 I2C 总线在传送数据过程中共有三种类型信号,它们分别是: 开始信号、结束信号和应答信号。 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉 冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号, CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号, 由判断为受控单元出现故障。 这些信号中,起始信号是必需的,结束信号和应答信号,都可以不要。 朗译电子科技 ☏ 025-52158963 www.doflye.net 291 / 404 4.15.2 24c02 存储一个数据 定义端口和全局变量。 朗译电子科技 ☏ 025-52158963 www.doflye.net 292 / 404 开机初始化定义临时变量,从 24c02 读出存储的数据,主循环中把读出的数据赋值到 P1 端口显示,循环累计 doflye 变量值,然后存储到 24c02。 任何时候关机或者按复位重新运行单片机,P1 端口显示的值是上次关机之前的数值, 说明 24c02 的已经正常存储和读出这些数据。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 P1 J9 8 LED 显示 知识要点: 参考芯片资料了解 IIC 读写协议。 朗译电子科技 ☏ 025-52158963 www.doflye.net 293 / 404 4.15.3 24c02 存储多个数据 定义一个数组,把该数组的值写入到 24c02 存储,然后清除这个数组的内容,随即读出 存储的数据。主循环中数码管循环显示这 4 个数据,如果显示数据与定义的数据相同,表 示整个操作过程正确。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 朗译电子科技 ☏ 025-52158963 www.doflye.net 294 / 404 P0 P2.2 P2.3 知识要点: J3 J2(B) J2(A) 8 数码管数据 1 段锁存 1 位锁存 4.15.4 24c02 存储花样流水灯 与操作 4 个数据方法相同,这里通过 8 位 LED 显示。 朗译电子科技 ☏ 025-52158963 www.doflye.net 295 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 P1 J9 8 LED 显示 知识要点: 4.15.5 24c02 记忆开机次数 每次开机后读入上次存储的数据,然后把数据加 1,并存储到 24c02,把数据处理后送 到数码管显示。主循环不做任何动作。用于记忆开机次数,实际工程应用中,把该部分添加 到自己工程里即可。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 296 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 这说明已经开机 10 次,然后关机 知识要点: 再次开机则显示 11 次,表明记忆了开机次数 朗译电子科技 ☏ 025-52158963 www.doflye.net 297 / 404 4.15.6 24c02 记忆上次使用者状态 朗译电子科技 ☏ 025-52158963 www.doflye.net 298 / 404 程序中用了 2 个按键判断程序,按键操作一个数据的加减运算,按键作用后数据改变, 此时把改变后的数据存储到 24c02,任何时刻重启单片机,会看到数值是上次最后使用的数 值,这里存储了一个数据,实际应用当中可能需要存储多个数值。这些数值会记忆用户的一 些习惯或者设备经常使用的状态。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟线 P2.1 J8(SDA) 1 数据线 VCC 或者 GND J8(WP) 1 写保护线 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 P3 J26 8 独立按键 通过按键调节数字大小,任意时候关机再开机,仍显示当前数字。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 299 / 404 4.16 DS1302 4.16.1 硬件原理与连接 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 300 / 404 单片机 IO 口 P1.4 P1.5 P1.6 模块接口 J13(SCK) J13(I/O) J13(RST) 杜邦线数量 1 1 1 功能 时钟线 数据线 复位线 DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM 的实时时钟电路,它 可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V~ 5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信 号或 RAM 数据。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。DS1302 是 DS1202 的升级产品,与 DS1202 兼容,但增加了主电源/后背电源双电源引脚,同时提供 了对后背电源进行涓细电流充电的能力。 DS1302 的引脚排列,其中 VCC1 为后备电源,VCC2 为主电源。在主电源关闭的情况下, 也能保持时钟的连续运行。DS1302 由 VCC1 或 VCC2 两者中的较大者供电。当 Vcc2 大于 VCC1 +0.2V 时,VCC2 给 DS1302 供电。当 VCC2 小于 VCC1 时,DS1302 由 VCC1 供电。X1 和 X2 是振荡源,外接 32.768kHz 晶振。RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动 所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入 移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所 有的数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电平,则 会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在 VCC>2.0V 之前,RST 必须保持 低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。I/O 为串行数据输入输出端(双 向)。SCLK 为时钟输入端。 下图是 DS1302 寄存器,读取和写入时钟都使用这些寄存器。 朗译电子科技 ☏ 025-52158963 www.doflye.net 301 / 404 4.16.2 DS1302 时钟原理 DS1302 端口定义。 主函数的主循环之前初始化定时器(数码管扫描和时间基础),初始化 DS1302 并写入 预置的时间。 朗译电子科技 ☏ 025-52158963 www.doflye.net 302 / 404 主循环中循环扫描按键,并判断键值是否为 1,如果为 1 表示第 1 个按键按下,增加显 示切换用数值 displaynum,如果等于 3 的时候清零。Displaynum 的有效数值是 0、1 和 2。 判断读时间标志位 ReadTimeFlag 是否为 1,时间标志位在定时器中断程序中置 1,这个 标志用于隔一定时间读取一次 DS1302,防止读取过频繁,提供 cpu 利用率。 如果是读标志成立时,清零这个标志位,以便下次使用,然后读取时钟信息。 朗译电子科技 ☏ 025-52158963 www.doflye.net 303 / 404 根据已经判断的显示信息值进行选择性显示,上述三种情况分别判断 Displaynum 的数 值,在对应的值的时候显示对应的信息,任何时刻三种信息只能显示一种,使用 if-else if-else 语句。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.4 J13(SCK) 1 时钟线 P1.5 J13(I/O) 1 数据线 P1.6 J13(RST) 1 复位线 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 P3 J26 8 独立按键 时钟格式 显示日期 朗译电子科技 ☏ 025-52158963 www.doflye.net 304 / 404 知识要点: 4.16.3 DS1302 可调时钟 显示周、秒 主循环中调用按键扫描函数,使用其中 4 个按键,2 个作为小时数值加减,2 个作为分 钟数值的加减。使用 switch 多分支选择语句判断不同按键。 定时读取时间标志位,置 1 时,读取 DS1302 时钟信息,然后处理时分秒部分的数值, 送到显示缓冲区,以供动态扫描数码管显示。 本样例涉及按键调节时间部分,显示部分仅仅显示了时间,日期和星期部分可以自行添 加。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 305 / 404 单片机 IO 口 P1.4 P1.5 P1.6 P0 P2.2 P2.3 P3 模块接口 J13(SCK) J13(I/O) J13(RST) J3 J2(B) J2(A) J26 杜邦线数量 1 1 1 8 1 1 8 功能 时钟线 数据线 复位线 数码管数据 段锁存 位锁存 独立按键 知识要点: 通过 4 个按键调节小时加减、分钟加减 时钟调节原理,BCD 转换。 4.16.4 DS1302 串口自动更新时间 主函数中添加设置标志位判断语句,本样例必须配合上位机软件,上位机发送电脑端的 当前时间,单片机通过串口中断接收,接收完成后需要把 SetFlag 标志位置 1,主程序中查 询该标志位,如果有更新信息,则通过上述整合语句处理接收到的时间信息,送至时间缓冲 区,然后写入 DS1302 芯片。 朗译电子科技 ☏ 025-52158963 www.doflye.net 306 / 404 这里使用了串口通讯模块部分,上述语句中设置串口通讯初始化信息,必须注意的是, 上位机的参数选择必须按照上述程序的参数。使用 11.0592M 晶振,波特率选择 9600。 串口中断部分,串口中断中主要执行以下工作: 1、接收到缓冲区的内容写入时钟缓冲区保存 2、接收完成 16 个数后标志位置 1 3、把收到的内容原样发送到电脑端 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.4 J13(SCK) 1 时钟线 朗译电子科技 ☏ 025-52158963 www.doflye.net 307 / 404 P1.5 J13(I/O) 1 数据线 P1.6 J13(RST) 1 复位线 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 308 / 404 用光盘配套的串口调试软件测试,打开端口,开发板晶振使用 11.0592M,按照上述图 片中设置串口参数。点击更新时间,接收区出现如上图信息,接收区的数字和发送区的数字 是相同的,表明信息传输正确,如果一次不能正确更新开发板上时间,按开发板复位按键重 复此更新动作即可。 知识要点: 4.16.5 1602 液晶显示 DS1302 时钟 程序部分详见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.4 J13(SCK) 1 时钟线 P1.5 J13(I/O) 1 数据线 朗译电子科技 ☏ 025-52158963 www.doflye.net 309 / 404 P1.6 J13(RST) 1 复位线 插入 1602 液晶 与上述自动更新样例相同,本样例用 1602 液晶显示信息。 未更新之前时钟信息 知识要点: 更新后时钟信息,用于电脑端信息相同 4.17 双色点阵 4.17.1 硬件连接与电路原理 使用点阵前必须把 J49 插针用短路块(跳帽)跳上,此跳帽用 于点阵的整体供电,如果平时不使用点阵,可以拔掉此跳帽以降低 功耗。 朗译电子科技 ☏ 025-52158963 www.doflye.net 310 / 404 其中一个 hc595(U5)控制 2 种颜色的公共端 QCON0-QCON7,另外 2 个 HC595 分别控制 2 种颜色。电路图就表示点阵实际引脚的排列,点阵背面标有 1 脚。 白色箭头方式表示点阵行列方向,垂直于箭头的方向是行,平行的是列。 朗译电子科技 ☏ 025-52158963 www.doflye.net 311 / 404 黄色箭头位置是 1 脚标注位置,点阵的 1 脚与此脚对应插入 点阵插入有方向,都是 1 脚对齐插入,插反不能正常使用 朗译电子科技 ☏ 025-52158963 www.doflye.net 312 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 P1.2 J5(SER) 1 数据 P2.2 J4(RCLK) 1 锁存 P2.1 J4(SRCLK) 1 时钟 P2.0 J4(SER) 1 数据 朗译电子科技 ☏ 025-52158963 www.doflye.net 313 / 404 引脚图 功能图 HC595 是串行转并行的芯片,可以多级级联,输入需要 3 个端口: 1、DS(SER)串行数据输入端 2、SH(SRCLK)串行时钟输入端 3、ST(RCLK)(LATCH)锁存端 写入数据原理,SRCLK 输入时钟信号,为输入数据提供时间基准,跟随时钟信号输入对 应的数据信号,输入全部完毕后,控制锁存端,是串行输入的数据锁存到输入端并保持不变。 朗译电子科技 ☏ 025-52158963 www.doflye.net 314 / 404 4.17.2 双色点阵一种颜色显示 定义输入端口硬件连接,由于都是使用 595 芯片,这里为了区分,公共端控制用 HC595 使用后缀 B 用于区分。 朗译电子科技 ☏ 025-52158963 www.doflye.net 315 / 404 发送一个字节,这部分仅仅发送数据,没有锁存输出部分。锁存部分在所有数据传输完 毕后执行。 发送 2 个字节,由于本开发板中使用 2 个 HC595 控制 2 种颜色,2 个 HC595 使用级联 方式,所以同时控制 2 种颜色就必须同时写入 2 个字节。 数据锁存输出,这个锁存仅仅针对 2 种颜色控制的 HC595 有效。 朗译电子科技 ☏ 025-52158963 www.doflye.net 316 / 404 公共端控制用 HC595 数据发送与锁存,由于只使用 1 个 HC595,没有级联,所以可以 在一个函数中直接输入数据并锁存。 主函数中调用显示表格中的数据并写入 HC595。可以理解为类似数码管写法,先写入位 码,然后写入段码,最后防止重影需要消隐信号。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 朗译电子科技 ☏ 025-52158963 www.doflye.net 317 / 404 P1.2 J5(SER) 1 P2.2 J4(RCLK) 1 P2.1 J4(SRCLK) 1 P2.0 J4(SER) 1 知识要点: 数据 锁存 时钟 数据 4.17.3 双色点阵二种颜色显示 红色显示心形一段时间后,绿色显示心形一段时间,然后反复循环。 朗译电子科技 ☏ 025-52158963 www.doflye.net 318 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 P1.2 J5(SER) 1 数据 P2.2 J4(RCLK) 1 锁存 P2.1 J4(SRCLK) 1 时钟 P2.0 J4(SER) 1 数据 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 319 / 404 4.17.4 双色点阵显示特定图形 单色显示大箭头图形。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 P1.2 J5(SER) 1 数据 P2.2 J4(RCLK) 1 锁存 P2.1 J4(SRCLK) 1 时钟 P2.0 J4(SER) 1 数据 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 320 / 404 4.17.5 双色点阵显示交替图形 主循环中循环调用漏斗在各个状态时的数据,形成漏斗动作的动画效果,2 种颜色轮流 显示该效果。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 P1.2 J5(SER) 1 数据 朗译电子科技 ☏ 025-52158963 www.doflye.net 321 / 404 P2.2 J4(RCLK) 1 P2.1 J4(SRCLK) 1 P2.0 J4(SER) 1 知识要点: 4.17.6 双色点阵显示交替动态图形 锁存 时钟 数据 字符数据表格,所要显示的字符按照顺序查表。 朗译电子科技 ☏ 025-52158963 www.doflye.net 322 / 404 红色正显示 0-9 循环移动,绿色倒显示 0-9 循环移动。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J5(RCLK) 1 锁存 P1.1 J5(SRCLK) 1 时钟 P1.2 J5(SER) 1 数据 P2.2 J4(RCLK) 1 锁存 P2.1 J4(SRCLK) 1 时钟 P2.0 J4(SER) 1 数据 朗译电子科技 ☏ 025-52158963 www.doflye.net 323 / 404 知识要点: 4.18 AD/DA(模数/数模转换)实验 4.18.1 硬件原理与连接 J31 与 J32 用于切换 AD 输入端口,因为只有 2 个电位器,但有 4 个输入端口,所以同 时只能使用 2 个,这 2 个插针用于切换输入端口。R26、R27 是 IIC 总线上拉电阻,该板中与 24C02 共用总线。 J33 是 DA 输入模拟 LED 灯选择开关,用跳帽跳上后 LED 起作用。 朗译电子科技 ☏ 025-52158963 www.doflye.net 324 / 404 朗译电子科技 ☏ 025-52158963 www.doflye.net 325 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 J8(WP)无需连接 4.18.2 1 路 AD 数码管显示 初始化定时器 0 用于数码管动态扫描,读取通道 0 的模拟值,分解显示到数码管上。 朗译电子科技 ☏ 025-52158963 www.doflye.net 326 / 404 AD 转换程序,输入参数是通道值,输入该参数可以选择 AD 通道,范围是 0~3 。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 J31(AD0 与 W4 跳帽连接) 选择 AD 通道 J8(WP)无需连接 调节 W4,数码管显示电压数值从 0~5.0V 变化,AD0 通道也可以外接电压输入,输入范围是 0~5V。 朗译电子科技 ☏ 025-52158963 www.doflye.net 327 / 404 知识要点: 4.18.3 4 路 AD 数码管显示 主程序中与单路输入基本相同,需要连续不断采样 4 路数值。用定时器定时采样,防 止采样过快。这里每一路读取了 5 次,去最后一次值,由于多路读取需要切换通道,为防 止读取值错误,故采取多次读取,也可以自行添加平均值处理等程序。 8 个数码管每 2 个显示 1 路 AD 采样值。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 328 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 J31(AD0 或 AD1 与 W4 跳帽 连接) 选择 AD 通道 J32(AD2 或 AD3 与 W3 跳帽 连接) 选择 AD 通道 J8(WP)无需连接 由于只有 2 个电位器,4 个通道采样,所以任一时刻只能采样 2 个通道,其他通道会悬 空,得出的电压值是变化不确定的,如果怕影响视觉效果,把这 2 路连接到固定电平 VCC 或者 GND 即可。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 329 / 404 4.18.4 DA 输出模拟 写入 DA 数模值,然后累加该值,显示该值到数码管,延时 100ms 后循环写入变化过后 的 DA 值。 DA 函数,通过写入总线命令和所需要写入的 DA 值即可。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 朗译电子科技 ☏ 025-52158963 www.doflye.net 330 / 404 P2.1 P0 P2.2 P2.3 J8(WP)无需连接 J8(SDA) J3 J2(B) J2(A) J33 跳帽跳上 1 数据 8 数码管数据 1 段锁存 1 位锁存 LED9 接通 数码管显示输出值从 0~255 变化,LED 的亮度也跟随变化。如果想精确测量,拔掉 LED9 接通跳帽 J33,用示波器或者万用表测量 J33 上端电压值,可以得出电压从 0~VCC 变化的过 程。 知识要点: 4.18.5 输出锯齿波 程序与 DA 输出部分相同,不过这里的值不是累加,因为 IIC 总线速度上限要求,所以 AD 和 DA 的变化速率是较慢的,为了在示波器上清晰看到锯齿波变化,这里定义一个表格 存取这些值,这些值是不连续的,目的是为了提高频率。 实验现象: 朗译电子科技 ☏ 025-52158963 www.doflye.net 331 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 J33 跳帽拔掉 示波器测量 J8(WP)无需连接 示波器测量 J33 上端,可以看到清晰的锯齿波。 知识要点: 4.18.6 AD 转换 1602 液晶显示 程序详细见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 J31(AD0 或 AD1 与 W4 跳帽 连接) 选择 AD 通道 J32(AD2 或 AD3 与 W3 跳帽 连接) 选择 AD 通道 J8(WP)无需连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 332 / 404 LCD2 插座插上 1602 液晶,对比度旋钮 W1 调节到最佳显示状态 试验方法和结果同 4 位 AD 采样数码管显示一样,该程序用液晶显示,精度处理更高。 知识要点: 4.19 串口通讯 4.19.1 硬件原理与连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 333 / 404 单片机串口默认连接的板载 usb-232 芯片,所以平时使用一根 usb 接口就可以做串口试 验。J18 用于切换串口公口或者母口连接到单片机的 P3.0、P3.1,平时不用该端口跳帽可以 悬空。 上图是 2 个串口接口,公口和母口,默认不连接,是备用端口,在不使用板载串口或 者需要使用多串口时才连接。 朗译电子科技 ☏ 025-52158963 www.doflye.net 334 / 404 按照上图蓝线方式插接 2 个跳帽比表示选通串口母口 朗译电子科技 ☏ 025-52158963 www.doflye.net 335 / 404 按照上图红线方式插接 2 个跳帽表示选通串口公口 朗译电子科技 ☏ 025-52158963 www.doflye.net 336 / 404 4.19.2 串口通讯 串口初始化,设定串口模式,波特率等。 发送一个字节和发送字符串。字符串结束标志是 “\0 ”,检到到该标志认为字符串结 束,停止发送数据。 实验现象: 单片机开发板上晶振使用 11.0592M,设置上位机串口调试软件,选择对应的 COM 端 口,波特率选择 9600,校验位选择无(NONE),8 位数据,1 位停止位。硬件连接好后, 按开发板复位按键,电脑端会循环接收到 UART test,技术论坛:www.doflye.net thank you! 字符串。 朗译电子科技 ☏ 025-52158963 www.doflye.net 337 / 404 知识要点: 4.19.3 串口通讯中断应用 前面 DS1302 模块中更新时间程序中用到过,把从电脑接收到的数据从单片机发送端发 送至电脑。 朗译电子科技 ☏ 025-52158963 www.doflye.net 338 / 404 主函数中先初始化串口,然后发送一串字符,打开串口中断,等待中断信号并进入中断 处理。 实验现象: 同上串口设置,复位单片机,首先看到上位机串口调试软件收到发送的字符串信息, 这个时候在电脑的发送区填入任意字符并点击发送,接收区会收到同样的信息,表示收发成 功。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 339 / 404 4.19.4 RS485 基本应用原理 典型的串行通讯标准是 RS232 和 RS485,它们定义了电压,阻抗等,但不对软件协议给 予定义,区别于 RS232, RS485 的特性包括: 1、RS485 的电气特性:逻辑“1”以两线间的电压差为+(2—6)V 表示;逻辑“0”以 两线间的电压差为-(2—6)V 表示。接口信号电平比 RS-232-C 降低了,就不易损坏接口电 路的芯片, 且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。 2、RS-485 的数据最高传输速率为 10Mbps 。 3、RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪 声干扰性好。 4、RS-485 接口的最大传输距离标准值为 4000 英尺,实际上可达 3000 米,另外 RS-232-C 接口在总线上只允许连接 1 个收发器,即单站能力。而 RS-485 接口在总线上是允 许连接多达 128 个收发器。即具有多站能力,这样用户可以利用单一的 RS-485 接口方便地建 立起设备网络。 编程方式与普通串口程序一样。 实验现象: 由于 RS485 需要 2 个设备通讯才能完成试验结果,所以需要配套的 RS485 转换器连接 到电脑才能通讯。 这里我需要测试 485 芯片的功能是否正确,用以下简单方式测量: 1、J40 插针 E 针脚用杜邦线连接到 VCC,表示 485 选通为发送模式 2、连接 J40 插针 DI 端至 VCC,测量 J41 插针 A、B 之间电压,A 为正极,B 为负极, 得出正 2~5V 电压。 3、连接 J40 插针 DI 端至 GND,测量 J41 插针 A、B 之间电压,A 为正极,B 为负极, 得出负 2~5V 电压。 得到上述结果表明发送模式正常工作,同样反过来测试接收模式: 1、J40 插针 E 针脚用杜邦线连接到 GND,表示 485 选通为接收模式 2、连接 J40 插针 DO 端至电压表,J41 插针 A、B 之间加 5V 电压,A 为正极,B 为负 极。测量的电压值为 5V,逻辑电平“1”。 3、连接 J40 插针 DO 端至电压表,J41 插针 A、B 之间加 5V 电压,B 为正极,A 为负 极。测量的电压值为 0V,逻辑电平“0”。 朗译电子科技 ☏ 025-52158963 www.doflye.net 340 / 404 得到上述结果表明接收模式正常工作。 知识要点: 4.20 红外收发 4.20.1 硬件原理与连接 金属外壳 引脚定义 树脂外壳 朗译电子科技 ☏ 025-52158963 引脚定义 www.doflye.net 341 / 404 输入输出波形图(输入必须是带有 38K 载波) 红外接收头的工作原理为:内置接收管将红外发射管发射出来的光信号转换为微弱的电 信号,此信号经由 IC 内部放大器进行放大,然后通过自动增益控制、带通滤波、解调、波 形整形后还原为遥控器发射出的原始编码,经由接收头的信号输出脚输出到电器上的编码识 别电路。 红外发射需要单片机直接产生 38KHz 调制波驱动。这里不做详细讲解,应用较少。在配 套样例中有简单的测试程序,通过发射低频闪烁信号,然后一体化接收头接收到后直接输入 到 led 灯,无需经过单片机处理,简单的说就是把 1 个 led 闪烁功能通过红外发射和接收后 在最终实现功能。 朗译电子科技 ☏ 025-52158963 www.doflye.net 342 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P3.3 J34(IR1) 1 发射 朗译电子科技 ☏ 025-52158963 www.doflye.net 343 / 404 P3.2(接收) J27(2 针之一) 1 红外接收 4.20.2 红外接收原理 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.0 J9(任意一个插针) 1 LED 演示 P3.2(接收) J27(2 针之一) 1 接收 连接好硬件,P3.2 连接到 J27 任一个插针,J1.0 连接到 J9(LED)任一插针。按遥控器 任意按键,LED 不定频闪烁。 朗译电子科技 ☏ 025-52158963 www.doflye.net 344 / 404 知识要点: 4.20.3 红外解码数码管显示 定义端口,红外接收 P3.2,数码管显示用 P0 与锁存 P2.2、P2.3 用于测量 2 个下降沿之间的宽度。不同宽度可以判断是头码、0 或者 1。 朗译电子科技 ☏ 025-52158963 www.doflye.net 345 / 404 外部中断用于接收红外波下降沿,并触发定时器计时,把计时时长存储到 33 个变量中, 用于下面判断头码、0 或者 1。 朗译电子科技 ☏ 025-52158963 www.doflye.net 346 / 404 存储的 32 个时长变量通过这段程序处理为 0 或者 1,得出 4 个 8 为数值。第一个的变 量是用于检测头码,这里不使用。 朗译电子科技 ☏ 025-52158963 www.doflye.net 347 / 404 最后一步是键值比较,与设定值相等时,显示对应的数字,由于遥控器的多样性,不同 遥控器的码值不同,所以更换不同按键控制设备的时候需要更该此段代码。简单起见,这里 只比较了 4 个 8 位数中的第三个数值,如果需要更改其他按键,方法如下: Case 0:表示遥控器得到的值的第三位是 0,只要得到其他遥控器的第三位值,并替换 0,就可以实现相对应功能。下一节要讲解的红外解码液晶显示就可以看到对应的码值,如 下图,第三位数字就是我们需要在这里替换的。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0 J3 8 数码管数据口 P2.2(段锁存) J2(B) 1 端锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 348 / 404 P2.3(位锁存) J2(A) 1 P3.2(接收) J27(2 针之一) 1 位锁存 接收 如果遥控器对应,按下 1-9 数字按键,数码管显示 1-9,如果不完全对应,用户可以根 据上述方法自行更改。 知识要点: 4.20.4 红外解码 1602 液晶显示 显示解码出的结果,4 个 8 位数,16 进制显示。 实验现象: 杜邦线连接(用杜邦线<连接单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 朗译电子科技 ☏ 025-52158963 www.doflye.net 349 / 404 P3.2(接收) J27(2 针之一) 1 接收 LCD2 插上 LCD1602 液晶屏,调节 W1 至最佳显示效果 连接好硬件,按下遥控器任意按键,液晶显示 4 个码值,如果连续多次按下该按键, 显示数值不变,则表示解码正确。如下图: 知识要点: 4.20.5 红外发射原理 红外发射部分等同于发光二极管电路,不同的是发光管使用的是红外管,因为红外线在 可视光线之外,所以工作的时候人眼并不能看的发光,此时我们需要通过仪器在测定发射管 是否正常工作,使用手机摄像头对准红外发射头,如果从手机上能看到发白光,证明发射管 在工作,白光的强弱取决于工作电流的大小。这个方法也可以检测普通的红外遥控器是否正 常工作,也是检测遥控器的最简单的方法。红外发射电路如下: 朗译电子科技 ☏ 025-52158963 www.doflye.net 350 / 404 普通遥控器使用 38KHz 调制波控制红外发射管,所以如果想通过红外发射实现模拟遥 控、红外避障等功能需要单片机产生 38KHz 的调制波,最简单的办法是通过定时器产生 38K 方波,但是等脉宽的方波的效率并不是最高的,如果需要远距离发射,请参考遥控器芯片的 相关资料,比如 TC9012、uC1621 等,资料里面提及发射波的高电平和低电平的有效宽度, 根据资料编写方波的时序,可以尽可能大的增加遥控距离。 本板提供简单的测试样例,通过红外发射闪烁信号,经过一体化接收头处理直接连接到 led 灯,如果 led 正常闪烁,说明红外发射和接收功能都正常。由于发射头是透明材质,所 以光线会产生散射,在一般情况下,红外信号会直接照射到一体化接收头。如果需要严格杜 绝这种现象,需要用纯黑色不够明物质遮挡发射头或者接收头。 朗译电子科技 ☏ 025-52158963 www.doflye.net 351 / 404 4.20.6 火焰传感器测试 J34 IR1 端子是火焰传感器信号输出端,输出数字电平信号,通过调节 W5 电位器,可以 调整感应灵敏度。模块电路参考电路图如下: 朗译电子科技 ☏ 025-52158963 www.doflye.net 352 / 404 U17 当前位比较器模式,通过正负端的点位比较得出对应的数字电平。这种方式不能得 到模拟变化的数据。最简单的实验方法不需要单片机程序,使用红外遥控器或者火焰对准传 感器,IR1 输出端接任意 1 路 led,如果接收到红外或者火焰信号,led 灯点亮,表示输出端 得到低电平,此时通过调节 W5 电位器得到不同灵敏度,灵敏度越高,可以检测的信号越远。 实验现象: 使用打火机或者红外遥控器作为信号源测试,通过调节电位器调节接收灵敏度。IR1 输出接 LED 灯或者单片机引脚,通过电平高低变化反映出是否有红外、火焰信号。 朗译电子科技 ☏ 025-52158963 www.doflye.net 353 / 404 4.21 18B20 温度传感器 4.21.1 硬件原理和连接 设计 2 路 18B20 接口,可以使用任意一个或者 2 个单独连接,也可以把 2 个 18B20 连 接到一根线上操作。 朗译电子科技 ☏ 025-52158963 www.doflye.net 354 / 404 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.3 J48 或者 J10 1 18B20 P1.2 J48 或者 J10 1 18B20 朗译电子科技 ☏ 025-52158963 www.doflye.net 355 / 404 4.21.2 温度采集数码管显示 主程序中检测到采样标志位后执行采样和温度处理工作,标志位防止采样速度过快。采 样的温度需要判读正负数,然后分别处理。 If-else 语句用于判读正负数并分别处理。具体内容可以参考 18b20 文档温度值表格。 朗译电子科技 ☏ 025-52158963 www.doflye.net 356 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.3 J48 或者 J10 1 18B20 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 朗译电子科技 ☏ 025-52158963 www.doflye.net 357 / 404 数码管显示当前环境温度值,如果显示“8.5”表示硬件连接错误,请检测 18B20 是否 插反或者杜邦线是否有效连接。 正温度显示 超过 100 度显示 知识要点: 负温度显示 4.21.3 温度采集 1602 液晶显示 详细程序见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.3 J48 或者 J10 1 18B20 LCD2 插入 1602 液晶,调节 W1 至最佳显示效果 液晶显示当前温度值,精度比数码管显示要高,分辨率可到达 0.625 度。 朗译电子科技 ☏ 025-52158963 www.doflye.net 358 / 404 知识要点: 4.21.4 多个温度采集液晶显示 详见光盘配套程序。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.3 J48 或者 J10 1 18B20a P1.4 J48 或者 J10 1 18B20b LCD2 插入 1602 液晶,调节 W1 至最佳显示效果 多个 18B20 采样一般有以下三种方法: 1、多个 IO 口,每个 IO 口有单独程序读取。占用口多,程序重复繁琐。本样例使用这 个方法。 2、单独读取每个 18B20 固定序列号,然后把这些序列号存储到单片机,然后使用搜索 指令指定固定 18B20 读取温度。程序比较简洁,需要把用到的 18B20 序列号都逐个读出。 稍微繁琐。 3、使用 18B20 搜索器件协议。使用最为简单,程序调试和算法比较复杂。可以参考美 信公司提供的样例和算法讲解。 知识要点: 朗译电子科技 ☏ 025-52158963 www.doflye.net 359 / 404 4.21.5 超温报警测试 定义超温报警限值,测量温度超过此温度限值即报警。 如果超温则显示 H,否则正常显示。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P1.3 J48 或者 J10 1 18B20 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 正常温度显示 朗译电子科技 ☏ 025-52158963 www.doflye.net 360 / 404 超过 60 度报警上限 最后一位显示 H 知识要点: 4.21.6 温度可调上下限 1602 液晶显示 4 个按键实现高温值和低温值的加减任务。 朗译电子科技 ☏ 025-52158963 www.doflye.net 361 / 404 判读超限参数,如果值为 1 表示高于高温值,2 表示低于低温值,0 表示在区间内, 同时显示高低温限值。 定时读取温度值,读取温度值乘以精度值就是实际温度,这个浮点数作为显示用。紧接 着把整形数值右移 4 位,目的是去掉小数部分,只保留整数部分,用于和高低温限值比较, 并改变比较后的标志位。 然后使用打印字符串到数组的语句输出实际温度值,并显示在第一行。后面的 2 句用 于写入自定义字符到指定位置,这里写的是温度符号。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 朗译电子科技 ☏ 025-52158963 www.doflye.net 362 / 404 单片机 IO 口 P1.3 模块接口 杜邦线数量 J48 或者 J10 1 LCD2 插入 1602 液晶,调节 W1 至最佳显示效果 功能 18B20 正常显示温度与高低温限值,限值可以按键调节 调节限值到温度边缘 实际温度高于设定高温限值 调节低温限值 朗译电子科技 实际温度低于低温限值 ☏ 025-52158963 www.doflye.net 363 / 404 为了提高精度,也可以使用浮点数比较,但会降低处理速度。 知识要点: 4.22 舵机 4.22.1 硬件原理与连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 364 / 404 顾名思义,舵机是用来控制舵的,比如轮船的方向舵,飞机的方向舵、升降舵等,这些 都需要控制一定的角度,但并非需要连续旋转。所以一般舵机都是只能转动一定的角度,我 们这里说的舵机主要应用于航模、车模和监控等多种领域。我们提及的舵机一般是正负 90 度之间转动(连续旋转舵机除外),舵机内部是有直流电机,位置电位器和驱动反馈电路板 组成,当我们需要舵机转到一定角度时,输入信号会与标准信号比较,如果反馈位置不是所 需要的位置,电机则会朝向需要的方向转动,直到转到指定位置,电位器反馈信息促使电机 停止转动。 舵机的控制信号实际上是 PWM 信号,周期不变,高电平的时间决定舵机的实际位置。 单片机中常用的 PWM 产生方式有 2 种,其一是通过定时器或者延时模拟出 PWM 信号,其 二是单片机内部包含 PWM 发生器。 普通舵机和连续旋转舵机链接请点击:http://shop34791330.taobao.com/ 朗译电子科技 ☏ 025-52158963 www.doflye.net 365 / 404 4.22.2 舵机扇形摆动 程序详见配套光盘。 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P0.0 J29(S1) 1 数据线 舵机 J52 3 舵机接口 12M 晶振 12T 单片机 12M 晶振,运行后舵机呈扇形左右摇摆。 知识要点: 舵机需要高电平驱动,标准 IO 口上拉电流较小,所以建议用上拉电阻,本样例使用 P0 口控制,因为 P0 口外置上拉电阻。 部分单片机带有 PWM 接口应用时程序强上拉模式,此时无需上拉电阻。 朗译电子科技 ☏ 025-52158963 www.doflye.net 366 / 404 4.23 热敏电阻、光敏电阻 4.23.1 硬件原理与连接 光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化 铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光 照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴 奔向电源的负极,从而使光敏电阻器的阻值迅速下降。 通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。当它受到光的照射时,半导 体片(光敏层)内 就激发出电子—空穴对,参与导电,使电路中电流增强。为了获得高的 灵敏度,光敏电阻的电极常采用梳状图案,它是在一定的掩膜下向光电导薄膜上蒸镀金或铟 等金属形成的。光敏电阻器通常由光敏层、玻璃基片(或树脂防潮膜)和电极等组成。光敏 电阻器在电路中用字母“R”或“RL”、“RG”表示。 主要参数与特性 (1)光电流、亮电阻。光敏电阻器在一定的外加电压下,当有光照射时,流过的电流 称为光电流,外加电压与光电流之比称为亮电阻,常用“100LX”表示。 (2)暗电流、暗电阻。光敏电阻在一定的外加电压下,当没有光照射的时候,流过的 电流称为暗电流。外加电压与暗电流之比称为暗电阻,常用“0LX”表示。 (3)灵敏度。灵敏度是指光敏电阻不受光照射时的电阻值(暗电阻)与受光照射时的 电阻值(亮电阻)的相对变化值。 (4)光谱响光谱响应又称光谱灵敏度,是指光敏电阻在不同波长的单色光照射下的灵 敏度。若将不同波长下的灵敏度画成曲线,就可以得到光谱响应的曲线。 (5)光照特性。光照特性指光敏电阻输出的电信号随光照度而变化的特性。从光敏电 阻的光照特性曲线可以看出,随着的光照强度的增加,光敏电阻的阻值开始迅速下降。若进 一步增大光照强度,则电阻值变化减小,然后逐渐趋向平缓。在大多数情况下,该特性为非 线性。 朗译电子科技 ☏ 025-52158963 www.doflye.net 367 / 404 (6)伏安特性曲线。伏安特性曲线用来描述光敏电阻的外加电压与光电流的关系,对 于光敏器件来说,其光电流随外加电压的增大而增大。 (7)温度系数。光敏电阻的光电效应受温度影响较大,部分光敏电阻在低温下的光电 灵敏较高,而在高温下的灵敏度则较低。 (8)额定功率。额定功率是指光敏电阻用于某种线路中所允许消耗的功率,当温度升 高时,其消耗的功率就降低。 上图是一种测温型 NTC 热敏电阻,由于热敏电阻应用广泛,种类繁多,这里进针一种进 行讲解,NTC(Negative Temperature Coeff1Cient)是指随温度上升电阻呈指数关系减小、 具有负温度系数的热敏电阻现象和材料。该材料是利用锰、铜、硅、钴、铁、镍、锌等两种 或两种以上的金属氧化物进行充分混合、成型、烧结等工艺而成的半导体陶瓷,可制成具有 负温度系数(NTC)的热敏电阻.其电阻率和材料常数随材料成分比例、烧结气氛、烧结温 度和结构状态不同而变化。现在还出现了以碳化硅、硒化锡、氮化钽等为代表的非氧化物系 NTC 热敏电阻材料。 由于热敏电阻与温度的变化曲线是非线性的,而 8 位单片机的计算能力有限,所以为了 简单实用,摒弃了复杂的计算公式,采用查表法算取温度值。温度精度值取决于 AD 采样精 度、温度表格精度和热敏电阻精度。 下图是开发板中热敏电阻与光敏电阻的应用硬件电路 朗译电子科技 ☏ 025-52158963 www.doflye.net 368 / 404 光敏电阻与热敏电阻是独立的 2 路,J7 是输出端口,光敏或者热敏电阻的阻值变化会 引起输出端分压值的变化,通过检测输出电压值,进而判断温度或者光照度的变化特性,最 终通过单片机处理,用显示器件显示出来。 朗译电子科技 ☏ 025-52158963 www.doflye.net 369 / 404 4.23.2 热敏电阻测试数码管显示 查表表格如下 朗译电子科技 ☏ 025-52158963 www.doflye.net 370 / 404 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 J7(NTC1) J31(AD0) 1 选择 AD 通道 J8(WP)无需连接 数码管显示当前温度值 知识要点: 表格的前 10 个数是负温度,且温度数值是递减的,所以判断正负符号后,如果是负数, 需要倒序显示前 10 个表格中的值,如果是正数需要从第十一个数开始显示。 朗译电子科技 ☏ 025-52158963 www.doflye.net 371 / 404 4.23.3 光敏电阻测试数码管显示 实验现象: 杜邦线连接(用杜邦线连接<单片机 IO>和<模块接口>) 单片机 IO 口 模块接口 杜邦线数量 功能 P2.0 J8(SCL) 1 时钟 P2.1 J8(SDA) 1 数据 P0 J3 8 数码管数据 P2.2 J2(B) 1 段锁存 P2.3 J2(A) 1 位锁存 J7(RG1) J31(AD0) 1 选择 AD 通道 J8(WP)无需连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 372 / 404 数码管显示当前光线变化效果 知识要点: 显示结果仅仅表示分压后的相对值,不代表其他任何计量单位。 4.24 复位电路 4.24.1 硬件原理与连接 上图包含 2 种复位方式,低电平复位与高电平复位,51 单片机都采用高电平复位,即 正常工作时复位引脚为低电平,按下复位按键时,复位脚为高电平。阻容复位的特点是成本 低、连接方便。在一些要求高可靠性的设备中,专用的复位芯片常用于替代当前的阻容复位 电路。上图 J19 是 3 脚插针,中间引脚为公共脚,连接到单片机复位引脚(51 单片机的第 9 脚),通过使用跳帽(短路块)可以切换 1、2 脚或者 2、3 脚相连,用于连接高电平复位 朗译电子科技 ☏ 025-52158963 www.doflye.net 373 / 404 或者低电平复位,由于 51 单片机使用高电平复位,所以正常使用时跳帽默认连接到 1、2 脚。在使用 AVR 芯片时需要切换到低电平复位。 使用方法: 单片机复位电路可以正常引导单片机到正确的程序执行位置,复位电路不正常会导致程 序运行错乱甚至不能运行。所以称为单片机工作的三要素之一,检查复位电路是否正常的方 法有以下 2 种: 1、电压法。测量按下复位按键与松开按键时的电压,一个是 0V,另外一个是 5V(VCC)。 2、观察法。连接好单片机系统,如果此时数码管或者 LED 连接在单片机端口上,单片 机烧录对应的程序,按下复位与松开复位时各个显示器件的状态是有变化的,说明复位电路 正常。 知识要点: 复位电路是通过跳帽连接到单片机,长期使用,会造成引脚氧化或者接触不良,需要定期检 查复位可靠性。 4.25 晶振 4.25.1 硬件原理与连接 朗译电子科技 ☏ 025-52158963 www.doflye.net 374 / 404 上图列出几种常见晶振,包括有源晶振和无源晶振。晶振在单片机系统中为单片机运行 提供时钟源,任何指令的执行都必须依靠时钟源的存在,所以被称为工作三要素之一。由于 本开发板使用可拔插晶振,所以长期使用难免会出现接触不良的现象,需要定期检测晶振的 可靠性。正常工作的开发板,晶振产生的时钟频率与标称的频率是一致的,可以用示波器观 察波形和频率,在没有示波器的情况下,可以使用万用表测量 2 个引脚的对地电压估计晶 振的工作状态,一般情况如下:5V 系统中,2 个引脚的对地电压是都 2V 左右,且压差不大, 如果出现引脚电压为 0V 或者 5V(VCC)表明晶振没有起振,需要检查连接可靠性或者更换 晶振。 使用方法: 在开发板使用过程中,有时需要更换不同频率的晶振,在更换晶振之前,确保晶振的类 型和特性参数基本相同。 知识要点: 单片机不能正常工作时,必须检查的要素之一就是晶振。 朗译电子科技 ☏ 025-52158963 www.doflye.net 375 / 404 4.26 电源 4.26.1 硬件原理与连接 上图中元件功能: 1、USB1 是 USB 插座,通过 USB 连线连接到电脑可以给开发板供电和串口通讯。 2、V2.1 版本外部供电直接使用 5V 直流输入,要求电源纹波小,电压稳定,电流大于 500mA。 3、TEMP1 是一个自动下载 STC 芯片的模块,可以拔插的选配件,如果没有选配该模块, 需要用跳帽(短路块)短接 TEMP1 的第 1、2 脚。否则整个主板不能供电。 4、J35、J36 电源插针,可以通过此插针向外部扩展模块提供 5V 电压,也可以从外部 电源引入 5V 电压。 5、SW3 电源开关。 朗译电子科技 ☏ 025-52158963 www.doflye.net 376 / 404 新版本提供 3.3V 电源输出,可以很方便的连接 3.3V 模块,上图 J54 插针,B 位置 2 根 针是 3.3V 电压输出端。可以提供最大 800mA 电流,适用于一些电源是 3.3V 的模块或者设 备。 使用方法: 如果没有大功率外接设备,USB 供电足够开发板使用,单个 USB 端口的最高供电电流 是 500mA,由于 usb 线存在损耗,所以实际达到开发板上的电压在 4.8V 左右。通过外接电 源可以提高功率并有效防止损耗压降。外部直流电压供电范围是 5V DC,由于单片机是易受 干扰的电子器件,电源又是最直接的干扰源,所以必须使用优质电源以提高整个系统的抗扰 能力。 知识要点: 任何时刻开发板上的电压都不能超过 5.5V,否则可能损坏单片机和主板上的芯片。 电源是单片机工作的三要素之一(电源、复位、晶振),需要定期测量电压值,并确保 在正常电压范围内。 朗译电子科技 ☏ 025-52158963 www.doflye.net 377 / 404 4.27 ISP 下载 4.27.1 硬件原理与连接 使用方法: 标准 ISP 下载程序接口,通过配套专用下载器连接到开发板该端口,用于下载 AT89s51、 52、53 和 ATmega8515 等带有 ISP 下载功能的 AT 系列芯片。 配合转换板可以学习 AVR 单片机,由于是独立模块,就组成一个专业的 AVR 开发板。 转换板链接请点击:http://shop34791330.taobao.com/搜索 avr 转换板 知识要点: 下载器接口必须与本接口兼容才能直接使用。下载器电路直接连通开发板,开发板电源 开关无效。 第 5 章 常见问题解答 一般故障处理:本板方便试验,设置了多种拔插件,这必然降低了稳定性,所以出现 一下故障首先考虑接触不良的现象,如跳帽松动,锁紧插座接触不良,这些故障可以通过观 察或通过万用表测量来判断。 芯片应该尽量放置到锁紧插座的正中央。跳线、杜邦线应插到底。各种插座插线应该插 紧,需要经常检测杜邦线是否折断。 朗译电子科技 ☏ 025-52158963 www.doflye.net 378 / 404 1、STC 单片机出现不能正常下载 答:1、usb 转串口驱动是否正确。从设备管理器中可以看到虚拟的 com 口,端口号一般 为 com3 或者 com4,下载软件必须设置相应的端口。 2、请先关掉电源,点击下载,稍等片刻打开电源。这个下载顺序严格遵守。也就是 所谓的冷启动 2、usb 转串口驱动不能正确安装 重新拔插 usb 线或者 usb 转串口线。卸载掉其他转串口驱动、或者重启计算机。 3、usb 转串口或者 usbasp 下载器出现掉线 答:突然掉线可能是供电电压突然下降,如瞬间短路,负载突然增大等,因此引起的掉 线只要重新拔插 usb 线即可。 4、开发板不工作 答:检测工作三要素: 1、电压 不能低于 4.2V 2、复位 如果不能正常复位则导致程序欲行紊乱或者不能运行 3、晶振 晶振是否起振,可以更换新晶振测试。或者检查是否松动。 5、点阵不使用时乱码显示 答:点阵静态耗电量非常大,有 64 个 LED 灯,如果不使用点阵,拔掉点阵或者拔掉 J49 供电跳帽,防止过大功耗影响主板工作状态。 更多问题解答请登录 www.doflye.net 单片机爱好者论坛 LY-51S 专栏。 朗译电子科技 电话:025-52158963 邮箱:defeilai@126.com 朗译电子科技 ☏ 025-52158963 www.doflye.net 379 / 404 第 6 章 特殊功能寄存器介绍 MCS-51 单片机的特殊功能寄存器 从图中我们可以看出,在 51 单片机内部有一个 CPU 用来运算、控制,有四个并行 I/O 口,分别是 P0、P1、P2、P3,有 ROM,用来存放程序,有 RAM,用来存放中间结果,此 外还有定时/计数器,串行 I/O 口,中断系统,以及一个内部的时钟电路。在一个 51 单片机 的内部包含了这么多的东西。 对图进行进一步的分析,我们已知,对并行 I/O 口的读写只要将数据送入到相应 I/O 口的锁存器就可以了,那么对于定时/计数器,串行 I/O 口等怎么用呢?在单片机中有一些 独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。事实上,我们 已接触过 P1 这个特殊功能寄存器了,还有哪些呢?看下表 朗译电子科技 ☏ 025-52158963 www.doflye.net 380 / 404 下面,我们介绍一下几个常用的 SFR。 1、ACC---是累加器,通常用 A 表示。 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西, 为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在 ACC 中的 缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令,可以发现,所有的 运算类指令都离不开它。自身带有全零标志 Z,若 A=0 则 Z=1;若 A≠0 则 z=0。该标志常 用作程序分枝转移的判断条件。 朗译电子科技 ☏ 025-52158963 www.doflye.net 381 / 404 2、B--一个寄存器。 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、PSW-----程序状态字。 这是一个很重要的东西,里面放了 CPU 工作时的很多状态,借此,我们可以了解 CPU 的当前状态,并作出相应的处理。它的各位功能请看下表: CY:进位标志。8051 中的运算器是一种 8 位的运算器,我们知道,8 位运算器只能表示到 0-255,如果做加法的话,两数相加可能会超过 255,这样最高位就会丢失,造成运算的错 误,怎么办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY =0 例:78H+97H(01111000+10010111) AC:辅助进、借位(高半字节与低半字节间的进、借位)。 例:57H+3AH(01010111+00111010) 下面我们逐一介绍各位的用途 F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。 RS1、RS0:工作寄存器组选择位。这个我们已知了。 0V:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。什么是溢 出我们后面的章节会讲到。 P:奇偶校验位:它用来表示 ALU 运算结果中二进制数位“1”的个数的奇偶性。若为奇数, 则 P=1,否则为 0。 运算结果有奇数个 1,P=1;运算结果有偶数个 1,P=0。 例:某运算结果是 78H(01111000),显然 1 的个数为偶数,所以 P=0。 4、P0、P1、P2、P3------这个我们已经知道,是四个并行输入/输出口的寄存器。它里面的 内容对应着管脚的输出。 5、IE-----中断充许寄存器 按位寻址,地址:A8H 中断禁止(即不产生中断) EA=1 时,各中断的产生由个别的允许位决定 - (IE.6):保留 ET2(IE.5):定时 2 溢出中断充许(8052 用) ES (IE.4):串行口中断充许(ES=1 充许,ES=0 禁止) 朗译电子科技 ☏ 025-52158963 www.doflye.net 382 / 404 ET1(IE.3):定时 1 中断充许 EX1(IE.2):外中断 INT1 中断充许 ET0(IE.1):定时器 0 中断充许 EX0(IE.0):外部中断 INT0 的中断允许 7、IP-----中断优先级控制寄存器 按位寻址,地址位 B8H EA (IE.7):EA=0 时,所有 中断禁止(即不产生中断) EA=1 时,各中断的产生由个别的允许位决定 - (IE.6):保留 ET2(IE.5):定时 2 溢出中断充许(8052 用) ES (IE.4):串行口中断充许(ES=1 充许,ES=0 禁止) ET1(IE.3):定时 1 中断充许 EX1(IE.2):外中断 INT1 中断充许 ET0(IE.1):定时器 0 中断充许 EX0(IE.0):外部中断 INT0 的中断允许 7、IP-----中断优先级控制寄存器 按位寻址,地址位 B8H 6、指针寄存器 (1)程序计数器 PC 指明即将执行的下一条指令的地址,16 位,寻址 64KB 范围, 复位时 PC = 0000H (2)堆栈指针 SP 指明栈顶元素的地址,8 位,可软件设置初值,复位时 SP = 07H (3)数据指针 DPTR @R0、@R1、@DPTR;指明访问的数据存储器的单元地址,16 位,寻址范围 64KB。 DPTR = DPH + DPL。可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用 寄存器来用,由我们自已决定如何使用。 分成 DPL(低 8 位)和 DPH(高 8 位)两个寄存器。用 来存放 16 位地址值,以便用间接寻址或变址寻址的方式对片外数据 RAM 或程序存储器作 64K 字节范围内的数据操作。 7、定时/计数器 (1) 定时器方式寄存器:TMOD 朗译电子科技 ☏ 025-52158963 www.doflye.net 383 / 404 (2) 定时器控制寄存器:TCON (3) 计数寄存器:TH0、TL0;TH1、TL1。可用于设定计数初值。 8052/8032 增设专用寄存器 (1) 定时器 2 控制寄存器 T2CON;控制、设置工作方式。 (2) 计数寄存器:TH2、TL2 (3) 定时器 2 捕获/重装载寄存器:RCAP2H、RCAP2L 存放自动重装载到 TH2、TL2 的数据 附录 A 汇编指令集合 1 MOV A,Rn 寄存器内容送入累加器 2 MOV A,direct 直接地址单元中的数据送入累加器 3 MOV A,@Ri 间接 RAM 中的数据送入累加器 4 MOV A,#tata 立即数送入累加器 5 MOV Rn,A 累加器内容送入寄存器 6 MOV Rn,direct 直接地址单元中的数据送入寄存器 7 MOV Rn,#data 立即数送入寄存器 8 MOV direct,A 累加器内容送入直接地址单元 9 MOV direct,Rn 寄存器内容送入直接地址单元 10 MOV direct,direct 直接地址单元中的数据送入另一个直接地址单元 11 MOV direct,@Ri 间接 RAM 中的数据送入直接地址单元 12 MOV direct,#data 立即数送入直接地址单元 13 MOV @Ri,A 累加器内容送间接 RAM 单元 14 MOV @Ri,direct 直接地址单元数据送入间接 RAM 单元 15 MOV @RI,#data 立即数送入间接 RAM 单元 16 MOV DRTR,#dat16 16 位立即数送入地址寄存器 17 MOVC A,@A+DPTR 以 DPTR 为基地址变址寻址单元中的数据送入累加器 18 MOVC A,@A+PC 以 PC 为基地址变址寻址单元中的数据送入累加器 19 MOVX A,@Ri 外部 RAM(8 位地址)送入累加器 20 MOVX A,@DPTR 外部 RAM(16 位地址)送入累加器 21 MOVX @Ri,A 累计器送外部 RAM(8 位地址) 22 MOVX @DPTR,A 累计器送外部 RAM(16 位地址) 23 PUSH direct 直接地址单元中的数据压入堆栈 24 POP direct 弹栈送直接地址单元 25 XCH A,Rn 寄存器与累加器交换 26 XCH A,direct 直接地址单元与累加器交换 朗译电子科技 ☏ 025-52158963 www.doflye.net 384 / 404 27 XCH A,@Ri 间接 RAM 与累加器交换 28 XCHD A,@Ri 间接 RAM 的低半字节与累加器交换 算术操作类指令: 1 ADD A,Rn 寄存器内容加到累加器 2 ADD A,direct 直接地址单元的内容加到累加器 3 ADD A,@Ri 间接 ROM 的内容加到累加器 4 ADD A,#data 立即数加到累加器 5 ADDC A,Rn 寄存器内容带进位加到累加器 6 ADDC A,direct 直接地址单元的内容带进位加到累加器 7 ADDC A,@Ri 间接 ROM 的内容带进位加到累加器 8 ADDC A,#data 立即数带进位加到累加器 9 SUBB A,Rn 累加器带借位减寄存器内容 10 SUBB A,direct 累加器带借位减直接地址单元的内容 11 SUBB A,@Ri 累加器带借位减间接 RAM 中的内容 12 SUBB A,#data 累加器带借位减立即数 13 INC A 累加器加 1 14 INC Rn 寄存器加 1 15 INC direct 直接地址单元加 1 16 INC @Ri 间接 RAM 单元加 1 17 DEC A 累加器减 1 18 DEC Rn 寄存器减 1 1 12 19 DEC direct 直接地址单元减 1 20 DEC @Rj 间接 RAM 单元减 1 21 INC DPTR 地址寄存器 DPTR 加 1 22 MUL AB A 乘以 B,结果放在 A 23 DIV AB A 除以 B,结果放在 A 24 DA A 累加器十进制调整 布尔变量操作类指令: 1 CLR C 清进位位 2 CLR bit 清直接地址位 3 SETB C 置进位位 4 SETB bit 置直接地址位 5 CPL C 进位位求反 6 CPL bit 置直接地址位求反 7 ANL C,bit 进位位和直接地址位相“与” 8 ANL C,bit 进位位和直接地址位的反码相“与” 9 ORL C,bit 进位位和直接地址位相“或” 10 ORL C,bit 进位位和直接地址位的反码相“或” 朗译电子科技 ☏ 025-52158963 www.doflye.net 385 / 404 11 MOV C,bit 直接地址位送入进位位 12 MOV bit,C 进位位送入直接地址位 13 JC rel 进位位为 1 则转移 14 JNC rel 进位位为 0 则转移 15 JB bit,rel 直接地址位为 1 则转移 16 JNB bit,rel 直接地址位为 0 则转移 17 JBC bit,rel 直接地址位为 1 则转移,该位清零 逻辑操作数指令: 1 ANL A,Rn 累加器与寄存器相“与” 2 ANL A,direct 累加器与直接地址单元相“与” 3 ANL A,@Ri 累加器与间接 RAM 单元相“与” 4 ANL A,#data 累加器与立即数相“与” 5 ANL direct,A 直接地址单元与累加器相“与” 6 ANL direct,#data 直接地址单元与立即数相“与” 7 ORL A,Rn 累加器与寄存器相“或” 8 ORL A,direct 累加器与直接地址单元相“或” 9 ORL A,@Ri 累加器与间接 RAM 单元单元相“或” 10 ORL A,#data 累加器与立即数相“或” 11 ORL direct,A 直接地址单元与累加器相“或” 12 ORL direct,#data 直接地址单元与立即数相“或” 13 XRL A,Rn 累加器与寄存器相“异或” 14 XRL A,direct 累加器与直接地址单元相“异或” 15 XRL A,@Ri 累加器与间接 RAM 单元单元相“异或” 16 XRL A,#data 累加器与立即数相“异或” 17 XRL direct,A 直接地址单元与累加器相“异或” 18 XRL direct,#data 直接地址单元与立即数相“异或” 19 CLR A 累加器清“0” 20 CPL A 累加器求反 21 RL A 累加器循环左移 22 RLC A 累加器带进位位循环左移 23 RR A 累加器循环右移 24 RRC A 累加器带进位位循环右移 25 SWAP A 累加器半字节交换 控制转移类指令: 1 ACALL addr11 绝对(短)调用子程序 2 LCALL addr16 长调用子程序 3 RET 子程序返回 4 RETI 中数返回 朗译电子科技 ☏ 025-52158963 www.doflye.net 386 / 404 5 AJMP addr11 绝对(短)转移 6 LJMP addr16 长转移 7 SJMP rel 相对转移 8 JMP @A+DPTR 相对于 DPTR 的间接转移 9 JZ rel 累加器为零转移 10 CJNE rel 累加器非零转移 11 CJNE A,direct,rel 累加器与直接地址单元比较,不相等则转移 12 CJNE A,#data,rel 累加器与立即数比较,不相等则转移 13 CJNE Rn,#data,rel 寄存器与立即数比较,不相等则转移 14 CJNE @Ri,#data,rel 间接 RAM 单元与立即数比较,不相等则转移 15 DJNZ Rn,rel 寄存器减 1,非零转移 16 DJNZ direct,erl 直接地址单元减 1,非零转移 17 NOP 空操作 Rn: 表示当前寄存器区的 8 个工作寄存器 R0~R7 Ri: (i=0 或 1) 表示当前寄存器区的 R0 或 R1,可作地址指针即间址寄存器 @: 为间接寄存器或基址寄存器的前缀. Direct: 表示 8 位内部数据存储单元的地址.它可以是内部 RAM 的单元 地址 0~127.特殊功能 寄存器 SFR 的地址(128~255)或名称, A: 累加器 ACC. B: .特殊功能寄存器 B,用于 MUL 和 DIV 指令中. C: 进位位 Cy. #data: 表示包含在指令中的单字节(8 位)立即数.如果用 16 位进制表 示,后缀字母为”H”,数据范围 00~0FFH,不得一字母开头;如果用 16 进制表示无须 任何后缀,但必须在 0~255 之间. #data16: 表示包含在指令中的双字节(16 位)立即数. Adda16: 表示 16 位的目的地址.用于 LCALL 和 LJMP 指令中,目的地址范 围是从 0000H~FFFFH 的整个 64KB 存储地址空间. 朗译电子科技 ☏ 025-52158963 www.doflye.net 387 / 404 Adda11: 表示 11 位的目的地址.用于 ACALL 和 AJMP 的指令中,目的地址 必须和下一条指令第一个字节同处一页. Rel: 表示 8 位带符号的相对偏移量.用语 SJMP 和所有的条件转 移指令中.偏移量相对于下一条指令的第一个字节计算,在-128~+127 范围内取值. DPTR: 为数据指针,可用作 16 位的地址寄存器. /: 加在位操作的前面,表示对该位进行非运算. bit: 表示内部可寻址位或特殊功能寄存器中的直接寻址位. “(x): 寄存器或地址单元中的内容. ((x)): 有 x 见解寻址的单元中的内容. <-: 表示将箭头右边的内容传送至箭头的左边. $: 当前指令的地址. 单片机指令系统 (一) 内部数据传送指令 (1) 以累加器 A 为目的的传送指令: MOV A, #data ;(A)<-data MOV ) A, direct ;(A)<-(direct MOV ) A, Rn ;(A)<-(Rn MOV ((Ri)) A, @Ri ;(A)<- (2) 以通用寄存器 Rn 为目的的传送指令: MOV ;(Rn)<-(A) Rn, A MOV Rn, t ; (Rn)<(direct)- direc 朗译电子科技 ☏ 025-52158963 www.doflye.net 388 / 404 MOV (Rn)<-(data) Rn, #data: ; (3) 以直接地址为目的的传送指令: MOV ;(direct)<-(A) direct, A MOV (direct)<-(Rn) direct, Rn ; MOV (direct)<-(direct2) direct, direct2 ; MOV (direct)<-((Rn)) direct, @Ri ; MOV (direct)<-data direct, #data ; (4) 以寄存器间接地址为目的的传送指令: MOV ;((Ri))<-(A) @Ri, A MOV )<-(direct) @Ri, direct ;((Ri) MOV i))<-data @Ri, #data ;((R (二) 数据指针赋值指令(16 位数据传送指令) MOV DPTR, #data16; (三) 片外数据传送指令 MOVX A, @Ri ; (A)<-((Ri))片外 MOVX A, @DPTR ;(A)<-((DPT R))片外 MOVX @Ri, A ; ((Ri))片外<-(A) 朗译电子科技 ☏ 025-52158963 www.doflye.net 389 / 404 MOVX 片外<-(A) @DPTR, A ;((DPTR)) (四) ROM 数据访问指令(查表指令) MOVC A, <-((A)+(DPTR))rom @A+DPTR ;(A) MOVC A, ;(PC)<-(PC)+1,(A)<-((A)+(PC))rom @A+PC (五) 堆栈操作指令 PUSH -(direct) direct ;(SP)<-(SP)+1,(SP)< 压入栈顶 堆栈指针先加 1,将数据 POP (SP)<-(SP)-1 direct ;(direct)<-(SP), direct,SP 再减 1 将数据从栈顶弹出存入 (六) 数据交换指令 (1)整字节(8 位)交换指令: XCH A, Rn ;A 和 Rn 中的数互换 XCH 单元中的数互换 A, direct ;A 和 direct XCH 址单元中的数互换 A, @Ri ;A 和 Ri 间 (2)半字节交换指令: XCHD A, @Ri 间接单元的低 4 位互换,高 4 位不动 ;A 的低 4 位 Ri (3)累加器高低半字节交换指令: SWAP A, A 的高 4 位(D7~D4)和低 4 位(D3~D0)互换 朗译电子科技 ☏ 025-52158963 ; www.doflye.net 390 / 404 (七) 加法指令 (1)不带 Cy 加法指令: ADD A)+(Rn) A, Rn ;(A)<-( ADD (A)<-(A)+(direct) A, direct ; ADD (A)<-(A)+((Ri)) A, @Ri ; ADD (A)<-(A)+data A, #data ; (2)带进位加法指令: ADDC +Cy+(Rn) A, Rn ;(A)<-(A) ADDC +Cy+(direct) A, direct ; (A)<-(A) ADDC +Cy+((Ri)) A, @Ri ; (A)<-(A) ADDC +Cy+data A, #data ; (A)<-(A) (3)加 1 指令: INC A, ;(A)<-(A)+1 INC Rn ;(Rn)<-(Rn)+1 INC @Ri ; ((Ri))<-((Ri))+1 INC direct ;( direct)<-(direct)+1 INC <-(DPTR)+1 朗译电子科技 DPTR ☏ 025-52158963 ;(FPTR) www.doflye.net 391 / 404 (八) 减法指令 (1)带进位减法指令: SUBB -Cy-(Rn) A, Rn ;(A)<-(A) SUBB -Cy-(direct) A, direct ; (A)<-(A) SUBB -Cy-((Ri)) A, @Ri ; (A)<-(A) SUBB -Cy-data A, #data ; (A)<-(A) (2)减 1 指令: DEC A ;(A)<-(A)-1 DEC rect)<-(durect)-1 direct ;(di DEC Rn ; (Rn)<-(Rn)-1 DEC @Ri ;(( Ri))<-((Ri))-1 (九) 乘除指令 (1)乘法指令 MUL AB ; (B)(A)<-(A)*(B) 指令功能是把累加器 A 和特殊功能寄存器 B 中两个 8 位无符号整数相乘, 并把积的高 8 位字节存入 B 寄存器,低 8 位字节存入累加器 A. (2)除法指令 DIV AB ;A/B,商存入 A,余数存入 B 朗译电子科技 ☏ 025-52158963 www.doflye.net 392 / 404 指令的功能是把累加器 A 中的 8 位无符号整数除以寄存器 B 中的 8 位无 符号整数商的整数部分存入累加器 A 中,余数保留在 B 中. (十) 十进制调整指令 DA A (十一) 逻辑运算指令 (1) 逻辑与运算指令: ANL A)∧(Rn) ANL (A)<-(A)∧(direct) ANL (A)<-(A)∧((Ri)) ANL (A)<-(A)∧data ANL (A)∧(direct) ANL ect)∧data (2) 逻辑或运算指令: ORL A)∨(Rn) ORL (A)<-(A)∨(direct) ORL (A)<-(A)∨((Ri)) ORL (A)<-(A)∨data A, Rn ;(A)<-( A, direct ; A, @Ri ; A, #data ; direct, A ;(direct)<- direct, #data;(direct<-(dir A, Rn A, direct A, @Ri A, #data ;(A)<-( ; ; ; 朗译电子科技 ☏ 025-52158963 www.doflye.net 393 / 404 ORL (A)∨(direct) direct, A ;(direct)<- ORL (direct)<-(direct)∨data direct, #data; (3) 逻辑异或运算指令: XRL A)⊙(Rn) A, Rn ;(A)<-( XRL (A)<-(A)⊙(direct) A, direct ; XRL (A)<-(A)⊙((Ri)) A, @Ri ; XRL (A)<-(A)⊙data A, #data ; XRL (A)⊙(direct) direct, A ;(direct)<- XRL (direct)<-(direct)⊙data direct, #data; (4) 累加器清 0 和去反指令 CLR (累加器清 0 指令) A ;(A)<-0 CLR (累加器取反指令) A ;(A)<-(A) (5) 累加器移位指令: 不带进位 Cy 循环左移: RL A ;Dn+1<-Dn,D0<-D7 D7 D6 D5 D4 朗译电子科技 ☏ 025-52158963 www.doflye.net 394 / 404 D3 D2 D1 D0 不带进位 Cy 循环右 移: RR A :Dn+1->Dn,D0<-D7 D7 D6 D5 D4 D3 D2 D1 D0 带进位 Cy 循环左 移: RLC A -Cy ;Cy<-D7,Dn+1<-Dn,D0< D7 D6 D5 D4 D3 D2 D1 D0 带进位 Cy 循环右 移: RRC A Dn,D0->Cy (十二) 控制转移指令 [1] 无条件转移指令: (1) 长转移指 令 LJMP 16 addr16 朗译电子科技 ☏ 025-52158963 ;Cy->D7,Dn+1-> ;(PC)<-addr www.doflye.net 395 / 404 (2) 绝对转移指令 AJMP addr11 10~0<-addr11 ;(PC)<-(PC)+2,(PC) (3) 短转移指 令 SJMP rel ; (PC)<-(PC)+2+rel (4) 变址寻址转移指令 JMP @A+DPTR ;(PC)<-(A)+(DPTR) [2] 条件转移指令: (1) 累加器判 0 转移指令: JZ rel 目标语句,否则顺序执行 ;如果(A)=0,跳转到 JNZ rel 语句,否则顺序执行 ;如果(A)≠0,跳转到目标 (2) 比较转移指令: CJNZ A, #data, 跳转到目标语句,否则程序顺序执行 rel ;如果(A)≠data,则 CJNZ A direct, rel (A)≠(direct),则跳转到目标语句,否则程序顺序执行 ; 如果 CJNZ Rn #data, 到目标语句,否则程序顺序执行 rel ; 如果(A)≠data,则跳转 CJNZ @Ri #data, (A)≠data,则跳转到目标语句,否则程序顺序执行 rel ; 如果 (3) 循环控制转移指令: DJNZ Rn, rel 目标语句;否则顺序执行 ;(Rn)先减 1,如减 1 后(Rn)≠0,则跳转到 DJNZ firect, rel (direct)≠0,则跳转到目标语句;否则顺序执行 ; (direct)先减 1,如减 1 后 (十三) 子程序调用和返回指令 (1) 绝对调用指令: 朗译电子科技 ☏ 025-52158963 www.doflye.net 396 / 404 ACALL addr11 (2) 长调用指令: LCALL addr16 (3) 返回指令: RET 子程序返回 RETI 中断服务程序返回 (十四) 空操作指令 NOP 空操作指令是一条特殊指令,单片机在执行该指令时不 进行任何操作,只是消耗 1 个机器周期的时间,所以该指令长用于延时程序.软件陷 阱程序等 (十五) 位操作类指令 (1) 位传送指令: MOV C,bit <-(bit),bit 位的状态不变 ;(Cy) MOV bit,C ; (bit) <- (Cy),Cy 位的状态不变 (2) 位置位和复位指令: SETB C ;(Cy)<-1 SETB bit ;(bit)<-1 CLR C ;(Cy)<-0 CLR bit ;(bit)<-0 (3) 位运算指令: ANL C,bit ;(C y)<-(Cy)∧(bit),Cy 位和 bit 位相与,结果赋给 Cy ANL C,/bit Cy 位和 bit 位相与,结果赋给 Cy ;(Cy)<-(Cy)∧(bit), 朗译电子科技 ☏ 025-52158963 www.doflye.net 397 / 404 ORL C,bit y)<-(Cy)∨(bit),Cy 位和 bit 位相或,结果赋给 Cy ORL C,/bit ∨(bit),Cy 位和 bit 位相或,结果赋给 Cy CPL C (Cy)<-(Cy),Cy 位取反 CPL bit bit),bit 位取反 (4) 位测试转移指令: (1) 以 Cy 位状态为条件的转移指令 JC rel Cy 位=1,跳转到目标语句,否则顺序执行 JNC rel 位=0,跳转到目标语句,否则顺序执行 (2) 以指定位状态为条件的转移指令: JB 转到目标语句,否则顺序执行 bit, rel JNB 目标语句,否则顺序执行 bit, rel JBC bit, rel 目标语句,同时将 bit 位清 0;否则顺序执行 ;(C ;(Cy)<-(Cy) ; ;(bit)<-( ;如果 ;如果 Cy ;如果 bit=1,跳 ;如果 bit=0,跳转到 ;如果 bit=1,跳转到 附录 B ASCII 码表 朗译电子科技 ☏ 025-52158963 www.doflye.net 398 / 404 Bin Dec Hex 缩写/字符 00000000 0 00 NUL(null) 00000001 1 01 SOH(start of headling) 00000010 2 02 STX (start of text) 00000011 3 03 ETX (end of text) 00000100 4 04 EOT (end of transm-ission) 00000101 5 05 ENQ (enquiry) 00000110 6 06 ACK (acknow-ledge) 00000111 7 07 BEL (bell) 00001000 8 08 BS (backsp-ace) 00001001 9 09 HT (horizon-tal tab) 00001010 10 0A LF (NL line feed, new line) 00001011 11 0B VT (vertical tab) 00001100 12 0C FF (NP form feed, new page) 00001101 13 0D CR (carriage return) 00001110 14 0E SO (shift out) 00001111 15 0F SI (shift in) 00010000 16 10 DLE (data link escape) 00010001 17 11 DC1 (device control 1) 00010010 18 12 DC2 (device control 2) 00010011 19 13 DC3 (device control 3) 00010100 20 14 DC4 (device control 4) 00010101 21 15 NAK (negati-ve acknowl-edge) 00010110 22 16 SYN (synchr-onous idle) 解释 空字符 标题开始 正文开始 正文结束 传输结束 请求 收到通知 响铃 退格 水平制表符 换行键 垂直制表符 换页键 回车键 不用切换 启用切换 数据链路转义 设备控制 1 设备控制 2 设备控制 3 设备控制 4 拒绝接收 同步空闲 朗译电子科技 ☏ 025-52158963 www.doflye.net 399 / 404 00010111 23 17 ETB (end of trans. block) 00011000 24 18 CAN (cancel) 00011001 25 19 EM (end of medium) 00011010 26 1A SUB (substit-ute) 00011011 27 1B ESC (escape) 00011100 28 1C FS (file separat-or) 00011101 29 1D GS (group separat-or) 00011110 30 1E RS (record separat-or) 00011111 31 1F US (unit separat-or) 00100000 32 20 00100001 33 21 ! 00100010 34 22 " 00100011 35 23 # 00100100 36 24 $ 00100101 37 25 % 00100110 38 26 & 00100111 39 27 ' 00101000 40 28 ( 00101001 41 29 ) 00101010 42 2A * 00101011 43 2B + 00101100 44 2C , 00101101 45 2D - 00101110 46 2E . 传输块结束 取消 介质中断 替补 溢出 文件分割符 分组符 记录分离符 单元分隔符 空格 朗译电子科技 ☏ 025-52158963 www.doflye.net 400 / 404 00101111 47 2F / 00110000 48 30 0 续表 00110001 49 31 1 00110010 50 32 2 00110011 51 33 3 00110100 52 34 4 00110101 53 35 5 00110110 54 36 6 00110111 55 37 7 00111000 56 38 8 00111001 57 39 9 00111010 58 3A : 00111011 59 3B ; 00111100 60 3C < 00111101 61 3D = 00111110 62 3E > 00111111 63 3F ? 01000000 64 40 @ 01000001 65 41 A 01000010 66 42 B 01000011 67 43 C 01000100 68 44 D 朗译电子科技 ☏ 025-52158963 www.doflye.net 401 / 404 01000101 69 45 E 01000110 70 46 F 01000111 71 47 G 01001000 72 48 H 01001001 73 49 I 01001010 74 4A J 01001011 75 4B K 01001100 76 4C L 01001101 77 4D M 01001110 78 4E N 01001111 79 4F O 01010000 80 50 P 01010001 81 51 Q 01010010 82 52 R 01010011 83 53 S 01010100 84 54 T 01010101 85 55 U 01010110 86 56 V 01010111 87 57 W 01011000 88 58 X 01011001 89 59 Y 01011010 90 5A Z 01011011 91 5B [ 01011100 92 5C \ 朗译电子科技 ☏ 025-52158963 www.doflye.net 402 / 404 01011101 93 5D ] 01011110 94 5E ^ 01011111 95 5F _ 01100000 96 60 ` 01100001 97 61 a 01100010 98 62 b 续表 01100011 99 63 c 01100100 100 64 d 01100101 101 65 e 01100110 102 66 f 01100111 103 67 g 01101000 104 68 h 01101001 105 69 i 01101010 106 6A j 01101011 107 6B k 01101100 108 6C l 01101101 109 6D m 01101110 110 6E n 01101111 111 6F o 01110000 112 70 p 01110001 113 71 q 01110010 114 72 r 朗译电子科技 ☏ 025-52158963 www.doflye.net 403 / 404 01110011 115 73 01110100 116 74 01110101 117 75 01110110 118 76 01110111 119 77 01111000 120 78 01111001 121 79 01111010 122 7A 01111011 123 7B 01111100 124 7C 01111101 125 7D 01111110 126 7E 01111111 127 7F s t u v w x y z { | } ~ DEL (delete) 删除 朗译电子科技 ☏ 025-52158963 www.doflye.net 404 / 404

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高进,我们会尽快处理。