第1章单片机C语言概述全解优秀PPT.ppt

上传人:1398****507 文档编号:57455565 上传时间:2022-11-05 格式:PPT 页数:78 大小:209KB
返回 下载 相关 举报
第1章单片机C语言概述全解优秀PPT.ppt_第1页
第1页 / 共78页
第1章单片机C语言概述全解优秀PPT.ppt_第2页
第2页 / 共78页
点击查看更多>>
资源描述

《第1章单片机C语言概述全解优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第1章单片机C语言概述全解优秀PPT.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 单片机技术应用入门单片机技术应用入门 -C51-C51程序设计程序设计(32学时)学时)电气与电子工程学院电气与电子工程学院姜志海姜志海课程简介描述:课程简介描述:以标准以标准C C语言和语言和5151单片机为基础,全面单片机为基础,全面介绍单片机介绍单片机C C语言程序设计与应用基础。语言程序设计与应用基础。包括单片机包括单片机C C语言概述、语言概述、KEILKEIL和和PROTEUSPROTEUS应用概述、应用概述、5151功能部件编程基础、接口功能部件编程基础、接口编程基础。编程基础。首先:首先:1.1.为什么开这门课?为什么开这门课?2.2.学好这门课须要的基础学问?学好这门课须要

2、的基础学问?3.3.怎样驾驭这门课?怎样驾驭这门课?4.4.课程内容。课程内容。5.5.要求。要求。1.1.为什么开这门课?为什么开这门课?须要须要大规模生产大规模生产自动化生产线的须要。自动化生产线的须要。不须要人的干预自动工作、仪表的智不须要人的干预自动工作、仪表的智能化能化自动化产品、仪器仪表自动化产品、仪器仪表2.2.须要的基础学问?须要的基础学问?单片机硬件基础、单片机硬件基础、C C语言基础语言基础3.3.怎样驾驭这门课?怎样驾驭这门课?程序设计程序设计=算法算法+语言语言(1)(1)重点:算法重点:算法-框图框图(2)(2)爱好爱好4.4.课程内容课程内容(1 1)概述)概述(2

3、 2)软件工具)软件工具(3 3)C C语言基础语言基础(4 4)中断、定时器)中断、定时器/计数器、串行口的计数器、串行口的C C语言编程基础语言编程基础(5 5)键盘)键盘/显示、模拟量的显示、模拟量的C C语言编程语言编程基础基础5.5.要求要求自觉学习、快乐学习、细致学习自觉学习、快乐学习、细致学习参考教材:参考教材:一般高等教化一般高等教化“十一五十一五”国家级规划教材国家级规划教材单片机的单片机的C语言程序设计与应用语言程序设计与应用 -基于基于PROTEUS仿真(第仿真(第2版)版)姜志海姜志海 电子工业出版社电子工业出版社补充:补充:5151单片机硬件基本基础单片机硬件基本基础

4、一、单片机概述一、单片机概述二、二、MCS-51MCS-51单片机的总体结构单片机的总体结构三、三、MCS-51MCS-51单片机的存储器结构单片机的存储器结构四、四、MCS-51MCS-51单片机并行的单片机并行的I/OI/O口口五、五、MCS-51MCS-51单片机的协助电路刚好单片机的协助电路刚好序序一一、单片机概述、单片机概述1 1、定义:、定义:接受确定的工艺手段将接受确定的工艺手段将CPUCPU、存储器、存储器、I/OI/O口口集成在一个芯片上。集成在一个芯片上。2 2、特点:、特点:抗干扰性强,工作温度范围宽抗干扰性强,工作温度范围宽 ;牢靠性高;牢靠性高;限制功能很强,数值计算

5、实力较差;限制功能很强,数值计算实力较差;指令系统比通用微机系统简洁;指令系统比通用微机系统简洁;更新换代速度比通用微机处理器慢多。更新换代速度比通用微机处理器慢多。3 3、应用:、应用:智能仪表中的应用智能仪表中的应用 机电一体化中的应用机电一体化中的应用 实时限制中的应用实时限制中的应用 军工领域的应用军工领域的应用 分布式多机系统中的应用分布式多机系统中的应用 民用电子产品中的应用民用电子产品中的应用 3 3、常用的单片机产品、常用的单片机产品 MCSMCS单片机单片机 AVRAVR单片机单片机 PICPIC单片机单片机 MSPMSP单片机单片机 ARMARM处理器处理器 DSPDSP处

