找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机恒温控制系统程序和仿真

  [复制链接]
跳转到指定楼层
楼主
恒温程序,仿真


  1. #include<reg52.h>
  2. #include"main.h"
  3. /*****************************变量定义*****************************/
  4. unsigned char code tab[]=        {
  5.                                                                 0xeb,                                /*'0'*/
  6.                                                                 0x88,                                 /*'1'*/
  7.                                                                 0xb3,                                /*'2'*/
  8.                                                                 0xba,                                /*'3'*/
  9.                                                                 0xd8,                                /*'4'*/
  10.                                                                 0x7a,                                /*'5'*/
  11.                                                                 0x7b,                                /*'6'*/
  12.                                                                 0xa8,                                /*'7'*/
  13.                                                                 0xfb,                                /*'8'*/
  14.                                                                 0xfa,                                /*'9'*/
  15.                                                         };
  16. unsigned char a,k,flag; //a为位选标志位,k为数码管显示内容标志位,p为采集温度标志位
  17. char sz,xz,sx,xx; //sz为温度上限设定值的整数部分,sx为小数部分;xz为温度下限设定值的整数部分,xx为小数部分;
  18. unsigned char buf[4];
  19. int p,tempz;
  20. long temp;        //缓存采集到的温度数据"DS18B20.c"文件中
  21. unsigned char  str[3];//温度数据处理后的缓存str[0]为十位,str[1]为个位,str[2]小数位;
  22. //****************************************
  23. //函数名称:void mian()
  24. //输入参数:无
  25. //输出参数:无
  26. //功    能:主函数
  27. //****************************************
  28. void main()
  29. {
  30.         unsigned char i;
  31.         TMOD=0x01; //  定时器0,方式1--16为定时器
  32.         TH0=0xf8;
  33.         TL0=0xf0;
  34.         EA=1;
  35.         TR0=1;
  36.         ET0=1;
  37.         sz=35; //温度上限
  38.         sx=0; //小数位
  39.         xz=25;//温度下限
  40.         xx=0;//小数位
  41.         k=0;  //k=0,a=0;设定开机界面显示当前温度
  42.         a=0;
  43. //        l=0;
  44.         while(1)
  45.         {
  46.                 key(); //对按键进行扫描
  47.                 if(flag)
  48.                 {
  49.                         temchange();//读取温度并转换为易于数码管显示的数
  50.                 if((tempz<((int)(xz*10)+xx)||tempz>((int)(sz*10)+sx))&&k==0)
  51.                         {
  52. //                        l=1;//检测温度是否超过上下限 温度超限报警标志位l置"1";
  53.                                 if(tempz<((int)(xz*10)+xx))         //温度低于下限
  54.                                 {
  55.                                         relay_L=0;//继电器动作,控制加热器加热;
  56.                                         relay_H=1;
  57.                                         beep=0;
  58.                                         for(i=0;i<20;i++)
  59.                                         {
  60.                                                 delay(40);
  61.                                                 key(); //对按键进行扫描
  62.                                         }
  63.                                         beep=1;
  64.                                         for(i=0;i<20;i++)
  65.                                         {
  66.                                                 delay(40);
  67.                                                 key(); //对按键进行扫描
  68.                                         }
  69.                                 }
  70.                                 else  //温度高于上限
  71.                                 {
  72.                                         relay_H=0; //继电器动作,控制外部制冷装置降温;
  73.                                         relay_L=1;
  74.                                         beep=0;
  75.                                         for(i=0;i<5;i++)
  76.                                         {
  77.                                                 delay(40);
  78.                                                 key(); //对按键进行扫描
  79.                                         }
  80.                                         beep=1;
  81.                                         for(i=0;i<5;i++)
  82.                                         {
  83.                                                 delay(40);
  84.                                                 key(); //对按键进行扫描
  85.                                         }       
  86.                                 }
  87.                         }
  88.                         else
  89.                         {
  90.                                 beep=1; //关报警装置
  91.                                 relay_L=1;//关1号继电器
  92.                                 relay_H=1;//关2号继电器
  93.                         }
  94.                         flag=0;
  95.                 }
  96.         }        
  97. }
  98. /*
  99. //*********************************************************
  100. //函数名称:void time0( ) interrupt 1
  101. //功    能:定时中断 动态数码管显示,当p=20时采集一次当前温度
  102. //入口参数:无
  103. //返回参数:无
  104. //*********************************************************
  105. void time0() interrupt 1
  106. {
  107.         static unsigned char num;
  108.         TH0=0xe8; //重赋初值
  109.         TL0=0xf0;
  110.         if(flag==0)
  111.         p++;   //标志位加1
  112.         if(p==50)  //判断是否采集温度:p=10,采集温度,否则不进行采集;
  113.         {
  114.                 flag=1;
  115.                 p=0; //采集温度标志位清零
  116.         }
  117.                 if(k==0) //显示温度传感器采集到的温度数据
  118.                 {  
  119.                         if(str[0]==0)
  120.                                 buf[0]=0x00; //判断十位是否为'0',是则灭灯;
  121.                         else
  122.                                 buf[0]=tab[str[0]];  //数码管第一位为实际温度数据的十位
  123.                                 buf[1]=tab[str[1]]|0x04;  //数码管第二位实际温度个位,并且小数点亮
  124.                                 buf[2]=tab[str[2]];        //小数位
  125.                                 buf[3]=0x00;  //最后一位不显示,灭
  126.                 }
  127.                 if(k==1) //数码管显示温度上限值        格式为:_ _._H;
  128.                 x_display(sz,sx);
  129.                 if(k==2)//数码管显示温度下限值        格式为:_ _._L;
  130.                 x_display(xz,xx);       
  131.         switch(num)
  132.         {
  133.                 case 0:wei_xuan(0);P0=buf[0];break;
  134.                 case 1:wei_xuan(1);P0=buf[1];break;
  135.                 case 2:wei_xuan(2);P0=buf[2];break;
  136.                 case 3:wei_xuan(3);P0=buf[3];break;
  137.         }
  138.         num++;
  139.         if(num==4)num=0;       
  140. }
  141. //--------------------------主程序  结束--------------------------
  142. */

