任务一单片机控制单灯亮灭_第1页
任务一单片机控制单灯亮灭_第2页
任务一单片机控制单灯亮灭_第3页
任务一单片机控制单灯亮灭_第4页
任务一单片机控制单灯亮灭_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务一单片机控制单灯亮灭教学导航任务单任务准备案例示范知识梳理与总结任务作业教学导航教知识重点(1)单片机存储器结构(2)并行输入/输出接口(3)单片机引脚功能知识难点并行输入/输出接口推荐教学方式以任务入手,通过单片机控制单只发光二极管的亮灭任务的完成初步了解单片机的基本结构,并行输入/输出接口的控制方法。建议学时6学时学推荐学习方法通过对教师提供的电路图和给定的程序调试,初步学会使用KeilC开发环境和Proteus完成程序编辑、编译、调试与仿真运行方法,理解相关理论知识,学会应用。必须掌握的理论知识(1)数制与编码(2)单片机内部结构与CPU结构(3)存储器配置(4)并行输入/输出接口(5)单片机引脚功能必须掌握的技能利用KeilC开发环境和Proteus编辑、编译、调试与仿真运行C51程序的初步过程。任务单任务描述针对第一个项目——交通灯控制系统,由单片机控制十二只发光二极管,分别对应四个路口的红绿黄灯,定时让相应的红绿灯亮、黄灯闪烁。为了实现这一目标,首先必须解决单片机如何控制单只发光二极管亮和灭的问题,因此通过本任务的学习,学会利用单片机控制任意一只发光二极管发光和不发光。任务要求由P0连接8只发光二极管(如图1-1所示,P0口各脚分别连接红、绿、黄、蓝四种颜色),实现如下功能:(1)让左边4只发光二极管亮、右边4只发光二极管不亮;(2)让8只发光二极管间隔亮,即从左边开始让第1、3、5、7亮,另外4只不亮,或反过来;(3)自行设置哪些灯亮、哪些灭(如让指定亮的颜色),实现之。实现方法1.利用Proteus仿真运行,采用不同的方法实现单灯(或几个灯)的发光。2.在开发板等实训设备上按任务要求连线,完成程序设计并运行。任务一电路图任务一单片机控制单灯亮灭1.1数制与编码1.28051单片机基本结构1.3存储器结构1.4并行输入/输出接口1.5MCS-51单片机引脚功能案例1单片机控制右侧发光二极管亮灭案例2

仿真调试简单的C语言程序1.1数制与编码

计算机最基本的功能是进行数据的计算和处理加工,为了方便和可靠,计算机内部采用了二进制数字系统,因此,所有数值数据都必须采用二进制数表示,所有非数值数据,例如,字母、符号等也都必须采用二进制代码表示。

1.1.1进位计数制

数制是进位计数制的简称。为区别不同的进位计数制,通常用字母来表示数制:D(Decimal)代表十进制(也可省略)B(Binary)代表二进制O(Octal)代表八进制H(Hexadecimal)代表十六进制。

几种进制的对应关系十进制十六进制二进制十进制十六进制二进制00000088100011000199100122001010A101033001111B101144010012C110055010113D110166011014E111077011115F1111进制间的转换技巧:利用“开始”→“附件”→“计算器”1.1.2计算机中的常用编码

1.二—十进制编码二—十进制编码是指将十进制数的0~9十个数字用二进制数表示的编码,即BCD(BinaryCodedDecimal)编码。由于十进制数需用4位二进制数来表示。4位二进制编码有多种方案,BCD码也有多种方案。最常用的编码是8421BCD码,它是一种恒权码,8(23)、4(22)、2(21)、1(20)分别是4位二进制数的权值。

8421BCD码十进制数8421BCD码十进制数8421BCD码00000501011000160110200107011130011810004010091001十进制数86.5转换为8421BCD码为:

86.5=(10000110.0101)8421BCD

BCD码10010011.0100转换为十进制数为:(10010011.0100)8421BCD=93.4例1-5

十进制数和BCD码相互转换同一二进制代码,当把它看作是二进制数和把它看作是二进制编码的十进制数(BCD),其数值是不同的!

