NO1 51系列单片机(AT89S51)基础知识电子课件 单片机应用技术.ppt

上传人:春哥&#****71; 文档编号:90570606 上传时间:2023-05-15 格式:PPT 页数:97 大小:3.33MB
返回 下载 相关 举报
NO1 51系列单片机(AT89S51)基础知识电子课件 单片机应用技术.ppt_第1页
第1页 / 共97页
NO1 51系列单片机(AT89S51)基础知识电子课件 单片机应用技术.ppt_第2页
第2页 / 共97页
点击查看更多>>
资源描述

《NO1 51系列单片机(AT89S51)基础知识电子课件 单片机应用技术.ppt》由会员分享,可在线阅读,更多相关《NO1 51系列单片机(AT89S51)基础知识电子课件 单片机应用技术.ppt(97页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单片机应用技术学习任务一 51系列单片机(AT89S51)基础知识 学习目标任任务说明明 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(有的单片机还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域具有广泛的应用。学习目标了解单片机的发展历史和应用范围;掌握A89S51的结构组成;熟悉单片机的存储结构;熟悉单片机的输入/输出(I/O)端口;掌握单片机编程语言。知识要求 学习目标能力要求 能

2、够根据控制需要连接相对简单的单片机外围电路;能够读懂简单的单片机控制程序。一、单片机概述 运算器存储器输入设备 输出设备控制器计算机硬件组成一、单片机概述 1.单片机简介 单片微型计算机简称单片机,是典型的嵌入式微控制器(micro controller unit),单片机芯片常用英文母的缩写CU表示。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。一、单片机概述 单片机输出设备运算器输入设备控制器存储器一、单片机概述 1980年Intel公司8位高档CS-51系列单片机20世纪70年代,美国仙童半导体公F-8Intel otorola推出了性能更

3、为优越的32位单片机1983年Intel公司16位CS-96系列单片机Intel公司推出CS-48单片机系列 2.单片机的发展及应用二、51系列单片机(AT89S51)结构组成 图1-1 AT89S51单片机片内结构1.单片机的内部组成二、51系列单片机(AT89S51)结构组成 微处理器微处理器(CPU)数据存储器数据存储器(FlashRA)程序存储程序存储器(器(RO)中断系统中断系统 8位的CPU,与通用CPU基本相同,同样包括了运算器和控制器两大部分,还有面向控制的位处理功能。数据存储器片内为128 B,片外最多可扩展64 KB。片内128 B的RAM以高速RAM的形式集成。中断系统具

4、有6个中断源,常用5个,这些中断源可分为2级中断优先权。片内集成有4 KB的Flash存储器,如片内容量不够,片外可外扩至64 KB。二、51系列单片机(AT89S51)结构组成定时器定时器/计计数器数器看门狗定时看门狗定时器(器(WD)串行口串行口P1口、口、P2口、口、P3口、口、P0口口 片内有2个16位定时器/计数器(52子系列有3个),具有4种工作方式。片内有1个WD,当CPU由于干扰使程序陷入死循环或跑飞状态时,WD可使程序恢复正常运行。P1口、P2口、P3口、P0口为4个8位并行I/O端口。片内有1个全双工异步串行口,具有4种工作方式。可进行串行通信,扩展并行I/O端口,还可与多

5、个单片机构成多机系统。二、51系列单片机(AT89S51)结构组成特殊功能寄存器(SFR)片内共有26个特殊功能寄存器,对片内各功能部件进行管理、控制和监视,是各个功能部件的控制寄存器和状态寄存器,映射在片内RA区80FF的地址区间内。二、51系列单片机(AT89S51)结构组成图1-2 AT89S51双列直插封装方式的引脚2.单片机的引脚功能二、51系列单片机(AT89S51)结构组成(1)VCC(40脚):+5 V电源。(2)VSS(20脚):接地线。1)电电源引脚源引脚二、51系列单片机(AT89S51)结构组成 (1)XA1(19脚)。片内振荡器反相放大器和时钟发生器的输入端。用片内振

6、荡器时,该引脚接外部石英晶体和微调电容。外接时钟源时,该引脚接外部时钟振荡器的信号。(2)XA2(18脚)。片内振荡器反相放大器的输出端。当使用片内振荡器时,该引脚连接外部石英晶体和微调电容。当使用外部时钟源时,该引脚悬空。2)时钟引脚二、51系列单片机(AT89S51)结构组成 (1)RST(RESET,9脚)。复位信号输入端,高电平有效。在此引脚加上持续时间大于两个机器周期的高电平,可使单片机复位。正常工作时,此引脚电平应0.5V。当看门狗定时器溢出输出时,该引脚将输出长达96个时钟振荡周期的高电平。(2)/VPP(enable address/voltage pulse of progr

7、aming,31脚)。3)控制引脚二、51系列单片机(AT89S51)结构组成3.单片机的外围电路 1)时钟电路及时序(1)内部时钟方式。AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,AT89S51内部时钟方式的电路如图所示。二、51系列单片机(AT89S51)结构组成(2)外部时钟方式。使用现成的外部振荡器产生脉冲信号,常用于多片A89S51同时工作,以便于多片单片机之间的同步。外部时钟源直接接到XA1端,XA2端悬空,外部时钟方式的电路如图所示。二、51系列单片