6、理器处理器 4、单片机应用系统、单片机应用系统5 5、单片机应用系统开发概述、单片机应用系统开发概述 开发环境的软硬件构成开发环境的软硬件构成 PROTEL、PROTEUS、KEIL C51等等单片机的在线编程单片机的在线编程 ISP-ISP-在线系统编程在线系统编程 IAP-IAP-在线应用编程在线应用编程二、总体结构二、总体结构包括四个问题:包括四个问题:1 1、内部结构、内部结构2 2、外部引脚、外部引脚3 3、总线图、总线图4 4、微处理器、微处理器讲到单片机都有个系列问题讲到单片机都有个系列问题MCS-51MCS-51:基本型基本型 51 51子系列子系列(803180518751)

7、(803180518751)增加型增加型 52 52子系列子系列(803280528752)(803280528752)特殊型特殊型 全部的基础都是基本型。全部的基础都是基本型。1 1、内部结构、内部结构8 8位的位的CPUCPU;128128个字节的片内个字节的片内RAMRAM;4 4K K字节的片内字节的片内ROMROM程序存储器程序存储器(8031(8031无无)外部的外部的RAMRAM和和ROMROM的寻址范围为的寻址范围为6464K K2121个字节的专用寄存器个字节的专用寄存器4 4个个8 8位并行位并行I/OI/O口;口;1 1个全双工的串行口个全双工的串行口2 2个个1616位

8、的定时器位的定时器/计数器计数器5 5个中断源、个中断源、2 2个中断优先级个中断优先级111111条指令。条指令。内部结构框图:内部结构框图:2 2、外部引脚及说明、外部引脚及说明P3P3口其次功能:口其次功能:3 3、总线图、总线图4 4、CPUCPU CPU CPU又称为微处理器,是单片机内部又称为微处理器,是单片机内部的核心部件,它确定了单片机的重要功的核心部件,它确定了单片机的重要功能特性。它由运算器和限制器两大部分能特性。它由运算器和限制器两大部分组成。组成。对对CPUCPU的运用就是对的运用就是对CPUCPU中的寄存器中的寄存器的运用。的运用。有关的寄存器有关的寄存器累加器累加器

9、ACC ACC 寄存器寄存器B B程序状态字程序状态字PSW PSW 布尔处理器布尔处理器C C程序计数器程序计数器PC PC 数据指针数据指针DPTRDPTR堆栈指针堆栈指针SPSP三、存储器结构三、存储器结构从物理结构上可分为从物理结构上可分为2 2部分:部分:1 1、程序存储器、程序存储器 (1 1)编址与访问)编址与访问 (2 2)程序的)程序的7 7个特殊入口地址个特殊入口地址 2 2、数据存储器、数据存储器 (1 1)编址与访问)编址与访问 (2 2)片内数据存储器)片内数据存储器 (3 3)特殊功能寄存器块)特殊功能寄存器块 1 1、程序存储器、程序存储器 程序存储器通常存放程序

10、指令、常数及程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其表格等,系统在运行过程中不能修改其中的数据中的数据 。(1 1)编址与访问)编址与访问(2 2)程序的几个特殊地址)程序的几个特殊地址:复位复位 0000 0000H H 外部中断外部中断0 00030 0003H H 定时器定时器/计数器计数器0 0溢出溢出 000 000BHBH 外部中断外部中断1 00131 0013H H 定时器定时器/计数器计数器1 1溢出溢出 001 001BHBH 串行口中断串行口中断 0023 0023H H(定时器定时器/计数器计数器2 2溢出溢出 002 002BHBH)2 2

