单片机作为一种简单的控制器在生活中有这广泛的应用,当然在工业型单片机在生产中也扮演着很重要的角色,所以对于一个学习自动化的工控人来说,学习单片机是非常有必要的。
单片机学习中常见的问题
1.学单片机可以做什么?
单片机应用广泛,遥控小车,洗衣机,冰箱,彩电,空调随处都可见到单片机的身影。学会了单片机,你可以玩你喜欢的小制作,也可以用单片机设计一些小的产品,最重要的是,单片机会把你带进电子设计这一领域,充分展示自己的能力,当然,也会给你带来不错的回报。
2.该学哪种单片机?
单片机型号有很多,常见的有51,PIC,AVR几个系列,每个系列又有很多型号。那么,作为初学者的我们,该学习哪款单片机呢?
其实单片机都是有相同之处的。只要认真学了,真正掌握了一款单片机,在学习其他款,后者是直接使用都是很容易的。51系列作为经典的一款单片机,它的资料非常的丰富,因此,从51开始入门应该是一个不错的选择。
3.该学汇编还是学C51?
这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要汇编,也有人坚持选择高级语言,这主要是C51推行不久时,那时候单片机内部资源比较宝贵,而且C51本身的编译器效率也不够高,导致当时很多人选择用汇编来写代码。那么现在的情况是怎样的呢?编译器效率高了,单片机内部的资源也丰富了,用C来写单片机软件不会在遇到以前那样的问题。
如果现在还有人坚持一定要用汇编来写整个单片机软件,那么这个人肯定是不会C的,看看外面企业就知道,有几家不是用C呢,毕竟C容易写,可读性强,可移植性强。
但是光会C也还是不够的,你还得了解汇编,实际上不是了解汇编指令,是了解单片机的体系结构。所以我以为学习单片机,还是推荐用C来写代码,但是平时也得多看看别人的汇编代码,最低要求就是:能熟练运用C写代码,用读懂汇编代码。
4:C51编译器如何区分位地址和字节地址
是靠预定义实现的,比如:sfrP0=0x80;sbitP0_0=0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如: