第6章 单片机c语言程序设计基础

第6章 单片机c语言程序设计基础

ID:14194810

大小:242.00 KB

页数:23页

时间:2018-07-26

第6章  单片机c语言程序设计基础_第1页
第6章  单片机c语言程序设计基础_第2页
第6章  单片机c语言程序设计基础_第3页
第6章  单片机c语言程序设计基础_第4页
第6章  单片机c语言程序设计基础_第5页
资源描述:

《第6章 单片机c语言程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章单片机C语言程序设计基础6.1C语言与MCS–51用汇编程序设计MCS–51系列单片机应用程序时,必须要考虑其存储器结构,尤其必须考虑其片内数据存储器与特殊功能寄存器正确、合理的使用以及按实际地址处理端口数据。支持MCS-51单片机的编程语言:51汇编、PL/M宏汇编、C51、BASIC等。C语言是由PASCAL演变而来的一种结构化程序设计语言。主要优点:规模最小(关键字少)、书写自由、可移植性好、表达能力强(丰富的数据类型、结构、运算符)、结构化好(程序基本单位是函数)、可直接控制硬件资源(

2、物理地址访问能力)、目标代码质量高(接近或超过汇编代码)。主要缺点:语法定义不严格(出错检查难)、运算符优先级复杂。用C语言编写MCS–51单片机的应用程序,虽然不像用汇编语言那样具体地组织、分配存储器资源和处理端口数据,但数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。用C语言编写单片机应用程序与编写标准的C语言程序的不同之处:必须使C语言程序中的数据类型和变量与单片机存储结构及内部资源相对应。其它的语法规定、程序结构及程序设计方法都与标准的C语言程序设计相同。

3、用C语言编写的应用程序必须经单片机的C语言编译器(简称C51),转换生成单片机可执行的代码程序。支持MCS–51系列单片机的C语言编译器有很多种。如AmericanAutomation、Auocet、BSO/TASKING、DUNFIELDSHAREWARE、KEIL/Franklin等。其中KEIL/Franklin以它的代码紧凑和使用方便等特点优于其它编译器。本章是针对这种编译器介绍MCS–51单片机C语言程序设计。ANSIC关键字(32个):auto、break、case、char、const

4、、continue、defaut、do、double、else、enum、extern、float、for、goto、if、int、long、register、return、short、signed、sizeof、static、sturct、switch、typedef、union、unsigned、void、volatile、while。C51扩展关键字(13个):bit、sbit、sfr、sfr16、data、bdata、idata、pdata、xdata、code、interrupt、reen

5、trant、using。标识符:由字符串、数字、下划线组成,用于表示对象名称,对大小写敏感。标识符第一个字符必须是字母(用户程序用)或下划线(编译系统用)。常见对象:函数、变量、常量、数组、结构、语句等。6.2C51数据类型与运算6.2.1C51数据类型(C51数据类型与标准C数据类型的最大不同之处:位型)位型(bit)字符型(char)整型(int)基本类型长整型(long)浮点型(float)双精度浮点型(double)数组类型(array)数据类型结构体类型(struct)构造类型共用体(un

6、ion)枚举(enum)指针类型空类型C51数据类型的取值范围见下表:6.2.2C51数据存储类型1.C51存储类型与MCS-51单片机存储空间的对应关系2.C51存储类型及其大小和值域3.51单片机的存储模式6.2.3C51定义SFR定义方法:两个关键字:sfr和sbit1.定义特殊功能寄存器用sfr例如:sfrPSW=0xD0;/*定义程序状态字PSW的地址为D0H*/sfrTMOD=0x89;/*定义定时器/计数器方式控制寄存器TMOD的地址为89H*/sfrP1=0x90;/*定义P1口的地

7、址为90H*/2.定义可位寻址的特殊功能寄存器的位用sbit例如:sbitCY=0xD7;/*定义进位标志CY的地址为D7H*/sbitAC=0xD0^6;/*定义辅助进位标志AC的地址为D6H*/sbitRS0=0xD0^3;/*定义RS0的地址为D3H*/标准SFR在reg51.h、reg52.h等头文件中已经被定义,只要用文件包含做出申明即可使用。例如:#include”reg51.h”sbitP1_0=P1^0;sbitP1_2=P1^2;main(){P1_0=1;P1_2=0;PSW=0

8、x08;……}6.2.4C51定义直接地址字节单片机内部并行口用sfr定义,直接地址字节(外部并行口)的定义如何定义?用指针定义,指针的定义在absacc.h头文件中例如:#include“absacc.h”#definePAXBYTE[0xffec]XBYTE是一个指针,它将PA定义为一个外部并main()行口,其地址是FFECH。{PA=0x3A;/*将数据3AH写入地址为0xffec的存储单元或I/O端口*/}6.2.5C51定义位变量使用关键字bit例如:bi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。