整套课件教程:单片机C51项目设计与开发.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《整套课件教程:单片机C51项目设计与开发.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整套 课件 教程 单片机 C51 项目 设计 开发
- 资源描述:
-
1、 单片机C51项目设计与开发项目1 广告灯的控制与制作 任务1信号灯的控制 任务2流水灯的控制 任务3花样灯的控制 任务4广告灯的设计和制作下一页返回项目2 电子表的控制和制作 任务1 电子表的静态显示设计 任务2电子表的动态显示设计 任务3电子表的调整设计 任务4电子表的设计和制作上一页 下一页返回项目3点阵LED的控制和制作 任务1 8X8点阵LED模拟电梯运行 任务2 汉字显示控制上一页 下一页返回项目4 数字电压表的控制和制作 任务1 LCM1602液晶显示 任务2数字电压表的设计与制作上一页 下一页返回项目5 万年历的控制和制作 任务1 PG160128A液晶显示 任务2 万年历的计
2、时控制 任务3 万年历的温度控制 任务4 万年历的设计和制作上一页 下一页返回项目6 机器人的控制和制作 任务1追光机器人的设计与制作 任务2灭火机器人的设计与制作 任务3相扑机器人的设计与制作上一页返回项目1 广告灯的控制与制作 任务1信号灯的控制 任务2流水灯的控制 任务3花样灯的控制 任务4广告灯的设计和制作返回任务1 信号灯的控制 任务描述 将AT89C51的P1.0端口作为输出口,在此端口上接一个发光二极管L1,使用单片机实现发光二极管闪烁的效果,闪烁问隔为0.2 s。即单片机上电工作后,L1发光二极管不停地一亮一灭,其亮灭的问隔时问为0.2 s,依此重复循环。任务分析 1.硬件电路
3、分析 在单片机的P1.0端口用导线连接一个发光二极管,此发光二极管的闪烁情况可作为信号灯。电路原理如图1-1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮。下一页返回任务1 信号灯的控制 2.软件设计思路 单片机指令的执行时问是很短的,大多都是微秒级,而我们要求闪烁的时问问隔是0.2 s,相对于微秒来说,相差太大,所以在执行某一指令时,要插入延时程序。任务中要求获得0.2 s的时问长度,当单片机时钟电路中晶振频率为12 MHz时,一个机器周期为1 s,0.2 s就是1 s的2
4、00 000倍。在程序编写中,常用循环语句来完成计数,从而获得需要的延时时问。采用单片机C语言编写一个0.2 s的延时程序如下:上一页 下一页返回任务1 信号灯的控制上一页 下一页返回任务1 信号灯的控制 参考源程序上一页 下一页返回任务1 信号灯的控制上一页 下一页返回任务1 信号灯的控制 系统仿真调试 在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制图1-1所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真调试图如图1-2所示。知识拓展 MCS-51单片机的基本组成 1.80C5,单片机的基本结构
5、单片机的基本结构如图1-3所示。80C51单片机主要由以下儿部分组成。(1)CPU系统上一页 下一页返回任务1 信号灯的控制 8位CPU,含布尔处理器。时钟电路。总线控制逻辑。(2)存储器系统 4 KB的程序存储器(ROM/EPROM/FLASH,可外扩至64 KB)。128 B的数据存储器(RAM,可再外扩64 KB)。特殊功能寄存器SFRo(3)I/O口和其他功能单元 4个并行I/O口。2个16位定时/计数器。1个全双工异步串行。中断系统(5个中断源、2个优先级)。上一页 下一页返回任务1 信号灯的控制 2.MCS-51单片机的内部组成(1)80C51单片机的内部结构 80C51单片机由微
6、处理器(含运算器和控制器)、存储器、I/O口以及特殊功能寄存器SFR等构成,内部逻辑结构如图1-4所示(图中未画出增强型单片机相关部件)。(2)80C51的微处理器 作为80C51单片机的核心部分的微处理器是一个8位的高性能中央处理器(CPU),它的作用是读入并分析每条指令,根据各指令的功能,控制单片机的各功能部件执行指定的运算或操作。它主要由以下两部分构成。上一页 下一页返回任务1 信号灯的控制 1)运算器 运算器由算术/逻辑运算单元ALU,累加器ACC,寄存器B、暂存寄存器、程序状态字寄存器PSW组成。它完成的任务是实现算术和逻辑运算、位变量处理和数据传送等操作。2)控制器 同一般微处理器
7、的控制器一样,80C51的控制器也由指令寄存器IR、指令译码器ID、定时及控制逻辑电路和程序计数器PC等组成。(3)80C51的片内存储器 80C51单片机的片内存储器与一般微机的存储器的配置不同。一般微机的ROM和RAM安排在同一空问的不同范围(称为普林斯顿结构)。而80C51单片机的存储器在物理上设计成程序存储器和数据存储器两个独立的空问(称为哈佛结构)。上一页 下一页返回任务1 信号灯的控制 3.80C51单片机的封装和引脚 80C51系列单片机采用双列直插式(DIP),QFP44 C Quad Flat Pack)和LCC C Leaded Chip Carrier)形式封装。这里介绍
8、常用的总线型DIP40封装和非总线型DIP20封装,如图1-5所示。知识链接 1.文件包含 程序中的第一行为#include,是一个文件包含处理。文件包含是指一个源文件可将另一个源文件的内容全部包含进来。用尖括号时,编译器从C标准库文件所在的目录中寻找要包含的文件,这称为标准方式;用双撇号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。上一页 下一页返回任务1 信号灯的控制 2.宏定义 宏定义命令为#define,它的作用是用一个宏定义来替换一个字符串,而这个字符串既可以是常数,也可以是其他字符串,甚至还可以是带参数的宏。宏定义的一般格式:#define宏名字符串 3.
9、C51扩展的关键字sfr和sbit MCS-51单片机内有21个特殊功能寄存器(SFR,只能用直接寻址方式访问。特殊功能寄存器中还有11个可进行位寻址的寄存器。上一页 下一页返回任务1 信号灯的控制 4.for循环语句 其一般格式为:for(表达式1;表达式2;表达式3)动作 表达式1:通常是设定起始值。表达式2:通常是条件判断式,如果条件为真时,执行动作,否则终止循环。表达式3:通常是步长表达式,执行动作完毕后,必须再回到这里做运算,然后再到表达式2中做判断。5.while循环语句 其一般格式为:while(条件表达式)上一页 下一页返回任务1 信号灯的控制 动作 先测试条件表达式是否成立,
10、当条件表达式为真时,执行循环内的动作,做完后又继续跳回条件表达式做测试,如此反复直到条件表达式为假为止。使用时要避免条件永真,造成死循环。6.C51程序的结构特点 C51程序由函数构成,函数是C51程序的基本单位。函数的组成。一个函数由“函数定义”和“函数体”两个部分组成。函数定义部分包括函数类型、函数名、形式参数说明等,函数名后面必须跟一个圆括号0,形式参数说明在0内进行,函数也可以没有形式参数。上一页 下一页返回任务1 信号灯的控制 函数体由一对花括弧组成,在里面的内容就是函数体,如果一个函数有多个,则最外面的一对为函数体的范围。函数体的内容为若干条语句,一般有两类语句,一类为说明语句,用
11、来对函数中将要用到的变量进行定义;另一类为执行语句,用来完成一定的功能或算法。有的函数体仅有一对,其中既没有变量定义语句,也没有执行 语句,这也是合法的,称为“空函数”。一个C51程序必须有且只能有一个名为main()的函数,它是一个特殊的函数,也称为该程序的主函数,无论main函数在整个程序中的位置如何,程序的执行都是从main()函数开始的。表达方式灵活。上一页 下一页返回任务1 信号灯的控制 C51可利用C语言提供的多种运算符组成各种表达式,还可以采用多种方法来获得表达式的值,从而使用户在程序设计中具有更大的灵活性。C51同C语言一样,语法规则不太严格,程序设计的白由度比较大,程序的书写
12、格式白由灵活。C51本身没有输入/输出语句。标准的输入和输出是通过调用库函数scanf和printf它们分别是输入库函数和输出库函数。对于单片机应用系统来说,由于具体要求不同,应用系统的输入/输出方式多种多样,不可能一律采用串行口作输入和输出。因此应该根据实际需要,由应用系统的研制人员白己来编写满足特定需要的输入/输出函数。上一页 下一页返回任务1 信号灯的控制 为了使程序便于阅读和理解,可以给程序加上一些注释。注释部分由符号“/*”开始,由符号“*/”结束,或在符号“/,之后。在“/*”和“*/”之问的内容即为注释内容,注释内容可在一行写完,也可以分成儿行来写。注释部分不参加编译,编译时注释
13、的内容不产生可执行代码。注释在程序中的作用是很重要的,一个良好的程序设计者应该在程序中使用足够的注释来说明整个程序的功能、有关算法和注意事项等。需要注意的是,注释不能嵌套,即在“/*”和“*/”之问不允许再次出现“/*”和“*/”。上一页返回任务2 流水灯的控制 任务描述 用AT89C51单片机的P1口做输出口,白制一款简易的流水灯。用AT89C51的P1口做输出口,接8只发光二极管,试编写程序,使发光二极管实现流水的效果,每盏灯亮灭的时问问隔为0.2 s。即单片机上电工作后,第一个发光二极管P1.0被点亮,0.2 s后,P1.0被熄灭,第二个发光二极管P1.1被点亮,依此类推,重复循环。任务
14、分析 1.硬件电路分析 单片机要正常运行,必须具备三个最基本的硬件条件:电源正常、时钟正常和复位正常。本流水灯实际上就是一个带有8个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1-6所示。下一页返回任务2 流水灯的控制 2.软件设计思路 上述硬件原理图搭建完成上电之后,还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机引脚电平的高低变化,来实现发光二极管的一亮一灭。根据流水灯的具体要求,程序的流程图如图1-7所示。参考源程序上一页 下一页返回任务2 流水灯的控制上一页 下一页返回任
15、务2 流水灯的控制上一页 下一页返回任务2 流水灯的控制 系统仿真调试 在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图1-6所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真图如图1-8所示。知识拓展 MCS-51单片机存储器结构 1.80C51单片机的程序存储器配置 80C51单片机的程序计数器PC是16位的计数器,所以能寻址64 KB的程序存储器地址范围。允许用户程序调用或转向64 KB的任何存储单元。上一页 下一页返回任务2 流水灯的控制 MCS-51系列的80C51在芯片内部有4 KB的掩
16、膜ROM,87C51在芯片内部有4 KB的EPROM,而80C31在芯片内部没有程序存储器,应用时要在单片机外部配置一定容量的EPROM o 80C51程序存储器的配置如图1-9所示。80C51的EA引脚为访问内部或外部程序存储器的选择端。接高电平时,CPU将首先访问内部存储器,当指令地址超过OFFFH时,自动转向片外ROM去取指令;接低电平时(接地),CPU只能访问外部程序存储器(对于80C31单片机,由于其内部无程序存储器,只能采用这种接法)。2.80C51单片机的数据存储器配置 80C51单片机的数据存储器分为片外RAM和片内RAM两大部分,如图1-10所示。上一页 下一页返回任务2 流
17、水灯的控制 80C51片内RAM共有256 B,其地址范围为00HFFH。其中低128 B,地址范围在00H7FH之问,分成工作寄存器区、位寻址区、通用RAM区三部分。高128 B(特殊功能寄存器区SFR)地址范围在80HFFH之问。片外RAM地址空问为64 KB,地址范围是0000HFFFFH.与程序存储器地址空问不同的是,片外RAM地址空问与片内RAM地址空问在地址的低端0000H007FH是重叠的。这就需要采用不同的寻址方式加以区分。另外,片外RAM不能进行堆栈操作。在80C51单片机中,尽管片内RAM的容量不大,但它的功能多,使用灵活,是单片机应用系统设计时必须要周密考虑的。上一页 下
18、一页返回任务2 流水灯的控制(1)工作寄存器区 80C51单片机片内RAM低端的OOH1FH共32 B,分成4个工作寄存器组,每组占8个单元。寄存器0组:地址00H07H。寄存器1组:地址08H0FH。寄存器2组:地址10H17H。寄存器3组:地址18H1FH。可以对这两位进行编程,以选择不同的工作寄存器组。工作寄存器组与RS1,RS0的关系及地址见表1-1。上一页 下一页返回任务2 流水灯的控制(2)位寻址区 内部RAM的20H2FH共16B是位寻址区。其128位的地址范围是00H7FH,对被寻址的位可进行位操作。人们常将程序状态标志和位控制变量设在位寻址区内,对于该区未用到的单元也可以作为
19、通用RAM使用。位地址与字节地址的关系见表1-2。(3)通用RAM区 位寻址区之后的30H7FH共80 B为通用RAM区。这些单元可以作为数据缓冲器使用,这一区域的操作指令非常丰富,数据处理方便灵活。在实际应用中,常需在RAM区设置堆栈,80C51的堆栈一般设在30H7FH的范围内,栈顶的位置由堆栈指针SP指示。复位时SP的初值为07H,在系统初始化时可以重新设置。上一页 下一页返回任务2 流水灯的控制(4)特殊功能寄存器(SFR区)特殊功能寄存器(SFR)也称为专用寄存器,特殊功能寄存器反映了MC S-51单片机的运行状态,很多功能也通过特殊功能寄存器来定义和控制程序的执行。MCS-51单片
20、机有21个特殊功能寄存器(SFR),它们离散地分布在内部RAM区的80HFFH地址中。这些寄存器的功能已作了专门的规定,用户不能修改其结构。其具体地址分配见表1-3。知识链接 1.变量的使用(1)变量的定义 变量是指在程序执行过程中,其值可以改变的量。一个变量应该有一个名字,在内存中占据一定的存储单元,变量定义必须放在变量使用之前,一般放在函数体的开头部分。上一页 下一页返回任务2 流水灯的控制 变量定义的一般格式:存储类型 数据类型 变量名 其中,数据类型和存储类型见表1-4和表1-5。(2)变量的类型 C51编译器支持的数据类型、数据长度和其值域见表1-4。如果在变量定义时省略类型标志符,
21、编译器会自动使用默认存储类型。默认的存储类型进一步由SMALL,COMPACT和LARGE存储模式指令限制,参见表1-6。2.函数的调用 函数调用的一般形式为:函数名(实际参数列表);上一页 下一页返回任务2 流水灯的控制 在一个函数中需要用到某个函数的功能时,就调用该函数。调用者称为主调函数,被调用者称为被调函数。若被调函数是有参函数,则主调函数必须把被调函数所需的参数传递给被调函数。传递给被调函数的数据称为实际参数,简称实参。实参是有确定值的常量、变量或表达式,若有多个参数,各参数问需要用逗号分开。3.C51位运算符 位运算的操作对象只能是整型和字符型数据,不能是浮点型数据。C51提供以下
22、6种位运算:按位与(&);按位或();上一页 下一页返回任务2 流水灯的控制 按位异或();按位取反();左移()。上一页返回任务3 花样灯的控制 任务描述 本任务以AT89C51单片机为核心,采用常用电了器件设计,白制一款简易的花样灯。用AT89C51的P1口做输出口,接8只发光二极管,试编写程序,使第一盏灯(P1.0)和最后一盏灯(P1.7)同时向中问点亮,形成两盏灯从两头向中问合拢亮灭的现象,直到只有中问两盏灯(P1.3和P1.4)亮,然后再从中问向两头依次点亮。其两盏灯同时亮灭的问隔时问为5 ms,依此类推,重复循环。下一页返回任务3 花样灯的控制 任务分析 1.硬件电路分析 根据以上
23、项目分析,结合以前所学课程,可以选择本课程中所学的MCS-51单片机芯片作为微控制器,八盏灯都用“模拟电了电路技术”课程中所学的发光二极管来代替,为了避免发光二极管在工作中过流烧毁,每个发光二极管所在电路中串联一个470的电阻。设计的硬件电路原理图如图1-11所示。2.软件电路分析(图1-12)上一页 下一页返回任务3 花样灯的控制 参考源程序上一页 下一页返回任务3 花样灯的控制上一页 下一页返回任务3 花样灯的控制 系统仿真调试 在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制图1-11所示的电路图,加载编译得
24、到的HEX文件,进行仿真调试。运行仿真图如图1-13所示。知识拓展 并行输入/输出口结构 80C51单片机有4个8位的并行I/O接口P0,P1,P2和P3,各接口均由接口锁存器、输出驱动器和输入缓冲器组成。各接口除可以作为字节输入/输出外,它们的每一条接口线也可以单独用作位输入/输出线。各接口编址于特殊功能寄存器中,既有字节地址又有位地址。对接口锁存器进行读写,就可以实现接口的输入/输出操作。上一页 下一页返回任务3 花样灯的控制 1.PO口 PO接口由1个输出锁存器、1个转换开关MUX,2个三态输入缓冲器、输出驱动电路、1个与门及1个反相器组成,如图1-14所示。(1)PO用作通用I/O接口
25、 当系统不进行片外的ROM扩展(此时EA=1),也不进行片外的RAM扩展(内部RAM传送使用MOV类指令)时,PO作为通用I/O口使用,在这种情况下,单片机硬件自动使控制C=0,MUX开关接向锁存器的反相输出端,另外,与门输出的“0”使输出驱动器的上拉场效应管T1处于截止状态。因此,作为输出口时,PO口为漏极开路输出,工作时需外接上拉电阻。上一页 下一页返回任务3 花样灯的控制(2)Po用作地址/数据总线 当系统进行片外的ROM扩展(此时EA-0或进行片外RAM扩展时,PO用作地址/数据总线。在这种情况下,单片机内硬件自动使C=1,MUX开关接向反相器的输出端,这时与门的输出由地址/数据线的状
展开阅读全文