8、机(AT89S51)结构组成2)时钟周期、机器周期与指令周期(1)时钟周期。时钟周期是时钟控制信号的基本时间单位。若晶振频率为fosc,则时钟周期Tosc=1/fosc。例 如,fosc=6MHz,则Tosc=1/6 s。二、51系列单片机(AT89S51)结构组成(2)机器周期。CPU完成一个基本操作所需时间为机器周期。单片机中常把执行一条指令的过程分为几个机器周期。每个机器周期完成一个基本操作,如取出指令、读或写数据等。二、51系列单片机(AT89S51)结构组成(3)指令周期。指令周期是指执行一条指令所需的时间。对于简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的

9、指令,如转移、乘、除指令则需两个或多个机器周期。从指令执行时间看,单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用4个机器周期。二、51系列单片机(AT89S51)结构组成3)复位操作和复位电路寄 存 器复位状态寄 存 器复位状态PC0000HTMOD00HACCOOHTCON00HB00HTH000HSP07HTL000HDPTR0000HTH1OOHP0-P3FFHTLI00H表1-1复位时片内各寄存器的状态二、51系列单片机(AT89S51)结构组成寄 存 器复位状态寄 存 器复位状态IPXXX00000BSCON00HIE0XX00000BS

10、BUFXXXXXXXXBDP0L00HPCON0XXX0000BDP1L00HAUXRXXXX0XX0BDP1H00HAUXR1XXXXXX0BWDTRSTXXXXXXXXB_二、51系列单片机(AT89S51)结构组成上电复位电路二、51系列单片机(AT89S51)结构组成按键复位电路三、单片机存储器结构 程序存储器地址空间 数据存储器地址空间 三、单片机存储器结构Subtitletext1text1 位寻址区位寻址区 用户用户RAMRAM区区Subtitle 工作寄存器区工作寄存器区1.单片机的数据存储器RAM1)内部RAM三、单片机存储器结构工作寄存器选择方式PSW.4(RS1)PSW.

11、3(RS0)当前使用的工作寄存器组00第0 组(00H07H)01第1 组(08H0FH)10第2 组(10H17H)11第3 组(18H1FH)三、单片机存储器结构表1-3内部RA位寻址区位地址单元地址D7D6D5D4D3D2D1D02FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4A

12、H49H48H28H47H46H45H44H43H42H41H40H三、单片机存储器结构表1-3内部RA位寻址区位地址单元地址D7D6D5D4D3D2D1D027H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H01H00H三、单片机

13、存储器结构2)单片机的特殊功能寄存器SFR ACC,累加器WDTSP堆栈指针AUXR1数据指针DPTR0和DPTR1B,B寄存器AUXR,辅助寄存器PSW三、单片机存储器结构表1-5AUXR各位功能D7D6D5D4D3D2D1D0_WDIDLEDISRTO_DISALE三、单片机存储器结构表1-6PSW各位功能D7D6D5D4D3D2D1D0CYACF0RS1RS0OV_P三、单片机存储器结构表1-7AUXR1各位功能D7D6D5D4D3D2D1D0_DPS三、单片机存储器结构2.单片机的程序存储器ROMROM用于存放程序及表格常数,读取ROM的指令为“MOVC”。AT89C51片内有4 KB

