[关闭]
@weakiwi 2015-10-05T14:59:17.000000Z 字数 778 阅读 726

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. #include<reg52.h>
  2. sbit led=P1^4;
  3. void timer(unsigned char x)
  4. {
  5. int j,k;
  6. for(j=x;j>0;j--)
  7. for(k=10;k>0;k--);
  8. }
  9. void main()
  10. {
  11. while(1)
  12. {
  13. led = 1;
  14. timer(1);
  15. led = 0;
  16. timer(1);
  17. }
  18. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注