一、创建新项目
将文件存在单独文件夹中
根据不同的单片机类型,选择不同的Device。51单片机选择AT89C52
在Project——Target——Group中创建源文件(.c)
在Options——Target中勾选“Create HEX File”
二、以控制管脚的电平控制电子元件
1、管脚:单片机的MCU伸出许多管脚与其他电子元件相连,以其作为通道传递信息(电)
(如下P (N.n))
2、二进制与电平
2.1、机器语言:在计算机(MCU是其中一种)中,以二进制(0101011)存储数据
2.2、电平:以高电平(电压大于0)对应1,低电平(接地,电压为0)对应0
3.电器的通断
3.1、当电器的一端为低电平,另一边为高电平时,电器连通。
而当两端电平相同时,断开。
3.2、因此,只需控制MCU在对应的管脚处输出0/1,即可控制对应电器的通断
三、编写程序控制管脚
1、包含设备对应的头文件
#include <REGX52.H>
#include <INTRINS.H>
2、控制单独管脚
P2_0 = 0
P2_1 = 0
P2_2 = 0
3、控制多个相关管脚
3.1、多个具有相似功能管脚的通常会被集成为一个“大管脚”(如上的P2),方便操作
3.2、“大管脚”的控制方式:
3.2.1、十六进制:二进制每4个转化为一个十六进制数
(在编程中以0x开头的数表示十六进制数)
3.2.2、通常一个“大管脚”包含8个管脚,因此需要2个十六进制数来表示
P2 = 0xFF
3.2.3、高位对高位,低位对低位
P2 = 0xB6 = 1 0 1 1 0 1 1 0
| | | |
| | | |
| | | |
P2_7 P2_6 P2_2 P2_0
四、独立按键控制LED灯
#include <REGX52.H>
#include <INTRINS.H>
void Delay(int ms) //@11.0592MHz
{
int n;
unsigned char i, j;
for( n = 0;n<ms;n++)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
void main()
{
int two,yiwei = 0x01;
while(1)
{
if(P3_1 == 0)
{
Delay(20);
while(P3_1 == 0)
{
}
Delay(20);
two++;
P2 = ~two;
}
if(P3_2 == 0)
{
Delay(20);
while(P3_2 == 0)
{
}
Delay(20);
P2 = ~yiwei;
if(yiwei == 0x80)
{
yiwei = 0x01;
}
else
{
yiwei = yiwei<<1;
}
}
}
}