14、的ROM,外部可用16位地址线扩展到最大64 KB的ROM空间。片内ROM和外部扩展ROM是统一编址的。当芯片引脚EA为高电平时,程序计数器PC在0000H0FFFH(4 KB)地址时从内部ROM取指令,超过4 KB时,CPU自动转向外部ROM执行程序。如果EA为低电平(接地),则所有取指令操作均在外部ROM中进行,这时外部扩展的ROM从0000H开始编址。0000H单元是复位入口,单片机复位后,CPU总是从0000H单元开始执行程序。0000H0002H单元安排一条无条件转移指令,使之转向主程序的入口地址。四、单片机的输入/输出(I/O)端口 I/O端口就是输入/输出端口。AT89S51单片

15、机拥有4个8位并行I/O端口,即P0、P1、P2和P3,每个端口都是8位准双向口,共占32根引脚,每一条I/O线都能独立地用作输入或输出,每个端口都包括一个锁存器(即特殊功能寄存器P0P3)、一个输出驱动器和输入缓冲器,用作输出数据时可以锁存,用作输入数据时可以缓冲。四、单片机的输入/输出(I/O)端口P0口是一个双功能的8位并行端口,字节地址为80,位地址为80H87H。端口的各位具有完全相同但又相互独立的电路结构,P0口某一位的位电路结构如图所示。1P0口(P0.0P0.7)四、单片机的输入/输出(I/O)端口1)P0口用作地址/数据总线外扩存储器或I/O时,P0口作为单片机系统复用的地址

16、/数据总线使用。当作为地址或数据输出时,控制信号为1,硬件自动使转接开关MUX打向上面,接通反相器的输出,同时使与门处于开启状态。当输出的地址/数据信息为1时,与门输出为1,上方的场效应管导通,下方的场效应管截止,P0.x引脚输出为1;当输出的地址/数据信息为0时,上方的场效应管截止,下方的场效应管导通,P0.x引脚输出为0。输出电路是上、下两个场效应管形成的推拉式结构,大大提高了负载能力,上方的场效应管此时起到内部上拉电阻的作用。当P0口作为数据输入时,仅从外部存储器(或I/O)读入信息,对应的控制信号为0,UX接通锁存器的Q端。四、单片机的输入/输出(I/O)端口由于P0口作为地址/数据复

17、用方式访问外部存储器时,CPU自动向P0口写入0FF,使下方场效应管截止,上方场效应管由于控制信号为0也截止,从而保证数据信息的高阻抗输入,从外部存储器输入的数据信息直接由P0.x引脚通过输入缓冲器BUF2进入内部总线。具有高阻抗输入的I/O端口应具有高电平、低电平和高阻抗3种状态的端口。因此,P0口作为地址/数据总线使用时是一个真正的双向端口,简称双向口。四、单片机的输入/输出(I/O)端口(1)P0口作输出口使用时,来自CPU的“写”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并由引脚P0.x输出。当D锁存器为1时,Q端为0,下方场效应管截止,输出为漏极开路,此时,必须外接上拉

18、电阻才能有高电平输出;当D锁存器为0时,下方场效应管导通,P0口输出为低电平。2)P0口用作通用I/O端口四、单片机的输入/输出(I/O)端口(2)P0口作输入口使用时,有两种读入方式:“读锁存器”和“读引脚”。当CPU发出“读锁存器”指令时,锁存器的状态由Q端经上方的三态缓冲器BUF1进入内部总线;当CPU发出“读引脚”指令时,锁存器的输出状态=1(即Q端为0),而使下方场效应管截止,引脚的状态经下方的三态缓冲器BUF2进入内部总线。四、单片机的输入/输出(I/O)端口 P1口 为 单功能的I/O端口,字节地址为 90H,位地址为 90H97H。P1口某一位的位电路结构如图1-11所示。2.