11、、数据存储器、数据存储器 数据存储器则存放缓冲数据,系统在运数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。行过程中可修改其中的数据。包括包括:(1 1)编址与访问)编址与访问 (2 2)片内数据存储器)片内数据存储器 (3 3)特殊功能寄存器块)特殊功能寄存器块(1 1)编址与访问)编址与访问(2 2)片内数据存储器)片内数据存储器 00H 00H1FH1FH 20H 20H2FH2FH 30H 30H7FH7FH堆栈:堆栈:片内片内RAMRAM、初始化时、初始化时SP=07HSP=07H 向上生长的向上生长的 一般程序的起先:一般程序的起先:MOV SP MOV SP,#60H

12、#60H(3 3)特殊功能寄存器块)特殊功能寄存器块特殊功能寄存器又称为专用寄存器特殊功能寄存器又称为专用寄存器专专用用于于限限制制、管管理理片片内内算算术术逻逻辑辑部部件件、并并行行I/OI/O口口、串串行行I/OI/O口口、定定时时器器/计计数数器器、中中断断系系统等功能模块的工作。统等功能模块的工作。四、并行的四、并行的I/OI/O口口1 1、P1P1口口2 2、P3P3口口3 3、P0P0口口4 4、P2P2口口1 1、P1P1口:口:2 2、P3P3口:口:3 3、P0P0口:口:4 4、P2P2口:口:五、协助电路刚好序五、协助电路刚好序1 1、时钟电路、时钟电路2 2、复位电路、

13、复位电路3 3、时序、时序1 1、时钟电路时钟电路2 2、复位电路、复位电路3 3、时序、时序(1 1)振荡周期)振荡周期(2 2)状态周期)状态周期 (3 3)机器周期)机器周期(4 4)指令周期)指令周期外部晶振的外部晶振的2 2分频是分频是MCS-51MCS-51单片机的内单片机的内部部时钟周期时钟周期,6 6个时钟周期个时钟周期构成了单片构成了单片机的机的1 1个机器周期个机器周期 。第第1 1章章 单片机的单片机的C C语言概述语言概述 1 11 C1 C语言与单片机编程语言与单片机编程1 12 C512 C51程序程序1 13 C513 C51编程举例编程举例 1 11 C1 C语

14、言与单片机编程语言与单片机编程一、单片机的一、单片机的C语言的特点语言的特点二、单片机的二、单片机的C语言与标准语言与标准C语言的语言的比较比较三、单片机的三、单片机的C语言与汇编语言的语言与汇编语言的比较比较一、单片机的一、单片机的C语言的特点语言的特点 无须了解机器硬件,只需初步了解无须了解机器硬件,只需初步了解MCS-51MCS-51的存储器的存储器结构;结构;C51C51语言在小应用程序中产生的代码量大,执行速语言在小应用程序中产生的代码量大,执行速度慢,但在较大的程序中代码效率高;度慢,但在较大的程序中代码效率高;C51C51语言程序由若干函数组成,具有良好的模块化语言程序由若干函数

15、组成,具有良好的模块化结构,便于改进和扩充;结构,便于改进和扩充;C51C51语言程序具有良好的可读性和可维护性,而汇语言程序具有良好的可读性和可维护性,而汇编语言在大应用程序开发中,开发难度增加,可读性编语言在大应用程序开发中,开发难度增加,可读性差;差;C51C51语言有丰富的库函数,可以大大削减用户的编语言有丰富的库函数,可以大大削减用户的编程量,显著缩短编程与调试时间,大大提高软件开发程量,显著缩短编程与调试时间,大大提高软件开发效率;效率;运用汇编语言编制的程序,当机型变更时,无法干运用汇编语言编制的程序,当机型变更时,无法干脆移植运用,而脆移植运用,而C C语言程序是面对用户的程序

16、设计语语言程序是面对用户的程序设计语言,能在不同机型的机器上运行,可移植性好。言,能在不同机型的机器上运行,可移植性好。二、单片机的二、单片机的C语言与标准语言与标准C语言的比较语言的比较(1)C51语言中定义的库函数和标准语言中定义的库函数和标准C语言定义的库语言定义的库函数不同函数不同(2)C51语言中的数据类型和标准语言中的数据类型和标准C语言的数据类型语言的数据类型也有确定的区分也有确定的区分(3)C51变量的存储模式与标准变量的存储模式与标准C语言中变量的存储语言中变量的存储模式不一样模式不一样(4)C51语言与标准语言与标准C语言的输入语言的输入/输出处理不一样输出处理不一样(5)

