49
目目 项项项项项项项项项项 ...............................................................2 一、......................................................................2 目目 ....................................................................... 2 (一) AT89S52 认认认.................................................................................................................................. 2 认认 () ......................................................................................................................................................... 8 认认 () Keil C 认认认认认认.................................................................................................................................... 9 ()MedWinV3 认认认认认认.......................................................................................................................... 22 目目 ...................................................................... 30 LED 认认认认认.......................................................................................................................................... 30 认认认 LED 认认认认认...................................................................................................................................... 35 认认认 认认认认认认认认认认.................................................................................................................................. 40 认认认 认认认认认认认认认认.................................................................................................................................. 46 目目 ..................................................................53 PWM 认 ..................................................................................................................................................... 53 目目 .................................................................53 1

blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

目录项目一 乒乓球游戏控制器制作........................................................................................................................ 2

一、项目简介.....................................................................................................................................................2

二、相关知识.....................................................................................................................................................2

(一)认识 AT89S52 单片机.........................................................................................................................2

(二)单片机最小化应用系统.....................................................................................................................8

(三)Keil C 软件使用说明...........................................................................................................................9

(五)MedWinV3 软件使用说明................................................................................................................22

三、操作训练...................................................................................................................................................30

任务一 LED 报警灯制作..............................................................................................................................30

任务二 LED 流水灯制作..............................................................................................................................35

任务三 键控流水灯控制器制作.................................................................................................................40

任务四 乒乓球游戏控制器制作.................................................................................................................46

四、知识拓展...................................................................................................................................................53

PWM 调光原理简介。................................................................................................................................53

五、思考与练习................................................................................................................................................53

1

Page 2: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

项目一 乒乓球游戏控制器制作一、项目简介

图 1- 1乒乓球游戏乒乓球作为我国的国球,得到很多人的喜爱。它集健身、竞技、娱乐于一

体,不仅可以锻炼身体,还可以练习头脑的灵活性、眼睛的反应力以及全身的

协调性。乒乓球游戏控制器使用发光二极管模拟乒乓球,用点亮的发光二极管按一

定方向的位移表示球的运动位置。游戏控制器单人来操作,用一个按键控制击

球和蓄力,蓄力时间越长,等级越高,球移动的速度越快。YL-236 实训平台

中配备包含 8 个发光二极管的 MCU04 显示模块,配备包含按键的 MCU06 指2

Page 3: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

令模块。二、相关知识

(一)认识 AT89S52 单片机

一台能够工作的计算机要有这样几个部分构成:CPU、存储器、I/O 接口

和定时与中断系统。在个人计算机上这些部分被分成若干块芯片,安装在一个

称之为主板的印刷线路板上。而在单片机中,这些部分全部被做在一块集成电

路芯片中,所以就称为单片(单芯片)机。 MCS51 是指由美国 INTEL 公司生

产 的 一 系 列 单 片 机 的 总 称 , 这 一 系 列 单 片 机 包 括 了 若 干 品 种 , 如

8031、8051、8751、8032、8052、8752 等,其中 8051 是最早最典型

的产品,该系列其它单片机都是在 8051 的基础上进行功能的增、减、改变而

来的,所以人们习惯于用 8051 来称呼 MCS51 系列单片机。AT89S52 单片机也是 51 系列产品之一,是一种低功耗、高性能 CMOS8

3

Page 4: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

位微控制器,具有 8K 系统可编程 Flash 存储器。使用 Atmel 公司高密度非易

失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash

允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的

8 位 CPU 和系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提

供灵 活 、 有效的解决方案。 AT89S52 具 有 以下标准功 能 : 8k 字节

Flash,256字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,3

个 16 位 定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振

及时钟电路。

图 1- 2 AT89S52 芯片及底座

4

Page 5: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

1、 AT89S52 内部结构

1)CPU——中央处理器CPU(Central Processing Unit,中央处理器)是 AT89S52内部的字

长为 8 位的中央处理单元,它由运算器和控制器两部分组成。(1)运算器运算器以 ALU(Arithmetic Logic Unit,算术逻辑单元)为核心,包括

累加器 A(Accumulator)、PSW(Program Status Word,程序状态字寄

存器)、B寄存器、两个 8 位暂存器 TMP1 和 TMP2 等部件。其中,ALU 的运

算功能很强,可以运行加、减、乘、除、加 1、减 1、BCD数十进制数调整、

比较等算术运算,也可以进行与、或、非、异或等逻辑运算,同时还能完成循

环移位、判断和程序转移等控制功能。两个 8 位暂存器(TMP1 和 TMP2)不对用户开放,但可以用来为加法器、

逻辑处理器暂存两个 8 位二进制数。在进行数据运算时,两个参与运算的数据5

Page 6: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

分别通过 TMP1 和 TMP2同时进入 ALU 进行运算,运算的结果一般再返回给

累加器 ACC。(2)控制器控制器包括 PC(Program Counter,程序计数器)、指令寄存器、指令

译码器、振荡器、定时电路及控制电路等部件,它能根据不同的指令产生相应

的操作时序和控制信号,控制单片机各个部件的运行。单片机执行哪条指令受 PC 控制。PC 是一个 16 位计数器,具有自动加 1

功能。CPU每读取一个字节的指令,PC 就自动加 1,指向要执行的下一条指

令的地址。PC 的最大寻址范围为 64kB,可以通过控制转移指令来改变 PC值,

实现程序的转移。2)存储器AT89S52 系列单片机内的只读存储器(Read-Only Memory,ROM)是程

序存储器,用于存放已编号的用户程序、数据表格等。片内的随机存取存储器

6

Page 7: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(Random-Access Memory,RAM)又称读/写存储器,可用于存放输入数

据、输出数据和中间计算结果等随时有可能变动的数据,同时还作为数据堆栈

区。当存储器的容量不够时,可以进行外部扩展。存储器的常用单位如下:位(bit):它是计算机中最小的数据单位。由于计算机采用二进制数,所以

1 位二进制数称作 1bit,例如 101011 为 6bit。字节(Byte,单位简写为 B):8 位二进制数称为一个字节,1B=8bit。字(Word):两个字节构成一个字,即 2Byte=1Word。

单片机中还有一个术语:字长。所谓字长指单片机一次能处理的二进制数

的位数。MCS-51 系列单片机一次能处理 8 位二进制,所以它的字长为 8 位。3)I/O 口(1)并行口。AT89S52 单片机有 4 个 8 位并行 I/O 接口 P0-P3,均可并

行输入/输出 8 位数据。(2)串行口。AT89S52 单片机有 2 个串行 I/O 接口,用于数据的串行输

7

Page 8: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

入/输出。4)定时器/计数器 定时器/计数器可以产生定时脉冲,实现单片机的定时控制,或用于计数

方式,记录外部事件的脉冲个数。

图 1- 3 AT89S52 引脚图

2、 引脚功能介绍

1)工作电源电源是单片机工作的动力源泉。对应的接线方法为:VCC(40 脚),工作