19、P1口(P1.0P1.7)四、单片机的输入/输出(I/O)端口(1)P1口作输出口使用时,若CPU输出1,Q=1,=0,场效应管截止,P1口引脚的输出为1;若CPU输出0,Q=0,=1,场效应管导通,P1口引脚的输出为0。(2)P1口作为输入口使用时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。(3)P1口由于内部上拉电阻,无高阻抗输入状态,故为准双向口。P1口“读引脚”输入时,必须先向锁存器写入1。四、单片机的输入/输出(I/O

20、)端口3P2口(P2.0P2.7)P2口为双功能口,字节地址为A0H,位地址为 A0H A7H。P2口某一位的位电路结构如图1-12所示。四、单片机的输入/输出(I/O)端口1)P2口用作地址总线 P2口用作地址总线时,在控制信号作用下,MUX与“地址”接通。当“地址”线为0时,场效应管导通,P2口引脚输出为0;当“地址”线为1时,场效应管截止,P2口引脚输出1。四、单片机的输入/输出(I/O)端口2)P2口用作通用I/O端口 P2口用作通用I/O端口时,在内部控制信号作用下,MUX与锁存器的Q端接通。CPU输出1时,Q=1,场效应管截止,P2.x引脚输出1;CPU输出0时,Q=0,场效应管导

21、通,P2.x引脚输出0。P2口用作输入时,分“读锁存器”和“读引脚”两种方式:“读锁存器”时,Q端信号经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P2.x引脚上的电平经输入缓冲器BUF2进入内部总线。四、单片机的输入/输出(I/O)端口 3)P2口的特点 P2口作为地址输出线时,P2口高8位地址与P0口输出的低8位地址寻址64 KB地址空间。作为通用I/O端口时,P2口为准双向口。功能与P1口一样。一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O端口使用了。四、单片机的输入/输出(I/O)端口4.P3口(P3.0P3.7)由于引脚数

22、目有限,在P3口增加了第二功能。每一位都可以分别定义为第二输入功能或第二输出功能。P3口字节地址为B0H,位地址B0HB7H。P3口某一位的位电路结构如图1-13所示。四、单片机的输入/输出(I/O)端口1)P3口用作第二输入/输出功能当选择第二输出功能时,该位的锁存器需要置1,使与非门为开启状态。当第二输出为1时,场效应管截止,P3.x引脚输出为1;当第二输出为0时,场效应管导通,P3.x引脚输出为0。当选择第二输入功能时,该位的锁存器和第二输出功能端均应置1,保证场效应管截止,P3.x引脚的信息由输入缓冲器BUF3的输出获得。四、单片机的输入/输出(I/O)端口2)P3口用作第一功能通用I

23、/O端口 P3口用作第一功能通用输出时,第二输出功能端应保持高电平,与非门开启。CPU输出1时,Q=1,场效应管截止,P3.x引脚输出为1;CPU输出0时,Q=0,场效应管导通,P3.x引脚输出为0。用作第一功能通用输入时,P3.x位的输出锁存器和第二输出功能均应置1,场效应管截止,P3.x引脚信息通过输入BUF3和BUF2进入内部总线,完成“读引脚”操作。当P3口用作第一功能通用输入时,也可执行“读锁存器”操作,此时信息由Q端进入并经过缓冲器BUF1进入内部总线。四、单片机的输入/输出(I/O)端口3)P3口的特点P3口内部有上拉电阻,无高阻抗输入态为准双向口。P3口作为第二功能的输出/输入

24、或第一功能通用输入,均须将相应位的锁存器置1。实际应用中,由于复位后P3口锁存器自动置1,满足第二功能所需的条件,所以不需任何设置工作就可以进入第二功能操作。当某位不作为第二功能用时,可作为第一功能通用I/O使用。引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的输出端。四、单片机的输入/输出(I/O)端口表1-8P3口的第二功能定义引脚第二功能功能说明P3.0RXD串行数据输入口P3.1TXD串行数据输出口P3.2外部终端0输入P3.3外部终端1输入P3.4T0定时器0外部计数输入P3.5T1定时器1外部计数输入P3.6外部数据存储

25、器写选通输出P3.7外部数据存储器读选通输出四、单片机的输入/输出(I/O)端口注意准双向口仅有两个状态,而P0口作为总线使用,口线内没有上拉电阻,处于高阻“悬浮”态,故P0口为双向三态I/O端口。另外,准双向口作通用I/O的输入口使用时,一定要向该口先写入“1”。四、单片机的输入/输出(I/O)端口5.I/O端口的使用 下面讨论P1P3口与ED发光二极管的驱动连接问题。P0口与P1、P2、P3口相比,P0口的驱动能力较大,每位可驱动8个S输入,而P1、P2、P3口的每一位的驱动能力只有P0口的一半。当P0口某位为高电平时,可提供400 A的电流;当P0口某位为低电平(0.45 V)时,可提供

