论坛风格切换切换到宽版
  • 24504阅读
  • 74回复

AVR和STC到底谁有优势? [复制链接]

上一主题 下一主题
离线BA5RW
发帖
48263
只看该作者 20楼 发表于: 2007-12-25
感谢各位高手的中肯分析,现在有了明确的结论:根据自己的实际选用可能是我个人目前的最佳途径。
离线九木
只看该作者 21楼 发表于: 2008-01-11
c与汇编相比,好比自动键与手键相比,或是ssb与cw相比.
c写起来容易上手,但编译后的代码质量与直接用汇编(熟手写的)还是有很大差距,表现在同样的程序写出来,c的速度低一倍以上,rom占用高一倍以上(均为保守说法)
现在芯片便宜,一般就c就够了.对芯片速度和成本有极端要求者,只有用汇编了.
离线bd4vc
发帖
172
只看该作者 22楼 发表于: 2008-01-12
好多人刚开始准备学单片机都问我,现在的种类这么多,51,avr,pic,arm,凌阳,stc等等等晕了啊!到底学哪个好啊,我觉的51虽然是个比较老的东西但是我觉得还是作为初学者必学的东西,
第一它是最经典的应用最广泛的一种单片机,好多高手都是从它开始的,初学者技术交流很容易找到老师,
第二芯片确实很便宜,购买容易,再小的电子城都能买到它
第三作为初学的应用速度啊容量啊甚至其它的资源啊并没有太高的要求51足矣,如果你感觉到51的芯片不能够满足你的要求了相信那一天你已经成为了单片机高手了
第四 万物同一理何况都是单片机呢,所以只要熟练掌握了一种单片机的应用,再换用其它的芯片,应该很快就会掌握。尤其是用c语言,我当时开始用arm只用了一个星期的时间去熟悉就可以用它干很复杂的活了。
  到底是用c好还是汇编好,我想能从精通汇编转到精通c编程才是真正的高手。有的朋友就为了选型就浪费了很长时间真是可惜了。
离线alont
发帖
38
只看该作者 23楼 发表于: 2008-01-22
[quote=九木]c与汇编相比,好比自动键与手键相比,或是ssb与cw相比.
c写起来容易上手,但编译后的代码质量与直接用汇编(熟手写的)还是有很大差距,表现在同样的程序写出来,c的速度低一倍以上,rom占用高一倍以上(均为保守说法)
现在芯片便宜,一般就c就够了.对芯片速度和成本有极端要求者,只有用汇编了.[/quote]

我举个例子:我的一个c语言程序是717行,一般行尾注释,中间空行与一行多命令相抵,实际行以700计,编译后只有1024个机器码,我都感到惊叹!一般情况根本不用汇编了。
离线by5rt-paul
发帖
44
只看该作者 24楼 发表于: 2008-01-26
'
关于c和汇编谁的技术含量高的问题.我想,你用汇编和c分别写个tcp/ip的协议栈就不会这样问了.
'

大小和效率不会有50%以上的区别
c是一个很强大的语言,一些稍微复杂的程序,高手和刚新手写出来的机器码都不只差一倍以上。
我用c 5年了,都不敢说自己熟悉。要用c写一些高效的代码先要把编译器的原理搞懂,搞透。这点对很多人就不是一个简单的问题。。。
离线1a2b3c
发帖
204
只看该作者 25楼 发表于: 2008-01-27
'
我举个例子:我的一个c语言程序是717行,一般行尾注释,中间空行与一行多命令相抵,实际行以700计,编译后只有1024个机器码,我都感到惊叹!一般情况根本不用汇编了。
'

估计只是一些简单的语句,假如写一个数学运算一类的,你看看,那就永远不能以行数与机器码数来对应了.
离线BG4RFF
发帖
1581
只看该作者 26楼 发表于: 2008-05-07
我也是这样认为的
[quote=by5rt-paul]大小和效率不会有50%以上的区别
c是一个很强大的语言,一些稍微复杂的程序,高手和刚新手写出来的机器码都不只差一倍以上。
我用c 5年了,都不敢说自己熟悉。要用c写一些高效的代码先要把编译器的原理搞懂,搞透。这点对很多人就不是一个简单的问题。。。[/quote]