时接+5V 电源,GND(20 脚)为接地端。

8

Page 9: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

2)时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一

的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振)

那么单片机也就停止运行了。时钟脉冲信号频率越高,这些电路的工作速度越

快。当采用内部时钟时,连接方法如图 1- 4 所示,在晶振引脚 XTAL1(19 脚)

和 XTAL2(18 脚)引脚之间接入一个晶振,两个引脚对地分别再接入一个电容

即可产生所需的时钟信号,电容的容量一般在几十皮法,如 30PF。

(a) 内部方式 (b)外部方式图 1- 4 时钟电路

3)I/O(输入输出)引脚单片机工作时,引脚可输入、输出数据。P0端口(P0.0—P0.7,39 脚—32 脚):无内置上拉电阻的 8 位双向

9

Page 10: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

I/O端口,置 1 时作高阻抗输入端。第一功能为基本输入/输出,第二功能为扩

展系统分时提供数据总线和低 8 位地址总线。P1端口(P1.0—P1.7,1 脚—8 脚):带有内置上拉电阻的 8 位双向 I/O

端口,可以输入输出电流。如果是给外部芯片赋值,可直接接入,如果要驱动

外部电路,比如发光二极管,需要接限流电阻。与 51 系列不同的是,P1.0 和

P1.1可以作为定时器/计数器的外部输入,作为定时计数器使用。表 1- 1 P1.0 和 P1.1第二功能表

引脚 第二功能信号 第二功能P1.0 T2 时钟输出P1.1 T2EX 定时器/计数器 2

P2端口(P2.0—P2.7,21 脚—28 脚):带有内置上拉电阻的 8 位双向

I/O端口。第一功能为基本输入/输出,第二功能是在系统扩展时作为高位地址

线使用。P3端口(P3.0—P3.7,10 脚—17 脚):带有内置上拉电阻的 8 位双向

10

Page 11: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

I/O端口。它是一个双功能口,即 P3 口的每一条口线都具有第二功能,其功能

如表 1-2 所示。表 1-2 P3端口引脚第二功能表

P3 引脚 第二功能信号 第二功能P3.0 RXD 串行通信输入P3.1 TXD 串行通信输出P3.2 外部中断 0请求输入

P3.3 外部中断 1请求输入P3.4 T0 定时器/计数器 0外部输入P3.5 T1 定时器/计数器 1外部输入P3.6 外部 RAM写选通

P3.7 外部 RAM读选通

4)控制引脚(1)ALE/ (30 脚):地址锁存控制/片内ROM 编程脉冲输入信号。在访问外部 程 序 存 储 器或数据存 储 器 时 ,P0 口 作地址 /数据复用 口,

ALE(地址锁存允许)输出脉冲用于锁存低 8 位地址。即 ALE 为高电平时

11

Page 12: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

P0 口上的信息为低 8 位地址,在 ALE下降沿时将 P0 口上的低 8 位地址送地

址锁存器锁存起来,在 ALE 为低电平期间 P0 口上的信息为指令或数据信息,

以此实现低位地址与数据的分离。一般情况下,ALE 仍以时钟振荡频率的

1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意

的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。该引脚的第二功能 用于内部 Flash ROM 编程脉冲的输入端。(2)RST(9 脚):复位信号。当在该引脚上出现连续两个机器周期以上的高电平时,单片机进入复位状

态,完成初始化操作。复位后,所有 I/O 引脚均置 1,程序计数器和特殊功能

寄存器全部清零。(3) (29 脚):外部程序存储器选通信号。当访问芯片外部扩展 ROM 时,只有该引脚为低电平时才为有效信号,

才能选通片外程序存储器对其进行读操作。当 AT89S52 由外部程序存储器

12

Page 13: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

取指令(或数据)时,每个机器周期两次 有效,即输出两个脉冲。在此

期间,当访问外部数据存储器,将跳过两次 信号。 (4) /VPP(31 脚):内外程序存储器选择控制引脚。当 为低电平时,单片机从外部程序存储器取指令,当 接高电平时,

单片机从内部程序存储器取指令。AT89S52 单片机内部有 8kB 可反复擦写

1000次以上的程序存储器,因此 Flash 存储器编程时,该引脚加上 Vpp 编程

允许电压,让单片机运行内部的程序,我们就可以通过反复烧写来验证我们的

程序了。第二功能 VPP 用于对内部含有 Flash ROM 的芯片进行编程时,该引脚作

为 12V 编程电压的输入端。【注】:以上控制引脚中的第二功能与第一功能是分别应用于单片机的不

同工作方式,所以在应用过程中不会发生矛盾。

13

Page 14: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(二)单片机最小化应用系统

所谓最小化应用系统就是单片机要正常工作所必须具备的最简单的硬件支

持,其中最主要的就是三个基本条件:电源正常,时钟正常,复位正常。图 1-

5即为单片机最小化应用系统电路图。在 AT89S52 单片机的 40 个引脚中,使

用了电源引脚 2 个(40、20 脚)、晶振引脚 2 个(18、19 脚),上电复位

引脚 1 个(9 脚)、读取内部程序引脚 1 个(31 脚),其余引脚悬空。

图 1- 5 AT89S52 单片机最小化应用系统电路图

14

Page 15: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(三)Keil C 软件使用说明

1)启动 Keil μVision2 软件 双击图标 ,运行几秒后即出现图 1-6 所示界面。

图 1- 6 启动 Keil μVision2 软件后的界面2)建立项目

点击 Project菜单,如图 1-7 所示,弹出一个标准的 Windows文件对话

框,如图 1-8 所示。在文件名中输入 C 程序项目名称“task1”,保存后的扩展

名为“Uv2”,这是 Keil μVision2 项目文件扩展名,以后我们可以直接点击此

文件打开先前做的项目。

15

Page 16: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 7 新建项目对话窗口

图 1- 8 新项目命名对话窗口3)选择所要的单片机型号 这里我们选择Atmel 公司的 AT89S52,如图 1-9 所示。

16

Page 17: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 9 选择单片机型号对话窗口4)创建文件

点 击 图 1-10 中“新建文件”快捷按钮, 也 可 以 点 击“File”菜单下

“New”或快捷键“Ctrl+N”来实现,用户在“Text1”窗口中进行程序编写工

作。

17

Page 18: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 10 创建文件对话窗口5)保存文件

在创建文件一开始即进行文件保存。单击“保存”命令,文件名为

“task1.c”,保存在项目所在的文件夹中。这时你会发现程序单词颜色发生了

改变,说明 Keil 的 C语法生效了。6)添加文件

在图 1-11 中右击屏幕左边的 Source Group1文件夹图标,弹出菜单,

18

Page 19: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

在 这里可 以对项 目 进 行添加或删除文件 操 作 。选“Add Files to Group

‘Source Group 1’”,弹出对话框,如图 1-12 所示,选择刚才保存过的文件,

单击“Add”按钮,关闭对话框,此时文件已被添加到项目中。

