找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5481|回复: 0
打印 上一主题 下一主题
收起左侧

单片机中断程序(proteus仿真实现)

[复制链接]
跳转到指定楼层
楼主

单片机中断的仿真电路图


仿真文件下载:http://www.51hei.com/bbs/dpj-50777-1.html

  1. /*
  2. 这段代码特别重要,有两个东西要记住‘

  3. 1是  不能给P3^2这种类型的变量赋值,只能给 P3赋值
  4. 2是  不能把P3^2Z这种类型的变量写到while(括号里),否则无论P3^2是等于0还是等于1都会出现死循环
  5. */

  6. #include <reg52.h>
  7. //共阳数码管显示0-9
  8. unsigned char DisNumber[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. char i = 0;         
  10. void delay100ms(void)   //误差 0us
  11. {
  12.     unsigned char a,b,c;
  13.     for(c=19;c>0;c--)
  14.         for(b=20;b>0;b--)
  15.             for(a=130;a>0;a--);
  16. }

  17. void INTERRUPT() interrupt 0 using 0
  18. {          
  19.   if (i < 9)
  20.     i += 1;
  21.   else
  22.     i = 0;
  23.   delay100ms();
  24.   while (P3 == 0XFB);          //如果写成 while (!P3^2)或者写成 while (P3^2) 死循环了,因为不管P3^2值是0还是1都会出现死循环
  25. }

  26. void main(void)
  27. {
  28.   //P3 = 0XFF;
  29.   EA = 1;
  30.   EX0 = 1;
  31.   IT0 = 0;
  32.   
  33.   while (1)
  34.     P0 = DisNumber[i];
  35. }
  36. //小月子2016年5月21日编辑   如果您有什么不理解的地方请加小月子
  37. //小月子是个电子发烧友,小月子电子网店卖的是电子电路类、编程类学习资料教学视频
  38. //请关注我的网
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表