0.LED基础控制
典中典之发光二极管,我从小学到大长脚是正级,断脚是负极 里面大块的是负级,小块的是正极
电阻标注:
[*]若标注102 -> 代表着为1K电阻(10^2)
[*]若标注473 -> 代表着为47K电阻(47 * 10^3)
以此类推 其他器件标注也为类似模式
RP7 RP9模块为限流电阻
此单片机使用TTL规范(高电平5V 低电平0V)
要让上图LED亮,则引脚端要为低电平
单片机通过CPU访问寄存器,寄存器通过驱动器控制引脚,进而控制LED
单片机控制电路实则就是玩弄寄存器
C语言位运算
1. 点亮一个LED
#include <REGX52.H>
void main()
{
//P2 = 0xFE; // 1111 1110
P2 = 0x55; // 0101 0101
// 对变量进行赋值时使用16进制
// 相当于终止对引脚的操作
while(1)
{
}
}其中0x代表16进制
2. 使LED闪烁
#include <REGX52.H>
#include <INTRINS.H>
// 使程序休眠500ms
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay500ms();
P2 = 0XFF;
Delay500ms();
}
}3. 流水灯设计
#include #include void Delay500ms() //@11.0592MHz{ unsigned char i, j, k; _nop_(); i = 4; j = 129; k = 119; do { do { while (--k); } while (--j); } while (--i);}void main(){ unsigned char i = 0x01;// 初始化为0x01,即二进制的0000 0001,表示第一个LED先点亮 while(1) { P2 = ~i;// 将i的值输出到P2端口,控制LED灯的状态 Delay500ms();// 延时500ms i代表着为1K电阻(10^2)若标注473 -> 代表着为47K电阻(47 * 10^3)
以此类推 其他器件标注也为类似模式</ul>![]
RP7 RP9模块为限流电阻
此单片机使用TTL规范(高电平5V 低电平0V)
要让上图LED亮,则引脚端要为低电平
单片机通过CPU访问寄存器,寄存器通过驱动器控制引脚,进而控制LED
单片机控制电路实则就是玩弄寄存器
C语言位运算
![]
1. 点亮一个LED
#include <REGX52.H>
void main()
{
//P2 = 0xFE; // 1111 1110
P2 = 0x55; // 0101 0101
// 对变量进行赋值时使用16进制
// 相当于终止对引脚的操作
while(1)
{
}
}其中0x代表16进制
2. 使LED闪烁
#include <REGX52.H>
#include <INTRINS.H>
// 使程序休眠500ms
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay500ms();
P2 = 0XFF;
Delay500ms();
}
}3. 流水灯设计
#include #include void Delay500ms() //@11.0592MHz{ unsigned char i, j, k; _nop_(); i = 4; j = 129; k = 119; do { do { while (--k); } while (--j); } while (--i);}void main(){ unsigned char i = 0x01;// 初始化为0x01,即二进制的0000 0001,表示第一个LED先点亮 while(1) { P2 = ~i;// 将i的值输出到P2端口,控制LED灯的状态 Delay500ms();// 延时500ms i
页:
[1]