17、C51语言与标准语言与标准C语言在函数运用方面有确定的语言在函数运用方面有确定的区分区分C51语言中有特地的中断函数。语言中有特地的中断函数。三、单片机的三、单片机的C语言与汇编语言的比较语言与汇编语言的比较【例例1-11-1】将外部数据存储器的将外部数据存储器的000BH000BH和和000CH000CH单元的内容相互交换单元的内容相互交换ORG 0000HMOVDPTR,#000BHMOVXA,DPTRMOVR7,AINCDPTRMOVXA,DPTRMOVDPTR,#000BHMOVXDPTR,AINC DPTRMOVA,R7MOVXDPTR,ASJMP$ENDC C语言编程:语言编程:#

18、include /确定地址访问库函数确定地址访问库函数void main(void)char c;c=XBYTE11;XBYTE11=XBYTE12;XBYTE12=c;while(1);上述的上述的C C语言反汇编:语言反汇编:0 x0000 020013 LJMP STARTUP1(C:0013);跳转;跳转0 x0003 90000B MOV DPTR,#0 x000B0 x0006 E0 MOVX A,DPTR0 x0007 FF MOV R7,A0 x0008 A3 INC DPTR0 x0009 E0 MOVX A,DPTR0 x000A 90000B MOV DPTR,#0 x0

19、00B0 x000D F0 MOVX DPTR,A0 x000E A3 INC DPTR0 x000F EF MOV A,R70 x0010 F0 MOVX DPTR,A0 x0011 80FE SJMP C:00110 x0013 787F MOV R0,#0 x7F;以下是清零部分;以下是清零部分0 x0015 E4 CLR A0 x0016 F6 MOV R0,A0 x0017 D8FD DJNZ R0,IDATALOOP(C:0016)0 x0019 758107 MOV SP(0 x81),#0 x070 x001C 020003 LJMP main(C:0003)【例例1-21-2

20、】二进制数转换成十进制数(二进制数转换成十进制数(BCDBCD码)码)将累加器将累加器A A中给定的二进制数,转换中给定的二进制数,转换成成3 3个十进制数(个十进制数(BCDBCD码),并存入码),并存入ResultResult起先的起先的3 3个单元。个单元。汇编语言源程序如下:汇编语言源程序如下:Result EQU 20H ORG 0000H LJMP STARTSTART:MOV SP,#60H;主程序主程序 MOV A,#123 LCALL BINTOBCD SJMP$BINTOBCD:MOV B,#100 ;设置转换子程序设置转换子程序 DIV AB MOV Result,A;除

21、以除以100得百位数得百位数 MOV A,B MOV B,#10 DIV AB MOV Result+1,A;余数除以余数除以10得十位数得十位数 MOV Result+2,B;余数为个位数余数为个位数 RET ENDC51C51源程序如下:源程序如下:void main(void)unsigned char Result3;unsigned char Number;Number=123;Result0=Number/100;/除以除以100得百位得百位 Result1=(Number%100)/10;/余数除以余数除以10得十位得十位 Result2=Number%10;/余数为个位余数为个

22、位 while(1);/等待暂停等待暂停【例例1-31-3】二进制数转换成二进制数转换成ASCIIASCII码程序。码程序。将累加器将累加器A A中的内容分为两个中的内容分为两个ASCIIASCII码,并存入码,并存入ResultResult起先的两个单元。起先的两个单元。汇编语言源程序如下:汇编语言源程序如下:Result EQU20H ORG 0000H LJMP STARTSTART:MOV SP,#40H MOV A,#00011010B LCALL BINTOHEX SJMP$BINTOHEX:MOV DPTR,#ASCIITAB MOV B,A SWAP A ANL A,#0FH;