2.字符编码计算机中普遍采用的是美国国家信息交换标准字符码,即ASCII码(AmericanStandardCodeforInformationInterchange)。ASCII码采用7位二进制代码对字符进行编码。它包括52个大、小写英文字母,10个阿拉伯数字,32个通用控制符号,34个专用符号,共128个字符。例如0~9对应的ASCII码为30H~39H,A~Z对应的ASCII码为41H~5AH。ASCII码表1.2单片机基本结构MCS-51系列单片机都是以8051为核心电路发展起来的,包括51子系列(基本型)和52子系列(增强型)两大类,因此它们都具有MCS-51的基本结构与软件特征,具有很强的兼容性。MCS—51系列单片机配置FlashRom单片机:89X51——89C51、89S51等。1.2.1单片机的内部结构(1)1个8位的中央处理器(CPU,具有位处理功能)和1个全双工的异步串行口。(2)2个16位定时器/计数器(3)3个逻辑存储空间64KB程序存储器空间(包括4KB片内程序存储器ROM)128B内部数据存储器(RAM)64KB数据存储器空间(4)

4个双向并可按位寻址的I/O口(5)5个中断源,具有两个优先级(6)片内还有振荡器和时钟电路VCCALERAM地址寄存器RAMP0锁存器P2锁存器ROMP0驱动器P2驱动器ACC寄存器B暂存2暂存1SP程序地址寄存器缓冲器PC加1PCDPTRPSWP1驱动器P3驱动器P1锁存器P3锁存器SFR特殊功能寄存器PSENVSSEARESET内部时钟外接晶振P1.0~P1.7P3.0~P3.7P0.0~P0.7P2.0~P2.7中断、串行口及定时器ALU定时及控制指令寄存器指令译码器用EPROM,为8751无ROM为8031MCS-51系列单片机的结构框图P0P1P2P3并行接口CPU时钟电路串行接口中断系统ROMRAM定时/计数器T0T1TXDRXD1.2.2单片机CPU的结构

1.

CPU结构

MCS-51内部有一个8位CPU(8位是CPU的字长,指CPU对数据的处理是按一个字节进行的),它象通常的微处理器一样,也是由算术逻辑运算单元ALU、定时控制部件(即控制器)和各种专用寄存器等组成的。ALU

由定时和控制部件构成的控制器,包括定时控制逻辑、指令寄存器、指令译码器、数据指针DPTR、程序计数器PC、堆栈指针SP、RAM地址寄存器以及16位地址缓冲器等。运算器(ALU、专用寄存器)2.CPU的专用寄存器组MCS-51的CPU专用寄存器组包括6个寄存器程序计数器PC累加器ACC寄存器B程序状态标志寄存器PSW堆栈指针SP数据指针DPTR。除PC外,其余5个寄存器均为可编程可访问寄存器。专用寄存器组中只有PC在物理上是独立的(即没有与其他器件共同编码的物理地址),其余5个寄存器都有相应的直接地址(称字节地址)。

是一个独立的计数器,用于存放下一条待执行指令的地址。PC的基本工作过程可以描述为:PC中的数作为指令地址输出给程序存储器,程序存储器按此地址输出指令字节,同时PC本身自动加1,指向下一条指令。MCS-51的PC是一个16位寄存器,其寻址范围是64KB(即216Byte)。

(1)程序计数器PC(ProgramCounter)(2)累加器ACC(Accumulator)简称A寄存器或累加器A,是一个具有特殊用途的8位寄存器,主要用来存放一个操作数或存放运算的结果。累加器ACC是CPU中使用最频繁的寄存器,MCS-51指令系统中多数指令的执行都通过它进行。(3)程序状态字PSW

(ProgramStateWord)CyACF0RS1RS0OV…PD7D6D5D4D3D2D1D0PSW进位标志、“位累加器”

辅助进位标志

用户通用状态标志

溢出标志

奇偶标志位

保留位

工作寄存器组选择控制位

若A中有奇数个“1”,则P置位,否则清零

1.3存储器的结构自学,回答以下问题:1、MCS-51存储器的ROM和RAM分别存放什么内容,其体系结构什么样的结构?有何特点?2、8051单片机的片内ROM的容量有多大?如果要扩展了程序存储器,单片机的程序存储在片内ROM和片外ROM两个空间中,必须对单片机的引脚如何处理?片外ROM的地址范围是怎样的?3、8031没有片内ROM,则对单片机的引脚如何处理?4、51子系列单片机片内RAM容量多大,分为哪几大区域?5、51单片机片机RAM中的工作寄存器区有多少个单元,分几组,每组多少个单元?这些单元如何命名的?6、ROM、片内RAM、片外RAM分别称为什么区?1.3存储器结构普林斯顿(Princeton)结构:将程序和数据合用一个存储器空间的结构。哈佛(Harvard)结构:程序存储器和数据存储器截然分开,ROM和RAM独立编址并分别寻址的结构,相互间不会冲突。在MCS-51系列单片机中,不仅在片内预留了一定容量的程序存储器、数据存储器,而且还具有很强的外部存储器扩展能力,可扩展到64KB。1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

