
单片机原理及应用Principleand application of MCU本讲内容提要:C51程序框架函数定义三、不变量定义,(一般变量、指针变量、特殊变量)重点难点:三、变量定义
单片机原理及应用 Principle and application of MCU 本讲内容提要: 一、C51程序框架 二、函数定义 三、变量定义(一般变量、指针变量、特殊变量) 重点难点: 三、变量定义

单片机原理及应用Principleand application of MCU单片机的C语言单片机的C是在标准C语言的基础上扩展而成。故我们仅需学习与单片机紧密关联的扩展部分即可达到快速掌握C51高级语言的目的。单片机的C语言(C51语言)标准语言
单片机原理及应用 Principle and application of MCU 单片机的C语言 标准C语言 单片机的C语言(C51语言) 单片机的C是在标准C语言的基础上扩展而成。 故我们仅需学习与单片机紧密关联的扩展部分, 即可达到快速掌握C51高级语言的目的

单片机原理及应用Principleand applicationof MCUC51的程序框架#include"stc15.h"/ /引入stc15.h文件void main()<Ⅱ程序主体while(1))/ /或用for(田);待机或等待中断7
单片机原理及应用 Principle and application of MCU #include”stc15.h” //引入stc15.h文件 void main() { //程序主体 while(1); //或用for(;;); 待机或等待中断 } 一 、C51的程序框架

单片机原理及应用Principle and application of MCU#include"stc15.h"//引入stc15.h文件1/引入其他头文件、定义全局变量定义函数或声明变量、函数等。void main()(/初始化部分while(1) ;//或用for(;;);任务循环Jl//程序主体7
单片机原理及应用 Principle and application of MCU #include”stc15.h” //引入stc15.h文件 . //引入其他头文件、定义全局变量定义函数或声明变量、函数等。 void main() { . //初始化部分 while(1); //或用for(;;); 任务循环 { //程序主体 } }

单片机原理及应用Principleand applicationof MCUC51的函数定义函数类型函数名(形式参数表)[reentrant][interrupt m][using n](局部变量定义函数体1下面来看几个例程
单片机原理及应用 Principle and application of MCU 二、C51的函数定义 函数类型 函数名(形式参数表) [reentrant] [interrupt m] [using n] { 局部变量定义 函数体 } 下面来看几个例程

单片机原理及应用Principleand applicationof MCUvoid delay02s(void)/一般函数定义5unsigned char i, j, k;for (i=20; i>0; i--)for (j=20; j>0; j--)for (k=230; k>0; k--);7void delayo2s(unsigned char n)带参数传递的函数(unsigned char i, j, k,for (i=n; i>0; i--)for (j=20; j>0; j--)for (k=230; k>0; k--);7int max(int x, int y)/带参数传递和有返回值的函数(int z;z=x>y? x:yireturn z;7
单片机原理及应用 Principle and application of MCU void delay02s(void) //一般函数定义 { unsigned char i, j, k; for (i=20; i>0; i-) for (j=20; j>0; j-) for (k=230; k>0; k-); } void delay02s(unsigned char n) //带参数传递的函数 { unsigned char i, j, k; for (i=n; i>0; i-) for (j=20; j>0; j-) for (k=230; k>0; k-); } int max(int x, int y) //带参数传递和有返回值的函数 { int z; z=x>y? x:y; return z; }

单片机原理及应用Principleand applicationof MCUreentrantunsigned int fac (unsignedint n)/递归调用必须设置为重置函数1unsignedint resultif(n==0)result=1;C51elseresult=n*fac(n-1))return (result);特有1void TIMERO_isr()interrupt 0 using1//中断函数(count++;if(count==20)(count=O;//时间到反转电平P2 _0=~P2_0;7
单片机原理及应用 Principle and application of MCU unsigned int fac(unsigned int n) reentrant //递归调用必须设置为重置函数 { unsigned int result; if(n==0) result=1; else result=n*fac(n-1); return (result); } void TIMER0_isr() interrupt 0 using 1 //中断函数 { count++; if(count==20) { count=0; P2_0=~P2_0; //时间到反转电平 } } C51 特有

单片机原理及应用Principle and application of MCU三、变量的定义1.一般变量的格式变量名数据类型[存储种类][存储器类型]存储地址(标准C)存储空间(C51特有)数据格式(C51扩充)作用范围(标准C)注意:“方括号项可以缺省
单片机原理及应用 Principle and application of MCU 注意:方括号项——可以缺省 [存储种类] 数据类型 [存储器类型] 变量名 存储地址(标准C) 作用范围(标准C) 存储空间 (C51特有) 数据格式 (C51扩充) 三、变量的定义 1.一般变量的格式

单片机原理及应用Principleand applicationof MCUdatavar = 0;autounsigned char初值为零变量名为var位于片内RAM区无符号字符型自动型该变量位于/定义var为无符号字符型自动变量,data区中且初值为0此部分需要关注与标准C不同的地方
单片机原理及应用 Principle and application of MCU auto unsigned char data var = 0; //定义var为无符号字符型自动变量,该变量位于 data区中且初值为0。 无符号字符型 位于片内RAM区 变量名为var 初值为零 自动型 此部分需要关注与标准C不同的地方!

单片机原理及应用Principleand application of MCU变量名数据类型[存储种类][存储器类型]自动变量在函数内部定义的变量,退出函数(auto)后,分配给该变量的存储单元即自行消失(局部变量)。②外部变量(extern)一一在函数外部定义的变量,可始终保持变量的数值(全局变量)。【强调】一个外部变量只能被定义一次,在定义文件之外的地方使用时需用extern进行声明。静态变量(static)一一静态局部变量/静态全局变量寄存器变量(register)一一以寄存器为存储空间的变量若省略存储种类选项,则变量默认为自动变量
单片机原理及应用 Principle and application of MCU [存储种类] 数据类型 [存储器类型] 变量名 ① 自动变量(auto)——在函数内部定义的变量,退出函数 后,分配给该变量的存储单元即自行消失(局部变量)。 ② 外部变量(extern)——在函数外部定义的变量,可始终 保持变量的数值(全局变量)。 【强调】一个外部变量只能被定义一次,在定义文件之外的 地方使用时需用extern进行声明。 ③ 静态变量(static)——静态局部变量/静态全局变量 ④ 寄存器变量(register)——以寄存器为存储空间的变量 若省略存储种类选项,则变量默认为自动变量