单片机c语言比起普通C语言增加了一些基本的指令,变量的赋值是16进制,当然单片机c语言只牵涉到普通c语言的基础部分。 C只是一种高级语言。它除具有一般高级语言的功能特性外,它可以很好的操作底层的硬件接口。在C语言的基础上,如果你把一些单片机的端口或特殊功能寄存器加于定义,使之方便于在 写语句的时候,直接直观的编写。这样就差不多是单片机C语言。而C语言的特性差不多都可以用于单片机C语言,因为它们的编译机理都是一样的。 C51本质就是C,是为在单片机上使用C而出来的,如果C不牢固,还是多掌握一点C再学C51,不过新增的知识也不少,而且基本上跟C无关。其实c51要比纯c简单很多,基本上就是for,while,switch等等。写单片机代码,基本上就是按照那些芯片的时序来操作它,语法和算法上要求不高,对c的基础要求也不是很高。
学单片机需要C语言,单对C语言的要求不高,所以两边可以一起学,另外学单片机还需要数电,模电的知识。到学到越深,C语言就要学很好,掌握一门计算机语言是很必要的。至于汇编,你就刚学单片机的时候用用,它对你掌握硬件还是挺不错的,到后面程序大了,就用C好写
需要基本的C语言知识,单片机的话需要模电数电做基础,最好再学会微机原理,能够更好的了解单片机的内部结构,其实这些都不是最重要的 最重要的是你有一个克服困难的决心 有的人没有上大学也能很好的学好单片机 没有基础可以一边学一边补基础 那里不懂补那里 自学是一个非常痛苦的过程 但当你有所收获的时侯那种快乐也是无法描述的
C语言作为一种高级语言,应用到单片机当中。开始单片机 主要用 会变语言编程。所以 C语言就起着代替 汇编 的功能。日常学习的简单的C语言与真正应用到单片机当中的编程C 程序上存在些许区别 编程中根据实际电路大的复杂程度,先了解所用到电路中的编程芯片的DATASHEET(说明书),说明书上大概就有使用方法,涉及管脚的配置连接,编程设置等。具体,我也不好说但如果经常编程,就会慢慢了解。空说没什么根据。
P1=( uchar)j;指的是将16位变量i转换为8位无符号字符型变量赋值给(输出到)P1
P3=j8; 指的是将16位变量右移8位后变量赋值给P3,也就是取其高8位的意思
同样P1= j; 是取其低8位的意思,不加类型转换,但高8位自动丢失了,和P1=( uchar)j效果一样
有的单片机支持汇编语言,有的支持C语言。新手可以直接学C语言,只需要买一本C语言初级教程,再选一个类型的单片机,买一本简单的教程就可以上手了。这些书在大学附近的书店才容易买到。
每一类单片机都有特定的开发环境,既运行程序的软件,可以在不买开发板和芯片的情况下学习。
建议你学MSP430系列的单片机,它是现在新的流行趋势,它的开发环境的程序叫IAR,可以在网上下载。
网上流传的程序或芯片的实例对与新手来说太难,而且你会觉得莫名其妙,看不出它的妙处,应该先看C语言的基础教程,再看单片机的基础教程。等你有能力写完整的代码再谈使用开发板。
sbit
是c51拓展出来的关键字,是对byte的位进行定义
sbit
ip_2
=
ip^2就是把
中断优先级寄存器ip的第三位(从0开始的)定义成ip_2这个名称,以后你操作ip的第三位就可以直接用ip_2的这个名字了。另外sbit只能用在可被位寻址的寄存器上,也就是地址可以被8整除的寄存器,否则编译器报错。
c51有异或的命令,但是在sbit后面的这个^表示的是位,不是异或的意思。
sbit还可以这么用
char
temp
sbit
temp_2
=
temp^2
int
temp
sbit
temp_14
=
temp^14
但是不支持float的,不可以用,会报错,其他均可,比如long