80318751805189C51片内RAM片内ROM256B(字节)4KB64K64K1.3.1程序存储器程序存储器(Programmemory)主要用于存放经调试正确的应用程序和常数表格,称为CODE区。由于MCS-51系列单片机采用16位的程序计数器PC和16位的地址总线,因而程序存储器可扩展的地址空间为64KB,并且这64KB地址在空间分布范围上是连续和统一的。程序存储器的应用形态当EA为高电平时,程序运行先从片内ROM取指令,当片内ROM指令取完后(PC>0FFFH),再从片外ROM取指令。当EA为低电平时,只从片外ROM取指令。

程序存储器片内ROM0FFFFH1000H0FFFH0000H片内ROM

EA=10FFFH0000H片外ROM

EA=0程序存储器的应用形态8051中含有4KB容量的掩膜ROM,8751中含有4KB容量的EPROM,89C51中含有4KB容量的FlashROM——EA接高电平。8031/8032中不设程序存储器,这种单片机在供应状态上称为ROMLess型器件,使用过程中必须外部扩展ROM——EA接高电平。数据存储器00HFFH7FH80H(高128B)(低128B)内部RAM特殊功能

寄存器0组R0R7R0R7R0R7R0R71组2组3组工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器18H1FH10H17H08H0FH00H07H1.3.2内部数据存储器RS1RS0000组011组102组013组称为DATA区1.3.3外部数据存储器可以扩展64KB称XDATA区页内寻址(没有高8位地址)区为PDATA区0000HFFFFH(64K)外部数据存储器1.4并行输入/输出接口接口电路是微机应用系统中必不可少的组成部分,其中并行输入/输出接口是CPU与外部进行信息交换的主要通道。MCS-51单片机内部有4个并行的I/O接口电路:P0、P1、P2、P3,它们都是双向口,既可以输入又可以输出。P0、P2口经常用作外部扩展存储器时的数据、地址总线,P3口除了可用作I/O口外,每一根都有第二功能。通过这些I/O接口,单片机可以外接键盘、显示器等外围设备,还可以进行系统扩展,以解决片内硬件资源不足问题。

1.P0口

总结特点:(1)P0口可作通用I/O口使用,又可作地址/数据总线口;(2)P0既可按字节寻址,又可按位寻址;(3)作通用I/O口输出时:是开漏输出,应外接上拉电阻;(4)P0是一个准双向口。

1.P0口2.P1口(1)只能作I/O口,没有地址/数据复用功能(2)可按字节寻址,也可按位寻址(3)是一准双向口,输出驱动接有上拉电阻,不是开漏输出。

读锁存器读引脚写锁存器内部总线DCLQQP1.X锁存器P1.X引脚Vcc内部上拉电阻R*3.P2口读引脚写锁存器内部总线读锁存器DCLQQP2.X锁存器MUXP2.X引脚地址Vcc控制内部上拉电阻R*l(1)当P2口作为通用I/O时,是一准双向口。(2)从P2口输入数据时,先向锁存器写“1”。(3)可位寻址,也可按字节寻址。(4)可输出地址高8位。

3.P2口4.P3口读引脚写锁存器内部总线读锁存器DCLQQP3.X锁存器P3.X引脚第二功能输出内部上拉电阻R*第二功能输入Vcc&(1)当P3口作为通用I/O接口时,第2功能输出线为高电平;(2)当P3口作为第2功能使用时,应先向锁存器写1;(3)当P3口作为第二功能输入时,第2功能输出线自动为1。P3口的第二功能1.4.2并行I/O口的使用特性

MCS-51系列单片机的4个并行I/O口均由内部总线控制,端口的功能复用会自动识别,不用指令选择。

P0是8位、漏极开路的双向I/O口,当用作片外存储器或接口扩展时,分时复用为数据总线和低8位地址总线,可驱动8个LSTTL负载。

P1是8位、准双向I/O口,具有内部上拉电阻,驱动为4个LSTTL负载。

P2是8位、准双向I/O口,具有内部上拉电阻,可驱动4个LSTTL负载,外部扩展时用作高8位地址总线。

P3是8位、准双向I/O口,具有内部上拉电阻,可驱动4个LSTTL负载。P3口的所有口线都具有第二功能,实现控制总线的作用。