图 1- 11 添加文件对话窗口

19

Page 20: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 12选择文件对话窗口7)编译并生成可烧录的.hex 文件

在编译调试程序之前,必须将程序设置成可同时生成.hex文件。Hex格

式文件是 Intel 公司提出的按地址排列的数据信息,数据宽度为字节,所有数

据使用 16 进制表示,常用来保存单片机或其他处理器的目标程序代码,一般

的 存 储 器 都支持这 种格式。 如 图 1-13 所 示 ,右击“ Tagret1” , 单 击

“Options for Target ‘Target 1’” ,弹出如 图 1-14 所 示对话框,勾选

“Create Hex File”选项,这样在每次进行编译文件操作的同时都可生成.hex

文件。20

Page 21: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 13 生成 hex文件对话窗口 1

21

Page 22: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 14 生成 hex文件对话窗口 2

为 了顺利完 成仿真, 还需要对晶振进 行设置 。 如 图 1-15 所 示 , 在

“Target”选项卡中,“Xtal”后面的数值是晶振频率值,默认值是所选目标

CPU 的最好可用频率值。将此值改为 12MHz。在工程建立并设置好以后,接下来我们开始编译文件。在图 1-16 中,

1、2、3 都是编译按钮。1 是编译单个文件;2 是编译当前项目,如果先前编

译过后文件没有做过编辑改动,再点击是不会重新编译的;3 是重新编译,不

管程序是否有所改动,每点击一次均会再次编译链接一次;4 是停止编译按钮。

以上操作命令均可在“Project”菜单中找到。按下编译按钮,软件对文件进行编译,编译结束之后,在图 1-18 的 5窗

口中将会显示编译过程中出现的错误信息和资源使用情况,并且告知用户.hex

文件已创建成功。如果程序出现错误,必须将错误全部修正才能通过编译,只

有顺利通过编译才能成功创建.hex文件。22

Page 23: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 15 晶振频率设置对话窗口

23

Page 24: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 16 文件编译对话窗口8)dScope for Windows 的使用在开发产品时,有时软件,也就是应用程序,先行于硬件设计,可以用软

件模拟仿真器(Simulator)对应用程序进行软件模拟调试。另外,现在应用程

序的开发往往采用几个人共同开发,一个人汇总的情形较多,因此直接用硬件

方法调试软件会带来一定的困难。Keil提供了一种软件仿真器 dScope,为 51

单片机的调试带来了极大的方便。下面将详细介绍 dScope for Windows 的

使用方法。(1) 如何启动

如果源程序代码编译成功,那么运行 dScope 可以对 8051 应用程序进行

软件仿真调试——使用 Simulator。为了运行 dScope,如图 1-17 所示的

“Option for Targe”选项的“Debug”中要选中“Use Simulator”选项。

“Load Application at Startup”复选框用于在 dScope开始时能够调用自己

24

Page 25: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

应用程序的 OMF文件,因此要选中这个复选框。如果不选用此复选框而运行

了 dScope,则要手动装载应用程序。

图 1- 17 “Option for Target”页面中的“Debug”标签页面“Run to main()”选项用于选择在 dScope开始后是否从 C源程序的

main()函数开始,因此选中此复选框。右边的“Use”单选项中的监控软件“Keil Monitor”具有把已经编译好的

代码下载到用户目标硬件系统后,监控硬件目标系统的功能。该监控软件通过

RS-232串口能够实时地 Keil 的 dScope 和硬件目标系统相互联系的强大功能。

25

Page 26: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

这里由于使用软件仿真,所以不选取。在编译源程序代码时,对所有出现的警告可以不去理会,但不可以有错误,

这样可以执行 dScope 了。dScope 一词是 Debug 和 Scope 的合成语。下图

1-18 所示中 Keil执行菜单中带有红色“d”字的按钮 就是启动 dScope 的快

捷按钮。

图 1- 18 Keil dScope执行菜单“Debug”菜单上的大部分命令可以在此找到对应的快捷按钮,从左到右依

次是“复位”、“运行”、“暂停”、“单步”、“过程单步”、“单步执行

到函数外”、“运行到光标所在行”、“下一状态”、“打开跟踪”、“观察

跟踪”、“反汇编窗口”、“观察窗口”、“代码作用范围分析”、“串行窗

口”、“内存窗口”、“性能分析”、“工具按钮”等命令。(2)如何调试

26

Page 27: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

学习程序调试,必须明确两个重要概念,即单步执行与全速运行。全速

运行是指一行程序执行完后紧接着执行下一行程序,中间不停止,可以看到该

段程序执行的总体效果,即最终结果正确还是错误。但如果程序有错,则难以

确认错误出现在哪些程序行。单步执行是每执行一次程序,执行完该行程序即

停止,等待命令执行下一行程序。此时可以观察该行程序执行完以后得到的结

果是否与我们写该行程序所想要的结果相同,借此可以找到程序中的问题所在

程序调试中,这两行运行方式得要用到。使用菜单“Step”或相应的快捷按钮“ ”或使用快捷键“F11”可以单

步执行程序。使用菜单“Step Over”或相应的快捷按钮“ ”或使用快捷键

“F10”可以以过程单步形式执行命令。所谓过程单步,是指将汇编语言中的子

程序或高级语言中的函数作为一个语句来全速执行。通过单步执行程序,可以找出一些问题的所在。但是仅依靠单步执行来

27

Page 28: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

查错有时是困难的,或虽能查出错误但效率很低,为此必须辅助以其他方法。

比如在次数很多的循环子程序中,单步执行方法就不再合适,这时候应该使用

“单步执行到函数外”命令( )或者“运行到光标所在行”命令( )来

跳出循环子程序。还有个办法就是在单步执行到循环子程序的时候,不再使用

单步命令“F10( )”而采用过程单步“F11( )”命令,这样就不会进

入循环子程序内部 。灵活使用这几种方法,可以大大提高调试的效率。在进入 Keil 的调试环境以后,如果发现程序有错,可以直接对源程序进

行修改,但是要使修改后的代码起使用,必须先退出调试环境,重新进行编译

链接后再次进入调试。程序调试时,一些程序行必须满足一定的条件才能被执行到(如程序中

某变量达到一定的值,按键被按下,串口接收到数据或有中断产生等),这些

条件往往是异步发生或难以预先设定的。这类问题使用单步执行的方法是很难

28

Page 29: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

调试的,这时就需要使用到程序调试中的“断点设置”。断点设置的方法有多种,常用的是在某一程序行设置断点。设置中断点

后可以全速运行程序,一旦执行到该程序行即停止,可在此观察有关变量值,

以确定问题所在。在程序行设置/删除断点的方法是将光标定位于需要设置断点

的程序行,使用菜单“Debug/Insert/Remove Breakpoint”( )设置或删

除断点(也可以用鼠标在该行双击实现同样的功能);“Debug/Emable/Dis

able Breakpoint” ( ) 具 有开启或暂停光标所 在 行 的 断 点 功 能;

