书签 分享 收藏 举报 版权申诉 / 542
上传文档赚钱

类型整套课件教程:单片机C51项目设计与开发.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3520998
  • 上传时间:2022-09-11
  • 格式:PPT
  • 页数:542
  • 大小:11.91MB
  • 【下载声明】
    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开关接向反相器的输出端,这时与门的输出由地址/数据线的状

    26、态决定。2.P1接口 P1接口的位结构如图1-15所示。由图1-15可见,P1接口由1个输出锁存器、2个三态输入缓冲器和输出驱动电路组成,在内部设有上拉电阻。P1接口是通用的准双向I/O接口。输出高电平时,能向外提供拉电流负载,不必再接上拉电阻。当接口用作输入时,须向锁存器写入1.上一页 下一页返回任务3 花样灯的控制 3.P2接口 P2接口由1个输出锁存器、1个转换开关MUX,2个三态输入缓冲器、输出驱动电路和1个反相器组成。P2接口的位结构如图1-16所示。(1)P2用作通用I/O接口 当不需要在单片机芯片外部扩展程序存储器(对于80C51/87C51,EA-1),仅可能扩展256 B的片

    27、外RAM时,只用到了地址线的低8位,P2接口仍可以作为通用I/O接口使用。4.P3口 P3接口的位结构如图1-17所示。P3接口由1个输出锁存器、3个输入缓冲器(其中2个为三态)、输出驱动电路和1个与非门组成。输出驱动电路与P3接口和P1接口相同,内部设有上拉电阻。上一页 下一页返回任务3 花样灯的控制(1)P3用作第一功能的通用I/O接口 当CPU对P3接口进行字节或位寻址时(多数应用场合是把儿条接口线设为第二功能,另外儿条接口线设为第一功能,这时宜采用位寻址方式),单片机内部的硬件自动将第二功能输出线的W置1,这时,对应的接口线为通用I/O接口方式。(2)P3用作第二功能使用 当CPU不对

    28、P3接口进行字节或位寻址时,单片机内部硬件自动将接口锁存器的Q端置。这时,P3接口可以作为第二功能使用。各引脚的定义如下。P3.0:RXD(串行接口输入)。P3.1:TXD(串行接口输出)。P3.3:INTO(外部中断0输入)。上一页 下一页返回任务3 花样灯的控制 P3.3:INT1(外部中断1输入)。P3.4:TO(定时/计数器0的外部输入)。P3.5:T1(定时/计数器1的外部输入)。P3.6:WR(片外数据存储器“写”选通控制输出)。P3.7:RD(片外数据存储器“读”选通控制输出)。P3接口相应的接口线处于第二功能,应满足的条件如下。串行I/O接口处于运行状态(RXD,TXD)。外部

    29、中断已经打开(INTO,INT1)。定时器/计数器处于外部计数状态(T0,T1)。执行读/写外部RAM的指令(RD、WR)。上一页 下一页返回任务3 花样灯的控制 5.并行接口的负载能力 P0,P1,P2,P3接口的输入和输出电平与CMOS电平和TTL电平均兼容。PO接口的每一位接口线可以驱动8个LSTTL负载。在作为通用I/O接口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时,需外接上拉电阻;当作为地址/数据总线使用时,接口线输出不是开漏的,无须外接上拉电阻。P1,P2,P3接口的每一位能驱动4个LSTTL负载。它们的输出驱动电路设有内部上拉电阻,所以可以方便

    30、地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。上一页 下一页返回任务3 花样灯的控制 知识链接 构造数据类型一一一维数组 数组是一组有序数据的集合,数组中的每一个数据元素都属于同一个数据类型。数组中的各个元素可以用数组名和下标来唯一确定。一维数组只有一个下标。在C语言中,数组必须先定义,然后才能使用,一维数组的定义形式如下:数据类型数组名【常量表达式;其中,“数据类型”说明了数组中各个元素的类型。“数组名”是整个数组的标识符,它的命名方法与变量的命名方法一样。“常量表达式”说明了该数组的长度,即该数组中的元素个数。常数表达式必须用方括号1括起来,而且其中不能含有变量。上

    31、一页返回任务4 广告灯的设计和制作 任务描述 用AT89C51的P1,P2部分口做输出口,其具体硬件连接方式如图1-18所示,试编写程序来实现以下功能。任务分析 1.硬件电路分析 把“单片机系统”区域中的P1.0,P1.1,P1.2分别接第一组红灯、绿灯和蓝灯,P1.4,P1.5,P1.6分别接第二组红灯、绿灯和蓝灯,P2.0,P2.1,P2.2分别接第三组红灯、绿灯和蓝灯。每组红灯、绿灯和蓝灯都分别并联四个,依次按顺序排开。每组灯与单片机的端口都接有电阻和三极管,其具体硬件连接如图1-18所示。下一页返回任务4 广告灯的设计和制作 2.软件设计思路 广告灯的程序设计思路与任务3中的设计思路相

    32、同,通过取数组的数据改变单片机端口的值,进而控制发光二极管的变化。参考源程序上一页 下一页返回任务4 广告灯的设计和制作上一页 下一页返回任务4 广告灯的设计和制作上一页 下一页返回任务4 广告灯的设计和制作上一页 下一页返回任务4 广告灯的设计和制作上一页 下一页返回任务4 广告灯的设计和制作 系统仿真调试 在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制图1-18所示的电路图,加载编译得到的HEX文件,进行仿真调试。运行仿真图如图1-19所示。知识拓展 1.时钟电路及时序 单片机的工作过程是:取一条指令、译码,

    33、进行微操作,再取一条指令、译码进行微操作,这样自动地、一步一步地由微操作依序完成相应指令规定的功能。各指令的微操作在时问上有严格的次序,这种微操作的时问次序称作时序。单片机的时钟信号用来为单片机芯片内部各种微操作提供时问基准。上一页 下一页返回任务4 广告灯的设计和制作(1)80C51的时钟产生方式 80C51单片机的时钟信号通常有两种产生方式:内部时钟方式和外部时钟方式。内部时钟方式如图1-20(a)所示。外部时钟方式是把外部已有的时钟信号引入单片机内,如图1-20(b)所示。此方式常用于多片80C51单片机同时工作,以便于各单片机的同步。一般要求外部信号高电平的持续时问大于30 ns,且为

    34、频率低于12 MHz的方波。对于CHMOS工艺的单片机,外部时钟要由XTAL1端引入,而XTAL2引脚应悬空。(2)80C51的时钟信号 晶振周期(或外部时钟信号周期)为最小的时序单位,如图1-21所示。上一页 下一页返回任务4 广告灯的设计和制作(3)80C51的典型时序 1)单周期指令时序 单字节指令时序如图1-22(a)所示。在S1P2开始把指令操作码读入指令寄存器,并执行指令。但在S4P2开始读的下一指令的操作码要丢弃,且程序计数器PC不加1。双字节指令时序如图1-22(b)所示。在S1P2开始把指令操作码读入指令寄存器,并执行指令。在S4P2开始再读入指令的第二字节。单字节、双字节指

    35、令均在S6P2结束操作。2)双周期指令时序 对于单字节指令时序,在两个机器周期之内要进行4次读操作。只是后3次读操作无效,如图1-23所示。上一页 下一页返回任务4 广告灯的设计和制作 由图中可以看到,每个机器周期中ALE信号有效两次,具有稳定的频率,可以将其作为外部设备的时钟信号。但应注意,在对片外部RAM进行读/写操作时,ALE信号会出现非周期现象,如图1-24所示。2.单片机的复位电路 复位是使单片机或系统中的其他部件处于某种确定的初始状态。单片机的工作就是从复位开始的。(1)复位电路 当在80C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续

    36、保持高电平,单片机就处于循环复位状态)。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的复位,如图1-25所示。上一页 下一页返回任务4 广告灯的设计和制作(2)单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。单片机启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。特殊功能寄存器复位后的状态是确定的:POP3为FFH,SP为07H,SBUF不定,IP,IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。相应的意义如下。POP3=FFH:相当于各口

    37、锁存器已写入1,此时不但可用于输出,也可用于输入。SP=07H:堆栈指针指向片内RAM的07H单元(首个入栈内容将写入08H单元)。上一页 下一页返回任务4 广告灯的设计和制作 IP,IE和PCON的有效位为0,各中断源处于低优先级且均被关断,串行通信的波特率PSW=00H,当前工作寄存器为0组。知识链接 1.C51的关键字 关键字是一类具有固定名称和特定含义的特殊标识符,有时又称为保留字。在编写C语言源程序时,一般不允许将关键字另作他用,换句话说,就是标识符的命名不要与关键字相同。与其他计算机语言相比,C语言的关键字是比较少的,ANSIC标准一共规定了32个关键字,表1-7按用途列出了ANS

    38、IC标准的关键字。C51编译器除了支持ANSIC标准的关键字以外,还扩展了如表1-8所示的关键字。上一页 下一页返回任务4 广告灯的设计和制作 2.switch case语句 其一般格式为:switch(条件表达式)case条件值1:动作1 break case条件值2:动作2 break case条件值3:上一页 下一页返回任务4 广告灯的设计和制作 动作3 break case条件值4:动作4 break defaut:break;switch内的条件表达式的结果必须为整数或字符。switch以条件表达式的值来与各case的条件值对比,如果与某个条件值相符合,则执行该case的动作;如果所

    39、有的条件值都不符合,则执行default的动作。每一个动作之后一般要写break,否则就会继续执行下一个case 的动作,这是我们不希望看到的。上一页 下一页返回任务4 广告灯的设计和制作 另外,case之后的条件值必须是数据常数,不能是变量,而且不可以重复,即条件值必须各不相同,当有数种case所做的动作一样时,也可以写在一起,即上下并列。一般当程序必须做多选1时,可以采用switch语句。break是跳出循环的语句,任何由switch,for,while,do-while构成的循环,都可以用break来跳出,必须注意的是,break一次只能跳出一层循环,通常都和if连用,当某些条件成立后,

    40、就跳出循环。当所有case的条件值都不成立时,就执行default所指定的动作,执行完成后,也要使用break指令跳出switch循环。上一页返回图1-1信号灯电路原理图返回图1-2信号灯的仿真调试图返回图1-3 80C51单片机的基本结构返回图1-4 80C51内部逻辑结构返回图1-5 80C51单片机引脚封装返回图1-6流水灯的原理图返回图1-7流水灯程序的流程图返回图1-8流水灯的仿真图返回图1-9 80C51程序存储器的配置返回图1-10 80C51单片机RAM的配置返回表1-1 80C51单片机工作寄存器地址表返回表1-2 80C51单片机的位地址表返回表1-3 80C51特殊功能寄

    41、存器位地址及字节地址表返回表1-4基本数据类型的长度返回表1-4基本数据类型的长度返回表1-5 C51存储类型修饰符返回表1-6存储模式及说明返回图1-11花样灯的原理图返回图1-12花样灯的设计流程图返回图1-13花样灯的仿真图返回图1-14 PO接口的位结构返回图1-15P1接口的位结构返回图1-16 P2接口的位结构返回图1-17 P3接口的位结构返回图1-18广告灯的原理图返回图1-19广告灯的仿真图返回图1-20 80C51单片机的时钟信号返回图1-21 80C51单片机的时钟信号返回图1-22单周期指令时序返回图1-23单字节双周期指令时序返回图1-24访问外部RAM的双周期指令时

    42、序返回图1-25单片机的复位电路返回表1-7 ANSIC标准的关键字返回表1-7 ANSIC标准的关键字返回表1-8 C51编译器扩展的关键字返回项目2 电子表的控制和制作 任务1 电子表的静态显示设计 任务2电子表的动态显示设计 任务3电子表的调整设计 任务4电子表的设计和制作返回任务1 电子表的静态显示设计 任务描述 用AT89C51的PO和P1口做输出口,接两只七段数码管,编写程序,使两只七段数码管实现显示两位十进制数字,从00一直加到99,每隔0.5 s数值加1,如此重复循环。任务分析 1.硬件电路分析 如图2-1所示,用AT89C51的PO口和P1口做输出口,接两只七段数码管,PO口

    43、所接的数码管显示十位数字,P1口所接的数码管显示个位数字。因为是静态显示,LED处于持续发光状态,R1R14选择470,其主要作用是限流。下一页返回任务1 电子表的静态显示设计 2.软件设计思路 主程序的流程图如图2-2所示。参考源程序上一页 下一页返回任务1 电子表的静态显示设计上一页 下一页返回任务1 电子表的静态显示设计 系统仿真调试 在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图2-3所示电路图,加载编译得到的HEX文件,进行仿真调试。上一页 下一页返回任务1 电子表的静态显示设计 按下窗口下面的工具

    44、条中的play键,两只数码管从00开始计数,一直加到99,然后回到00,循环往复。还可以按下pause键暂停,按下stop键停止仿真。在运行过程中,如果按下RST键,就可以复位到00。仿真运行过程中,可以观察每一个引脚的电平高低的变化。知识拓展 数码管显示 1.原理及控制电路 图2-4所示为七段LED数码管的原理图,数码管由8个发光二极管构成,通过不同的组合可显示数字09,字符AF,H,L,P,R,U,Y,符号“一”及小数点“.”。上一页 下一页返回任务1 电子表的静态显示设计 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源正极),其他管脚接段驱

    45、动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合,可显示出各种数字或字符。共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其他管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合,可显示出各种数字或字符。要显示出某一数字或字符,共阴极和共阳极数码管的字型编码恰好对应相反,使用共阳极数码管,数据为0表示对应字段亮,数据为1表示对应字段暗;而使用共阴极数码管,数据为0表示对应字段暗,数据为1表示对应字段亮。如要显示“0”,共阳极数码管的字型编

    46、码应为11000000B(即COH,共阴极数码管的字型编码应为00111111B(即3FH)。表2-1中列出了共阳极数码管的字型编码表。上一页 下一页返回任务1 电子表的静态显示设计 2.静态显示原理 静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。采用静态显示方式,较小的电流即可获得较高的亮度,且占用CPU时问少,编程简单,显示便于监测和控制,但其占用的I/O

    47、口多,硬件电路复杂,成本高,只适合于显示位数较少的场合。上一页返回任务2 电子表的动态显示设计 任务描述 用AT89C51的P1口做计数输入口,P3口接数码管LEDMPX(显示两位数字的数码管),编写程序,使数码管实现动态显示的效果,显示两位十进制数字,从00一直加到99,每隔0.5 s加1,不断递增,依此重复循环。动态显示时,两位数字自左向右交替显示,时问问隔为20 ms次内,实际运用中,时问问隔也不能太短。任务分析 1.硬件电路分析 如图2-5所示,用AT89C51的P1,P3口做输出口,P3作为两位数码管的数据端口,P1口的P1.0和P1.1控制数码管的公共端口,P0,P2口悬空,因为是

    48、动态显示,LED处于问断发光状态,所以P3口外接电阻R2R9选择100 。下一页返回任务2 电子表的动态显示设计 2.软件设计思路 主程序实现00 99的计数,时问问隔为0.5 s。中断程序实现动态显示,动态显示的流程图如图2-6所示。参考源程序上一页 下一页返回任务2 电子表的动态显示设计上一页 下一页返回任务2 电子表的动态显示设计上一页 下一页返回任务2 电子表的动态显示设计 系统仿真调试 数码管的动态显示:在Keil中建立工程项目,新建C语言文件,并在编辑区中输入上面的源程序,编译后得到HEX文件。运行Proteus,在编辑窗口绘制如图2-7所示的电路图,加载编译得到的HEX文件,进行

    49、仿真调试。上一页 下一页返回任务2 电子表的动态显示设计 按下窗口下面的工具条中的play键,数码管从00开始计数,一直加到99,然后回到00,循环往复。还可以按下pause键暂停,按下stop键停止仿真。在运行过程中,如果按下RST键,可以复位到00.仿真运行过程中,可以观察每一个引脚的电平高低的变化。知识拓展1 动态显示上一页 下一页返回任务2 电子表的动态显示设计 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制,称为数码管的数据端;各位数码管的位选线(公共阴极或阳极)由另外的I/O口控制,称为数

    50、码管的控制端。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示问隔足够短,就可以给人以同时显示的感觉。采用动态显示方式比较节省I/O口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时问。上一页 下一页返回任务2 电子表的动态显示设计 知识拓展2 MCS-51的中断 1.MCS-5,的中断系统

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:整套课件教程:单片机C51项目设计与开发.ppt
    链接地址:https://www.163wenku.com/p-3520998.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库