23、取取A的高的高4位位 MOVC A,A+DPTR MOV Result,A MOV A,B ANL A,#0FH;取取A的低的低4位位 MOVC A,A+DPTR MOV Result+1,A RETASCIITAB:DB 0123456789ABCDEF ENDC51C51源程序如下:源程序如下:code unsigned char ASCIITAB16=0123456789ABCDEF;void main(void)unsigned char Result2;unsigned char Number;Number=0 x1a;Result0=ASCIITABNumber/16;/高高4位位

24、 Result1=ASCIITABNumber&0 x0f;/低低4位位 while(1);1 12 C512 C51程序程序本节主要介绍本节主要介绍C51C51程序的结构、规范、程序的结构、规范、留意事项、标识符、关键字等。留意事项、标识符、关键字等。一、一、C51C51的程序结构的程序结构二、二、C51C51编程规范及留意事项编程规范及留意事项三、三、C51C51的标识符与关键字的标识符与关键字一、一、C51C51的程序结构的程序结构#include#includevoid Function1(void);unsigned int ch;void main(void)SCON=0 x50;

25、TMOD=0 x20;TH1=221;TR1=1;TI=1;/以上是串口调试须要以上是串口调试须要 while(ch=5)Function1();printf(char=%dn,ch);while(1);void Function1(void)unsigned char ps;ps=1;ch=ch+ps;从上面的例子可以看出:从上面的例子可以看出:一个典型的一个典型的C51C51源程序包含预处理吩咐、自定源程序包含预处理吩咐、自定义函数声明、义函数声明、mainmain主函数和自定义函数。这主函数和自定义函数。这几部分完全类似于几部分完全类似于C C语言的程序结构。语言的程序结构。预处理吩咐部

26、分常用预处理吩咐部分常用#include#include吩咐来包含吩咐来包含一些程序中用到的头文件。这些头文件中包一些程序中用到的头文件。这些头文件中包含了一些库函数以及其他函数的声明及定义。含了一些库函数以及其他函数的声明及定义。自定义函数声明部分用来声明源程序中自自定义函数声明部分用来声明源程序中自定义的函数。定义的函数。mainmain()主函数是整个()主函数是整个C51C51程序的入口。程序的入口。不论不论mainmain()函数位于程序代码中的哪()函数位于程序代码中的哪个位置,个位置,C51C51程序总是从程序总是从mainmain()函数()函数起先执行的。起先执行的。自定义函

27、数部分是自定义函数部分是C51C51源程序中用到的源程序中用到的自定义函数的函数体。自定义函数的函数体。除了扩展名为除了扩展名为“.c”“.c”的源程序文件,的源程序文件,C51C51程序还支持扩展名为程序还支持扩展名为“.h”“.h”的头文的头文件以及扩展名为件以及扩展名为“.lib”“.lib”的库文件等。的库文件等。在一般的编译系统中,通常以项目(工程)结构来管在一般的编译系统中,通常以项目(工程)结构来管理困难的理困难的C51C51程序文件。例如程序文件。例如Keil Vision2Keil Vision2编译环编译环境中,整个项目结构如图境中,整个项目结构如图1-11-1所示。所示。

28、在这里整个项目由项目文件管理、项目文件扩展名为在这里整个项目由项目文件管理、项目文件扩展名为“.Uv2”“.Uv2”。整个工程项目中可以包含如下几类文件。整个工程项目中可以包含如下几类文件。头文件用来包含一些库函数,系统变量声明以及将头文件用来包含一些库函数,系统变量声明以及将不同的不同的C C文件连接起来。文件连接起来。C C源文件是源文件是C51C51程序的主要部分,用来实现特定的功程序的主要部分,用来实现特定的功能。能。C C源文件可以有一个,也可以依据不同的功能分源文件可以有一个,也可以依据不同的功能分成多个,但全部这些成多个,但全部这些C C源文件中有且仅有一个可以包源文件中有且仅有