1.5单片机芯片的引脚及功能8、P3口的第二功能2、振荡电路:XTAL1、XTAL23、复位引脚:RST4、并行口:P0、P1、P2、P37、ALE:地址锁存控制信号1、电源线:VCC(+5V)、VSS(地)5、EA:访问片外ROM控制信号6、PSEN:外部ROM读选通信号VCCVSSXTAL2

XTAL1RST/VPDP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7EAPSENRXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51VCC(40脚):接+5V电源正端;VSS(20脚):接+5V电源地端。1.主电源引脚2.外接晶体引脚

XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。

XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。(1)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。

VPD是备用电源输入端,当单片机掉电或电源发生波动导致电源电压下降到一定值时,备用电源通过VPD端给内部RAM供电,保持其中的信息,直至单片机工作电压恢复正常。

(2)(30脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低8位地址,的功能是8751等片内含有ROM器件的编程脉冲输入端。3.控制信号(3)(29脚):片外程序存储器读选通信号输出端,低电平有效。(4)/VPP(31脚):为访问外部程序存储器控制信号,低电平有效。VPP是编程电源输入端。(1)P0口(39脚~32脚):P0.0~P0.7统称为P0口。(2)P1口(1脚~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O接口使用。(3)P2口(21脚~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O接口。(4)P3口(10脚~17脚):P3.0~P3.7统称为P3口。4.输入/输出(I/O)案例1单片机控制右侧发光二极管亮灭让最右边的发光二极管亮,其它不亮。给P0.0送0,其他位送1,可让D8亮而其他灯不亮。1.案例程序#include<reg51.h>voidmain(){unsignedintvalue;value=0xfe;P0=value;}2.KeilC51调试方法与步骤要使用Keil软件,首先要正确安装Keil软件,该软件的Eval版本可以直接去http://www.下载(1)建立工作项目文件启动KeilμVison2,如果打开后就有打开的文件,单击“Project->CloseProject”菜单将其关闭。单击“File→New...”,打开一个新的文件输入窗口,在这个窗口里输入上述源程序。输入完毕之后,选择“File-->Save”,给这个文件取名保存。单击“Project->NewProject...”,出现对话框,要求给将要建立的工程起一个名字,这里起名为test,不需要输入扩展名。单击“保存”按钮,出现第二个对话框。CPU选择窗口标准8051启动代码加入工程询问是否要将标准的8051启动代码加入工程,单击“是”按钮。添加源程序单击“SourceGroup1",使其反白显示,然后单击鼠标右键,出现一个下拉菜单。选中其中的“AddfiletoGroup‘SourceGroup1’”,出现一个对话框,要求寻找源文件。工程选项的设置选择资源窗口中的“Target1”,单击鼠标右键,出现快捷菜单,然后选择“OptionsforTarget‘Target1’”。生成单片机烧录文件在弹出的对话框中选择“output”标签页,选中该页的“CreatHEXFile”前面的复选框,这样在编译后就会生成可以用于烧写的.hex文件。(2)项目编译、连接“Project→Buildtarget”可以对当前工程进行连接,产生目标代码。“Project→RebuildAlltargetfiles”将会对当前工程中的所有文件(无论是否修改过)重新进行编译,产生目标代码。而如果选择“Project→Translate....",项则仅对当前文件进行编译,不进行连接,也就不会产生新的目标代码。编译、设置的工具栏按钮编译、编译连接、全部重建、停止编译和对工程进行设置。编译后的输出信息编译过程中的信息将出现在输出窗口中的Build页中,提示获得了名为mytest.hex的文件,该文件即可被编程器读入并写到芯片中。同时还可看到该程序的代码量、内部RAM的使用量、外部RAM的使用量等一些信息。除此之外还产生了一些其他相关的文件可被用于Keil的仿真与调试。(3)程序的仿真与调试工程进行汇编、连接成功以后,按组合键[Ctrl十F5】或者选择“Debug→Start/StopDebugSession”即可进入调试状态,菜单项中出现了一个用于仿真运行和调试的工具条。从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令的快捷按钮。仿真或观察P0、P2端口的状态选择“Peripherals→I/O-Ports→Port0”和“Peripherals→I/O-Ports→Port2”,在主窗口中会出现P0,P2口的状态,需要在程序运行的时候改变P0.0(4)在Proteus中仿真运行①双击桌面上的ISIS7Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus7Professional”→“ISIS7Professional”,出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论