我也是这样认为的
离线bg4kc
发帖
2638
只看该作者 27楼 发表于: 2008-05-07
个人觉得用stc好,仔细推敲的话,avr还不如stc“正规”,stc只是文档资料作的有点业余,其他的没毛病,51的内核太普及了,ic厂商只要愿意就能做。
avr本身改来改去各型号差别巨大,应用繁琐,isp功能也不好用。 以我的一点体会为例:我用m8比较多,除了有时用晶振,其他脚一般都利用,这样isp不了,还是依靠编程器,能烧avr芯片的编程器都比较贵。 到生产的时候,那么多融丝位选项也成了累赘。
另外还有些细节问题,eeprom头几个字节不可靠啊,等等。 感觉要用好avr,还要依靠很多"小道消息",它像个半成品。


'
我为何提出这种问题呢?
我买了一片M8,8元,买了一片12C5408也花了8元,后来老板一条都卖我平均5元5,原来想放弃51玩AVR去,还跟来福州讲课的双龙的老耿合影留念,他老人家说要好好学AVR,功能强大,而这两天突然发现STC便宜更强大,而且最主要是不必重新学习新的汇编语言,因为我都是用汇编的,只是今年夏初开始了解C的好处,哈,惭愧!不过我想革命不分前后,所以也不忌讳,相信脸皮厚点实事求是总会取得一定成果.业余爱好就是这样吧.AVR和STC都是刚接触,而AVR要重新认识其硬件资源的规律,而STC几乎一看就明白,倍感功能强大,为51的前途松了一口气!但是疑惑的是,有人说STC不稳定,到底是他们没有适应还是真的这样?而AVR虽然有论坛,但实际上比51麻烦.所以有这提问,希望理解为盼!
'
离线bg4kc
发帖
2638
只看该作者 28楼 发表于: 2008-05-07
[quote=by5rt-paul]大小和效率不会有50%以上的区别
c是一个很强大的语言,一些稍微复杂的程序,高手和刚新手写出来的机器码都不只差一倍以上。
我用c 5年了,都不敢说自己熟悉。要用c写一些高效的代码先要把编译器的原理搞懂,搞透。这点对很多人就不是一个简单的问题。。。[/quote]

作程序,要做精不容易。可是现在的情况,作精似乎没必要了,也没条件。
硬件资源通常足够,成本也低,极端一点:在奔腾4上运行的程序,再去计较节省几十个ram,确实不值得费脑筋。我们爱好者以钻研技术为乐趣另当别论。

写程序应该结构化或面向对象为第一考虑,硬件资源不够,可以换平台。 写出的代码能复用,别人能看懂(自己以后能看懂),对硬件依赖程度低,才是好的程序。 再一个极端情况:100个人的团队要做软件项目,选vb还是vc? 一般都会选vb。
离线dingding
发帖
971
只看该作者 29楼 发表于: 2008-05-07
一般都不是要靠这个东西吃饭的,我倒觉得学什么都无所谓,只要能满足自己的要求,能省学习时间就好。
离线阳光999
发帖
52
只看该作者 30楼 发表于: 2008-05-08
应该还是avr好点 外围设备多些 用起来外部电路可以简单些
离线bg7mss
发帖
7955
只看该作者 31楼 发表于: 2008-05-08
以前在atmel代理,98\99年刚推广avr芯片时无比艰难,因为是全新的东西,大家都得从头学习,所以大部分工程师都很难接受,哪像现在。。。。
离线bd1es
发帖
2096
只看该作者 32楼 发表于: 2008-05-20
俺也说两句。想多说点儿,但我并不是这方面的行家,只是乱说,供参考而已。

个人建议常考虑avr,一是机器的速度快,二是网上案例多,有庞大的论坛。

至于是用c还是汇编,俺的观点是随遇而安,该用哪个就用哪个。有些用来描述算法,或者需要考虑移植的,c合理一些。有些需要精确定时,或者是非标准计算的(比如48位整数),恐怕就是用汇编了。有的时候需要在c中访问标志位,比如cy之类,还有些语句是设置寄存器的,这恐怕也分不清是c还是汇编了。:):)。胡说一气。

关于语言,专业上有另外的观点,他们很抵触汇编,有人甚至指责抱着汇编不放是导致国内电子产品开发瓶颈的重要因素等。我想这是考虑快速转型和适应市场的问题,我们爱好者倒是没必要太关心。

