十天学会单片机Day0点亮LED

Posted kuotian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十天学会单片机Day0点亮LED相关的知识,希望对你有一定的参考价值。

C51常用的数据类型
数据类型 关键字 所占位数 表示数范围
无符号字符型 unsigned char 8 0~255
有符号字符型 char 8 -128~127
无符号整型 unsigned int 16 0~65535
有符号整型 int 16 -32768~32767
无符号长整型 unsigned long 32 0~2^32-1
有符号长整型 long 32 -2^31~2^31-1
单精度实型 float 32 3.4e-38~3.4e38
双精度实型 double 64 1.7e-308~1.7e308
位类型 bit 1 0~1

 

 

 

 

 

 

 

 

 

 

 

2.C51数据类型扩充定义

     单片机内部有很多特殊功能寄存器,每个寄存器在单片机内部都分配有唯一的地址,一般根据寄存器的功能不同赋予不同名称。操作时,需声明,即将地址编号赋给这个名称。(见reg52.h头文件)

sfr 特殊功能寄存器的声明,声明一个8位的寄存器
sfr16 16位特殊功能寄存器的数据声明
sbit 特殊功能位声明,也就是声明某一个特殊功能寄存器中的某一位
bit 位声明变量,当定义一个位变量时可使用此符号

 

 

 

 

3.为什么发光二极管接1kΩ电阻

  发光二极管,通过电流I为5mA时即可发光,一般控制在3~20mA,电流过大为烧毁。

  而发光二极管的导通压降为1.7V,而供电为5V。 3.3 = 5 - 1.7。

  3.3V / 1000Ω = 3.3mA

  大约接1kΩ电阻时,二极管可正常发光,此电阻又称 限流电阻。

 

4.单片机晶振旁两个电容作用

  ①一般单片机的晶振工作于并联谐振状态,也可以理解为谐振电容的一部分。(为满足谐振条件所以要对称)

  它是根据晶振厂家提供的晶振要求负载电容选值的,换句话说,晶振的频率就是在它提供的负载电容下测得的,能最大限度的保证频率值的误差。也能保证温漂等误差。

  从原理上讲直接将晶振接到单片机上,单片机就可以工作。但这样构成的振荡电路中会产生谐波(也就是不希望存在的其他频率的波),这个波对电路的影响不大,但会降低电路的时钟振

  荡器的稳定性。即只有在外部所接电容为匹配电容的情况下,振荡频率才能保证在标称频率附近的误差范围内。电容在此起到了滤波(去杂波)的作用。

  ②由于单片机电源为开关电源,不稳定,两个去耦电容起到缓冲稳压的作用。

  比较常用的为15p-30pf之间.两个电容的取值都是相同的,或者说相差不大,如果相差太大,容易造成谐振的不平衡,容易造成停振或者干脆不起振。

 

5.锁存器

 

74HC573

技术分享技术分享

OE(上划线) out Enable 使能端:低有效。这里直接接地,表示有效。若接高Q表现出高阻态,即其电平高低取决于与其相连的电路。

LE由单片机控制,LE高时,Q=D;可以实时控制LED灯的亮灭。LE低时,D=Q0,Q0为上一次的电平状态。

  由于单片机引脚有限,同个IO口,用于控制不同电路。将LE置低,则LED不会随IO电平变化而变化,将其忽略,减少其影响。

 

6.点亮第一个LED

位操作法

1 #include <reg52.h>
2 sbit LED0 = P1^0;
3 
4 int main()
5 {
6     LED0 = 0;
7     return 0;
8 }

总线法

1 #include <reg52.h>
2 
3 int main()
4 {
5     P1 = 0xFE;    //由高到低P1^7 ……P1^0
6     return 0;
7 }

 

以上是关于十天学会单片机Day0点亮LED的主要内容,如果未能解决你的问题,请参考以下文章

如何点亮一个LED灯

51单片机学习笔记4 新建工程及点亮LED实战

51单片机学习笔记4 新建工程及点亮LED实战

使用51单片机点亮我们的点阵灯

51单片机入门LED点亮的背后

8051单片机实战分析(以STC89C52RC为例) | 01 - 点亮一个LED