“ Debug/Disable All Breakpoint” ( ) 用 于 暂 停 所 有 的 断 点 ;

“Debug/Kill All Breakpoint”( )用于清除所有的断点设置。(3)调试窗口 Keil 软件在调试程序时提供了多个窗口,主要包括输出窗口(Output

Window ) 、观察窗口 ( Watch & Call Stack Window ) 、 存 储 器窗口

(Memory Window)、反汇编窗口(Dissaembly Window)和串行窗口29

Page 30: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(Serial Window)等。进入调试模式后,可以通过菜单“View”下的相应命

令打开或关闭这些窗口。在进入调试模式之前,工程窗口的寄存器页面是空白的,进入调试模式

以后,此页面就会显示出当前模式状态下单片机寄存器的值,如图 1-19 所示。

图 1- 19 Keil 工程窗口寄存器页面存器页包括了当前的工作寄存器组和系统寄存器,系统寄存器有一些是

实际存在的寄存器如 A、B、DPTR、SP、PSW 等,有一些是实际中并不存在

或虽然存在却不能对其操作的如 PC、Status 等。每当程序中执行到对某寄存

30

Page 31: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

器的操作时,该寄存器会以反色(蓝色底白字)显示,用鼠标单击然后按下

“F2”键,即可修改该值。进入调试程序后,输出窗口自动切换到“Command”页(命令窗口)。

输出窗口可以输入调试命令同时可以输出调试信息,调试命令以文本的形式输

入。① 存储器窗口存储器窗口可以显示系统中各种内存中的值,通过在 Address后的编辑

框内输入“字母:数字”即可显示相应内存值,其中字母可以是 C、D、I 和

X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储

空间和扩展的外部 RAM空间,数字代表想要查看的地址。如输入“D:5”,

即可观察到地址 0x05开始的片内RAM 单元值;键入“C:0”即可显示从 0开

始的 ROM 单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各

种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点击鼠31

Page 32: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

标右键,在弹出的快捷菜单中选择。该菜单用分隔条分成三部分,其中第一部

分与第二部分的三个选项为同一级别,选中第一部分的任一选项,内容将以整

数形式显示,而选中第干部分摊“ASCII”项将以字符型显示,选中“Float”项

内容将以相邻四字节组成的浮点数形式显示,选中“Double”项内容将以相邻

8字节组成的双精度形式显示。第一部分又有多个选择项,其中“Decimal”

项是一个开关,如果选中该选项,则窗口中的值将以十进制的形式显示,否则

按默认的十主进制方式显示。“Unsigned”和“Signed”后分别有三个选项:

“Char”、“Int”、“Long”,分别代表以单字节方式显示、相邻双字节组成

整型数方式显 示 、 相邻四字节组成 长整型 方式显 示 。 而“Unsigned”和

“Signed”则分别代表无符号形式和有符号形式。至于究竟从哪一个单元开始

相邻单元则与设置有关。第三部分的“Modify Memory at X:xx”用于更改

鼠标处的内容单元值。

32

Page 33: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

②观察窗口观察窗口是很重要的一个窗口,工程窗口中仅可以观察到工作寄存器和

有限的寄存器如 A、B、DPTR 等,如果需要观察其他寄存器的值或者在高级

语言编程时需要直接变量,就要借助观察窗口了。比如,如果想要观察程序中

某个临时变量 tmp 在单步工作时的变化情况,就可以在观察窗口中按“F2”键,

然后键入变量名 tmp,这样在程序运行的时候会看到 tmp 变量的即时值。一

般情况下,仅在单步执行时才对变量值的变化感兴趣,全速运行时,变量的值

是不变的,只有在程序停下来之后,才会将这些值最新的变化反映出来。但是

在一些特殊的场合下也可能需要在全速运行时观察变量的变化,此时可以选择

“View/Periodic Window Updata”菜单,确认该项处于被选中状态,即可在

全速运行时动态地观察有关变量值的变化。选中该项,将会使程序模拟执行的

速度变慢。

33

Page 34: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

③ 反汇编窗口选择菜单“View/Disassembly Window”可以打开反汇编窗口。该窗口

可以显示反汇编后的代码、源程序和相应反汇编代码的混合代码,可以在该窗

口中进行在线汇编,利用该窗口跟踪已执行的代码,在该窗口中按汇编代码的

方式单步执行,这也是一个重要的窗口。打开反汇编窗口,单击鼠标右键,出

现快捷菜单 , 其 中“Mixed Mode” 是 以混合方式显 示 的 ,“Assembly

Mode”是以反汇编码方式显示的。程序调试中常使用设置断点然后全速运行的方式,以断点处可以获得各

变量值,但却无法知道程序到达断点以前究竟执行了哪些代码。而这往往是需

要了解的,为此,Keil提供了跟踪功能,在运行程序之前打开调试工具条上的

“允许跟踪代码”开关,然后全速运行程序。当程序停止运行后,单击“查看

跟踪代码”按钮,自动切换到反汇编窗口,其中前面标有减号“-”的行就是中

34

Page 35: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

断以前执行的代码,可以按窗口边的“上卷”按钮向上翻,查看代码执行记录。④串行窗口Keil提供了串行窗口,可以直接在串行窗口中输入字符,该字符虽然不

会被显示出来,但却有传递到仿真 CPU 中。如果仿真 CPU通过串行口发送字

符,那么这些字符会在串行窗口上显示出来。用该窗口可以在没有硬件的情况

下用键盘模拟串口通信,这是一种高级调试技巧,本任务不再作详细介绍。

(五)MedWinV3 软件使用说明

用电子连接线将 MCU02 电源模块上的 5V 电源、5V地接到 MCU01 的 5V

电源、5V地,确保主机模块上的 选择开关在 1 的位置,将仿真头直插在主

机模块上,确认无误后接通电源。双击图标 ,打开MedWinV3 软件。1)设置软件 MedWinV3

(1)选择设备驱动管理器

35

Page 36: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

如图 1-20 所示,单击“设置”,再单击“设备驱动管理器”后,弹出对

话框,如图 1-21 所示,勾选“Insight ME-52HU Family Emulator”后,单击“选择

驱动”,单击“确定”。

图 1- 20 MedWin设置设备驱动管理器界面

图 1- 21 MedWin选择编译工具界面(2)设置编译工具

36

Page 37: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

MedWin 集成开发环境系统默认使用万利电子有限公司的汇编器 A51.EXE

和连接器 L51.EXE,支持汇编语言编写的程序开发,如果使用其他外部编译工具,

需要对外部编译工具的路径和程序进行设置。如图 1-22 所示,单击“设置”,

再单击“设置编译工具”后,弹出对话框,如图 1-23 所示,用户只使用汇编作

为编程语言时,建议选择“系统默认的汇编器和连接”。当使用 C语言作为编

程语言时,选择“指定路径下的编译工具”。点击“选择路径”,选择 Keil 的

