1 / 151

项目二 简易小彩灯的实现

项目二 简易小彩灯的实现. [ 项目学习目标 ]. 一、知识目标 1 .了解单片机存储器和寄存器的概念及分类,理解地址的概念及寄存器的地址分配,知道单片机的寻址方式; 2 .熟悉指令格式及相关控制指令; 3 .知道 LED 灯的硬件结构和基本电路; 4. 掌握单片机控制 LED 灯的基本方法。. 二、技能目标 1. 利用位修正指令、数据传送指令、调用和返回指令、循环转移指令、逻辑运算指令及查表指令等完成程序编写。 2. 会计算延时时间,能编写延时程序,会进行子程序的调用。

jens
Download Presentation

项目二 简易小彩灯的实现

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 项目二 简易小彩灯的实现 [项目学习目标] • 一、知识目标 • 1.了解单片机存储器和寄存器的概念及分类,理解地址的概念及寄存器的地址分配,知道单片机的寻址方式; • 2.熟悉指令格式及相关控制指令; • 3.知道LED灯的硬件结构和基本电路; • 4. 掌握单片机控制LED灯的基本方法。

  2. 二、技能目标 • 1.利用位修正指令、数据传送指令、调用和返回指令、循环转移指令、逻辑运算指令及查表指令等完成程序编写。 • 2.会计算延时时间,能编写延时程序,会进行子程序的调用。 • 3.能建立单片机的软件环境, 会建立工程,会使用keil软件进行简单程序的编写和调试。 • 4.能正确连接实验箱、仿真器及电脑,能下载程序并观察结果。

  3. 任务一 点亮一个LED灯 活动1:了解单片机的基本概念 • 在数字电路中可用电平的高和低控制一盏灯的亮和灭。 一、数码和物理现象的关系 灭表示低电平,用“0”表示 亮表示高电平,用“1”表示

  4. 如果现在有两盏灯,规定亮为’1’,灭为’0’,那它会有几种状态呢?如果现在有两盏灯,规定亮为’1’,灭为’0’,那它会有几种状态呢? 不同的数码可以代表不同数量灯的电平高或低,控制灯的亮或灭的状态。 00,01,10,11就是我们学过的的二进制数,因此可以用二进制数中的“0”、“1”表示电路输出的高、低电平信号,从而控制灯的亮和灭。

  5. 二、位与字节的含义 • 位:在二进制系统中,位记为bit,也称为比特,每个0或1就是一个位(bit),位是数据存储的最小单位。 • 字节:8个位称为一个字节,用 byte 表示。 • 在单片机中,一盏灯有两种状态“亮”和“灭”,分别用“0”和“1”表示 ,可以用一位数码表示。8盏灯可以用8位数码即用一个字节的数码表示。 • 在单片机中,即可以对位进行操作控制一盏灯的状态,也可以对字节进行操作,同时控制8盏灯的状态。

  6. 三、半导体存储器 • 1. 半导体存储器的工作原理 • 存储器就是用来存放数据的地方。 一个字节 01010010 一个位 四个存储单元 一个存储单元 存储器的内部结构图

  7. (1)字节和位之间的关系; • (2)1个字节和一个位哪个存储空间大? • (3)图中存放的数据是十进制数多少?十六进制数多少?

  8. EPROM(紫外线擦除的可编程只读存储器):写入内容后可以用紫外线照射的方法擦除后重写。 • ④ EEPROM(电可擦写可编程只读存储器)是可用户更改的只读存储器(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。

  9. 2.半导体存储器的分类 • 半导体存储器按功能可以分为只读和随机存取存储器两大类。 • (1)只读存储器ROM(READ ONLY MEMORY) • ROM 就是单片机中用来存放程序的地方,下载到单片机中的指令就是保存在ROM中的。 • ROM可分为: • ① Flash ROM(快速存储式只读存储器):既可以电擦写,而且掉电后程序还能保存。 • ②PROM(可编程存储器):只允许数据写入一次,如果数据烧入错误只能报废。 只可以从存储器里读数据,而不能将数据写进去

  10. 随时可以改写,也可以读出里面的数据 • (2)随机存取存储器RAM(READ RANDOM MEMORY) • RAM是存放运算过程中数据的地方。

  11. 四、存储器的地址 • 无论是单片机的程序存储器还是数据存储器,都有很多的存储单元,为区别存储单元,必须使每个存储单元具有唯一的地址,地址和存储单元有一一对应的关系,这些地址一般由十六进制表示,编排为00H-7FH。 • 数据存储器和程序存储器的地址有一部分是重合的,也就是说有些地址被用了两次,为区分清楚,人们在编程时根据需要必须用不同的指令。 用MOVC指令访问ROM空间,用MOV指令访问内部RAM,用MOVX指令访问外部RAM。

  12. 五、单片机中指令的编写格式 • 1. 指令的一般格式 • 标号:操作码助记符[(目的操作数),(源操作数)];注释。 • 例:MAIN: MOV A, #70H;把数据70H(立即数)送到累加器A中 注释是对指令的解释,之前用;隔开 ,隔开 ;隔开 空格隔开 标号 操作码助记符 目的操作数 源操作数 注释 指令的符号地址,一般用英文字母、数字表示,在其它语句的操作数中就可以直接引用该标号,以便控制程序的转移或寻址。

  13. 2. 汇编 • 程序员写指令时使用汇编格式,而计算机只识别机器码格式,将汇编格式转换为机器码格式有两种方法:手工汇编和机器汇编。本书采用Keil软件作为编译软件进行机器汇编。

  14. 六、单片机的寻址方式 • 寻址方式就是单片机指令中提供的操作数的形式。也就是寻找操作数或操作数所在地址的方式。 • 一般的寻址方式主要有7种:立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。本任务主要学习立即寻址和直接寻址。

  15. 1.立即寻址 • 例:MOV A, #80H ;80H——>A • 指令中直接给出操作数的寻址方式称为立即数寻址。

  16. 2.直接寻址 • 例:MOV A, 25H ;内部RAM的(25H)—>A • MOV P0, #45H ;45H—>P0 ,P0为直接寻址的SFR • MOV 30H,20H ;内部RAM的(20H)—>(30H) • 指令中直接给出操作数地址的寻址方式称为直接寻址。 • 寻址对象一般为:内部数据存储器(在指令中以直接地址表示);特殊功能寄存器SFR(在指令中用寄存器名称表示)。

  17. 活动2:任务分析 一、发光二级管 • 发光二极管,又称为LED。它是半导体二极管的一种,可以把电能转化成光能。发光二极管具有单向导电性。当给发光二极管加上正向电压后,就产生自发辐射的荧光。 • 常用的发光二极管是发红光、绿光或黄光的二极管。

  18. 二、LED的应用电路 限流作用 高电位,LED截止,不放光 开关闭合,LED发光,开关断开,LED熄灭 低电位,LED导通,放光 图2-1-5 二极管工作电路

  19. P1.0引脚为低电平时,LED发光,高电平时,LED熄灭P1.0引脚为低电平时,LED发光,高电平时,LED熄灭 三、LED灯的控制 思考:P1.0引脚信号如何时,LED发光?

  20. 四、单片机中8个LED灯的控制电路 限流电阻 图2-1-7 八只发光二极管共阳极连接 共阳极接法下,发光二极管发光的实质是给它的阴极提供低电平。通过单片机控制P1口的数据,可实现8盏灯不同的状态要求。

  21. 活动3:学习相关控制指令 一、位清零指令 • CLR C;使Cy=0 • CLR bit;使指定的位地址等于0. • 例:CLR P1.0;使P1.0变为0. 英文状态下输入;

  22. 二、伪指令 • 1.起始伪指令ORG(Origination) • 规定它下面的程序的起始地址的指令。 • 一般格式:ORG 16位地址 • 注意 • 一个程序可以有多个ORG伪指令,但他们后面的16位地址是从小到大排列的,并且两条ORG指令之间存放的指令不能超过他们之间的地址范围。

  23. 2.结束伪指令END • 是汇编语言程序结束的标志。 • 点睛 • END必须放在程序的最后,并且在程序中只能有一个有效的END.

  24. 三、无条件转移指令 • 1.长转移指令LJMP • 一般格式:LJMP addr16 • 转移范围:64KB空间内的任意位置。 • 2.短转移指令AJMP • 一般格式:AJMP addr11 • 转移范围:2KB空间内的任意位置。 • 3.相对转移指令SJMP • 一般格式:SJMP rel ; 偏移量,范围为-128~+127 • 点睛 • 三种无条件转移指令在使用时均可表示原地踏步,即一直等待,以AJMP指令为例,实现如下:AJMP $ ,等价于H: AJMP H

  25. 活动4:任务实施 一、建立软件环境 • 1.安装Keil软件 • 2.编写和调试程序 • (1)建立新工程 • 双击Keil μVision2的图标 显示提示信息后出现主界面 单击菜单“Project(工程)” “New Project(新建工程)…” 选择保存路径及文件名 选择器件Atmel公司的AT89S51型CPU 在弹出的对话框中单击“否”完成新工程的建立。

  26. 返回 图2-1-9 Keil μVision2的主界面 标题栏 下拉菜单 快捷工具按钮 项目窗口 文件编辑窗口 文件选项卡 输出窗口

  27. 返回 图2-1-11 保存工程

  28. 返回 图2-1-12 选择器件生产厂家 选择厂家

  29. 返回 图2-1-14 提示框选择

  30. (2)建立源文件 • 新建源文件 保存源文件 将源文件加入项目 右击Source Group1单击“Add Files to Group’Source Group1’ 弹出对话框,选择路径,双击要加入的文件 选择File New,或点击“New File”的快捷键 选择File Save,或点击“保存”快捷键,文件取名时加上扩展名.a

  31. 返回 图2-1-15 新建源文件 “新建”快捷键文件

  32. 返回 图2-1-16 文件保存 源文件名 “保存”快捷键文件

  33. 返回 图2-1-18 选择要添加的源文件

  34. (3)编写程序 • ① 任务分析 • 单灯控制的电路原理图:

  35. 本任务要用单片机控制一只发光二极管发光,将LED与P1.0引脚相连,当P1.0引脚是高电平时LED不亮,当 P1.0引脚是低电平时LED才发光,因此需要控制P1.0引脚来控制LED的亮灭。

  36. ②编写程序 CLR P1.0;对P1.0位清零,即点亮LED0 AJMP $;程序原地踏步 END ;程序结束 源程序编写完毕,必须要用END结束程序

  37. 建立目标文件 停止建立 下载 工程设置 编译或汇编当前文件 重建全部 • (4)调试程序 单击“建立目标文件”按钮

  38. 不进入函数内部的单步执行 进入函数内部的单步执行 跳出函数 开始/停止调试 全速运行 单击“开始/停止调试”或单击“Debug”菜单下的相应选项,进入程序调试环境,单击“全速运行”按钮后,通过“Peripherals” “I/O-Ports” “Port1”选项打开P1口,可实时查看程序运行结果,单击“停止运行”退出软件仿真。

  39. 二、硬件仿真 • 1. 连接计算机、单片机仿真器与单片机实验箱 仿真器从电脑的 USB接口取电 数据线与计算机的连接 数据线与仿真器连接

  40. 仿真器的接口 仿真器接口 的方位标志 仿真器的 扩展接口 仿真器接口的方位标志

  41. 图2-1-26 仿真器接到实验箱

  42. 2. 实验箱电源操作 • 打开试验箱总电源和模块电源。

  43. 3. 设置工程目标 • 右击项目窗口下的Target1 点击Option for target ’target1’, Target选项卡中Xtal后晶振数据设置为12MHz Output选项卡设置Debug选项卡设置

  44. 图2-1-28 Target选项卡 返回

  45. 返回 图2-1-29 Output选项卡

  46. 图2-1-30 Debug选项卡 返回

  47. 作业 • P73: • 1、2、3、4、5、6

  48. 任务二 航标灯的设计

  49. 任务介绍 本任务就是利用单片机控制灯的闪烁,模拟航标灯。在单片机的P1.0引脚上接一个发光二极管L0,使L0在不停地一亮一灭。

  50. 点亮灯 活动1 任务分析 CLR P1.0 SETB P1.0 AJMP $ END 熄灭灯 原地踏步 讨论下面指令是否可实现航标灯的模拟? 程序调试现象:没有灯被点亮

More Related