26、3.2 mA的灌电流。如低电平允许提高,灌电流可相应加大,所以任何一个口要想获得较大的驱动能力,只能用低电平输出。四、单片机的输入/输出(I/O)端口如高电平输出,则强行从P1、P2和P3口出的电流Id会造成单片机端口的损坏,如图1-14(a)所示。如端口引脚为低电平,能使电流Id 从单片机外部流入内部,则将大大增加流 过 的 电 流 值,如 图 1-14(b)所示。所以当P1P3口驱动LED发光二极管时,应该采用低电平驱动。五、单片机编程语言 计算机语言分高级语言、汇编语言和机器语言,其中机器语言由二进制数(或十六进制数)构成,计算机(包括单片机)可以直接识别;而高级语言和汇编语言必须通过编

27、译软件编译成机器语言后计算机才能识别。单片机一般采用汇编语言进行编程,因为汇编语言编译效率高,非常适合程序直接控制硬件的场合。由于汇编语言程序要安排运算或控制每一个细节,这就使得编写汇编语言程序比较繁琐复杂,现在也常用高级语言中的C语言进行单片机程序编写。五、单片机编程语言(一)单片机指令概述在单片机系统中,我们把这种与计算机之间交流的语言称之为指令,指令是CPU按照人们的意图来完成某种操作的命令,它以英文名称或缩写形式作为助记符。指令不止一条,A89S51单片机使用CS-51指令系统。掌握汇编语言指令是程序设计的基础。五、单片机编程语言 AT89S51拥有简明、易掌握、效率较高的指令系统复杂

28、指令集。指令按所占字节来分有:单字节指令49条,双字节指令45条,三字节指令17条。指令按执行时间来分有:1个机器周期(12个时钟振荡周期)的指令64条,2个机器周期的指令45条,4个机器周期乘、除指令。五、单片机编程语言指令长度不同,格式也就不同,具体如下。单字节指令:操作码和操作数同在一个字节中。双字节指令:一个字节为操作码,另一个字节是操作数。三字节指令:操作码占一个字节,操作数占两个字节。指令操作的对象,可能是一具体数据,也可能是指出到哪里取得数据的地址或符号。操作数1指令进行的操作。操作码2指令五、单片机编程语言1.单片机寻址方式寻址方式是指在指令中说明操作数所在地址的方法。一般来说

29、,寻址方式越多,功能就越强,灵活性则越大,指令系统就越复杂。寻址方式所要解决的主要问题就是如何在整个存储器和寄存器的寻址空间内快速地找到指定的地址单元。下面介绍指令系统7种寻址方式。五、单片机编程语言1)寄存器寻址方式指令中的操作数为某一寄存器的内容。例如,OVA,Rn;(Rn)A,n=07表示把Rn中的源操作数送入到累加器A中。由于指令指定了从寄存器Rn中取得源操作数,所以称为寄存器寻址方式。五、单片机编程语言2)直接寻址方式指令中直接给出操作数的单元地址,该单元地址中的内容就是操作数,直接的操作数单元地址用“direct”表示。例如,OVA,direct,“direct”为操作数的单元地址

30、。具体指令为MOV A,40H,表示把内部RAM 40H单元(direct)的内容传送到A。指令中源操作数(右边的操作数)采用的是直接寻址方式。五、单片机编程语言指令中两个操作数都可由直接寻址方式给出。例如,MOVdirect1,direct2,具体指令为MOV42H,62H,表示把片内RAM中62单元的内容送到片内RAM中的42H单元中。直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。五、单片机编程语言3)寄存器间接寻址方式寄存器中存的是操作数地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,应在寄存器名称前面加前缀标

31、志“”。例如,MOV A,Ri;i=0或1。其中Ri的内容为40H,即把内部RAM 40H地址单元中的内容传送给A。五、单片机编程语言4)立即数寻址方式直接在指令中给出操作数,也称立即数。为了与直接寻址指令中的直接地址加以区别,需在操作数前加前缀标志“#”。例如,MOV A,#40H。第一个字节是操作码,第二字节是立即数,就是放在程序存储器内的常数。五、单片机编程语言5)基址寄存器加变址寄存器间接寻址方式以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,以两者内容相加形成的16位地址作为目的地址进行寻址。例如,MOVC A,A+DPTR。其中,(A)=05H,(DPTR)=0400H,

