我对avr相对比较熟悉,avr比较好用,现在atmel被收购了出了几款新的,比如attiny816,资源比较丰富,adc,dac,ac,timer,ccl,usart,spi,iic都比较齐,已经批量用在我们产品上。各个厂家的单片机区别没这么大,大家的基本逻辑都差不多,熟悉了一款其他上手就很快了。新学的对单片机各个模块的实现原理要去研究分析掌握,不建议去研究驱动,我一般都网上copy驱动,然后debug看结果,有问题再去分析spec和驱动的区别。程序的核心是实现目标逻辑的规划以及代码robust健壮性,而不是驱动。
如果是现在开始学,这两种都不建议,具体原因就不细说了。现在开始学,建议学stm8、stm32,原因也不说了,但请相信我不是托,我只是个业余级的单片机编程爱好者,正好玩过51、avr、pic、stm8、stm32这几样单片机,只是个人的感受而已。
我个人理解,这两颗芯片,相对于51系列来说,都不太适合作为一个初学者。
五年前开发舞台灯光项目用avr单片机使用的icc for avr开发环境,复杂需要配置融丝位,因为刚开始不熟悉,有好几次将融丝位设置错误,将芯片锁死,然后再也无法更新程序。
而pic16系列单片机的存储器有分页操作,对于变量操作需要注意这部分细节。在c语言编程,或者汇编都有对应的操作。
Avr单片机和pic单片机相对于51来说,从开发环境,程序编写开发,编译配置,烧录下载等要相对麻烦一些,如果有人带着做项目,肯定是没有问题。
但对于依靠网络和书籍的初学者来说,个人觉得还是不太适合。初学者建议还是以51单片机作为入门的mcu,将单片机C语言熟练掌握,并形成自己的编程思想。这个在单片机工程师的工作中尤为重要。等哪一天项目完成了,再转其他的芯片平台,就会容易轻松很多。