复制代码


单片机恒温控制系统的仿真工程文件和所有源码下载:
恒温控制系统程序和仿真.zip (224.59 KB, 下载次数: 363)

评分

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

查看全部评分

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

使用道具 举报

沙发
ID:1 发表于 2016-11-13 16:43 | 只看该作者
  1. #include<reg52.h>
  2. #include"mytype.h"
  3. #include"led.h"
  4. #include"ds18b20.h"
  5. #include"key.h"


  6. /*****继电器端口***********/
  7. sbit cold=P1^4;
  8. sbit heat=P1^5;

  9. sbit buzzer=P1^6;  //蜂鸣器

  10. uint  tvalue;

  11. uint dig3,dig2,dig1,dig0;          //digx数码管要显示的数据,在led.h中声明的外部变量
  12. uint dig3_u,dig2_u,dig1_u,dig0_u; //保存设置上限  up
  13. uint dig3_d,dig2_d,dig1_d,dig0_d; //保存设置下限  down

  14. uchar key;                                          //key是key的返回值,在key.h中声明的外部变量

  15. uchar kflag,kshift=1,kmode=0;//按键设置标志、闪烁led的移位按键、按键模式(上下限温度)
  16. uint  temp;                //缓存温度

  17. void KeyCtrl();//按键控制

  18. void main(void)
  19. {

  20.         TMOD=0x01; //方式1的定时计数50ms,设置定时器每一段时间采集温度值
  21.           TH0=0x3c;         
  22.           TL0=0xb0;
  23.         EA=1;
  24.         TR0=1;
  25.         ET0=1;
  26.        
  27.         dig2_u=5;  //初始化上限50.0度
  28.         dig1_u=0;
  29.         dig0_u=0;

  30.         dig2_d=3;  //初始化下限30.0度
  31.         dig1_d=0;
  32.         dig0_d=0;

  33.         while(1)
  34.         {                               
  35.                 if(KeyScan())KeyCtrl();//扫描到按键执行按键控制,否则跳过

  36.                 if(kflag) //如果按键设置标志为1,进入闪烁显示
  37.                 {                       
  38.                         LedFlick(kshift); //数码管闪烁显示
  39.                 }
  40.                 else
  41.                 {
  42.                         temp=tvalue;  //tvalue是外部变量,在定时器执行中断采集温度时ReadTemp();改变温度值
  43.                         dig3=0;
  44.                         dig2=temp/100%10;   
  45.                         dig1=temp/10%10 ;   
  46.                         dig0=temp%10;

  47.                         LedScan();//数码管显示采集温度

  48.                                 if( temp>(dig2_u*100+dig1_u*10+dig0_u) )//大于上限值报警并制冷
  49.                                 {       
  50.                                         buzzer=1;
  51.                                         heat=0;       
  52.                                         cold=1;
  53.                                 }
  54.                                 else if(temp<(dig2_d*100+dig1_d*10+dig0_d) )//小于下限值报警并制热
  55.                                 {
  56.                                         buzzer=1;
  57.                                         heat=1;
  58.                                         cold=0;
  59.                                 }
  60.                                 else //不报警停止制冷制热
  61.                                 {
  62.                                         buzzer=0;
  63.                                         heat=0;        //高电平有效,此处关闭制热
  64.                                         cold=0;        //高电平有效,此处关闭制冷
  65.                                 }                               
  66.                 }
  67.                                        
  68.         }       
  69.                
  70. }
  71. /***********按键控制函数,模式、加减、确认***********/
  72. void KeyCtrl()
  73. {

  74.         if(key)        //key是外部变量,在扫描的时候改变,在退出这个函数前清零,否则会一直保持控制,闪啊闪的
  75.         {
  76.                 switch(key)        //判断扫描到的按键是什么,作出相应的操作
  77.                 {
  78.                         case 1: kflag=1;         //模式切换按键
  79.                                     kmode++;
  80.                                         if(kmode==1)//把保存的上限温度值显示出来
  81.                                         {
  82.                                                 dig0=dig0_u;
  83.                                                 dig1=dig1_u;
  84.                                                 dig2=dig2_u;
  85.                                                 dig3=11;//'H'                                               
  86.                                         }
  87.                                         else if(kmode==2) //把保存的下限温度值显示出来
  88.                                         {
  89.                                                 dig0=dig0_d;
  90.                                                 dig1=dig1_d;
  91.                                                 dig2=dig2_d;
  92.                                                 dig3=12;//'L'                                       
  93.                                         }
  94.                                         else if(kmode==3) //恢复温度采集显示
  95.                                         {
  96.                                                 kmode=0;
  97.                                                 kflag=0;
  98.                                                 dig3=0;
  99.                                         }
  100.                                         break;
  101.                         case 2: kshift++;         //闪烁位左移按键
  102.                                         if(kshift==4)kshift=1;
  103.                                         break;

  104.                         case 3:        if(kflag)   //加1按键
  105.                                         switch(kshift)
  106.                                         {
  107.                                                 case 1: dig0++;
  108.                                                                 if(dig0==10)dig0=0;        //之所以这样,是避免dig0加到10以上会显示数组段码的后面的字符
  109.                                                                 break;
  110.                                                 case 2: dig1++;
  111.                                                                 if(dig1==10)dig1=0;
  112.                                                                 break;
  113.                                                 case 3: dig2++;
  114.                                                                 if(dig2==10)dig2=0;
  115.                                                                 break;
  116.                                         }
  117.                                         break;
  118.                         case 4:        if(kflag)         //减1按键
  119.                                         switch(kshift)
  120.                                         {
  121.                                                 case 1: dig0--;
  122.                                                                 if(dig0==-1)dig0=9;
  123.                                                                 break;
  124.                                                 case 2: dig1--;
  125.                                                                 if(dig1==-1)dig1=9;
  126.                                                                 break;
  127.                                                 case 3: dig2--;
  128.                                                                 if(dig2==-1)dig2=9;
  129.                                                                 break;
  130.                                         }
  131.                                         break;
  132.                         default:break;
  133.                 }
  134.         }
  135.         if(kmode==1)  //把显示的温度值上限保存一下
  136.         {
  137.                 dig0_u=dig0;
  138.                 dig1_u=dig1;
  139.                 dig2_u=dig2;
  140.                 dig3_u=dig3;                                               
  141.         }
  142.         else if(kmode==2) //把显示的温度值下限保存一下
  143.         {
  144.                 dig0_d=dig0;
  145.                 dig1_d=dig1;
  146.                 dig2_d=dig2;
  147.                 dig3_d=dig3;                                       
  148.        
  149.         }
  150.         key=0;                                               
  151. }

  152. /**********定时中断每隔一段时间采集一次当前温度******/
  153. void time0() interrupt 1
  154. {
  155.         uchar cnt;
  156.         TH0=0x3c; //重赋初值
  157.         TL0=0xb0;
  158.                
  159.         if(!cnt)
  160.         {
  161.                 ReadTemp();
  162.         }
  163.         cnt++;
  164.         if(cnt==4)cnt=0; //50ms*4=1/5s采集一次温度值
  165. }