32、指令执行结果是把程序存储器0405H单元的内容传送给A。五、单片机编程语言本寻址方式的指令有以下3条。MOVC A,A+DPTRMOVC A,A+PCJMP A,A+DPTR 前两条指令适用于读程序存储器中固定的数据。第3条为散转指令,A中内容为程序运行后的动态结果,可根据A中不同内容实现跳向不同程序入口的跳转。五、单片机编程语言6)相对寻址方式相对寻址是以该转移指令的地址(PC值)加上它的字节数,再加上相对偏移量(rel),形成新的转移目的地址,从而将程序转移到该目的地址。转移的目的地址用下式计算。目的地址=转移指令所在的地址+转移指令字节数+rel 其中,偏移量rel是带符号8位二进制补码

33、数,其值为-128+127。程序转移范围是以转移指令的下条指令首地址为基准地址,相对偏移为-128+127。例如,LJMP rel。五、单片机编程语言程序要转移到该指令的PC值加3再加上rel的目的地址处。编写程序时,只须在转移指令中直接写要转向的地址标号即可。例如,LJMP LOOP,“LOOP”为目的地址标号。汇编时,由汇编程序自动计算和填入偏移量,但手工汇编时偏移量的值由手工计算。五、单片机编程语言7)位寻址方式 对内部RA和特殊功能寄存器具有位寻址功能的某位内容进行置1和清零操作。位地址一般以直接位地址给出,位地址符号为“bit”。例如,MOV C,bit,具体指令为MOV C,40H

34、,表示 把位地址为40H的值送到进位标志位C。五、单片机编程语言注意上面介绍了7种寻址方式,现有一个问题:当一条指令给定后如何来确定该指令的寻址方式?例如,OVA,#40属于立即数寻址还是寄存器寻址?这要看以哪个操作数作为参照系。操作数分为源操作数和目的操作数,对于源操作数“#40”来说,是“立即数寻址”方式,但对目的操作数“A”来说,属于“寄存器寻址”方式。一般而言,寻址方式指的是源操作数,所以此例为立即数寻址方式。五、单片机编程语言表1-97种寻址方式及其寻址空间序号寻址方式寻址空间1寄存器寻址R0R7、A、B、C(位)、DPTR等2直接寻址内部128字节RAM、特殊功能寄存器3寄存器间接

35、寻址片内数据存储器、片外数据存储器4立即数寻址程序存储器中的立即数5基址寄存器加变址寄存器间接寻址读程序存储器固定数据和程序散转6相对寻址程序存储器相对转移7位寻址内部RAM中的可寻址位、SFR中的可寻址位五、单片机编程语言2.单片机指令分类数据传送类(28条)算术运算类(24条)逻辑操作类(25条)控制转移类(17条)位操作类(17条)五、单片机编程语言表1-10指令用到的符号符号含义Rn当前寄存器区的8个工作寄存器R0R7(n=07)Ri当前寄存器区中作为间接寻址寄存器的2个寄存器R0、R1(i=0,1)direct直接地址,即8位内部数据存储器单元或特殊功能寄存器的地址#data指令中的

36、8位立即数#data16指令中的16位立即数rel偏移量,8位的带符号补码数DPTR数据指针,可用作16位数据存储器单元地址的寄存器续表五、单片机编程语言表1-10指令用到的符号符号含义bit内部RAM或特殊功能寄存器中的直接寻址位C或CY进位标志位或位处理机中的累加器addr1111位目的地址addr1616位目的地址间接寻址寄存器前缀,如Ri,A+DPTR()表示地址单元或寄存器中的内容()表示以单元或寄存器中的内容作为间接寻址单元的内容箭头右边的内容被箭头左边的内容所取代五、单片机编程语言(二)数据传送指令MOV,1以累加器为目的操作数的指令2以Rn为目的操作数的指令3以直接地址dire