另感觉stc的机器也的确是8051的最好替代品,现在还有单周期指令的产品,速度就高多了。这种机器中有些很精妙的设计。恰到好处的ram容量,eeprom和pwm就不说了,单说他们的ad机型。这种机器里没有独立参考源,而是取电源电压当参考。初想会觉得这样设计很蠢,可是细琢磨这就很聪明,粗的应用和细的应用都能实现呵呵。
离线bg4kc
发帖
2638
只看该作者 33楼 发表于: 2008-05-21
stc的bootload做得很好,没有影响到任何资源,其实就这么个东西,以前被搞的那么复杂,甚至还有论文。有了stc这个现成的bootloader,什么远程升级之类的都不再成问题了,如果大家都用它的统一格式,将来可能有大用处。
stc还做到35mhz,35mhz的计数器和定时器真的很好使。5块钱的芯片,买个74f还要2块呢。 stc89系列更是做到了80-90mhz的时钟。
还有更气死avr和pic的,
两个16位定时器(m8的一个16两个8),两个pwm,spi口,
更超值的是10位a/d转换做到100khz采样率,pic的高档型号才到30khz。这个太诱人了。
4周期硬件乘除法,管脚驱动也改进了,h l都有驱动能力。

要说应用资源,51单片机更是到了无需讨论的地步了。

它的缺点就是对市场的潜在冲击太大,那么多昂贵的编程器,仿真器,相关的东西,都受影响。 宏晶缺少的是像模像样的,能给用户一个“”大公司“形象的市场部门。 再出点书,请高校老师题个名,弄几个极高价位的咚咚摆在网站上,诸如此类。依照现在台湾和大陆的设计生产能力(还有引进外国业余爱好者设计的能力),哪天冒出个stcpic或者stcavr是很可能的。对我们大家都是福音。
离线bg1cnx
发帖
688
只看该作者 34楼 发表于: 2008-05-21
头些年搞51直接抓个人过来搞就行了。现在自己干了有的需要自己动手,什么也不会于是就用了avr+basic 学了2个晚上就自己干100行以内的程序了。

我的一贯主张,别人都穿裙子时候我传牛仔裤,别人都穿牛仔裤时候我穿喇叭裤。

按照以上主张,目前还还在光定中ing。
离线lulei
发帖
47
只看该作者 35楼 发表于: 2008-05-21
bg4uvr 的观点有问题!如果学一种单片机从汇编开始学的话然后在学c速度更快,根本就不是一个级别,而且先学汇编可以更清楚的理清结构,对于我们矿大好多老家伙都是汇编,厉害的不得了。我们公司的一个项目纯汇编的。上千行,精度高的不得了!所以说学会变很有必要,有时候往往用到混合用!
离线lulei
发帖
47
只看该作者 36楼 发表于: 2008-05-21
看你生出环境了。dingding你好像做过那个gps的吧。我看了你的程序
离线bg4kc
发帖
2638
只看该作者 37楼 发表于: 2008-05-21
'
bg4uvr 的观点有问题!如果学一种单片机从汇编开始学的话然后在学c速度更快,根本就不是一个级别,而且先学汇编可以更清楚的理清结构,对于我们矿大好多老家伙都是汇编,厉害的不得了。我们公司的一个项目纯汇编的。上千行,精度高的不得了!所以说学会变很有必要,有时候往往用到混合用!
'

别上老家伙们的当, 精度和汇编语言一点关系都没有,1000行汇编程序,害人那,以后你们不想改进了?
离线bd1es
发帖
2096
只看该作者 38楼 发表于: 2008-05-21
bg4kc兄对stc的评价很精彩。的确可用诱人二字来形容,我也有同感,自从发现它以后就老惦着它,:):)。
离线jiajia1201
发帖
254
只看该作者 39楼 发表于: 2008-05-28
我一般都就地取材。逮着什么用什么。没有什么界限。我这什么ic都有。pic、avr、c51、arm、cpld、fpga都用过。关键是看如何做方便成本低。
至于用什么语言都无所为。汇编、c、basic、c++、c#、vhdl什么简单用什么。汇编有的时候还必须用(严格的时序)!c有的时候也必须用(庞大的菜单系统)。
存在就是一种价值。无需讨论谁有优势。当然如果您不考虑成本vhdl是电子设计的最好方案。因为fgpa可以模拟您见过的任何mcu,甚至您没见过的。