89

帖子

0

TA的资源

一粒金砂(初级)

181
 
回帖是一种美德!
此帖出自编程基础论坛
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

182
 
此帖出自编程基础论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

183
 
1 楼主很用心
此帖出自编程基础论坛
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

184
 
本来想找个定时器的程序让LZ分析分析  可惜找不到了 也不知道属于哪个元件了
贴一个时钟程序吧  欢迎LZ分析  学C51学了12天  练习练习了8天  2年没碰了


  1. #include
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. char code tab[]={0x2a,0x1c,0xbc,0xbc,0x88,0x7f};
  5. //如果使用键盘中断请定义
  6. #define  USE_KEY  1

  7. //须主程序定义的参数
  8. sbit   ch451_dclk=P1^0;                          //串行数据时钟上升延激活
  9. sbit   ch451_din=P1^1;                     // 串行数据输出,接CH451的数据输入
  10. sbit   ch451_load=P1^2;                        //串行命令加载,上升延激活
  11. sbit   ch451_dout=P3^3;                        //INT1,键盘中断和键值数据输入,接CH451的数据输出
  12. uchar  ch451_key;                      // 存放键盘中断中读取的键值
  13.   bit ok,clr;
  14. #include

  15. void delay(uchar m){                   //在12P下延时十毫秒
  16.    uchar i,j,k;
  17.    for(i=0;i
  18.      for(j=0;j<20;j++)
  19.        for(k=0;k<120;k++);
  20.   }
  21. void main()
  22. {   
  23.    uint a,b,c,d,i,j,k,n;
  24.    d=0;
  25.    ch451_init();                              
  26.    ch451_write(CH451_SYSON2);
  27.    ch451_write(CH451_BCD);
  28. for(n=0;n<2;n++)  
  29.    {   
  30.      ch451_write(CH451_DIG7|n);
  31.   for(k=0;k<10;k++)  
  32.    {   
  33.      ch451_write(CH451_DIG6|k|0x80);
  34.   for(j=0;j<5;j++)  
  35.    {   
  36.      ch451_write(CH451_DIG5|j);
  37. for(i=0;i<10;i++)  
  38.    {   
  39.     ch451_write(CH451_DIG4|i|0x80);
  40.   for(d=0;d<6;d++)  
  41.    {   
  42.      ch451_write(CH451_DIG3|d);

  43.    for(c=0;c<10;c++)  
  44.    {   
  45.      ch451_write(CH451_DIG2|c|0x80);
  46.      for(b=0;b<10;b++)  
  47.      {   
  48.       ch451_write(CH451_DIG1|b);
  49.       for(a=0;a<10;a++)
  50.       {
  51.    ch451_write(CH451_DIG0|a);
  52.          delay(1);
  53.                  }     
  54.        }
  55.     }
  56.   }
  57. }
  58. }
  59. }
  60. }
  61. }
复制代码
此帖出自编程基础论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

185
 
单片机语言也是汇编语言
可用C语言写,也可用汇编语言写
但是就看你对那种语言精通了

其实于洋都是触类旁通的,只要你掌握其中规律就能游刃有余

谢谢楼主,看到你的帖子让我回想起到大学时学习这些专业课的那段美好时光~
此帖出自编程基础论坛
 
 
 

回复

74

帖子

0

TA的资源

禁止访问

186
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

187
 
jf
此帖出自编程基础论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

188
 
引用 185 楼 qqqqqwwqqq 的回复:
本来想找个定时器的程序让LZ分析分析? 可惜找不到了 也不知道属于哪个元件了
贴一个时钟程序吧? 欢迎LZ分析? 学C51学了12天? 练习练习了8天? 2年没碰了

C/C++ code
#include#define uchar unsigned char#define uint unsigned intchar code tab[]={0x2a,0x1c,0xbc,0xbc,0x88,0x7f};//如果使用键盘中断请定义#define  USE_KEY  1//须主程序定义的参数 sbit   ch451_dclk=P1^0;//串行数据时钟上升延激活 sbit   ch451_din=P1^1;// 串行数据输出,接CH451的数据输入 sbit   ch451_load=P1^2;//串行命令加载,上升延激活 sbit   ch451_dout=P3^3;//INT1,键盘中断和键值数据输入,接CH451的数据输出 uchar  ch451_key;// 存放键盘中断中读取的键值  bit ok,clr;
#includevoid delay(uchar m){//在12P下延时十毫秒   uchar i,j,k;for(i=0;i   }void main()
{uint a,b,c,d,i,j,k,n;
   d=0;
   ch451_init();                              
   ch451_write(CH451_SYSON2);
   ch451_write(CH451_BCD);for(n=0;n<2;n++)  
   {   
     ch451_write(CH451_DIG7|n);for(k=0;k<10;k++)  
   {   
     ch451_write(CH451_DIG6|k|0x80);for(j=0;j<5;j++)  
   {   
     ch451_write(CH451_DIG5|j);for(i=0;i<10;i++)  
   {   
    ch451_write(CH451_DIG4|i|0x80);for(d=0;d<6;d++)  
   {   
     ch451_write(CH451_DIG3|d);for(c=0;c<10;c++)  
   {   
     ch451_write(CH451_DIG2|c|0x80);for(b=0;b<10;b++)  
     {   
      ch451_write(CH451_DIG1|b);for(a=0;a<10;a++)
      {
   ch451_write(CH451_DIG0|a);
         delay(1);
         }     
       }
    }
  }
}
}


对不起,我也没基础过这个片子,没法提供更具体的信息。不过在可读性方面我想这个程序还是有不少改进的地方。如下:
1、

  1. 这一行看不明白tab具体是什么表格,需要再具体一些。
  2. 2、[code]
  3. 如果一个宏只是用作“标识符”的话完全没必要这样用,直接#define USE_KEY即可。
  4. 3、[code]
  5. 从变量的命名来看,看不出类型。我喜欢这样命名“位变量”:
  6. [code]#define FALSE 0
  7. #define TRUE 1
  8. typedef bit BOOL;

  9. BOOL g_bOK = FALSE;
  10. BOOL g_bClear = FALSE;
复制代码

用前缀g_来表示这是一个全局变量,用b来表示这是一个位变量。所有变量定义的时候都初始化,明白地告诉人,这个变量初始应该是什么状态。(我知道全局变量编译器会自动初始化为0)
4、delay(uchar m)函数命名没有表达出真正的含义。参数m代表的是毫秒?微妙还是秒?尽管代码中对其加了注释,但这种注释并没有达到最好的效果。如果是我,大概会这样写这个延迟函数:
  1. typedef unsigned char BYTE;
  2. void DelayMS(BYTE nElapse);
复制代码

我感觉写成我这样,延迟函数基本上不需要注释了。

其实延迟函数是一个经常要用到的函数,应该单独提炼出来做成“通用函数”,以便日后在其他工程中使用

5、  
  1. uint a,b,c,d,i,j,k,n;
  2.    d=0;
复制代码

这些变量根本不知所云。
6、类似
  1. 的代码中,“位或”0x80是什么意思?
  2. 7、类似[code]循环语句中的2是什么意思?应该用宏重新定义一个意义明显的名称
  3. 8、最后最重要的一点。把对CH451的操作和main()函数放在了一起,基本没什么模块化和复用性可言,应该单独拿出来形成一个“库”封装一下。大概是这样的:
  4. //头文件
  5. [code]
  6. #ifnedef _CH154_H_
  7. #define _CH154_H_

  8. //在这里定义各种引脚
  9. sbit   ch451_dclk=P1^0;             //串行数据时钟上升延激活
  10. sbit   ch451_din=P1^1;              // 串行数据输出,接CH451的数据输入
  11. sbit   ch451_load=P1^2;             //串行命令加载,上升延激活
  12. sbit   ch451_dout=P3^3;             //INT1,键盘中断和键值数据输入,接CH451的数据输出

  13. ...


  14. //下面是函数的声明
  15. void  ch451_init();   
  16. void  ch451_write();
  17. ...

  18. //以下为本文件内使用的函数
  19. static void DelayMS(BYTE nElapse); //注意这里,为什么要用static
  20. ...
  21. #endif

  22. 然后在.c文件中实现这些函数,我就不具体写了。

复制代码
此帖出自编程基础论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

189
 
afas
此帖出自编程基础论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

190
 
引用 174 楼 kondykuang 的回复:

你软件还可以,你的单片机产品硬件是你做的嘛? 别说硬件是你的弱项,为什么不迎头赶上?却把弱项当理由?(别告诉我时间不够用,没时间学习)·················
术业有专攻你不懂啊??软件功底比我们牛点就不得了了?我就是认为你这思想在嵌入式,单片机上面行不通。这就决定了现今几乎所有的单片机书籍教学模式。大势所趋。明白不?

我大二,硬件不好,软件也不好,前两个月用arm+wince +evc做数据采集处理,把程序写死了。后来只好换dsp+usb+vc完成,用c微分方程又解不出来。结果搞了好几个月,要是软件有你这么好的话,估计几天就行了。最近忙电子设计大赛。用c8051f020写ad9851程序写了整整一天,怎么都调不好。前几天拿51 mega128都是好的。结果是因为ad9851 3.3v供电极不稳定,但是datasheet上说工作电压是2.7-5.3。换成5v软件随便怎么写都是对的。这个问题你能很快解决么。光c语言功底好,是没多大用的。毕竟软件都是建立在硬件之上的。我的意思是什么呢?做人要低调。eeworld上都是牛人。
你不鄙视别人,别人也不会鄙视你


“你软件还可以,你的单片机产品硬件是你做的嘛? 别说硬件是你的弱项,为什么不迎头赶上?却把弱项当理由?(别告诉我时间不够用,没时间学习)·················”
确实,硬件不是我做的,是我的同事做的,我只负责软件部分。但问题是,我什么时候把弱项当理由了?请从前面的帖子中找个例子来。

“术业有专攻你不懂啊??软件功底比我们牛点就不得了了?我就是认为你这思想在嵌入式,单片机上面行不通。这就决定了现今几乎所有的单片机书籍教学模式。大势所趋。明白不?”
我当然明白“术业有专攻”,因为我知道硬件是我的弱项,所以我从来就不去评价硬件的实现。
但,你所谓的“大势所趋”我不能苟同,单片机或说嵌入式是会发展的,无论从容量还是性能上。代码量必然是会呈增长的趋势。难道非要等到那时候才要必须遵循写软件的一些一般性准则才肯罢休?

“做人要低调。eeworld上都是牛人。”
我承认eeworld牛人多得是,但牛人就一定愿意拿出自己的心得想法出来分享吗?
还有,我所有的帖子都是针对事不针对人,也不喜欢人身攻击(除非他先,我会还击)。也从来没有用类似“我XX年工作经验,你还不行”,“我写过XX行代码,你懂什么?”,“你太菜了,好好学去吧“等等之类居高临下的言语。有理不在声高,这个道理大家应该都明白。否则,请从我之前的帖子中找出来,若能找出来我马上承认错误。
此帖出自编程基础论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

191
 
99楼这话我不爱听,知道LINK和make其实也就是菜菜鸟了!!!有机会交流一哈啊
此帖出自编程基础论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

192
 
引用 172 楼 sjg20010414 的回复:
我来说几句:

1、本人背景:专业 电子工程,写过一些 单片机程序,稍微像样的只做过一年。现在在计算机方面混口饭吃,偶尔写程序罢了

2、单片机程序有浩大的工程吗??没见过。 不是浩大的工程有必要太在乎软件工程的条条框框吗??不是否认软件工程的一些思想,但为软件工程而软件工程,没有意义。

一句话,单片机程序,关键是逻辑结构清晰,运行高效可靠,代码可以让别人很好理解。要达到这些,不见得非得多么可复用(复用成为性能累赘的时候,你或许就该放弃),而且,个人认为,用 汇编 也很好——对不起,个人对汇编有点偏好,一些windows程序不太大,也会考虑汇编,或嵌入汇编。混合式编程也许有时候就很有优势。

3、软件语言用面向对象的就一定是最好的吗?class里面的东西分private public就可以保证对数据成员的正确运用吗? 各种特性都有它合适的场合,理论上,如果你能自己控制访问,要private public何用?
个人比较看好 面向函数的编程 以及 有可能的 函数式的操作系统,尽管我对这个东西还不能理解多少。


“单片机程序有浩大的工程吗??没见过。 不是浩大的工程有必要太在乎软件工程的条条框框吗??不是否认软件工程的一些思想,但为软件工程而软件工程,没有意义。”
我在讨论中其实是避免主动用“软件工程”这个词汇的(除去和别人讨论),因为我感觉软件工程是一个相对较“虚”的东西,不如直接用代码表现出来实实在在。
我所提及的所有主题中,其余的都除去,就说可读性吧。难道可读性对单片机程序都没有意义吗?

“软件语言用面向对象的就一定是最好的吗?class里面的东西分private public就可以保证对数据成员的正确运用吗? 各种特性都有它合适的场合,理论上,如果你能自己控制访问,要private public何用?”
恐怕sjg20010414又片面地理解了我的一些观点。
我只是说可以用一些面向对象的中的“封装”的思想来达到模块化的目的。也从不主张用c来模仿c++那样来做事情。具体请看我36楼的回帖。
此帖出自编程基础论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

193
 
LZ讲的是模块化思想,但在某种情况下,模块化会影响程序运行速度
此帖出自编程基础论坛
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

194
 
引用 176 楼 allein2009 的回复:
引用 39 楼 lbing7 的回复:
引用 36 楼 jiqiang01234 的回复:
引用 33 楼 goodboy2012 的回复:
个人觉得面向对象的设计思想在实时性上比较差。

面向对象包括三方面的内容:封装、继承和多态。而我提倡的单片机c语言编程是鼓励“封装”,使之更具模块化。其实继承和多态也并非就是“实时性”差,只是相对于单片机资源来说比较费ram和rom。毕竟单片机还很少有支持c++的,51系列的我是闻所未闻。

从面向对象思想出现的历史中我们也可以看到,是因为当程序规模超过10万行以上时,面向过程的方法就有些难于应对了,这样才慢慢出现了面向对象的设计方法。要注意的一点是,面向对象的设计方法更适用于“规模大”的程序,而单片机程序就算用64k的rom也就是一万多行。任何技术都有它的适用范围,切不可乱用。


LZ你有点小看编译器了,我们以前写协议的时候

四五W行代码才二十多K,嘿嘿,64K还是相当大的空间的

不信你看一下当前流行的单片机,没有多少是有64K的ROM的

另外,提一个:不是单片机支持语言

面是IDE和相关的平台支持

因为,不论什么机器,至少当前,机器只认0和1

不论什么语言最终到机器层面都是机器指令

语言层次的提高带来了对程序员来说更加友好的接口

让他们可以从更高的层次去看机器

ASM就不说了

C带来了函数,函数的调用会在栈上产生消耗

后面的面向对象语言的特性带来的是什么?

为了支持对象,让机器多去处理怎么去调用哪个函数

而这个是不可预知的

如果是一个对时间要求严格的系统,这将是灾难性的

其实,前些天一些大哥就在坛子里说KEIL已经支持CPP

至于别的支持面向对象的平台,你可以看一下IAR,在430上我试过丫的CPP(仅是试过)

相信丫8051上也有

对于代码量,不知道LZ是不是真的敲过上W行的代码(不在IDE的帮助下)

当然,我支持用面向对象的方法来规划设计系统

但是,真正编码的时候,只要架构上清晰。

一个只有一年多经验的工程师也是不会出现所谓混乱

之前看软工的书的时候,印象我也见到过说10W行代码可怕

不过实践告诉我,这个分水岭并不是绝对的。



我个人觉得这个不是很实际,我写过一个一万行的代码,优化得相对自己还是满意的,大概要了30多K的代码,KEIL编译器相对来说还是很优秀的,所以,前面说的有点夸张!

不好意思,说得保守了一些。就当把"一万多行"理解为19999行吧-_-
此帖出自编程基础论坛
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

195
 
不错,不能完全相信课本。
此帖出自编程基础论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

196
 
学习学习
此帖出自编程基础论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

197
 
引用 170 楼 kondykuang 的回复:
你的想法 一半是对的··
说程序 需要 模块化,具有移植性 这没错。
但是从单片机程序上讲 需要适量,毕竟它是一块单片机
一个定时器 本来几行代码就可以解决
你写了多少行???除了增加了代码量,我觉得没有任何好处,搞单片机的
一看我们这些普通的程序基本都看得懂,看其你的程序来倒看不懂了
故弄玄虚,拐弯抹角 有意义?
写单片机程序不需要有很好的c功底。
你的想法 和我的想法都有点极端

请再看一下我12楼的回帖。我明确地说了我写的那个定时器的使用限制,并非是个万能的。再次,我强调一下,我贴出那个定时器代码目的不是为了大家一定要用,一定得在任何条件下都好用。而仅仅是说明一下单片机程序可以这样写,可以更多地考虑一下封装、复用性、可读性等问题。
此帖出自编程基础论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

198
 
引用 39 楼 lbing7 的回复:
引用 36 楼 jiqiang01234 的回复:
引用 33 楼 goodboy2012 的回复:
个人觉得面向对象的设计思想在实时性上比较差。

面向对象包括三方面的内容:封装、继承和多态。而我提倡的单片机c语言编程是鼓励“封装”,使之更具模块化。其实继承和多态也并非就是“实时性”差,只是相对于单片机资源来说比较费ram和rom。毕竟单片机还很少有支持c++的,51系列的我是闻所未闻。

从面向对象思想出现的历史中我们也可以看到,是因为当程序规模超过10万行以上时,面向过程的方法就有些难于应对了,这样才慢慢出现了面向对象的设计方法。要注意的一点是,面向对象的设计方法更适用于“规模大”的程序,而单片机程序就算用64k的rom也就是一万多行。任何技术都有它的适用范围,切不可乱用。


LZ你有点小看编译器了,我们以前写协议的时候

四五W行代码才二十多K,嘿嘿,64K还是相当大的空间的

不信你看一下当前流行的单片机,没有多少是有64K的ROM的

另外,提一个:不是单片机支持语言

面是IDE和相关的平台支持

因为,不论什么机器,至少当前,机器只认0和1

不论什么语言最终到机器层面都是机器指令

语言层次的提高带来了对程序员来说更加友好的接口

让他们可以从更高的层次去看机器

ASM就不说了

C带来了函数,函数的调用会在栈上产生消耗

后面的面向对象语言的特性带来的是什么?

为了支持对象,让机器多去处理怎么去调用哪个函数

而这个是不可预知的

如果是一个对时间要求严格的系统,这将是灾难性的

其实,前些天一些大哥就在坛子里说KEIL已经支持CPP

至于别的支持面向对象的平台,你可以看一下IAR,在430上我试过丫的CPP(仅是试过)

相信丫8051上也有

对于代码量,不知道LZ是不是真的敲过上W行的代码(不在IDE的帮助下)

当然,我支持用面向对象的方法来规划设计系统

但是,真正编码的时候,只要架构上清晰。

一个只有一年多经验的工程师也是不会出现所谓混乱

之前看软工的书的时候,印象我也见到过说10W行代码可怕

不过实践告诉我,这个分水岭并不是绝对的。


lbing7你就别找差了,从问题的表述上可以看出你的程序功力与楼主有一定差距.
还有,做人要厚道一点,"不是单片机支持语言,面是IDE和相关的平台支持"这里明显不是楼主不懂这个,只是表达的失误罢了.人家的意思是很少单片机有支柱C++的环境支持.要玩文字游戏应该到文学论坛去.
此帖出自编程基础论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

199
 
引用 191 楼 jiqiang01234 的回复:
引用 174 楼 kondykuang 的回复:



“你软件还可以,你的单片机产品硬件是你做的嘛? 别说硬件是你的弱项,为什么不迎头赶上?却把弱项当理由?(别告诉我时间不够用,没时间学习)·················”
确实,硬件不是我做的,是我的同事做的,我只负责软件部分。但问题是,我什么时候把弱项当理由了?请从前面的帖子中找个例子来。
     问题就在于你只负责软件,并且本身是程序员出身,所以你写单片机定时器才跟vc的SetTimer(),KillTimer()思想差不多。并且你所谓的单片机程序,难道就仅仅是定时器?你写过其他驱动物理芯片的程序嘛?你觉得是想你那样花里胡哨的好。还是传统模式的.h .c模式,需要用的时候把各个模块程序,比如LCD,KEY,ADC, DAC,USB 包含进来在main中组装成一个工程好呢?这样依然是模块化啊!我相信写单片机程序的同行都是这样做的 。

“术业有专攻你不懂啊??软件功底比我们牛点就不得了了?我就是认为你这思想在嵌入式,单片机上面行不通。这就决定了现今几乎所有的单片机书籍教学模式。大势所趋。明白不?”
我当然明白“术业有专攻”,因为我知道硬件是我的弱项,所以我从来就不去评价硬件的实现。
但,你所谓的“大势所趋”我不能苟同,单片机或说嵌入式是会发展的,无论从容量还是性能上。代码量必然是会呈增长的趋势。难道非要等到那时候才要必须遵循写软件的一些一般性准则才肯罢休?
   

   你也说了硬件是你的弱项,所以硬件是你同事做的。也就是说你只搞软件了,你硬件一点不搞,软件稍微好点,我们自己做硬件,自己写软件,软件写的不像专业程序员那样规范,你就看不起我们写的软件?你不会硬件,所以你不搞硬件,这算不算是逃避呢?你为什么你不迎难而上,专心搞一下你的硬件,楼主你要清醒一下。sumsung的ARM测试程序,包括uart,tft,adc,touchpad,buzzer,也都是按照.h .c来模块化的。可读性也不错啊,像你那样除了故弄就是卖弄。
“做人要低调。eeworld上都是牛人。”
我承认eeworld牛人多得是,但牛人就一定愿意拿出自己的心得想法出来分享吗?
还有,我所有的帖子都是针对事不针对人,也不喜欢人身攻击(除非他先,我会还击)。也从来没有用类似“我XX年工作经验,你还不行”,“我写过XX行代码,你懂什么?”,“你太菜了,好好学去吧“等等之类居高临下的言语。有理不在声高,这个道理大家应该都明白。否则,请从我之前的帖子中找出来,若能找出来我马上承认错误。
也许我的言语太尖刻,但我希望你能清醒点

此帖出自编程基础论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

200
 
lbing7我也试试找你一个差吧.你说的:"不论什么机器,至少当前,机器只认0和1 "
可现在那个CPU不是有自己的指令集(由0和1组成的指令串)的?它们可是认识这些指令集的哦
如果按你这么说,美国人都只认识26个字母了?不对吧!
此帖出自编程基础论坛
 
 
 

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

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
首场直播:Simcenter AI 赋能电子行业研发创新
直播时间:04月15日14:00-14:50

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表