安装路径下的 C51。【注意】:只需要将路径指向外部编译工具原始安装位置,不要移动或

复制外部编译工具中的任何文件!

37

Page 38: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 22 MedWin设置编译工具界面

图 1- 23 指定路径下的编译工具路径2)新建项目如图 1-24 所示,点击“项目管理”,点击“新建项目”,点击“下一步”,

出现图 1-24 所示的新建项目命名界面时,输入项目名称,例如“led”,单击“下一步”,直至完成。

图 1- 24 新建项目界面

38

Page 39: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 25 新建项目命名界面3)新建文件

点“新建文件”,如图 1-26 所示,软件操作区出现空白文档,点击保存,

保存为.C文件。

图 1- 26 新建文档界面4)导入/添加源文件双击图 1-27 中的“源文件组”,弹出对话框,如图 1-28 所示,选择.C源

39

Page 40: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

文件,单击“导入/添加”,此时文件已被添加到项目中,可以编写程序了。

图 1- 27 文件管理器界面

图 1- 28 导入/添加源文件5)程序调试

程序编写完成后,对程序进行编译。如图 1-29 所示,为编译按钮,从左40

Page 41: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

到右的功能依次为“产生代码”、“重新产生代码”、“编译/汇编”、“产生

代码并装入”,“重新产生代码并装入”,这些功能也可以在菜单中选择或者

利用快捷键来实现,如图 1-30 所示。

图 1- 29 编译按钮

图 1- 30 编译菜单选择编译通过无错误后,运行程序并调试。单击“调试”,如图 1-31 所示,

41

Page 42: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

菜单功能可以用界面按钮或者快捷键完成。可以“全速运行”,中间不停止,

可以看到该段程序执行的总体效果,即最终结果正确还是错误。单步执行是每

执行一次程序,执行完该行程序即停止,等待命令执行下一行程序。此时可以

观察该行程序执行完以后得到的结果是否与我们写该行程序所想要的结果相同

借此可以找到程序中的问题所在。程序调试中,这两行运行方式得要用到。

图 1- 31 调试菜单选择也可以通过设置断点,使程序运行至断点,查看运行结果。如图 1-32 所

42

Page 43: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

示,此功能也可以用界面按钮或者快捷键完成,设置的断点可清除。

图 1- 32 设置或清除断点如果想要观察程序中某个变量在单步工作时的变化情况,可以在观察窗

口查看。如图 1-33 所示,单击“查看”,单击“观察窗口 1”,弹出如图 1-

34 所示的观察窗口界面,输入表达式后,即可查看表达式的值。

43

Page 44: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 33 查看观察窗口

图 1- 34 观察窗口界面

44

Page 45: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

45

Page 46: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

三、操作训练任务一 LED 报警灯制作

(一)任务要求

1、LED 报警灯描述及有关说明

单只 LED闪烁报警。

2、系统控制要求

系统上电,单只 LED闪烁报警。(二)任务分析发光二极管,也叫做 LED,是一种常用的指示器件,例如电源指示、工作

指示等。有不少设备,往往采用发光二极管的闪烁来表示系统正常工作。发光

二极管种类很多,如 1-35 图所示的是一种普通亮度发光二极管,其图形符号如

图 1-36 所示,当在它的 A 和 K两个电极加上合适的电压时,它就会亮起来,但

46

Page 47: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

是在电源的时候,一定要串接一个电阻,用来控制亮度。这里需要注意的是发

光二极管也有正负极,管脚长的为正极,短的为负极。

图 1- 35 发光二极管实物图 图 1- 36 发光二极管的图形符号LED 与单片机连接如图 1-37 所示,给单片机 P1.0 口低电平时,即

“0”,LED 点亮;给 P1.0 口高电平时,即“1”,LED熄灭。

图 1- 37 LED 与单片机连接图(三)硬件电路使用 YL-236 实训考核装置模拟实现本任务,

其硬件模块接线如图 1-所示。

47

K

A

K

A

Page 48: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1-38 LED 报警灯模块接线图该电路由单片机的主机模块、LED 显示模块、及电源模块共同组合而成。

电源模块为这各部分电路提供电源。(四)项目程序的编写1.主函数流程图主函数流程图如图 1- 39 所示。

48

Page 49: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 39 LED 报警灯主程序流程图2.参考程序根据图 1- 39 LED 报警灯主程序流程图编写程序:LED 报警灯参考程序 LED.C

#include "reg52.h"

sbit LED=P1^0;//单只 LED 接在 P1.0 口void main()//主函数{

unsigned int j;

while(1)//永久循环{

LED=0;//点亮 LED

for(j=0;j<50000;j++);//延时 LED=1;//熄灭 LED

for(j=0;j<50000;j++);//延时}

}

49

Page 50: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

3.程序说明本程序通过延时来控制 LED 亮灭的时间。for(j=0;j<50000;j++);这条语句结尾

的分号是一条独立的语句,仅仅是做单位延时。(五)任务实施步骤1.硬件电路连接:按照图 1-所示的硬件电路接线图,选择所需的模块并

进行布局,然后将电源模块、主机模块和显示模块用导线进行连接。单片机使

用仿真器的仿真头来代替接入。2.打开MedWin 软件,通过菜单“项目管理/新建项目”,新建立一个工

程项目 LED,然后再建一个文件名为 LED.C 的源程序文件,将上面的参考程序输

入并保存。3.单击“重新产生代码”按钮,对源程序进行编译和链接,产生目标代

码并装入仿真器中。4.接通电源,让仿真器运行,观察电源指示灯是否亮起,查看程序运行

50

Page 51: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

结果。5.进行扎线,整理。(六)任务评价

表 1- 3 任务一完成情况评价表项目名称 评价时间 年 月 日小组名称 小组成员

评价内容 评价要求 权重 评价标准 学生自评得分

小组评价得分

教师评价得分

合计

职业与安全意识

1.工具摆放、操作符合安全操作规程;2.遵守纪律、 爱惜设备 和 器材、工位整洁;3.具有团队协作精神。

10%

好(10)较好(8)一般(6)差(<6)

模块的布局和布线工艺

1.模块布局合理,模块的选择应符合模块的要求;2.根据需要选择不同颜色的导线 进 行连接,导线连接可靠,走线合理 ,扎线整齐美观。

15%

好(15)较 好(12)一般(9)差(<9)

项目功能测试

1.编写的程序能成功编译;2.程序能正确烧写到 芯 片 中; 3.LED 闪烁。

60%

好(60)较 好(45)一 般(30)差(<30)

51

Page 52: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

问题与思考1.如何改变闪烁频率?2.使 用两只 LED 报 警灯 , 以 不同的频率闪烁。

15%

好(15)较 好(12)一般(9)差(<6)

教师签名 学生签名 总分项目评价=学生自评(0.2)+小组评价(0.3)+教师评价(0.5)

52

Page 53: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

任务二 LED 流水灯制作

(一)任务要求

1、LED 流水灯描述及有关说明:

