二进制与十六进制的转换
逻辑运算
与 或 非
新建工程
芯片选择
添加文件
电阻阻值的计算
电阻的分类 上拉电阻 下拉电阻 限值电阻
真值表
OE :out enable —低电
低电平使能
Z高阻态 介于高电平和低电平之间的
LH :高低电平
LE :所存寄存器的所存端
Q0:上一次的值
锁存器的作用?
点亮二极管
位操作
寄存器操作
库函数操作
关键字: sbit
用于定义和操作单片机的特定位(bit)。它是 Keil C51 编译器中定义特殊功能寄存器(SFR,Special Function Register)中特定位的一个关键字。
所有IO口默认都是高电平。
#include <reg52.h>
sbit D1 = P2^0;
void main()
{
D1 = 0;
}
// 位操作 点亮第一个LED D1定义可查看reg52.h
#include <reg52.h>
void main()
{
//P2 = 1111 1110; 在C语言中 不可直接使用二进制赋值
P2 = 0xfc ; // 需转换成十六进制 不区分大小写 十六进制前缀 0x
//P2 = fcH; H 为十六进制后缀 但为汇编语言格式 不可使用
}
/* P2端口的名称定义在头文件中 P2 区分大小写
不同的编译器可能对语法有一定的区别 */
让LED循环闪烁
为什么会循环闪烁?
#include <reg52.h>
unsigned int A;
void main()
{
A = 50000;
P2 = 0xFE ;
while(A--);
P2 = 0xFD ;
A = 50000;
while(A--);
}
// LED灯会循环闪烁 但这种代码方式是不标准的,可以通过添加 while(1); 来实现循环闪烁 循环体内的代码会一直重复运行知道被强制终止或重启