29、一个可以包含一个含一个main()main()主函数。主函数。库文件是实现特定功能的函数库,供库文件是实现特定功能的函数库,供C C源文件调用。源文件调用。编译中间文件是源程序在编译链接过程中生成的中编译中间文件是源程序在编译链接过程中生成的中间文件,其中包含了文件编译调试的信息。间文件,其中包含了文件编译调试的信息。可烧录文件是编译系统生成的可以烧录到单片机内可烧录文件是编译系统生成的可以烧录到单片机内部供执行的文件,类似于部供执行的文件,类似于“exe”“exe”可执行文件。在可执行文件。在C51C51语言中,一般扩展名为语言中,一般扩展名为“.hex”“.hex”或者或者“.bin”“.

30、bin”等。等。二、二、C51C51编程规范及留意事项编程规范及留意事项1 1注释注释在在C51C51语言中可以通过两种方式语言中可以通过两种方式表示注释内容。表示注释内容。(1 1)用)用“/”“/”开头来注释一行开头来注释一行如如“/“/变量声明变量声明”。(2 2)用)用“/*”“/*”符号开头,并以符号开头,并以“*/”“*/”符号结束符号结束如用如用“/*“/*声明整型变量声明整型变量ch*/”ch*/”。本方法敏捷多变,可以注释多本方法敏捷多变,可以注释多行行printf(“ch=%dn”,/*printf(“ch=%dn”,/*整型整型变量变量ch*/ch);ch*/ch);一个

31、好的一个好的C51C51源程序应当添加必源程序应当添加必要的注释内容。要的注释内容。2 2命名命名在进行程序设计时,常常须要自定义一些函数或变量。在进行程序设计时,常常须要自定义一些函数或变量。一般来说,重要符合一般来说,重要符合C51C51命名规范即可通过编译。但命名规范即可通过编译。但是,为了便于源程序的理解和沟通,在进行命名时应是,为了便于源程序的理解和沟通,在进行命名时应留意以下几点:留意以下几点:自定义函数或者变量的名称最好能反映该函数或变自定义函数或者变量的名称最好能反映该函数或变量的功能用途。因此,须要选用有意义的单词或者字量的功能用途。因此,须要选用有意义的单词或者字母组合来表

32、示。例如母组合来表示。例如MAXMAX表示最大值、表示最大值、MINMIN表示最小值表示最小值等。等。变量名通常加上表示数据类型的前缀,例如变量名通常加上表示数据类型的前缀,例如“ucSendData”“ucSendData”的前缀的前缀“uc”“uc”表示表示unsigned charunsigned char。在命名时不要和系统保留的标识符以及关键字产生在命名时不要和系统保留的标识符以及关键字产生冲突或者歧义。冲突或者歧义。3 3格式(同标准格式(同标准C C语言)语言)为了程序阅读便利,在进行为了程序阅读便利,在进行C51C51程序设计时,在程序结构以及语程序设计时,在程序结构以及语句书

33、写格式方面应留意以下几点:句书写格式方面应留意以下几点:虽然虽然C51C51语言对语言对main()main()函数放置位置没有限定,但为了程序函数放置位置没有限定,但为了程序阅读的便利,最好把它放置在全部自定义函数的前面,即依次阅读的便利,最好把它放置在全部自定义函数的前面,即依次为头文件声明、自定义函数以及全局变量声明、为头文件声明、自定义函数以及全局变量声明、main()main()函数、函数、自定义函数。自定义函数。C51C51语句可以写在一行上也可以写在多行上。为了程序理解的语句可以写在一行上也可以写在多行上。为了程序理解的便利,最好将每个语句单独写在一行,并加以注释。有时某几便利,

34、最好将每个语句单独写在一行,并加以注释。有时某几个相连的语句或者共同执行某个功能则可以放置在一行。个相连的语句或者共同执行某个功能则可以放置在一行。对于源程序文件不同结构部分之间要留有空行。例如,头文对于源程序文件不同结构部分之间要留有空行。例如,头文件声明、自定义函数声明、件声明、自定义函数声明、main()main()函数以及自定义函数之间均函数以及自定义函数之间均要空一行,来明显区分不同结构。要空一行,来明显区分不同结构。对于对于ifif、whilewhile等块结构语句中的等块结构语句中的“”“”和和“”“”要配对对齐,要配对对齐,以便于程序阅读时能够理解该结构的起始和结束。以便于程序