复制代码
回复

使用道具 举报

板凳
ID:108622 发表于 2016-11-17 05:36 来自手机 | 只看该作者
支持分享好东西
回复

使用道具 举报

地板
ID:170906 发表于 2017-3-15 16:52 | 只看该作者
谢谢楼主。
回复

使用道具 举报

5#
ID:188314 发表于 2017-4-10 23:15 | 只看该作者
好东西  多学习
回复

使用道具 举报

6#
ID:188781 发表于 2017-4-16 09:45 | 只看该作者
恒温程序很难,你这个算恒温程序?
回复

使用道具 举报

7#
ID:164154 发表于 2017-4-18 22:30 | 只看该作者
楼主有PCB吗,我想拿你的硬件连接做个实物
回复

使用道具 举报

8#
ID:192615 发表于 2017-5-1 07:39 | 只看该作者

好东西  多学习
回复

使用道具 举报

9#
ID:194701 发表于 2017-5-1 07:52 | 只看该作者

好东西  多学习
回复

使用道具 举报

10#
ID:193720 发表于 2017-5-1 17:16 | 只看该作者
感谢,学习
回复

使用道具 举报

11#
ID:193720 发表于 2017-5-1 17:16 | 只看该作者
感谢,学习学习
回复

使用道具 举报

12#
ID:196907 发表于 2017-5-8 21:59 | 只看该作者

