欢迎来到天天文库
浏览记录
ID:37505110
大小:332.81 KB
页数:22页
时间:2019-05-12
《单片机教程2续-KeillC51应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、51单片机及其应用第二章续KEILC51的应用C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。目前,使用C语言进行程序设计已经成为软件开发的一个主流。用C语言开发系统可以大大缩短开发周期,明显增强程序的可读性,便于改进和扩充。而针对8051的C语言日趋成熟,成为了专业化的实用高级语言。C语言作为一种非常方便的语言而得到广泛的支持,国内最通用的是KeilC51.C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可
2、维护性。㈠C-51的特点C-51与ASM-51相比,有如下优点:1.对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;2.寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4.具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性;5.提供的库包含许多标准子程序,具有较强的数据处理能力;6.由于具有方便的模块化编程技术,使已编好程序可容易地移植;C51存储类型存储类型寻址空间数据长度值域范围data片内直接寻址RAM80~127idata片内间接寻址RAM80~2
3、55pdata分页寻址片外RAM80~255存储类型寻址空间数据长度值域范围xdata片外数据存储(64K)160~65535code片内统一编址ROM(64K)160~65535bdata片内可位寻址的RAM(16byet)10~127C51的数据声明的一般格式如下[类型说明符][修饰符]标识符[=初值]……例如:unsignedcharcodeFlag=0x0f;就是声明一个无符号的char型变量Flag,并给他赋初值为0x0f;并且声明他所在的存储空间在片内统一编址的ROM中。声明中,如果没有修饰符,则数据默认的存储空间为data型,也就是在片内RAM中。㈡
4、C-51的程序结构与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。C-51函数的一般格式类型函数名(参数表){数据说明部分语句执行部分}㈢C-51的数据类型基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortin
5、t160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~255C语言中的基本数据类型类型符号关键字数的表示范围所占位数整型字符型实型有无(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsignedint0~65535320~4294967295unsignedlongintunsignedshortint160~6
6、5535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127无unsignedchar80~255㈢(续)C-51的数据类型扩充定义sfr:特殊功能寄存器声明sfr16:sfr的16位数据声明sbit:特殊功能位声明bit:位变量声明例:sfrSCON=0X98;sfr16T2=0xCC;sbitOV=PSW^2;㈣C-51数据的存储类型名存储空间位置长度数据范围data直接寻址片内RAM8位0~255bdata可位寻址片内RAM1位0/1idata间接寻址片内RAM8位0~255pdata片外
7、页RAM8位0~255xdata片外RAM16位0~65535code程序ROM16位0~65535㈣C-51数据的存储类型(续)例:数据类型存储类型变量chardatavar1;bitdataflags;unsignedcharxdatavextor[10];㈣C-51数据的存储类型㈤C-51的包含的头文件通常有:reg51.hmath.hctype.hstdio.hstdlib.habsacc.h常用有:reg51.h(定义特殊功能寄存器和位寄存器);math.h(定义常用数学运算);㈥C-51的运算符与C语言基本相同:+-*/(加减乘除)>>=<<=(大于大
8、于等于小于
此文档下载收益归作者所有