欢迎来到天天文库
浏览记录
ID:59017672
大小:239.50 KB
页数:40页
时间:2020-09-26
《第4章 单片机C51程ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章单片机C51程序设计基础C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的机型中互相移植。C语言提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。单片机的C语言采用C51编译器,目前最常用的是KeilC51。C语言源程序经过C51编译器编译及L51(或BL51)连接/定位后生成 .BIN和 .HEX的目标程序。用C语言编写的应用程序必须经单片机的C语言编译器(简称C51),转换生成单片机可执行的代码程序。支持MCS–51系列单片机的C语言编译器有很多种。如Americ
2、anAutomation、Auocet、BSO/TASKING、DUNFIELDSHAREWARE、KEIL/Franklin等。其中KEIL/Franklin以它的代码紧凑和使用方便等特点优于其它编译器。本章是针对这种编译器介绍MCS–51单片机C语言程序设计。C51程序与标准c程序的区别?需要根据单片机存储结构及内部资源定义相应的C语言中的数据类型和变量C语言与MCS–51复习8051存储空间分布图片内外统一寻址的64KB程序存储器空间,地址范围为0000H~FFFFH。64KB的片外数据存储器空间,地址范围也为0000H~F
3、FFFH。256B的片内数据存储器空间,地址范围为00H~FFH。内部数据存储器低128字节RAM内部扩展RAM高128字节RAM特殊功能寄存器区00H7FH80HFFH低128字节RAM特殊功能寄存器区00H7FH80HFFH低128字节RAM32字节工作寄存器区16字节位寻址区00H2FH7FH80字节用户区1FH20H30H低128字节RAM4.1C51程序的结构预处理命令函数体主函数子函数#include#includevoidmain(){inta,b,c;intmax(intx,in
4、ty);SCON=0x52;TMOD=0x20;TH1=0xf4;TL1=0xf4;TR1=1;printf("Pleaseenteraandb");scanf(%d,%d,&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;returnz;}/*max函数结束*/通常使用的头文件有:reg51.h、math.h、ctype.h、stdio.h、stdlib.h、absacc.h等。其中,reg51.h用于定义特殊功能寄
5、存器和位寄存器;math.h用于定义常用数学运算。可以从KeilC的Help中或其它资料中了解标准库函数的功能。C51编译器扩充的数据类型bit位标量利用它可定义一个位标量,但不能定义位指针或位数组。它的值是一个二进制位,不是0就是1。sfr特殊功能寄存器占用一个内存单元,值域为0~255。利用它可以访问51单片机内部的所有特殊功能寄存器。sfr1616位特殊功能寄存器占用两个内存单元,值域为0~65535。sfr16和sfr所不同的是它用于操作占两个字节的寄存器。sbit可寻址位利用它可以访问芯片内部的RAM中的可寻址位或特殊功
6、能寄存器中的可寻址位。数据类型存储长度取值范围unsignedchar单字节0~255char单字节-128~127Unsignedint双字节0~65535int双字节-32768~32767unsignedlong四字节0~429494967295long四字节-2147483648~2147483647float四字节±1.175494E-38~±3.402823E+38*(指针型)1-3字节对象地址bit位1或0sfr单字节0~255sfr16双字节0~65535sbit位1或0变量及其存储空间C语言中,对变量定义的格式如
7、下:[存储种类]数据类型[存储器类型]变量名变量存储种类选项有四种:自动(auto),静态(static),外部(extern)和寄存器(register)。Keil51能识别的存储器类型存储器类型说明*类型的编码Data直接寻址内部数据存储器(128字节)4Bdata可寻址片内数据存储器,允许位和字节混合访问位寻址区0x20~0x2FIdata间接寻址内部数据存储器256字节1Pdata分页访问外数据存储器256字节,用MOVX@Ri指令访问3Xdata外64K数据存储器,用MOVX@DPTR指令访问2Code程序存储器(64K
8、),用MOVC@A+DPTR指令访问51.内部数据存储器寻址2.外部数据存储器寻址3.程序存储器的寻址C51提供了两个关键字,pdata和xdata在C51中,使用关键字code表明存储在0~64K程序存储器中的数据。因为程序存储器中数据具有在程序
此文档下载收益归作者所有