.h文件不能打开
回复

使用道具 举报

13#
ID:249604 发表于 2017-11-15 10:59 | 只看该作者
谢谢楼主  很实用
回复

使用道具 举报

14#
ID:249310 发表于 2017-11-23 13:03 | 只看该作者

谢谢楼主  很实用
回复

使用道具 举报

15#
ID:140183 发表于 2018-1-21 08:23 | 只看该作者
很好,很实用!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

16#
ID:258576 发表于 2018-6-27 21:13 | 只看该作者
这个不是闭环控制的把?
回复

使用道具 举报

17#
ID:253922 发表于 2018-7-16 17:13 | 只看该作者
很实用的东西啊 ,想学习
回复

使用道具 举报

18#
ID:507638 发表于 2019-4-10 19:48 | 只看该作者
楼主可以交流下单片机的知识吗
回复

使用道具 举报

19#
ID:507638 发表于 2019-4-10 19:54 | 只看该作者
这个是不是闭环控制?
回复

使用道具 举报

20#
ID:507638 发表于 2019-4-11 10:13 | 只看该作者
这是闭环控制吗
回复

使用道具 举报

21#
ID:464044 发表于 2019-5-5 14:41 来自手机 | 只看该作者
学习学习
回复

使用道具 举报

22#
ID:530536 发表于 2019-5-8 13:35 来自手机 | 只看该作者
谢谢老板儿!学习到了
回复

使用道具 举报

23#
ID:530536 发表于 2019-5-9 08:24 | 只看该作者
#include<reg52.h> #include"led.h"  uchar code lednum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x76,0x38};//数码管字0~9、'-'、'H'、'L'、,共阴数码管段码 uchar code lednum_p[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//数码管字0~9,带小数点  /*****************延时函数********************/ void LedDelay(uint x) {         uchar k;         while(x--)         for(k=0;k<30;k++) ; } /*****************数码管扫描********************/                                    void LedScan(void) {            uchar k;     for(k=0;k<100;k++)         {               SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;//DIG是选择哪一只数码管点亮         SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;//SEG是选择数码管哪几段亮,这里0x00是熄灭所有段             SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;             SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;                          } } /**************数码管某位闪烁*****************/                                    void LedFlick(uchar FlickBit) {            uchar k;     for(k=0;k<100;k++)         {                   switch(FlickBit)                 {                         case(1)://第1位数码管闪烁,右往左                             SEG=lednum[dig0];if(k<50){DIG=0xfe; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;                         SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;                                 break;                         case(2)://第2位数码管闪烁                                 SEG=lednum[dig0];        DIG=0xfe; LedDelay(1);        SEG=0x00;                         //SEG=lednum_p[dig1];if(k<50){DIG=0xfd; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;                                 //以下这句是用来处理闪烁数字而不闪烁小数点的                                 DIG=0xfd; if(k<50){SEG=lednum_p[dig1];LedDelay(1);}else{SEG=0x80; LedDelay(1);}        DIG=0xff;                             SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;                                 break;                                 case(3)://第3位数码管闪烁                                 SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;                         SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig2];if(k<50){DIG=0xfb; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;                             SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;                                 break;                         case(4)://第4位数码管闪烁                                 SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;                         SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;                             SEG=lednum[dig3];if(k<50){DIG=0xf7; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;                         default:break;                 }                  } }
回复