35、阅读时能够理解该结构的起始和结束。源代码支配时可以通过适当的空格以及源代码支配时可以通过适当的空格以及TabTab键来实现代码对齐。键来实现代码对齐。三、三、C51C51的标识符与关键字的标识符与关键字1 1标识符标识符标识符常用来声明某个对象的名称,如标识符常用来声明某个对象的名称,如变量和常量的声明、数组和结构的声明、变量和常量的声明、数组和结构的声明、自定义函数的声明以及数据类型的声明自定义函数的声明以及数据类型的声明等。示例如下。等。示例如下。int count;int count;void Function1();void Function1();在上面的例子中,在上面的例子中,co

36、untcount为整型变量的为整型变量的标识符,标识符,Function1Function1为自定义函数的标为自定义函数的标识符。识符。在在C51C51语言中,标识符可以由字母、数语言中,标识符可以由字母、数字(字(0 09 9)或者下划线)或者下划线“_”“_”组成,最组成,最多可支持多可支持3232个字符。个字符。C51C51标识符的第一标识符的第一个字符必需或者下划线个字符必需或者下划线“_”“_”,例如,例如“unt”“unt”、“ch_1”“ch_1”等都是正确的,而等都是正确的,而“5count”“5count”则是错误的标识符。另外,则是错误的标识符。另外,C51C51的标识符区

37、分大小写,例如的标识符区分大小写,例如“count”“count”和和“COUNT”“COUNT”代表两个不同的代表两个不同的标识符,标识符,运用标识符时应留意以下几点:运用标识符时应留意以下几点:在命名在命名C51C51标识符时,须要能够清晰地表达其功能含标识符时,须要能够清晰地表达其功能含义,这样有助于阅读和理解源程序。义,这样有助于阅读和理解源程序。C51C51的标识符原则上可以运用下画线开头,但有些的标识符原则上可以运用下画线开头,但有些编译系统的专用标识符或者预定义项是以下划线开头编译系统的专用标识符或者预定义项是以下划线开头的。为了程序的兼容性和可移植性,所以建议一般不的。为了程序

38、的兼容性和可移植性,所以建议一般不运用下划线开头来命名标识符。运用下划线开头来命名标识符。尽量不要运用过长的标识符,以便于运用和程序理尽量不要运用过长的标识符,以便于运用和程序理解便利。解便利。自定义的自定义的C51C51标识符不能运用标识符不能运用C51C51语言保留的关键字,语言保留的关键字,也不能和用户已运用的函数名或也不能和用户已运用的函数名或C51C51库函数透亮。例库函数透亮。例如如“char”“char”是关键字,所以不能作为标识符运用。是关键字,所以不能作为标识符运用。1 13 C513 C51编程举例编程举例【例【例1-51-5】PROTEUSPROTEUS仿真电路如图所示,

39、仿真电路如图所示,8 8个发光二极管个发光二极管D1D1D8D8经限流电阻分别经限流电阻分别接至接至P1P1口口8 8个引脚,阳极共同接高电平。个引脚,阳极共同接高电平。编程实现发光二极管的流水点亮,即依编程实现发光二极管的流水点亮,即依据据D1D2D8D1D2D8的依次,每次点亮一的依次,每次点亮一个发光二极管,一段时间后熄灭该发光个发光二极管,一段时间后熄灭该发光二极管,然后点亮下一个发光二极管,二极管,然后点亮下一个发光二极管,重复循环。重复循环。C51C51源程序如下:源程序如下:#include#include /移位库函数包含于此头文件中移位库函数包含于此头文件中void dela

40、y(unsigned int d)/定义延时子函数定义延时子函数 while(-d0);void main()unsigned char i,sel;while(1)sel=0 xfe;for(i=0;i8;i+)P1=sel;/显示变量赋给显示变量赋给P1口口 delay(50000);/延时延时 sel=_crol_(sel,1);/变更显示变量变更显示变量 也可以这样编程:也可以这样编程:#include void delay(unsigned int d)while(-d0);void main()unsigned char i,sel,a;while(1)sel=0 xfe;for(

