欢迎来到天天文库
浏览记录
ID:27748087
大小:600.50 KB
页数:32页
时间:2018-12-04
《[高等教育]10112第4章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章单片机的C程序设计本章重点C51单片机的程序结构;各种数据类型及变量的定义、存储及运算;C51单片机程序的流程控制;C51单片机函数的定义及调用。本章难点构造数据类型的存储结构及具体的灵活应用。3.1单片机程序设计概论C51系列单片机支持三种高级语言,即PL/M、C和BASIC。(各自特点)单片机的C语言编程特点C51管理内部寄存器和存储器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题;程序由若干函数组成,具有良好的模块化结构;有丰富的子程序库可直接引用,从而大大减少用户编程的工作量;C语言和汇编语言可以交叉使用。(各自特点)单片机的C语言编译器
2、C语言编译器将C语言源代码翻译成可执行代码的软件。支持C51系列单片机的C语言编译器有很多种,如AmericanAutomation、BSO/TASKING、IAR、Keil/Franklin等。Keil/Franklin以它的代码紧凑和使用方便等特点优于其他编译器,本章针对这种编译器来介绍C51单片机的C语言程序设计。3.1.3C51单片机的程序结构#include//头文件定义#definePI3.1415//常量定义unsignedchari,j;//全局变量定义sfrP0=0x80;//特殊功能寄存器定义,//一般头文件中已包含sbitC
3、Y=0xD7;//可位寻址位或引脚定义,//一般头文件中已包含voidDelay(intTimeMs);//函数声明main(){intm,n;//局部变量定义………………//初始化程序while(1){…………//主循环}}voidDelay(intTimeMs)//函数实现{…………//函数实现代码}注意事项C语言是大小写敏感语言;标识符应该先说明再引用;任何语句必须以“;”结束;“{”必须成对,理论上位置可以随意,为增加可读性应层次分明。3.2C51的数据与运算数据与数据类型数据:具有一定格式的数字或数值。数据是计算机操作的对象。不管使用任何语言、何种算法进行
4、程序设计,最终在计算机中运行的只有数据流。数据类型:数据的不同格式叫作数据类型。数据结构:数据按一定的数据类型进行的排列、组合、架构称为数据结构。C51的数据类型FranklinC51的数据类型3.2.2常量与变量常量是指在程序运行中其值不变的量。常量分为数值型常量和符号型常量数值型常量:i=0x16;符号型常量:#definePI3.1415变量是指在程序运行中其值可以改变的量。变量由变量名和变量值构成.变量名即是存储单元地址的符号表示;变量的值就是该单元存放的内容.C语言定义一个变量,编译系统自动为它分配一个存储单元,具体地址程序员不必关心。常见变量类型:bit
5、charintfloat3.2.3C51数据的存储类型与存储器结构存储类型是指数据存放位置,即数据存放在哪个存储器中。C51共有6种存储类型变量存储类型定义datacharxchardatax存储器模式是指决定了变量的默认存储器类型、参数传递区和无明确存储区类型的说明。C51的存储器模式有SMALL、LARGE和COMPACT3.2.4特殊功能寄存器(SFR)及其定义51单片机中,除了程序计数器(PC)和4组工作寄存器组外,其他所有的寄存器均为特殊功能寄存器(SFR),分散在片内RAM区的高128字节中,地址范围为80H~0FFH。SFR中地址能被8整除,即地址以8
6、或0结尾的可以位寻址。SFR定义(与标准C语言不兼容)sfrsfr-name=intconstant;sfrPSW=0XD0;位寻址的SFR中的位定义(与标准C不兼容)第1种格式:sbitbit-name=sfr-name^intconstant;sbitCY=PSW^7;第2种格式:sbitbit-name=intconstant^intconstant;sbitCY=0XD0^7;第3种格式:sbitbit-name=intconstant;sbitCY=0XD7在reg51.h头文件中,已经对标准51单片机的SFR及可寻址位作了定义。3.2.5并行接口及其定义
7、51系列单片机片内集成4个I/O口,可以在片外扩展I/O口。51单片机片外扩展I/O口与片外数据存储器统一编址,即把一个I/O口当作数据存储器中的一个单元来看待。片内IO口定义sfrP0=0X80;注:在reg51.h头文件中已定义片外IO口(相当于1个单元外部数据存储器)定义#include#definePORTAXBYTE[0XFFC0]absacc.h是C51中绝对地址访问函数的头文件。PORTA地址FFC0H,长度8位。3.2.6位变量(BIT)及其定义sbit定义位变量sbitCY=PSW^7;sbitCY=0XD0^7;sbitC
此文档下载收益归作者所有