单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机看门狗报警系统proteus仿真与源程序

[复制链接]
跳转到指定楼层
楼主
一个51单片机做的看门狗报警系统,新人,我就试试发帖

数码管倒数30秒,时间到报警
按下独立按键复位

P3.5接霍尔3144E 输出脚
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

单片机源程序如下:
  1. #include        <reg52.h>
  2. #define        uchar        unsigned char
  3. #define        uint        unsigned int
  4. uchar n3,n4;
  5. unsigned long int pinglv;

  6. void Delay(uint z);// 延时函数;

  7. sbit  Show_LED1=P1^6;//        位选1
  8. sbit  Show_LED2=P1^7;//        位选2

  9. sbit  Show_LED3=P2^2;//        位选1
  10. sbit  Show_LED4=P2^3;//        位选2                                       

  11. sbit  Show_LED5=P2^4;//        位选1
  12. sbit  Show_LED6=P2^5;//        位选2
  13. sbit  Show_LED7=P2^6;//        位选1
  14. sbit  Show_LED8=P2^7;//        位选2                                       


  15. sbit beep=P1^5;
  16. sbit k1=P1^0;

  17. uchar sec=30;
  18. uchar geshu;
  19. uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
  20.                           0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};// 数码管0-F
  21.   void Delay(uint z)// 延时函数;
  22. {
  23.    uint a,b;
  24.    for(a=z;a>0;a--)
  25.      for(b=100;b>0;b--);
  26. }

  27. void        Display(void) // 扫描显示
  28.         {
  29.                  P0=table[sec/10];//十位                //依次扫描4位数码管
  30.                  Show_LED1=0;                        //P1^6
  31.                  Delay(1);
  32.      Show_LED1=1;                                //P1^6
  33.                
  34.                  P0=table[sec%10];//个位            //依次扫描5位数码管
  35.                  Show_LED2=0;          //P1^7
  36.                  Delay(1);
  37.      Show_LED2=1;                  //P1^7
  38.                                                   
  39.                 /*
  40.                  P0=table[sec/10];                //依次扫描4位数码管
  41.                  Show_LED3=0;
  42.                  Delay(1);
  43.      Show_LED3=1;        
  44.                
  45.                  P0=table[sec%10];                //依次扫描5位数码管
  46.                  Show_LED4=0;
  47.                  Delay(1);
  48.      Show_LED4=1;        
  49.                 */        
  50. }

  51. void time0(void) interrupt 1 using 2
  52. {
  53.    TH0=(65535-5000)/256;
  54.    TL0=(65535-5000)%256;
  55.    n3++;
  56.    if(n3==200)//时间计数        1秒到
  57.     {
  58.       n3=0;
  59.                         if(sec>0)
  60.                         {
  61.             sec--;
  62.                         }
  63.                         
  64.     }
  65. }
  66. main()
  67. {
  68.         uchar k;
  69.   TMOD=0X11;//工作模式设置 T1计数 T0 定时
  70.   TH0=(65536-50000)/256;
  71.   TL0=(65536-50000)%256;
  72.   
  73.   TH1=0;
  74.   TL1=0;  
  75.   
  76.   ET0=1;//开定时器0中断
  77.   TR0=1;
  78.          EA=1;//开总中断
  79. while(1)
  80. {
  81.          Display();// 扫描显示
  82.          if(P1!=0XFF)
  83.          {
  84.           sec=30;
  85.          }
  86.          
  87.          if(sec==0)
  88.                         {
  89.                                 beep=!beep;
  90.                          if(k++>30)
  91.                          {
  92.                                  k=0;P3=~P3;
  93.                          }
  94.                                 
  95.                         }
  96.                         else
  97.                         {
  98.                         
  99.                           beep=1;
  100.                                 P3=0XFF;
  101.                         }
  102. ……………………

  103. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
看门狗报警系统.rar (96.26 KB, 下载次数: 0)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛

Powered by 单片机教程网

快速回复 赌球网|真人赌球网|世界杯赌球网 返回列表