8只 LED 流水形式从 LED0至 LED7循环闪烁。

2、系统控制要求:

系统上电, 8只 LED 流水形式从 LED0至 LED7循环闪烁。(二)任务分析本任务中最关键的改变与 LED连接的单片机 I/O 口实现 LED 的亮灭。为了

简化编程,将 8只 LED连接的 P0 口整体赋值。如图 1-40 所示的硬件模块接线

图所示,P0 口的值如表 1-4 所示。由此我们发现,“0”循环左移,从而实现从

LED0 到 LED7 的循环闪烁。表 1- 4 LED 流水灯 P0 口真值表

8只 LED LED LED LED LED LED LED LED LED

53

Page 54: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

7 6 5 4 3 2 1 0

P0 口 P0.7

P0.6

P0.5

P0.4

P0.3

P0.2

P0.1

P0.0

点亮LED0

1 1 1 1 1 1 1 0

点亮LED1

1 1 1 1 1 1 0 1

点亮LED2

1 1 1 1 1 0 1 1

点亮LED3

1 1 1 1 0 1 1 1

点亮LED4

1 1 1 0 1 1 1 1

点亮LED5

1 1 0 1 1 1 1 1

点亮LED6

1 0 1 1 1 1 1 1

点亮LED7

0 1 1 1 1 1 1 1

54

Page 55: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

1、循环左/右移指令在使用循环左/右移指令时,必须包含头文件"intrins.h "。_crol_()字符循环左移 _cror_()字符循环右移

unsigned char j=0;unsigned char num=0xb1;j=_crol_(num,1);//将 num 的值左移 1 位,移出的最高位补到最低位,执行后 j=01100011B

j=_crol_(num,2);//将 num 的值左移 2 位,移出的位依次补到低位,执行后 j=11000110Bj=_cror(num,1);//将 num 的值右移 1 位,移出的最高位补到最低位,执行后 j=11011000B

j=_cror_(num,2);//将 num 的值右移 2 位,移出的最高位补到最低位,执行后 j=01101100B

2、左/右移指令<<左移 >>右移

unsigned char j=0;unsigned char num=0xb1;j=num<<1;//将 num 的值左移 1 位,高位移出,低位补 0,执行后 j=01100010Bj=num<<2;//将 num 的值左移 2 位,高位移出,低位补 0,执行后 j=11000100B

j=num>>1;//将 num 的值右移 1 位,低位移出,高位补 0,执行后 j=01011000Bj=num>>2;//将 num 的值右移 2 位,低位移出,高位补 0,执行后 j=00101100B

(三)硬件电路用 YL-236 实训考核装置实现本任务要求的硬件模块接线图如图 1-40 所示。

55

Page 56: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 40 LED 流水灯模块接线图该电路由主机模块、LED 显示模块以及电源模块共同组合而成。电源模块

为这各部分电路提供电源。(四)参考程序

1.主函数流程图

图 1- 41 LED 流水灯程序设计流程图

56

Page 57: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

2.参考程序根据图 1- 41 LED 流水灯程序设计流程图我们编写任务二参考程序 LED8.C

LED 流水灯参考程序 LED8.C

#include "reg52.h"

#include "intrins.h"

#define LED_8 P0 //定义 P0 口,0只 LED 接在 P0 口/******************延时子程序********************************/

void Delay(unsigned int i)//延时{

unsigned char j;

while(i--) for(j=0;j<100;j++);}

/******************主程序***********************************/

void main()

{char j;

unsigned char num=0xfe;while (1)

{for(j=0;j<8;j++)

{

LED_8=_crol_(num,j);//给 P0 口给赋值,实现不同的 LED 点亮 Delay(500);//延时 0.5秒

}

}}

3.程序说明本程序主要通过改变与 LED连接的 I/O 口的值来实现亮灭。为了使 LED 亮

一段时间,用 Delay()延时子程序实现。调用 Delay(500);实现 500ms延时,即57

Page 58: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

0.5秒。改变参数,即可实现不同时间的延时。(五)任务实施步骤1.硬件电路连接:按照图 1- 4040 所示的硬件电路接线图,选择所需的模

块并进行布局,然后将电源模块、主机模块和 LED 显示模块用导线进行连接。

单片机使用仿真器的仿真头来代替接入。2.打开MedWin 软件,通过菜单“项目管理/新建项目”,新建立一个工

程项目 LED8,然后再建一个文件名为 LED8.C 的源程序文件,将上面的参考程

序输入并保存。3.单击“重新产生代码”按钮或使用 Ctrl+F9 快捷键,对源程序进行编译

和链接,产生目标代码并装入仿真器中。4.接通电源,让仿真器运行,观察程序运行结果。5.进行扎线,整理。

58

Page 59: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(六)任务评价表 1- 5 任务二完成情况评价表

项目名称 评价时间 年 月 日小组名称 小组成

评价内容 评价要求 权重 评价标准 学生自评得分

小组评价得分

教师评价得分

合计

职业与安全意识

1.工具摆放、操作符合安全操作规程;2.遵守纪律、爱惜设备和器材、工位整洁;3.具有团队协作精神。

10%

好(10)较好(8)一般(6)差(<6)

模块的布局和布线工艺

1.模块布局合理,模块的选择应符合模 块 的 要求;2.根据需要选择不同颜色的导线进行连接,导线连接 可靠,走线合理,扎线整齐美观。

15%

好(15)较好(12)一般(9)差(<9)

项目功能测试

1.编写的程序能成功编译;2.程序能正确烧写到芯片中;3.能按任务要求实现 LED 流水灯。

60%

好(60)较好(45)一般(30)差(<30)

问题与思考1.改变 LED 流水灯闪烁频率。2. 实现不同花色的流水灯。

15%

好(15)较好(12)一般(9)差(<6)

教师签名 学生签名 总分59

Page 60: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

项目评价=学生自评(0.2)+小组评价(0.3)+教师评价(0.5)任务三 键控流水灯控制器制作

(一)任务要求

1、键控流水灯描述及有关说明:

按键控制 LED 流水灯的启停,8只 LED 流水形式从 LED0至 LED7循环闪烁。1)显示:由 8只 LED组成。 2)独立键盘: SB1:实现“启动”功能;SB2:实现“停止”功能。

2、系统控制要求:

系统上电, 8只 LED 全部熄灭。按下“启动”按键,8只 LED从 LED0至

LED7循环闪烁,按下“停止”按键,8只 LED 全部熄灭。(二)任务分析本任务中最关键的按键控制流水灯启动和停止。1、按键的基本知识单片机控制系统常用的是机械式微型按键,其实物图与电气符号如图 1-42

60

Page 61: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

所示。按键一端接在单片机的 I/O 口上,一端接地。当 S1 按键按下时,P2.0

为低电平“0”,S1未按下时,P2.0 为高电平“1”。

图 1- 42 按键的实物图及电气符号2、机械触点按键的防抖动问题当机械触点的按键按下与释放时,因机械触点的弹性作用,在闭合与断开

