找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机短路检测系统proteus仿真

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

主要实现了单片机焊接短路检测功能
程序: 单片机短路检测.zip (52.58 KB, 下载次数: 25)

  1. #include<main.h>
  2. #include<LCD.h>

  3. sbit k1=P1^0;//
  4. sbit bell=P1^7;
  5. sbit master=P3^5;
  6. sbit slave1=P3^6;
  7. sbit slave2=P3^7;
  8. uchar m,n;
  9. uchar change;
  10. uchar number=1;
  11. uchar sbuf;
  12. void Delay(uint x)//延时函数
  13. {
  14.         while(x--);
  15. }
  16. void serial_int()//串口初始化
  17. {
  18.          TMOD=0X22;//t1工作在方式2
  19.          SM0=1;//串口工作在方式2
  20.          SM1=1;
  21.          SM2=1;//使能rb8和TB8才能
  22.          REN=1;//接收
  23.          
  24.          TH1=0xF3;//2400BIT/S  485通信速度
  25.          TL1=0xF3;

  26.      TH0=0xF0;
  27.          TL0=0x0F;
  28.          TR1=1;//打开计数器
  29.          EA=1;//打开中断
  30.          ES=1;//打开串口中断
  31.          ET0=1;//打开T0中断
  32. }

  33. void time0_isr() interrupt 1
  34. {
  35.          TH0=0xF0;
  36.          TL0=0x0F;
  37.          bell=~bell;//蜂鸣器响
  38. }

  39. void com_isr() interrupt 4 //进入串口中断
  40. {

  41.   TH1=0xF3;//2400BIT/S
  42.   TL1=0xF3;
  43.   RI=0;//复位接受标志位
  44.   sbuf=SBUF;//接受数据
  45. }


  46. void key1()//切换成单片机间的切换
  47. {
  48.         if(k1==0)
  49.     {
  50.          change++;
  51.                 if(change>1)
  52.                 change=0;
  53.                 n=0;
  54.         if(change==0)
  55.         {
  56.                         slave1=1;//单片机1发送模式
  57.                         slave2=0;//单片机2关闭
  58.                         number=1;
  59.                 }
  60.                 else
  61.                 {
  62.                         slave1=0;//单片机2发送模式
  63.                         slave2=1;//单片机1关闭
  64.                          number=2;
  65.                 }
  66.     }
  67. while(k1==0);
  68. }


  69. void main()//主函数
  70. {
  71.   
  72.         lcd_init();//LCD初始化
  73.         welcome();//开机欢迎
  74.     Delay(50000);
  75.         Delay(50000);//延时
  76.     serial_int();//初始化485(中断)
  77.     master=0;//设置master为接受
  78.         slave1=1;//1号机发送
  79.         slave2=0;//2号机等待
  80.         while(1)
  81.         {
  82.                  key1();//按键
  83.          if(sbuf==0xff)//如果没有短路
  84.                 {
  85.           if(n==0)
  86.           {
  87.                         write_lcdcom(0x01);//清屏
  88.                         all_ok(number);
  89.             n=1;
  90.           }
  91.                   TR0=0;
  92.           m=0;
  93.          }
  94.                 else//如果从机有短路
  95.                 {    if(m==0)
  96.                          {
  97.                  write_lcdcom(0x01);//清屏
  98.                          display_1602(number);
  99.                  m=1;
  100.                  n=0;
  101.                          }
  102.                      lcd_printf(sbuf,0xC3);//显示从机短路的号数
  103.                          TR0=1;//打开警报器
  104.                 }
  105.         }

  106. }
复制代码



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

使用道具 举报

板凳
ID:189773 发表于 2017-4-18 19:06 | 只看该作者
楼主,没有protues 文件啊。
回复

使用道具 举报

沙发
ID:143203 发表于 2016-12-23 16:49 | 只看该作者
protues 文件呢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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