欢迎来到天天文库
浏览记录
ID:59010313
大小:311.50 KB
页数:44页
时间:2020-09-26
《第四章 单片机C51简介ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章C51简介本章要点C51程序设计基础数据类型,常量与变量,存储模式与绝对地址访问,常用运算符,表达式语句及复合语句C51基本结构和语句C51构造数据类型数组,指针,结构,联合,枚举C51的函数函数的调用与声明,函数的嵌套与递归编程举例4.1C51程序设计基础一、C51基础知识1.C语言与MCS-51系列单片机MCS-51系列单片机采用汇编语言执行效率高、速度快、与硬件结合紧密等特点。但汇编语言编程难度大,可读性差,不便于移植,开发的时间长。C语言相对来说比较容易,支持多种数据类型,可移植性强,而且也能
2、够对硬件直接访问,能够按地址方式访问存储器或I/O端口。用C语言编写的应用程序必须由单片机C语言编译器转换生成单片机可执行的代码程序。2.C51程序结构C51程序结构与标准的C语言程序结构相同,采用函数结构,一个程序由一个或多个函数组成。有一个且只有一个为main()函数。程序从main()函数开始执行,执行到main()函数结束。在main()函数中可调用库函数和用户定义的函数。C51程序与标准的C语言程序在以下几个方面不一样。C51中定义的库函数和标准C语言定义的库函数不同。C51中的数据类型与标准C语
3、言的数据类型也有一定的区别,在C51中还增加了几种针对MCS-51系列单片机特有的数据类型。C51变量的存储模式与标准C语言中变量的存储模式不一样。C51与标准C语言的输入/输出处理不一样,C51中的输入/输出是通过MCS-51系列单片机串行口来完成的,输入/输出指令执行前必须要对串行口进行初始化。C51与标准C语言在函数使用方面也有一定的区别,C51中有专门的中断函数。二、C51数据类型C51的数据类型基本数据类型和组合数据类型其中char型与short型相同,float型与double型相同。C51中还
4、有专门针对于MCS-51单片机的特殊功能寄存器型和位类型。1.C51数据类型bit位变量bit位变量是可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1。bitlock;//将lock定义为位变量bitdirection;//将direction定义为位变量sbit可独立寻址的位变量利用它能访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。sbitCY=0xD7;//定义进位标志CY的地址为D7HsbitAC=0xD0^6;//定义辅助进位标志AC的地址为D
5、6HsbitRS0=0xD0^3;//定义RS0的地址为D3H注意:bit变量编译时位地址可以变化的sbit变量必须与一个可寻址位单元中的一位联系在一起。sfr8位特殊功能寄存器sfr占用一个内存单元,值域为0~255。利用它能访问51单片机内部的所有特殊功能寄存器。例如:sfrPSW=0xD0;//定义程序状态字PSW的地址为D0HsfrTMOD=0x89;//定义定时器/计数器方式控制寄存器TMOD的地址为89HsfrP1=0x90;//定义P1口的地址为90Hsfr1616位特殊功能寄存器sfr16占
6、用两个内存单元,值域为0~65535。sfr16和sfr一样用于操作特殊功能寄存器,不同的是它用于操作占两个字节的寄存器,如定时器T2。sfr16T2=0xCC;//定义8052定时器2,低8位地址为//T2L=CCH,高8位T2H=CDH【例4-36】设计一个程序,用以监控P1.5位。若该位为高电平,则发送55H到P0;否则,AAH发送到P2。C51参考程序如下:#includesbitmybit=P1^5;//声明单个位voidmain(void){while(1){mybit=1;i
7、f(mybit==1)P0=0x55;elseP0=0xAA;}}2.C51数据存储类型存储类型与存储空间的对应关系data直接寻址片内数据存储区,访问速度快(128字节)bdata可位寻址片内数据存储区,允许位与字节混合访问(16字节)idata间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)pdata分页寻址片外数据存储区(低256字节)xdata寻址片外数据存储区(64K字节)code寻址代码存储区(64K字节)chardatavar1;//字符变量charvar1被定义为data存
8、储类型,定位在片内RAM中bitbdataflags;//位变量flags被定义为bdata存储类型,定位在片内RAM中的位寻址区(20H~2FH)floatidatax,y,z;//浮点变量x,y,z被定义为idata存储类型,定位在片内RAM中,并只能用间接寻址的方法进行访问unsignedintpdatadimension;//无符号整型变量dimension被定义为pdata存储类型,定位在片外数据存储区
此文档下载收益归作者所有