使用道具 举报

24#
ID:530536 发表于 2019-5-9 08:24 | 只看该作者
#include<reg52.h>
#include"led.h"

uchar code lednum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x76,0x38};//数码管字0~9、'-'、'H'、'L'、,共阴数码管段码
uchar code lednum_p[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//数码管字0~9,带小数点

/*****************延时函数********************/
void LedDelay(uint x)
{
        uchar k;
        while(x--)
        for(k=0;k<30;k++) ;
}
/*****************数码管扫描********************/                                  
void LedScan(void)
{   
        uchar k;
    for(k=0;k<100;k++)
        {  
            SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;//DIG是选择哪一只数码管点亮
        SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;//SEG是选择数码管哪几段亮,这里0x00是熄灭所有段
            SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;
            SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;               
         }
}
/**************数码管某位闪烁*****************/                                  
void LedFlick(uchar FlickBit)
{   
        uchar k;
    for(k=0;k<100;k++)
        {  
                switch(FlickBit)
                {
                        case(1)://第1位数码管闪烁,右往左
                            SEG=lednum[dig0];if(k<50){DIG=0xfe; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;
                        SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;
                                break;
                        case(2)://第2位数码管闪烁
                                SEG=lednum[dig0];        DIG=0xfe; LedDelay(1);        SEG=0x00;
                        //SEG=lednum_p[dig1];if(k<50){DIG=0xfd; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;
                                //以下这句是用来处理闪烁数字而不闪烁小数点的
                                DIG=0xfd; if(k<50){SEG=lednum_p[dig1];LedDelay(1);}else{SEG=0x80; LedDelay(1);}        DIG=0xff;
                            SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;
                                break;       
                        case(3)://第3位数码管闪烁
                                SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;
                        SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig2];if(k<50){DIG=0xfb; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;
                            SEG=lednum[dig3];                DIG=0xf7; LedDelay(1);        SEG=0x00;
                                break;
                        case(4)://第4位数码管闪烁
                                SEG=lednum[dig0];                DIG=0xfe; LedDelay(1);        SEG=0x00;
                        SEG=lednum_p[dig1];                DIG=0xfd; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig2];                DIG=0xfb; LedDelay(1);        SEG=0x00;
                            SEG=lednum[dig3];if(k<50){DIG=0xf7; LedDelay(1);}else{DIG=0xff; LedDelay(1);}        SEG=0x00;
                        default:break;
                }       
         }
}
回复

使用道具 举报

25#
ID:587292 发表于 2019-7-20 11:43 | 只看该作者
感谢分享
回复

使用道具 举报

26#
ID:587292 发表于 2019-7-20 11:43 | 只看该作者
感谢分享,能交流下吗
回复

使用道具 举报

27#
ID:587292 发表于 2019-7-20 11:47 | 只看该作者
感谢分享,这里果然大侠多
以后请多多指教
回复

使用道具 举报

28#
ID:530516 发表于 2019-11-20 15:38 | 只看该作者
为啥我的不合适?打不开
回复

使用道具 举报

29#
ID:530516 发表于 2019-12-4 20:33 | 只看该作者
楼主,你的仿真我看到了,也可以跑,但是你的程序实在是太乱了,好几个,可以发一下最后生成hex文件的程序吗
回复

使用道具 举报

30#
ID:683143 发表于 2020-1-7 19:39 | 只看该作者
好啊
可以自几做个水暖炕啦
谢谢啊
回复

使用道具 举报

31#
ID:276534 发表于 2020-3-16 12:42 | 只看该作者
仿真打不开
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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