proteus1

电子

proteus折腾第一步,led闪起来!

标签(空格分隔): 电子


写实验预习报告的时候突然诞生一个想法,把和追求的女性首次外出玩密室逃脱内破解的定时炸弹复刻一个。然后她过生日的时候送给她,会不会很浪漫。我天生缺乏这方面的东西,就不妄加判断了,总之有想法首先需要去做啊。
首先列下大概的思路:

  1. 需要一个光线或者热源传感器,用来启动数码管开始计时
  2. 需要若干个中断,用来减少时间或者控制一个弹出开关一类的东西
  3. 基本的复位电路是必须的,这样可以反复玩啊
  4. 最好能配合键盘做到可编程,这个只能说是尽力吧

由此推出可能需要的元器件:

  1. 51单片机一个
  2. 晶振
  3. 6位或者8位数码管
  4. 键盘
  5. 插线孔一类的东西

然而我当然不可能一下子就把上面的事情全部搞掂啦。首先需要做的就是在笔记本上测试下我的想法,这时候我就找到了神软proteus。主要是因为网上资料比较多而且这个软件也的确很小。
安装过程还算简单,反正按照步骤走就ok啦。接下来步入正题,如何做一个最基本的led循环闪烁的电路。必须了解的一点就是proteus默认隐藏了vcc和gnd,所以最小系统就不用做啦。

  1. 首先添加必要元件此处输入图片的描述先点击小箭头,再点击p,这样就可以在元件库里面搜索元件啦。这次要用到的是80c51、led-red,搜索完添加即可。此处输入图片的描述
  2. 添加完后,再在设计网格内放置元件并连线此处输入图片的描述
  3. 最后给单片机载入hex文件并仿真。选定单片机,按下ctrl+e,然后选择你编译得到的hex文件。此处输入图片的描述
  4. 最后按下ctrl+f12就可以看到仿真结果啦

附上代码(乱写的,只求有个效果,不严谨之处还望见谅):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<reg52.h>
sbit led=P1^4;
void timer(unsigned char x)
{
int j,k;
for(j=x;j>0;j--)
for(k=10;k>0;k--);
}
void main()
{
while(1)
{
led = 1;
timer(1);
led = 0;
timer(1);
}
}