手把手教你做彩铃电子时钟
-----C语言的使用
在上一章节,我们给大家留了3个作业,我们把参考程序也留给了大家,程序比较简单,但是鉴于学习单片机的人基础不一样,并不是人人都接触过C语言,都能读懂这个程序,所以,这一章我们给大家解析下这个程序中出现的一些C语言使用的知识点,本章的确有些枯燥,弄懂了这些,对我们接下来的学习大有益处。
这一章的主要内容有:
Ø Typedef的作用和define 的区别
Ø 位操作和总线操作的区别
Ø For循环的使用方法
Ø If语句与switch语句
l Typedef的作用和define 的区别
除了可以直接使用C提供的标准类型名和程序编写者自己声明的接头体共用体,枚举类型外,还可以用typedef 制定新的类型名来替代已有的类型,在我们的程序中,我们重新定义了数据类型,他们的取值范围如下:
数据类型既然有无符号的,自然也就有符号的,不过取值范围不太一样,还有浮点类型,枚举类型,空类型,指针结构体数组之类的派生类型,这个需要了解的话直接看C语言第4版。上述类型如果用define 来定义的话也是可以的:
我们总结一下2者的相同与不同:
v 相同点:#define 和typedef 都可以重新定义变量类型。
v 区别:typedef是在编译阶段处理,也就是说,如果你定义错了,或者是写错了几个字母,他会报错的,编译不会通过。而define 是在预编译时处理的,只是简单的A替换B,就算你写错了,他都可以编译通过。
l 位操作和总线操作的区别
因为51单片机是8位机,也就是说,一条指令处理8位数据,即一个字节,所谓的位操作,比如让P0.0单独置为0或者1,而不用管其他位的设置,如果总线操作那么就需要P0 = 0XFE;
有人可能会问这玩意有什么用?单片机有个东西叫做寄存器,其实就是个功能开关,你打开他,这个功能就可以用,你关闭他,这个模块不能用,简单来说,寄存器就这么个玩意,而寄存器有的可以位寻址,有的不可以,可以的进行位操作,不可以位寻址的那只能总线操作,一次性的操作几位,这个我们配置定时器的时候会详细的去讲解。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !