当前位置: 首页 > news >正文

江门建站引擎网站

江门建站,引擎网站,什么类型的网站容易被百度抓取,国际物流网站制作模板目录 点亮第一个LED灯单片机 GPIO 介绍GPIO 概念GPIO 结构 LED简介软件设计点亮D1指示灯LED流水灯 橙色 点亮第一个LED灯 单片机 GPIO 介绍 GPIO 概念 GPIO#xff08;general purpose intput output#xff09; 是通用输入输出端口的简称#xff0c; 可以通过软件来控制… 目录 点亮第一个LED灯单片机 GPIO 介绍GPIO 概念GPIO 结构 LED简介软件设计点亮D1指示灯LED流水灯 橙色 点亮第一个LED灯 单片机 GPIO 介绍 GPIO 概念 GPIOgeneral purpose intput output 是通用输入输出端口的简称 可以通过软件来控制其输入和输出。 51 单片机芯片的 GPIO 引脚与外部设备连接起来 从而实现与外部通讯、 控制以及数据采集的功能。 不过 GPIO 最简单的应用还属点亮 LED 灯了 只需通过软件控制 GPIO 输出高低电平即可。 当然GPIO 还可以作为输入控制 比如在引脚上接入一个按键 通过电平的高低判断按键是否按下。 我所使用的51单片机型号为STC89C52 此芯片共有40 引脚 芯片引脚图如下图所示 当然不是所有引脚都是 GPIO 51 单片机引脚可以分为这么几大类 电源引脚 引脚图中的 VCC、 GND 都属于电源引脚。晶振引脚 引脚图中的 XTAL1、 XTAL2 都属于晶振引脚。复位引脚 引脚图中的 RST/VPD 属于复位引脚 不做其他功能使用。下载引脚 51 单片机的串口功能引脚TXD、 RXD 可以作为下载引脚使用GPIO 引脚 引脚图中带有 Px.x 等字样的均属于 GPIO 引脚。 从引脚图可以看出GPIO 占用了芯片大部分的引脚 共达 32 个 分为了 4 组 P0、 P1、P2、 P3 每组为 8 个 IO 而且在 P3 组中每个 IO 都具备额外功能 只要通过相应的寄存器设置即可配置对应的附加功能 同一时刻 每个引脚只能使用该引脚的一个功能。 GPIO 结构 51 单片机所有 IO 口都是双向的 即可以作为输入也可以作为输出使用。由于 P0 口是漏极开路的 所以要操作 P0 口必须外接上拉电阻 其他P1、 P2、 P3 口都内部自带上拉电阻 可以不加 如果要增强 IO 口驱动能力 可以外接上拉电阻。 LED简介 LED 即发光二极管。 它具有单向导电性 通过 5mA 左右电流即可发光 电流越大 其亮度越强 但若电流过大 会烧毁二极管 一般我们控制在 3 mA-20mA之间 通常我们会在 LED 管脚上串联一个电阻 目的就是为了限制通过发光二极管的电流不要太大 因此这些电阻又可以称为“限流电阻” 。 当发光二极管发光时 测量它两端电压约为 1.7V 这个电压又叫做发光二极管的“导通压降” 。下图左右分别为直插式发光二极管和贴片式发光二极管实物图。 发光二极管正极又称阳极 负极又称阴极 电流只能从阳极流向阴极。 直插式发光二极管长脚为阳极 短脚为阴极。 仔细观察贴片式发光二极管正面的一端有彩色标记通常有标记的一端为阴极。 软件设计 点亮D1指示灯 本章所要实现的功能是 点亮 D1 发光二极管 即让 P0.0 管脚输出一个低电平。 完成后可再控制 D1 指示灯闪烁 即间隔一定时间点亮和熄灭 D1 指示灯。 #include reg52.hsbit ledP2^0;void main() {led0;while(1){}}编译一下如下图所示 可以看到没有错误 也没有警告。 从编译信息可以看出 我们的代码占用FLASH 大小为 19 字节 所用的 SRAM 大小为 9 个字节90 。 这里我们解释一下 编译结果里面的几个数据的意义 Code 表示程序所占用 FLASH 的大小。data 数据储存器内部 RAM 占用大小。xdata 数据储存器外部 RAM 占用大小。 有了这个就可以知道你当前使用的 flash 和 sram 大小了。 一定要注意的是程序的大小不是.hex 文件的大小 而是编译后的 Code 和 data 之和。 LED流水灯 #include reg52.h #includeintrins.htypedef unsigned int u16; typedef unsigned char u8;#define led P2//延时函数i1时大约延时10us void delay(u16 i) {while(i--); }void main() {u8 i;led~0x01;//0x01 取反即为 0xFEdelay(5000);//大约延时450mswhile(1){for(i0;i8;i){P2~(0x01i);//将 1 右移 i 位 然后将结果赋值到 P2 口delay(50000);}} }进入 main 函数后首先 led~ 0x01 因为 LED 是低电平点亮 所以 0X01 取反后的结果是 0XFE 对应二进制数为 1111 1110 即最低位为 0 因此最开始的 D1指示灯会点亮然后延时一段时间进入while循环 由于要实现8个LED从D1-D8循环点亮 因此可以使用 for 循环语句循环 8 次 每循环一次点亮的小灯向右移动一个即 P2 口输出的低电平要左移一位 因此可以使用 P2~(0x01i);语句实现。 0X01i 表示0x01 中的 1 移动移动 i 位。因为1高电平不会让LED点亮需要取反后变为低电平才能点亮所以最后的结果需要取反后给P2口. 左移_crol_、 右移_cror_函数的使用 上面的代码是通过for 循环语句实现移位但 KEIL C51 软件内也有对应的移位库函数左移函数是_crol_() 右移函数是_cror_() 这两个函数在在 intrins.h 头文件当中。 该移位函数实现的移位功能就相当于一个队列内循环移动 如果是左移 那么最高位就被移到最低位了 次高位变为最高位 依次类推。使用左移、 右移函数实现的流水灯操作代码如下 #include reg52.h #includeintrins.htypedef unsigned int u16; typedef unsigned char u8;#define led P2void delay(u16 i) {while(i--); }void main() {u8 i;led~0x01;delay(5000);while(1){for(i0;i7;i){led_crol_(led,1); //将led左移一位delay(50000);}for(i0;i7;i){led_cror_(led,1); //将led右移一位delay(50000);}}}
http://www.hkea.cn/news/14423398/

