单片机s52简易红绿灯c语言编程,基于51系列单片机的简单c语言编程.doc

基于51系列单片机的简单c语言编程

??? 基于大家都学过了c语言和单片机,但我们学单片机的时候没有学到如何用c来编程序,来替代难懂而又冗长的汇编指令。难道这么好的c就忍心搁置在记忆的深处浪费掉了?其实用c来对单片机编程不是很难的一件事情,这只是一个接口问题,而这个接口则相当简单。一般人花一两个小时可以基本掌握了,编几个简单的程序没有问题了。然后当你回头看看上学期那些用汇编做的实验,真是easy!

??? 用c来对单片机编程主要是引入了几个单片机特有的函数以及函数标识符、修饰符等,所有指令遵循c语言的语法。本文主要说明了编程中经常用到的几个函数说明、中断等情况,对于复杂的很少用到的函数及修饰符忽略不计,有兴趣我们一起研究下 ^_^

??? 在c51函数定义中要考虑的东西比较多,不像我们在c语言中总是int、int、int看上去不爽再float,还是不爽就double。c51中不能随便就int了。要知道我们的程序最后是要烧到单片机里面去的,那是8位机,可不是你32位的cup ~-~??? c51中一个完整的函数定义从先到后包括存储类型说明、类型说明、标识符、修饰符部分、存储模式共5部分。完整的表格如下:

[存储类型说明符] [类型说明]????????? [标识符]??? 修饰符部分???????????????????????? [存储模式]static?????????? unsigned char?????? 函数名????? (reentrant)(interrupt m)(using n)extern?????????? char?????????????????????????????????????????????????????????????? small???????????????? unsigned int?????????????????????????????????????????????????????? compact???????????????? int??????????????????????????????????????????????????????????????? large???????????????? unsigned long???????????????? long???????????????? float???????????????? struct???????????????? union???????????????? void ???????????????? bit

??? 很重要的一张表,已经包括了c51中所有函数的定义,建议做成txt放在桌面上或者做成jpg成桌面并在CDEFG盘、移动硬盘、u盘、邮箱备份(有条件的还可刻录成光盘)^_^详细说明如下:【存储类型说明符】有static和extern两种。这两种c语言中已经学过,不详细说明了。static指静态变量,本函数内部有效。extern是外部变量,全局有效。另外如果不加说明,则默认是extern。

【类型说明】一共11种,比较重要。1、unsigned char:无符号字符型,长度8位,大小范围0-255。因为和单片机位数一致,可以看成跟汇编里的A和R是一样的,是c51中用的最多的类型了。如果变量范围不超过256,那你就毫不犹豫的在标识符前面写上它吧。2、char:唯一和上面有区别的是它是有符号的8位,大小范围 -128-127。3、unsigned int:无符号整型,长度16位,大小范围0-65535。如果你实在没有办法把变量控制在256之内,那么就用它吧。65535应该够用了吧?如果还不够,对你的编程能力要怀疑一下了。4、int:就像char和unsigned char的区别一样,int唯一和上面不同的只是符号问题。 大小范围-32768-32767。5、void:无值型,也经常用到的一种类型,长度为0。表示函数不返回值实际编程时用到以上5种类型已经足够了,以下几种仅做友情介绍。6、 unsigned long: 无符号长整型,长度32位 大小范围 0-4294967295(好大啊)。很少用到,基本上不用到。要知道你定一个unsigned long我们的单片机可要让出4个寄存器给你了,对于资源有限的51系列单片机,这是相当奢侈的做法。7、long:不再多讲了,跟5的区别只是符号,也是基本上不用到的。8、float:符点型32位。也是相当奢侈的做法,建议不用9、double:符点型64位。最奢侈的做法!10、struct:结构型。11、union:联合型。

【标识符】:标识符是最灵活的地方了,可以是你喜欢的任何字母的组合,当然不能是c语言中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值