的瞬间均有一个抖动过程,如图 1-43 所示。当按键闭合与松开时,在 10ms

内有抖动,造成按键瞬间多次接通与释放,这种抖动对程序控制会产生重大影

响,单片机的执行速度是非常快的,当按键抖动时,会让程序判断执行产生错

误,造成控制不稳定甚至无法预料的结果。使用按键控制时必须想办法消除这种抖动的影响。一般有两种处理方法,

61

Page 62: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

一种是在按键电路外围加一些硬件的方法来消除抖动,在按键数较少时可用。

还有一种方法是采用程序设计,即软件去抖动法。软件去抖动法用的比较多。

其基本思想是:检测到有键按下,则该按键对应的单片机接口为低电平,软件

延时 10ms后,如仍为低电平,则确认该接口处有键按下。当键松开时,接口

为高电平,软件延时 10ms后,如接口线仍为高,说明按键已松开。采取以上

措施后,就能躲开两个抖动期对程序的影响。

图 1- 43 机械触点按键的抖动过程(三)硬件电路用 YL-236 实训考核装置实现本任务要求的硬件模块接线图如图 1-44 所示。

62

Page 63: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 44 键控流水灯控制器模块接线图该电路由主机模块、LED 显示模块、指令模块以及电源模块共同组合而成。

电源模块为这各部分电路提供电源。(四)参考程序

1.主函数流程图

63

Page 64: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 45 键控流水灯控制器主程序设计流程图2.参考程序根据图 1- 41 LED 流水灯程序设计流程图我们编写任务三参考程序 KEYLED.C

键控流水灯控制器参考程序 KEYLED.C

#include "reg52.h"

#include "intrins.h"

#define LED_8 P0 //定义 P0 口,0只 LED 接在 P0 口/******************延时子程序********************************/

void Delay(unsigned int i)//延时{

unsigned char j;

while(i--) for(j=0;j<100;j++);}

/******************独立按键*********************************/

bit fg=0;//启动、停止的标志位sbit SB1 = P2^0;//“启动”按键sbit SB2 = P2^1 ;//“停止”按键void KEY()//按键{

if(SB1==0||SB2==0)//判断按键有无按下{

Delay(10);//防抖动{

if(SB1==0)fg=1; //启动后,fg 为 1

if(SB2==0) fg=0;//停止后,fg 为 0

}

while(SB1==0||SB2==0);//等待键释放}

}

/******************主程序***********************************/

void main()

{char j;

64

Page 65: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

unsigned char num=0xfe;while (1)

{

KEY();//调用按键子程序 if(fg==1) //按下启动按键

{

for(j=0;j<8;j++) {

LED_8=_crol_(num,j);//给 P0 口给赋值,实现不同的 LED 点亮 Delay(500);//延时 0.5秒

}}

else LED_8=0xff;//按下停止按键后,LED 全熄灭}

}

3.程序说明本程序主要通过独立按键来控制 LED 流水灯的启动与停止,使用延时来消

除按键的抖动。(五)任务实施步骤1.硬件电路连接:按照图 1- 4044 所示的硬件电路接线图,选择所需的模

块并进行布局,然后将电源模块、主机模块和 LED 显示模块用导线进行连接。

单片机使用仿真器的仿真头来代替接入。2.打开MedWin 软件,通过菜单“项目管理/新建项目”,新建立一个工

65

Page 66: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

程项目 KEYLED,然后再建一个文件名为 KEYLED.C 的源程序文件,将上面的参考

程序输入并保存。3.单击“重新产生代码”按钮或使用 Ctrl+F9 快捷键,对源程序进行编译

和链接,产生目标代码并装入仿真器中。4.接通电源,让仿真器运行,观察程序运行结果。5.进行扎线,整理。

66

Page 67: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(六)任务评价表 1- 6 任务三完成情况评价表

项目名称 评价时间 年 月 日小组名称 小组成

评价内容 评价要求 权重 评价标准 学生自评得分

小组评价得分

教师评价得分

合计

职业与安全意识

1.工具摆放、操作符合安全操作规程;2.遵守纪律、爱惜设备和器材、工位整洁;3.具有团队协作精神。

10%

好(10)较好(8)一般(6)差(<6)

模块的布局和布线工艺

1.模块布局合理,模块的选择应符合模 块 的 要求;2.根据需要选择不同颜色的导线进行连接,导线连接 可靠,走线合理,扎线整齐美观。

15%

好(15)较好(12)一般(9)差(<9)

项目功能测试

1.编写的程序能成功编译;2.程序能正确烧写到芯片中;3.能按任务要求实现键 控 LED 流 水灯。

60%

好(60)较好(45)一般(30)差(<30)

问题与思考1.使 用 一 个 按 键 实现“启动”、“停止”两个功能。2. 增加流水灯的花样。

15%

好(15)较好(12)一般(9)差(<6)

教师签名 学生签名 总分67

Page 68: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

项目评价=学生自评(0.2)+小组评价(0.3)+教师评价(0.5)任务四 乒乓球游戏控制器制作

(一)任务要求

1、乒乓球游戏控制器描述及有关说明:

按键控制 LED 流水灯的启停,8只 LED 流水形式从 LED0至 LED7循环闪烁。1)显示:由 8只 LED组成。 2)独立键盘: SB1:实现击打蓄力按键,SB1 按下为蓄力,蓄力后松开为击

打;若 LED从右往左移动,击打成功后,LED从左往右移动;若 LED从左往右

移动,击打成功后,LED从右往左移动;SB2:开始/停止游戏按键。

2、系统控制要求:

系统上电, 8只 LED 全部熄灭。按下“开始/停止”按键,开始游戏,LED

从右往左移动,按下 SB1,开始蓄力,当 LED 移动至最左侧时松开则击打成功,

68

Page 69: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

LED从左到右移动,依次循环击打,移动速度根据蓄力程度大小分为 3 个等级,

按键按下的时间越长,则蓄力越大;1 等级蓄力最小移动速度最慢,2 等级蓄力

中等移动速度中等,3 等级蓄力最大移动速度最快。未到 LED 最左侧松开 SB1

或超过最左侧时,视为击打失败,游戏结束,LED闪烁两次后,开始下一轮游

戏。再次按下“开始/停止”按键,游戏停止,LED 全部熄灭。(二)任务分析本任务中最关键是根据按键按下的时间长短来判断蓄力的大小,按下的时

间越长,则蓄力越大。在程序中利用一个变量 k_time 来表示按下的时间的长短,

k_time从击打按键按下时开始自加 1,只到按键松开时自加停止,这样 k_time

越大,蓄力越大,等级越高。(三)硬件电路用 YL-236 实训考核装置实现本任务要求的硬件模块接线图如图 1-46 所示。

69

Page 70: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

图 1- 46 键控流水灯控制器模块接线图该电路由主机模块、LED 显示模块、指令模块以及电源模块共同组合而成。

电源模块为这各部分电路提供电源。

70