37、ct为目的操作数的指令4以寄存器间接地址为目的操作数的指令516位数传送指令6堆栈操作指令7累加器A与外部数据存储器RAM/IO传送指令8查表指令9字节交换指令10低半字节交换指令五、单片机编程语言(三)算术运算指令 1不带进位加法指令2带进位加法指令 3增1指令 4十进制调整指令5带借位的减法指令6减1指令7乘法指令8除法指令五、单片机编程语言(四)逻辑操作指令 1累加器A 清“0”指令2累加器A求反指令3左环移指令4带进位左环移指令5右环移指令6带进位右环移指令7累加器半字节交换指令8逻辑与指令9逻辑或指令10逻辑异或指令五、单片机编程语言(五)跳转与循环指令1长转移指令2相对转移指令3绝

38、对转移指令4间接跳转指令5条件转移指令6比较不相等转移指令7减1不为0转移指令8调用子程序指令9子程序的返回指令10中断返回指令11空操作指令五、了解与单片机交流的语言(六)布尔指令(位操作指令)1数据位传送指令2位变量修改指令3位变量逻辑与指令4位变量逻辑或指令5条件转移类指令五、了解与单片机交流的语言(七)单片机伪指令1.DS:预留存储区命令2.BIT:定义位命令3.USING:通知汇编器使用的是哪一个工作寄存器组。4.ORG:用来改变汇编器的计数器,从而设定一个新的程序起始地址。5.END:用来控制汇编结束。6.EQU:用于将一个数值或寄存器名赋给一个指定的符号名。7.DATA:用于将一

39、个内部 RAM 的地址赋给指定的符号名。8.DB:以表达式的值的字节形式初始化代码空间。9.XDATA:数据地址赋值伪指令五、了解与单片机交流的语言(八)关于A89S51指令部分的说明1.关于操作数的字节地址和位地址的区分问题 如何区别指令中出现的字节变量和位变量?例如,指令“MOV C,40H”和指令“MOV A,40H”中源操作数“40H”都是以直接地址形式给出的,“40H”是字节地址还是位地址?对于助记符相同指令,观察操作数就可看出。显然前条指令中的“40H”肯定是位地址,因为目的操作数C是位变量;后条指令的“40H”是字节地址,因为目的操作数A是字节变量。五、了解与单片机交流的语言2.

40、关于累加器A与ACC的书写问题 累加器可写成A或ACC,区别是什么?ACC汇编后的机器码必有一个字节的操作数是累加器的字节地址E0,A汇编后则隐含在指令操作码中。例如,“INC A”的机器码,查表是04H。如写成“INC ACC”后,则成了“INC direct”的格式,再查表,对应机器码为“05H E0H”。在对累加器A直接寻址和累加器A的某一位寻址要用ACC,不能写成A。例如,指令“POP ACC”不能写成“POP A”,指令“SETB ACC.0”不能写成“SETB A.0”。五、了解与单片机交流的语言3.书写2位十六进制数据前要加0 由于部分十六进制数是用字母来表示的,而程序内的标号也

41、常用字母表示,为了将标号和数据区分开,几乎所有的汇编语言都规定,凡是以字母开头(对十六进制数而言,就是AF开头)的数字量,应当在前面添加一个数字0。至于地址量,它也是数据量的一种,前面也应该添加0。例如,MOV A,0F0H;“F0”以字母开头的数据量MOV A,0F0H ;“F0”以字母开头的地址量单片机功能体验LED灯的“眨眼”节奏控制 工作内容及要求 本任务通过单片机对接在P1.0口上的一支发光二极管LED进行闪烁控制,让LED先点亮,延时一定时间之后熄灭,然后再点亮,熄灭,最终形成“眨眼睛”的效果。控制过程如下:上电后发光二极管LED灯点亮,持续点亮一段时间后,LED灯熄灭,熄灭相同的

42、时间再点亮。这样周而复始的进行下去,形成“眨眼睛”的效果。单片机功能体验LED灯的“眨眼”节奏控制任务分析 在单片机编程里面并没有真正的延时指令,从前面介绍过的机器周期和指令周期的概念中,我们知道单片机每执行一条指令都需要一定的时间,所以要达到延时的效果,只须让单片机不断地执行没有具体实际意义的指令或循环重复某种操作,从而达到了延时的效果。单片机功能体验LED灯的“眨眼”节奏控制一、知识链接 1.简单的单片机时间控制 (1)空操作指令 NOP (2)循环转移指令 DJNZ (3)利用定时器延时 上面的定时方式是误差较大,若想精确定时,则要利用单片机的定时器T0或T1来定时,精确度更高。详见学习