相关文章:

  • 青岛网站建设网站做景观设施的网站
  • 百度网盟网站有哪些专业网站建设是哪家
  • 深圳html5网站建设价格美团网站建设
  • 网站站点不安全东莞百度seo新网站快速排名
  • 做的很漂亮的网站微网站制作软件
  • 淮安建设网站响应式网站源码.net
  • 网站建设培训班学费p2vr做的网站上传
  • 怎么做自己的网站免费wordpress 调用头尾
  • 网站实施方案凤凰网最新军事新闻
  • 做印刷网站公司简介wordpress最新版获取标签
  • 哪个做h5的网站好用网站建设的编程语言
  • 网站怎么做成软件线上推广活动
  • 网站后台排版工具注册网站
  • 做网站需要学习哪些wordpress 备份云盘
  • 金华公司做网站万网如何购买网站空间
  • 网站建设按年收费吗广州市建设工程交易中心网站
  • 哪个网站可以免费做电子请柬一键生成app工具
  • 网站开发需求分析主要内容建设网站需要掌握什么编程语言
  • 做网站找景安免费建设淘宝客网站
  • 做网站的电脑配置win7如何做网站服务器
  • 网站注册商标广东室内设计公司排名
  • 郑州企业网站优化公司德惠网站建设
  • 高品质的网站开发网站建设推广费怎么做账
  • 成武菏泽网站建设公司做网站之前要准备什么
  • 刚做优化的网站什么能更新做网站的手机软件
  • 广州网站建设网页制作开发健展公司
  • 外贸网站该怎么做怎样做网贷网站
  • 软件设计师网站有哪些手机制作模板图片的app
  • 淘宝做网站价格创业平台网站
  • 兴县网站建设上海响应式网站开发