Page 71: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(四)参考程序1.主函数流程图

图 1- 47 乒乓球游戏控制器主程序设计流程图2.参考程序根据图 1- 41 LED 流 水 灯 程 序设计 流 程 图 我 们 编写任 务 三参考 程 序

PINGPANG.C

乒乓球游戏控制器参考程序 PINGPANG.C

#include "reg52.h"

#define uchar unsigned char//把无符号字符型表达成 uchar,为了定义变量书写方便#define uint unsigned int//把无符号整型表达成 uint,为了定义变量书写方便

71

Page 72: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

uchar move_num;//移动位置uchar state=0;//状态uchar k_time=0;//蓄力时间uint lev=1;//等级bit fg=0;//按键状态/******************延时子程序***********************************/

void Delay(uint i)//延时子程序{

uchar j;while(i--)

for(j=0;j<100;j++);}

/******************独立按键************************************/

#define stop 0 //停止状态#define left 1 //球从右向左移动状态#define right 2 //球从左向右移动状态#define over 3 //游戏结束装态sbit SB1=P2^0;//击打按键sbit SB2=P2^1;//开始/停止游戏按键void KEY2()//开始/停止按键子程序{

if(SB2==0)//判断是否按下开始/停止按键 {

Delay(5);//延时消抖 if(SB2==0)//判断按键是否按下

{

if(state==stop) state=left;//开始游戏,球从右往左移动 else

{

state=stop;//切换到停止状态k_time=0;//蓄力时间清 0lev=1;//1 等级fg=0;//按键状态清 0move_num=0;//LED 移动位置清 0

}

}

72

Page 73: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

}}

void KEY1()//击打按键子程序{

if(SB1==0&&state>=left)//开始后,并按下击打按键{

Delay(5);//延时消抖if(SB1==0)//判断是否按下按键{

k_time++;//记录蓄力时间if(k_time>3)k_time=3;

if(fg==0)fg=1;//判断是否蓄力}

}

else if(SB1&&state==left&&fg||SB1&&state==right&&fg)//松开击打{

if(move_num!=8)//判断击打位置k_time=0,state=over,fg=0;//参数清零

}}

/******************主程序***********************************/

void main(){

while(1){

KEY2();//调用开始/停止按键子程序switch (state)

{case left:

P0=~(0x01<<move_num%8);//LED左移 Delay((4-lev)*300);//延时实现不同击打速度 move_num++;//球移动位置加 1

KEY1();//击打按键判断 if(move_num>=8)//到达击打位置时 {

if(SB1&&fg)//松开击打且已蓄力完毕73

Page 74: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

{

lev=k_time;//等级赋值 if(lev==0)lev=1;//保护等级(最小等级不能为 0) move_num=0,state=right,k_time=0;

fg=0; //参数清零 }

else state=over;//游戏结束 }

break;case right:

P0=~(0x80>>move_num%8);//LED右移 Delay((4-lev)*300);//延时实现不同击打速度 move_num++;//球球移动位置加 1

KEY1();//击打按键判断 if(move_num>=8)//到达击打位置 {

if(SB1&&fg)//松开击打且已蓄力完毕 {

lev=k_time;//等级赋值 if(lev==0)lev=1;//保护等级(最小等级不能为 0) move_num=0,state=left,k_time=0;

fg=0;//参数清零 }

else state=over;//游戏结束 } break;

case over: P0=0x00;

Delay(500); P0=0xff;

Delay(500); P0=0x00;

Delay(500);

P0=0xff; //闪烁游戏结束 move_num=0;

state=left;//游戏重新开始 fg=0; //参数清零

74

Page 75: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

lev=1;//从等级 1开始 break;

default: break;}

}}

3.程序说明本程序主要通过使用一个独立按键轻触来实现两个功能:开始和停止。长

时间按下按键实现长按键功能。(五)任务实施步骤1.硬件电路连接:按照图 1- 4046 所示的硬件电路接线图,选择所需的模

块并进行布局,然后将电源模块、主机模块和 LED 显示模块用导线进行连接。

单片机使用仿真器的仿真头来代替接入。2.打开MedWin 软件,通过菜单“项目管理/新建项目”,新建立一个工

程项目 PINGPANG,然后再建一个文件名为 PINGPANG.C 的源程序文件,将上面

的参考程序输入并保存。3.单击“重新产生代码”按钮或使用 Ctrl+F9 快捷键,对源程序进行编译

75

Page 76: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

和链接,产生目标代码并装入仿真器中。4.接通电源,让仿真器运行,观察程序运行结果。5.进行扎线,整理。

76

Page 77: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

(六)任务评价表 1- 7 任务四完成情况评价表

项目名称 评价时间 年 月 日小组名称 小组成

评价内容 评价要求 权重 评价标准 学生自评得分

小组评价得分

教师评价得分

合计

职业与安全意识

1.工具摆放、操作符合安全操作规程;2.遵守纪律、爱惜设备和器材、工位整洁;3.具有团队协作精神。

10%

好(10)较好(8)一般(6)差(<6)

模块的布局和布线工艺

1.模块布局合理,模块的选择应符合模 块 的 要求;2.根据需要选择不同颜色的导线进行连接,导线连接 可靠,走线合理,扎线整齐美观。

15%

好(15)较好(12)一般(9)差(<9)

项目功能测试

1.编写的程序能成功编译;2.程序能正确烧写到芯片中;3.能按任务要求实现乒乓球游戏控制器。

60%

好(60)较好(45)一般(30)差(<30)

问题与思考 1.增加更多 的 蓄 力 等级。 15%

好(15)较好(12)一般(9)差(<6)

77

Page 78: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

教师签名 学生签名 总分项目评价=学生自评(0.2)+小组评价(0.3)+教师评价(0.5)

四、知识拓展

PWM 调光原理简介。

1、占空比

了解 PWM(脉宽调制)调光原理,先得了解一下占空比概念。占空比是在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值例如,如图 1-48 所示,脉冲宽度 t=1us,信号周期 T=4us 的脉冲序列占空比为0.25。

图 1- 48 方波占空比计算

2、PWM 调光

脉宽调制(PWM)是利用微处理器的数字输出来来模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信到功率控制与变换及 LED照明灯许

78

Page 79: blog.ggrarea.cn 特色...  · Web viewmcs51是指由美国intel公司生产的一系列单片机的总称,这一系列单片机包括了若干品种,如8031、8051、8751、

多领域中。PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。例如,假设供电电源为 9V,占空比为 10%,则对应的是一个幅度为 0.9 的模拟信号。五、思考与练习1.使用 YL-236 单片机实训考核平台完成任务一《LED 报警灯》的模拟制作。2.使用 YL-236 单片机实训考核平台完成任务二《LED 流水灯》的模拟制作。3.使用 YL-236 单片机实训考核平台完成任务三《键控流水灯》的模拟制作。4.使用 YL-236 单片机实训考核平台完成任务四《乒乓球游戏控制器》的模拟

制作。

79