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

温州的高端设计公司赣州seo顾问

温州的高端设计公司,赣州seo顾问,武汉市官方网站,重视政府网站建设目录 1.LED介绍 2.硬件电路 3.程序设计 3.1.点亮一颗LED 3.2.LED闪烁 3.3.LED流水灯实现 1.LED介绍 发光二极管也具有二极管普遍的特性单向导电性,有阳极和阴极之分 ,上图左侧式插件式LED ,长的引脚是阳极;左侧是贴片式的带…

目录

1.LED介绍

2.硬件电路

3.程序设计

3.1.点亮一颗LED

3.2.LED闪烁

3.3.LED流水灯实现


1.LED介绍

       发光二极管也具有二极管普遍的特性单向导电性,有阳极和阴极之分 ,上图左侧式插件式LED ,长的引脚是阳极;左侧是贴片式的带色的一端是阴极,箭头指向是阴极,也就是电流的流向。二极管阳极接电源,阴极接地。电流大小一般在3-20ma之间,若是电流再大容易烧坏二极管。二极管的亮度和电流的大小有关,电流越大,发光二极管就越亮,自身带有导通压降1.7V 。

2.硬件电路

        为防止发光二级管因为电流而烧毁,需要串联一个电阻来限制电流的大小,硬件连接电路如下

        图中的电阻是排阻内有四个电阻并,阳极接在电源处,阴极经过排阻和单片机的I/0相连接,这样只有单片机输出的是低电平的时候,电路导通,二极管才能发光。

3.程序设计
3.1.点亮一颗LED

        假设控制是D1发光二极管,那么P20引脚只有输出低电平的情况下,电路导通。我们直接将P20口置为0,这样端口就是低电平了。

sbit LED1 = P2^0;
void main()
{LED1 = 0;while(1){}
}

如何编程 P2.0管脚输出低电平

         1.先定义管脚 :使用一个关键字 sbit 是特殊功能寄存器的某一个位的位定义 P2寄存器 ,语句加分号结束

        2.直接将定义的引脚置为0 。

        程序从main函数执行,单片机不断的循环执行程序 ,如果有while就会一直执行while循环。

        code 程序flash大小 data ram 数据占用的大小 xdata 外部的ram 没有的话就不用调用了

        编译之后才会出现的上述的单位是字节

3.2.LED闪烁

        使用循环语句让D1二极管一亮一灭,想要实现可以让P2.0GPIO口一会输出低电平,一会儿输出高电平,当然还要有延时,人肉眼的识别要大于20-50ms。这里的延时程序是不准确的,想要精确的定时是要有定时器的。u16的最大值是65535。这里的延时时长和单片机的晶振频率有关。

#include <REGX52.H>
sbit LED1 = P2^0;void delay_10us(u16 ten_us)//当传输ten_us=1的时候,大约10us
{while(ten_us--);
}
void main()
{while(1){LED1 = 0;delay_10us(500000);LED1 = 1;delay_10us(500000);}}
3.3.LED流水灯实现

        D1-D8一次点亮,移位操作和循环(while)的结合 ,对8个I/O进行操作,

        宏定义可以定义一组寄存器 ,定义P2端口 PORT端口,在宏定义的时候不用加分号

        P2.7是高位 P2.0是低位 左移之后,低位补0可以使用0x01移动之后取反,这样就会有一个二极管是常量的,总共有8个二极管,循环体要循环八次才能让每一个二极管亮一遍。

#include <REGX52.H>typedef unsigned char u8;
typedef unsigned int u16;#define LED_PORT    P2 void delay_10us(u16 ten_us)
{while(ten_us--);
}
void main()
{while(1){u8 i = 0;for(i = 9; i < 8;i++){LED_PORT = ~(0X01<<i);delay_10us(50000);}        }}

一个来回从D1-D8,再从D8-D1;使用的是 <intrins.H>头文件中包含的函数

#include <REGX52.H>
#include <intrins.H>
typedef unsigned char u8;
typedef unsigned int u16;#define LED_PORT    P2 //void delay_10us(u16 ten_us)
{while(ten_us--);
}
void main()
{u8 i = 0;LED_PORT = ~(0x01);delay_10us(50000);while(1){for(i = 0; i < 7;i++)//这里循环了7次,因为刚开始D1灯已经亮了{LED_PORT = _crol_ (LED_PORT,1);//向左移动delay_10us(50000);}        for(i = 0; i < 7;i++){LED_PORT = _cror_(LED_PORT,1);//向右移动delay_10us(50000);}        }}

_crol_和_cror_和C语言中的位移符号是不一样的。

        使用函数进行位移情况,二级制的补码是首位相接的,如下

_crol_(11111110,1);
1111 1110 比如每一次移动一次 左移为例
1111 1101
1111 1011  //首位相连 _crol_(11111110,1);

        使用位移操作符<< 左移为例 移动一位,空白的区域填上0。

1111 1110
1111 1100
1111 1000 //每一次移动一位 <<1

http://www.dinnco.com/news/41934.html

相关文章:

  • 建立wordpress网站吗杭州优化公司哪家好
  • 南通通州住房和城乡建设网站网站开发建站
  • 网站建设分几种百度青岛代理公司
  • 做地暖工程的网站google广告
  • 网站建设 广西宁德市旅游景点大全
  • 哪些网站专做自媒体的2023搜索最多的关键词
  • 做网站的叫什么软件网站是怎么建立起来的
  • 重庆江北区网站建设公司百度开户
  • 做网站需要注意的风险优化落实防控措施
  • 专门做app的原型网站搜索引擎营销名词解释
  • 网站建设著作权搜什么关键词比较刺激
  • 微信公众号怎么做推送seo排名优化教程
  • 什么网站的新闻做参考文献怎么自己做一个小程序
  • 网站制作案例市场石家庄seo结算
  • 做映射后 内网无法通过域名访问网站今日热搜新闻头条
  • 网站开发有名的公司谷歌google浏览器官方下载
  • 建筑网bim二级结构21期全套试题石家庄seo报价
  • 哪些网站有web做如何进行市场推广
  • 嘟嘟嘟在线观看播放免费全域seo
  • 湖州城市投资建设集团网站百度竞价在哪里开户
  • 长沙网站建设哪个好seo免费浏览网站
  • wordpress网站描述插件山西百度查关键词排名
  • 网站建设怎么弄代发百度首页排名
  • 做糕点的网站小红书推广引流
  • 哈尔滨公司网站建设市场推广怎么做
  • wordpress 4 导航seo营销工具
  • 用dreamriver做html网站google关键词优化排名
  • 网站建设维护是做什么的网站seo分析案例
  • 做石材的一般用什么网站宁波关键词网站排名
  • 开题报告旅游网站开发谷歌商店下载官网