41、i=0;i8;i+)P1=sel;delay(50000);a=sel1;sel=sel|0 x01;【例例1-61-6】单片机的单片机的P1P1口接口接8 8个发光二极管,个发光二极管,P0P0口接口接8 8个开关,编程实现当开关动作时,个开关,编程实现当开关动作时,对应的发光二极管亮或灭。对应的发光二极管亮或灭。汇编语言源程序如下:汇编语言源程序如下:ORG 0000HMOV P0,#0FFHLOOP:MOV A,P0MOV P1,ASJMP LOOPC51C51语言源程序如下:语言源程序如下:#includevoid main(void)unsigned char i;P0=0 xff;

42、for(;)i=P0;P1=i;【例【例1-71-7】单片机外接】单片机外接12MHz12MHz晶振,用晶振,用P1.7P1.7输出输出1kHz1kHz和和500Hz500Hz的音频信号驱动的音频信号驱动扬声器,作为报警信号,要求扬声器,作为报警信号,要求1kHz1kHz信号信号与与500Hz500Hz信号交替进行,信号交替进行,P1.0P1.0接一开关接一开关S S进行限制,当开关合上响报警信号,当进行限制,当开关合上响报警信号,当开关断开报警信号停止开关断开报警信号停止 C51C51源程序如下:源程序如下:#include#include /空操作库函数包含于此头文件空操作库函数包含于此头

43、文件sbit S=P10;/定义位变量定义位变量sbit BUZ=P17;/定义位变量定义位变量unsigned char k;/定义循环变量定义循环变量void delay(void)/定义延时子函数定义延时子函数unsigned char i;for(i=250;i0;i-)_nop_();/空操作空操作 void main(void)while(1)BUZ=0;/关闭声音关闭声音 S=1;if(P1_0=0)/推断开关是否闭合推断开关是否闭合 BUZ=0;delay();BUZ=0;delay();BUZ=1;delay();delay();BUZ=0;delay();delay();【

44、例【例1-81-8】运用定时器】运用定时器/计数器以工作方式计数器以工作方式2 2产生产生100s 100s 定时,在定时,在P1.0P1.0口输出周期为口输出周期为200s 200s 的连续方波,已知晶振频率为的连续方波,已知晶振频率为6MHz6MHz。机器周期频率:机器周期频率:fcy=f/2/6=0.5MHzfcy=f/2/6=0.5MHz,Tcy=2sTcy=2s定时器预置值(初值)定时器预置值(初值)N N:28-N=28-N=T/Tcy=T T/Tcy=T fcy=50 fcy=50N=206=0CEHN=206=0CEH定时器定时器/计数器计数器0 0工作于方式工作于方式2 2,

45、定时方,定时方式,其方式限制字式,其方式限制字:TMOD=02H:TMOD=02H。C51C51源程序清单如下:源程序清单如下:/*200s 周期方波发生程序周期方波发生程序*/#define T0_VALUE 0 xCE#define TMOD_VALUE 0 x02/*定时器定时器/计数器计数器0方式限制字方式限制字*/#includevoid main()TMOD=TMOD_VALUE;/*T0按定时方式按定时方式2*/TH0=T0_VALUE;/*置定时器重装初值寄存器置定时器重装初值寄存器*/TL0=T0_VALUE;/*装计数初值到定时器的装计数初值到定时器的8位加法计数器位加法计数器*/EA=1;ET0=1;TR0=1;/*开中断、启动开中断、启动T0*/while(1);/*等待等待P1.0引脚上输出方波信号引脚上输出方波信号*/void timer0(void)interrupt 1 using 3P1=P10 x01;/*将将P1.0取反后输出取反后输出*/本章小结本章小结(1 1)单片机)单片机C C语言的特点。语言的特点。(2 2)C51C51的程序结构。的程序结构。(3 3)C51C51的编程规范及留意事项。的编程规范及留意事项。建立:建立:(1 1)和硬件结合)和硬件结合(2 2)有规范)有规范(3 3)结构)结构

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 商业计划书

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