43、任务五中的定时/计数器部分。利用以上三种操作方式的组合就可以比较精确地编写出所需要的延时程序。单片机功能体验LED灯的“眨眼”节奏控制二、程序流程图 所谓流程图,就是用箭头线将一些规定的图形符号,如半圆弧形框、矩形框、菱形框等,有机地连接起来的图形。这些半圆弧形框、矩形框、和菱形框与文字符号相配合用来表示实现某一特定功能或求解某一问题的步骤。利用流程图可以将复杂的工作条理化、抽象的思路形象化。单片机功能体验LED灯的“眨眼”节奏控制实训模块“眨眼”的LED灯电路设计一、硬件电路原理图设计1.电路设计思路及控制要求本项目的具体控制原理是采用典型的单片机芯片AT89S51进行控制的。利用单片机的P

44、1端口中的某位外接一个发光二极管,发光二极管负极接P1.0,正极通过限流电阻接电源。要求单片机P1.0引脚所控制的LED实现“眨眼睛”的效果。当P1.0=0时,对应的LED就会被点亮;相反,当P1.0=1时,对应的LED就会被熄灭。单片机功能体验LED灯的“眨眼”节奏控制2.硬件电路原理图 单片机功能体验LED灯的“眨眼”节奏控制二、会“眨眼”的LED系统程序设计1.主程序流程图根据程序设计思路,画出程序流程图单片机功能体验LED灯的“眨眼”节奏控制2.采用字节操作进行LED灯的控制参考程序(采用字节操作)编写如下:ORG0000H;将程序从地址0000H处开始MAIN:MOV P1,#0FE

45、H;(P1)=1111,1110B,发光二极管点亮 LCALL DELAY;调用延时子程序 MOV P1,#0FFH;(P1)=1111,1111B,发光二极管熄灭 LCALLDELAY;调用延时子程序 SJMPMAIN;程序返回到MAIN处,重复“眨眼睛”过程DELAY:MOV R2,#240 ;延时子程序LOOP1:MOV R3,#250LOOP2:DJNZ R3,LOOP2 DJNZ R2,LOOP1 RET;子程序调用返回 END;汇编结束单片机功能体验LED灯的“眨眼”节奏控制3.采用位操作进行LED灯的控制参考程序(采用位操作)编写如下:ORG 0000H;将程序从地址0000H处

46、开始MAIN:CLR P1.0;(P1.0)=0时,发光二极管点亮 LCALL DELAY;调用延时子程序 SETB P1.0;(P1.0)=1时,发光二极管点亮 LCALL DELAY;调用延时子程序 SJMP MAIN;程序返回到MAIN处,重复“眨眼睛”过程DELAY:MOV R6,#240;延时子程序LOOP1:MOV R7,#250LOOP2:DJNZ R7,LOOP2 DJNZ R6,LOOP1 RET;子程序调用返回 END;汇编结束单片机功能体验LED灯的“眨眼”节奏控制4.延时程序参数的变化对“眨眼”节奏的影响教师改变延时子程序DELAY中的R6或R7的参数,观察二极管“眨眼

47、”节奏的变化情况。注意,R6和R7的值不能超过255或0FFH(为什么?),若想增加延时时间,可以再加一层延时循环。单片机功能体验LED灯的“眨眼”节奏控制图1-24“眨眼”电路的实训效果图 小 结本学习任务详细介绍了单片机的存储结构、端口结构、指令语言、程序设计流程等基础知识,结合任务实施,介绍了单片机指令系统的构成、指令的寻址方式及各类指令的格式、功能和使用方法。51系列单片机共有7种寻址方式,即立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。寻址方式的不同主要表现为取操作数的方法和寻址范围。小 结51系列单片机指令按功能分为5大类111条,对于具体的指令,应结合寻址方式找出规律来记忆。累加器A是在指令中出现最频繁的一个特殊功能寄存器,除了位操作类指令和DJNZ指令与它无关,其余指令组中都有它。算术运算指令执行时通常会对进位标志CY、半进位标志AC、溢出标志OV及奇偶校验标志P产生影响,其余各类指令执行时一般不影响标志位,涉及累加器A或进位标志位CY的指令操作会影响P标志位及CY标志位。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