版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目3点亮一个LED灯
项目目标通过单片机最小系统点亮LED灯,了解单片机开发程序基础及系统结构和流程。建议学时8学时知识要点1.单片机系统开发流程2.C51程序基础3.进行程序烧写技能掌握1、了解发光二极管介绍,硬件。2、建立工程、完成“点亮一个发光管”掌握程序的编写、编译3、C51的标识符和关键字;4、常用数据类型;5、运算符和表达式;6、程序结构、函数、数组和指针;7、预处理。8、进行程序烧写学习目标:学会用C语言控制单机,点亮开发板上的第1个LED发光管。项目3点亮一个LED灯
项目目标13.1项目分析单片机最小系统就是在单片机上接上最少的外围电路元件让单片机工作。让输入/输出口的P1.0连接一盏LED灯进行点亮。通过这一项目将整个开发流程展示出来,包括点亮LED灯,闪烁LED灯,控制闪烁时间多项任务。3.1项目分析单片机最小系统就是在单片机上接上最少的外围电23.2技术准备1、LED发光二极管。它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。2、LED的工作原理。LED的符号为:LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。3、LED的原理图解析开发板上面LED的原理图如右图,LED的阳极串联一个电阻,然后连接到电源VCC,而LED的阴极连接到单片机的P1口,如果你想点亮一盏LED就对把单片机相对应的IO赋为低电平。图3-1LED流水灯3.2技术准备1、LED发光二极管。图3-1LED流水33.2技术准备1、C51的标识符和关键字C语言的标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线。错误的标识符,编译时会有错误提示。由于C51中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。例如:f-2,4am,a.m等均为错误标识符。标准C语言定义了32个关键字,如表3-1所示:表3-1ANSIC关键字关键字用途说明auto存储种类说明用于声明局部变量,为默认值break程序语句退出最内层循环体case程序语句switch语句中的选择项char数据类型声明单字节整型数或字符型数据const存储种类说明在程序执行过程中不可修改的值表3-1ANSIC关键字关键字用途说明auto存储种类说明用于声明局部变量,为默认值break程序语句退出最内层循环体case程序语句switch语句中的选择项char数据类型声明单字节整型数或字符型数据const存储种类说明在程序执行过程中不可修改的值3.2技术准备1、C51的标识符和关键字关键字用途说明au4continue程序语句转向下一次循环default程序语句switch语句中缺省选择项do程序语句构成do…while循环结构double数据类型声明双精度浮点数else程序语句构成if…else条件结构enum数据类型声明枚举类型数据extern存储种类说明在其他程序模块中声明了的全局变量float数据类型声明单精度浮点数for程序语句构成for循环结构goto程序语句构成goto循环结构if程序语句构成if…else条件结构int数据类型声明整型数long数据类型声明长整型数register存储种类说明使用CPU内部寄存器变量return程序语句函数返回short数据类型声明短整型continue程序语句转向下一次循环default程序5signed数据类型声明有符号整型数sizeof运算符计算表达式或数据类型的字节数static存储种类说明静态变量struct数据类型声明结构体类型数据switch程序语句构成switch选择结构typedef数据类型声明重新进行数据类型定义union数据类型声明联合类型数据unsigned数据类型声明无符号数据void数据类型声明无类型数据或函数volatile数据类型声明声明该变量在程序执行中可被隐含地改变while程序语句构成while和do…while循环结构C51在此基础上,针对单片机功能进行了扩展。如表3-2所示。signed数据类型声明有符号整型数sizeof运算符计6表3-2C51编译器扩充关键字关键字用途说明_at_地址定位为变量进行绝对地址定位_priority_多任务优先声明规定RTX51或RTX51Tiny的任务优先级_task_任务声明定义实时多任务函数alien函数特性声明用于声明与PL/M51兼容的函数bdata存储器类型声明可位寻址的MCS-51内部数据存储器bit位变量声明声明一个位变量或位类型函数code存储器类型声明MCS-51的程序存储空间compact存储器模式按compact模式分配变量的存储空间data存储器类型声明直接寻址MCS-51的内部数据寄存器idata存储器类型声明间接寻址MCS-51的内部数据寄存器interrupt中断函数声明定义一个中断服务函数large存储器模式按large模式分配变量的存储空间pdata存储器类型声明分页寻址的MCS-5外部数据空间sbit位变量声明声明一个位变量sfr特殊功能寄存器声明声明一个8位特殊功能寄存器sfr16特殊功能寄存器声明声明一个16位特殊功能寄存器small存储器模式按small模式分配变量的存储空间using寄存器组定义定义MCS-5的工作寄存器组xdata存储器类型声明定义MCS-5外部数据空间表3-2C51编译器扩充关键字关键字用途说明_at_73.2技术准备2、常量和变量 常量又称为标量,它的值在程序执行过程中不能改变,常量的数据类型有整型、浮点型、字符型和字符串型等。实际使用中用#define定义在程序中经常用到的常量,或者可能需要根据不同的情况进行更改的常量,例如译码地址。而不是在程序中直接使用常量值。这样一方面有助于提高程序的可读性,另一方面也便于程序的修改和维护,例如:#definePI3.14 //以后的编程中用PI代替浮点数常量3.14,便于阅读#defineSYSCLK12000000 //长整型常量用SYSCLK代替12MHz时钟#defineTRUE1 //用字符TRUE,在逻辑运算中代替1#defineSTAR‘*’ //用STAR表示字符“*”#defineuintunsignedint //用uint代替unsignedint变量是一种在程序执行过程中,其数值不断变化的量。C51规定变量必须先定义后使用。
3、数据类型变量都有相应的数据类型,C51的数据类型如表3-3所示。3.2技术准备2、常量和变量 8数据类型长度值域unsignedchar单字节0~255signedchar单字节-128~+127unsignedint双字节0~65535signedint双字节-32768~+32767unsignedlong四字节0~4294967295signedlong四字节-2147483648~+2147483647float四字节±1.175494E-38~±3.402823E+38*1~3字节对象的地址bit位0或1sfr单字节0~255sfr16双字节0~65535sbit位0或1表3-3C51的数据类型数据类型长度值域unsignedchar单字节0~255s93.2技术准备1)char字符类型char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字符类型unsignedchar和有符号字符类型signedchar,默认值为signedchar类型。unsignedchar类型用字节中所有的位来表示数值,所能表达的数值范围是0~255。signedchar类型用字节中最高位字节表示数据的符号,“0”表示正数,“1”表示负数,负数用补码表示。所能表示的数值范围是-128~+127。unsignedchar常用于处理ASCII字符或用于处理小于或等于255的整型数。2)int整型int整型长度为两个字节,用于存放一个双字节数据。分有符号int整型数signedint和无符号整型数unsignedint,默认值为signedint类型。signedint表示的数值范围是-32768~+32767,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。unsignedint表示的数值范围是0~65535。3)long长整型long长整型长度为四个字节,用于存放一个四字节数据。分有符号long长整型signedlong和无符号长整型unsignedlong,默认值为signedlong类型。signedint表示的数值范围是-2147483648~+2147483647,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。unsignedlong表示的数值范围是0~4294967295。3.2技术准备1)char字符类型103.2技术准备4)float浮点型float浮点型在十进制中具有7位有效数字,是符合IEEE-754标准的单精度浮点型数据,占用四个字节。5)指针型指针型是一种特殊的数据类型,其本身就是一个变量,但在其中存放的是另一个数据的地址。在C51中,指针的长度一般是3个字节。根据所指向的变量类型的不同指针变量也有不同的类型,指针变量的类型也就表示了该指针指向的地址中的数据的类型。6)bit位标量bit位标量是C51的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,位变量的值可以取0(false)或1(true)。对位变量进行定义的语法如下:bitflag1;bitsend_en=1;3.2技术准备4)float浮点型113.2技术准备7)sfr特殊功能寄存器单片机内的各种控制寄存器、状态寄存器以及I/O端口锁存器、定时器、串行端口数据缓冲器是内部数据存储器的一部分,离散地分布在80H~FFH的地址空间范围内,这些寄存器统称特殊功能寄存器(SFR,SpecialFunctionRegisters)。sfr类型的长度为一个字节,其定义方式如下:sfr特殊功能寄存器名=地址常量;说明“地址常量”就是所定义的特殊功能寄存器的地址,例如:sfr TMOD=0x89; /*定义定时器/计数器方式控制寄存器TMOD的地址为89H*/sfr P1=0x90; /*定义P1口的地址为90H*/注意:在关键字sfr后面必须是一个名字,名字可以任意选取,但应符合一般的习惯。等号后面必须是常数,不允许有带运算符的表达式,而且该常数必须在特殊功能寄存器的地址范围之内(80H~0FFH)。8)sfr1616位特殊功能寄存器在新一代的8051单片机中,特殊功能寄存器在功能上经常组合成16位来使用。为了有效地访问这种16位的特殊功能寄存器,可采用关键字sfrl6。sfrl6类型的长度为两个字节,其定义语法与8位SFR相同,但16位SFR的低端地址必须作为sfr16的定义地址。例如sfr16T2=0CCH;//定义TIMER2,其地址为T2L=0CCH、T2H=0CDH。3.2技术准备7)sfr特殊功能寄存器123.2技术准备9)sbit可寻址位sbit同样是C51中一种扩充数据类型,利用它能访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。例如:PSW是可位寻址的SFR,其中各位可用sbit定义。 sbit CY=0Xd7; /*定义进位标志CY的地址为D7H* sbit AC=0xD0^6; /*定义辅助进位标志AC的地址为D6H*/ sbit RS0=0XD0^3; /*定义RS0的地址为D3H*/
注意:sfr和sbit只能在函数外使用,一般放在程序的开头实际上大部分特殊功能寄存器及其可位寻址的位的定义在reg51.h、reg52.h等头文件中已经给出,使用时只需在源文件中包含相应的头文件,即可使用SFR及其可位寻址的位;而对于未定义的位,使用前必须先定义。例如:#include<reg51.h>sbit P10=P1^0;sbit P12=P1^2;main(){P10=1;P12=0;PSW=0x08;……}3.2技术准备9)sbit可寻址位13使用KeilC51编写程序参考项目一的使用Keil的方法,将该程序编写出来。如图3-2所示。图3-2编写程序使用KeilC51编写程序图3-2编写程序14烧录程序打开烧录软件,并且选择好单片机型号和串口。如图所示。图3-3烧录程序烧录程序图3-3烧录程序15点击“打开程序文件”,打开之前编写好的程序。(.hex文件)如图所示。图3-4打开程序文件点击“打开程序文件”,打开之前编写好的程序。(.hex文件)16程序烧入,点击右下角“下载/编程”。如图所示。图3-5程序烧入程序烧入,点击右下角“下载/编程”。如图所示。图3-5程序173.3项目实施3.2.1点亮LED灯实战环节显然,从LED原理图上看,只要P1.0输出为低电平就可以点亮LED灯了。软件设计不用汇编,一律采用C51语言,便于理解和扩展。
图3-6LED点亮实物结果3.3项目实施3.2.1点亮LED灯实战环节图3-6L18项目3点亮一个LED灯
项目目标通过单片机最小系统点亮LED灯,了解单片机开发程序基础及系统结构和流程。建议学时8学时知识要点1.单片机系统开发流程2.C51程序基础3.进行程序烧写技能掌握1、了解发光二极管介绍,硬件。2、建立工程、完成“点亮一个发光管”掌握程序的编写、编译3、C51的标识符和关键字;4、常用数据类型;5、运算符和表达式;6、程序结构、函数、数组和指针;7、预处理。8、进行程序烧写学习目标:学会用C语言控制单机,点亮开发板上的第1个LED发光管。项目3点亮一个LED灯
项目目标193.1项目分析单片机最小系统就是在单片机上接上最少的外围电路元件让单片机工作。让输入/输出口的P1.0连接一盏LED灯进行点亮。通过这一项目将整个开发流程展示出来,包括点亮LED灯,闪烁LED灯,控制闪烁时间多项任务。3.1项目分析单片机最小系统就是在单片机上接上最少的外围电203.2技术准备1、LED发光二极管。它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。2、LED的工作原理。LED的符号为:LED的工作是有方向性的,只有当正级接到LED阳极,负极接到LED的阴极的时候才能工作,如果反接LED是不能正常工作的。3、LED的原理图解析开发板上面LED的原理图如右图,LED的阳极串联一个电阻,然后连接到电源VCC,而LED的阴极连接到单片机的P1口,如果你想点亮一盏LED就对把单片机相对应的IO赋为低电平。图3-1LED流水灯3.2技术准备1、LED发光二极管。图3-1LED流水213.2技术准备1、C51的标识符和关键字C语言的标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。标识符由字符串、数字和下划线等组成,第一个字符必须是字母或下划线。错误的标识符,编译时会有错误提示。由于C51中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。例如:f-2,4am,a.m等均为错误标识符。标准C语言定义了32个关键字,如表3-1所示:表3-1ANSIC关键字关键字用途说明auto存储种类说明用于声明局部变量,为默认值break程序语句退出最内层循环体case程序语句switch语句中的选择项char数据类型声明单字节整型数或字符型数据const存储种类说明在程序执行过程中不可修改的值表3-1ANSIC关键字关键字用途说明auto存储种类说明用于声明局部变量,为默认值break程序语句退出最内层循环体case程序语句switch语句中的选择项char数据类型声明单字节整型数或字符型数据const存储种类说明在程序执行过程中不可修改的值3.2技术准备1、C51的标识符和关键字关键字用途说明au22continue程序语句转向下一次循环default程序语句switch语句中缺省选择项do程序语句构成do…while循环结构double数据类型声明双精度浮点数else程序语句构成if…else条件结构enum数据类型声明枚举类型数据extern存储种类说明在其他程序模块中声明了的全局变量float数据类型声明单精度浮点数for程序语句构成for循环结构goto程序语句构成goto循环结构if程序语句构成if…else条件结构int数据类型声明整型数long数据类型声明长整型数register存储种类说明使用CPU内部寄存器变量return程序语句函数返回short数据类型声明短整型continue程序语句转向下一次循环default程序23signed数据类型声明有符号整型数sizeof运算符计算表达式或数据类型的字节数static存储种类说明静态变量struct数据类型声明结构体类型数据switch程序语句构成switch选择结构typedef数据类型声明重新进行数据类型定义union数据类型声明联合类型数据unsigned数据类型声明无符号数据void数据类型声明无类型数据或函数volatile数据类型声明声明该变量在程序执行中可被隐含地改变while程序语句构成while和do…while循环结构C51在此基础上,针对单片机功能进行了扩展。如表3-2所示。signed数据类型声明有符号整型数sizeof运算符计24表3-2C51编译器扩充关键字关键字用途说明_at_地址定位为变量进行绝对地址定位_priority_多任务优先声明规定RTX51或RTX51Tiny的任务优先级_task_任务声明定义实时多任务函数alien函数特性声明用于声明与PL/M51兼容的函数bdata存储器类型声明可位寻址的MCS-51内部数据存储器bit位变量声明声明一个位变量或位类型函数code存储器类型声明MCS-51的程序存储空间compact存储器模式按compact模式分配变量的存储空间data存储器类型声明直接寻址MCS-51的内部数据寄存器idata存储器类型声明间接寻址MCS-51的内部数据寄存器interrupt中断函数声明定义一个中断服务函数large存储器模式按large模式分配变量的存储空间pdata存储器类型声明分页寻址的MCS-5外部数据空间sbit位变量声明声明一个位变量sfr特殊功能寄存器声明声明一个8位特殊功能寄存器sfr16特殊功能寄存器声明声明一个16位特殊功能寄存器small存储器模式按small模式分配变量的存储空间using寄存器组定义定义MCS-5的工作寄存器组xdata存储器类型声明定义MCS-5外部数据空间表3-2C51编译器扩充关键字关键字用途说明_at_253.2技术准备2、常量和变量 常量又称为标量,它的值在程序执行过程中不能改变,常量的数据类型有整型、浮点型、字符型和字符串型等。实际使用中用#define定义在程序中经常用到的常量,或者可能需要根据不同的情况进行更改的常量,例如译码地址。而不是在程序中直接使用常量值。这样一方面有助于提高程序的可读性,另一方面也便于程序的修改和维护,例如:#definePI3.14 //以后的编程中用PI代替浮点数常量3.14,便于阅读#defineSYSCLK12000000 //长整型常量用SYSCLK代替12MHz时钟#defineTRUE1 //用字符TRUE,在逻辑运算中代替1#defineSTAR‘*’ //用STAR表示字符“*”#defineuintunsignedint //用uint代替unsignedint变量是一种在程序执行过程中,其数值不断变化的量。C51规定变量必须先定义后使用。
3、数据类型变量都有相应的数据类型,C51的数据类型如表3-3所示。3.2技术准备2、常量和变量 26数据类型长度值域unsignedchar单字节0~255signedchar单字节-128~+127unsignedint双字节0~65535signedint双字节-32768~+32767unsignedlong四字节0~4294967295signedlong四字节-2147483648~+2147483647float四字节±1.175494E-38~±3.402823E+38*1~3字节对象的地址bit位0或1sfr单字节0~255sfr16双字节0~65535sbit位0或1表3-3C51的数据类型数据类型长度值域unsignedchar单字节0~255s273.2技术准备1)char字符类型char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。分无符号字符类型unsignedchar和有符号字符类型signedchar,默认值为signedchar类型。unsignedchar类型用字节中所有的位来表示数值,所能表达的数值范围是0~255。signedchar类型用字节中最高位字节表示数据的符号,“0”表示正数,“1”表示负数,负数用补码表示。所能表示的数值范围是-128~+127。unsignedchar常用于处理ASCII字符或用于处理小于或等于255的整型数。2)int整型int整型长度为两个字节,用于存放一个双字节数据。分有符号int整型数signedint和无符号整型数unsignedint,默认值为signedint类型。signedint表示的数值范围是-32768~+32767,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。unsignedint表示的数值范围是0~65535。3)long长整型long长整型长度为四个字节,用于存放一个四字节数据。分有符号long长整型signedlong和无符号长整型unsignedlong,默认值为signedlong类型。signedint表示的数值范围是-2147483648~+2147483647,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数。unsignedlong表示的数值范围是0~4294967295。3.2技术准备1)char字符类型283.2技术准备4)float浮点型float浮点型在十进制中具有7位有效数字,是符合IEEE-754标准的单精度浮点型数据,占用四个字节。5)指针型指针型是一种特殊的数据类型,其本身就是一个变量,但在其中存放的是另一个数据的地址。在C51中,指针的长度一般是3个字节。根据所指向的变量类型的不同指针变量也有不同的类型,指针变量的类型也就表示了该指针指向的地址中的数据的类型。6)bit位标量bit位标量是C51的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,不是0就是1,位变量的值可以取0(false)或1(true)。对位变量进行定义的语法如下:bitflag1;bitsend_en=1;3.2技术准备4)float浮点型293.2技术准备7)sfr特殊功能寄存器单片机内的各种控制寄存器、状态寄存器以及I/O端口锁存器、定时器、串行端口数据缓冲器是内部数据存储器的一部分,离散地分布在80H~FFH的地址空间范围内,这些寄存器统称特殊功能寄存器(SFR,SpecialFunctionRegisters)。sfr类型的长度为一个字节,其定义方式如下:sfr特殊功能寄存器名=地址常量;说明“地址常量”就是所定义的特殊功能寄存器的地址,例如:sfr TMOD=0x89; /*定义定时器/计数器方式控制寄存器TMOD的地址为89H*/sfr P1=0x90; /*定义P1口的地址为90H*/注意:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 白细胞减少与粒细胞缺乏的病因及标准化检查流程
- 2026年重庆市北师大版高中物理必修第一册单元测试卷
- 2025-2026年浙江省部编版高二物理选修三第一章运动学测试题
- 2025-2026年四川省苏教版三年级语文下册第6单元课后练习题
- 2026年河北省人教版初中语文第6章同步练习题
- 2025-2026年金融法规与政策综合测试题库
- 2026年北京市高中物理高三一轮复习力学基础题库
- 2026年四川省人教版初中物理上册第10章力学基础同步练习题
- 再生锌原料波动对水龙头铸造成本敏感度的量化对冲策略
- 产业基金介入真丝锭子并购重组中的尽职调查盲点与价值重估逻辑
- 1.1疆域 课件(共56张内嵌视频) 人教版(2024) 地理八年级上册
- 2026秋季新学期班干部聘任仪式
- 2026秋新教材统编版九年级上册道德与法治第二课 坚持以人民为中心 教案
- EN IEC 60034-30-1 完整版中文版(EN IEC 60034-30-1-2025)(能效 IE 分级标准原文 + 实操解读)
- 第7课《培养德智体美劳全面发展的社会主义建设者和接班人》课件
- 新版部编人教版四年级上册道德与法治(课件)11学会合理消费
- 护理人文关怀的共情能力
- 2026年高考真题-物理(四川卷) 含解析
- 广东2026公需课《加快培育发展新质生产力》题库及答案
- 2026中国国际航空股份有限公司地面服务部就业见习岗位招聘笔试历年参考题库附带答案详解
- 2026贵州省农业发展集团有限责任公司招录(第一批)岗位65人农业考试备考题库及答案解析
评论
0/150
提交评论