其他物联网感知方面内容见:目录
用到的软件:
keil(不用全部下载,按自己需要即可)
链接:https://pan.baidu.com/s/1YoZbjIKCtmVG4tNfIR326w
提取码:h5vj
proteus可以参考这个教程:
https://jingyan.baidu.com/article/d5c4b52bebf964da570dc57f.html
LED点灯
-
首先打开proteus
-
接下来我们点击P,就会出现如下所示:
-
在关键字中输入at89c51,右侧显示区内自动出现检索到的AT89C51,双击,左侧就会出现AT89C51
-
左键单击一下左侧刚刚出现的AT89C51,显示区就会显示出它的原理图,将鼠标移到右侧框中,鼠标将会变成铅笔的形状,单击左键,框中出现一个AT98C51原理图的轮廓图,可以移动。
-
鼠标移动到合适的位置上的时候,按下左键将原理图放置好就ok
-
按照此方法依次将led-red、res放在单片机旁。
-
在任何条件下,右键单击元器件的时候,元器件都会高亮显示并弹出菜单:
-
接下来我们进行简单的连线
-
下面我们给电阻R1设置属性
-
左键双击电阻,弹出电阻的属性:(电阻最好写300,避免电阻过大)
-
在电阻前加一个5V的电压
-
接下来我们先将Proteus保存下,然后去写程序
-
打开Keil软件选择project中的新建一个project
-
将会弹出CPU选项,选择Atmel中的AT89C51
-
接下来我们就新建文件图标就可以开始写程序了
#include <reg51.h>
#include <stdio.h>
sbit LED=P2^7;
void main(void)
{
LED = 0;
while(1);
}
-
接下来进行配置keil
-
点击图标进行重新编译
-
接下来我们进入到Proteus,双击我们的AT98C51元件
-
然后就可以开始仿真了
-
左键单击就会发现,灯亮了
点灯进阶——实现LED闪烁
- 其余步骤一致,只需更改代码
#include "reg51.h"
sbit led = P2^0;
void delay(unsigned int m)
{
int a=0;
int b=0;
for(a=m;a>0;a--)
{
for(b=123;b>0;b--);
}
}
void main()
{
while(1)
{
led =0;
delay(500);
led=1;
delay(500);
}
}
流水灯
- 设计如图:
- 代码如下:
#include "reg51.h"
sbit led = P2^0;
void delay(unsigned int m)
{
int a=0;
int b=0;
for(a=m;a>0;a--)
{
for(b=123;b>0;b--);
}
}
void main()
{
unsigned char key=0x01;//~0000 0001 = 1111 1110
while(1)
{
if(key == 0)
key = 0x01;
P2 = ~key;
key = key<<1;// 000 00010
delay(500);
}
}