版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制器的应用(第3版)全套可编辑PPT课件一、课程内容介绍及学时安排根据教材内容共讲授六个单元内容,64学时。采用理实一体的教学方法。实践比例50%。二、课程特点1.既有软件内容,又有硬件内容。软件:汇编语言或C、C++等高级语言。汇编语言与高级语言不同:汇编语言直接对内存进行操作;编程时要考虑硬件的连接情况。
C语言具有良好的模块化,可移植性强。硬件:单片机的内部结构和外部的电路连接有关。2.理论和实践教学紧密结合。3.采用“项目驱动”教学方法,以实际项目为载体,以项目带知识点,开展单片机课程的学习。三、课程的地位和定位该课程是电子信息类专业的必修课程。通过电子产品项目训练,培养学生良好的团队协作能力,吃苦耐劳的精神,为以后从事的岗位树立优秀的素质品格。该课程主要讲授单片机的构成、特点及应用。四、课程要求及学习方法课程要求:1.课堂中有讨论,学生分为若干小组。2.按照要求完成每一个项目。3.积极参与课堂讨论,独立完成项目训练。学习方法:1.本课程非常重视动手实践,因此要多模仿、多练,不要怕失败。2.看书,大概了解单片机的结构。3.要有一块专门的学习板,用学习板练习编写程序。4.在学习过程中,依据自己的能力,以各种方式渉取小电路类资料,练习设计电路,焊接并调试。5.达到一定水平后,自己独立设计具有个人风格的电路或小产品。单片机开发板五、成绩评定考核方式:采用理论、实训考核及实训过程考核相结合的考核方式。理论课采用笔试闭卷形式;实训课成绩根据平时实训完成情况和实训报告评定,实训成绩全部为过程考核;平时成绩主要根据作业、出勤率和课堂回答问题及课堂讨论情况评定。
成绩组成:理论成绩占40%,实训成绩占40%(实训过程考核和实训考核各占一半),平时成绩占20%。考试时间:120分钟。七、课程内容第一章单片机基础知识第二章
单片机寻址方式及指令系统第三章
中断与定时系统第四章
并行输入与输出第五章
串行通信第六章
A/D和D/A转换八、实际项目演示八、实际项目演示第一章单片机基础知识学习目标:掌握单片机的概念及特点了解(单片机)冯·诺依曼结构和哈佛结构的差异了解AT89S52单片机结构,掌握内部数据存储器的空间分配和SFR
掌握AT89S52单片机的外部引脚功能及单片机最小应用系统掌握单片机集成开发环境KeilC51、在线下载(ISP)软件的使用方法技能要求:利用AT89S52单片机制作一个简单的实用电路(任务一一只会闪光的灯)会使用相应软件对程序进行仿真和调试(任务二熟悉Keil开发平台)1.1单片机的概念与发展一、单片机的定义(一)单片机的概念与特点1.什么是单片机?单片机(SingleChipComputer)就是在一块硅片上集成了微处理器、存储器及各种输入/输出接口的芯片,这样一块芯片就具有了计算机的属性,因而被称为单片微型计算机,简称单片机。单片机主要组成部分:①中央处理器CPU②存储器(数据存储器RAM程序存储ROM)③输入/输出接口④定时器/计数器
任务一一只会闪光的灯
2.单片机的特点(优点)★
体积小、重量轻;★
电源单一、功耗低(突出特点);★
功能强、价格低,有优异的性能价格比;★
全部集成在芯片上,布线短,合理,集成度高;★
数据大部分在单片机内传递,运行速度快,抗干扰能力强,可靠性高。任务一一只会闪光的灯
(二)单片机标号信息及封装类型
任务一一只会闪光的灯本课程主要讲授目前国内外用的较多的以51内核扩展出的单片机,即我们常说的51单片机。本课程实验板上使用的单片机型号为AT89S52。DIP封装PLCC封装AT—前缀,表示芯片为ATmel公司生产的产品。其他前缀还有STC、SST等。8—表示该芯片为8051内核芯片。9—表示内部含FiashE2PROM存储器。5—固定不变。2—表示该芯片内部程序存储空间的大小,1为4KB,2为8KB,3为12KB。0421—表示该芯片生产日期为04年第21周。任务一一只会闪光的灯(三)单片机体系结构
单片机的体系结构有两种,一是传统的冯·诺依曼(JohnVonNeumann)结构;另一种是哈佛(Harvard)结构。1.冯·诺依曼结构
任务一一只会闪光的灯2.哈佛结构
数据与程序分别存于两个存储器中,是哈佛结构的重要特点。哈佛结构的数据总线和指令传输总线完全分开。其优点是,指令和数据空间是完全分开的,一个用于取指令,另一个用于存取数据。所以与常见的冯·诺依曼结构不同的第一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但低档、中档和高档系列的指令总线位数分别为12、14和16位。第二点是:由于可以对程序和数据同时进行访问,CPU的取指和执行采用指令流水线结构,当一条指令被执行时允许下一条指令同时被取出,使得在每个时钟周期可以获得最高效率。
任务一一只会闪光的灯周期0周期1周期2周期3周期4取指0执行0取指1执行1取指2执行2取指3执行3
指令流水线结构示意图任务一一只会闪光的灯二、单片机的应用1.家用电器:广泛应用于家用电器的自动控制,智能卡特点:提高家用电器的性能和质量;降低家用电器的生产成本和销售价格。2.智能仪器仪表:单片机体积小,耗电少,被广泛用于各类仪器仪表特点:使仪器仪表走向智能化和微型化;
使仪器仪表的功能和可靠性大幅提高。任务一一只会闪光的灯3.网络与通信:许多型号的单片机都有通信接口可方便地进行机间通信,也可方便地组成网络系统。如:单片机控制的无线遥控系统,列车无线通信系统和串行自动呼叫应答系统等。4.工业控制:单片机可以构成各种工业测控系统,数据采集系统。如:数控机床、汽车安全技术检测系统,报警系统和生产自动控制等。任务一一只会闪光的灯单片机的发展可以分为三个阶段
20世纪70年代为单片机发展的初级阶段。典型代表:Intel公司的MCS-48系列单片机。有4位、8位CPU,并行I/O口,8位定时器/计数器,无串行口,中断处理比较简单,RAM、ROM容量较小,寻址范围不超过4KB。
三、单片机的发展任务一一只会闪光的灯20世纪80年代为高性能单片机的发展阶段。典型代表:Intel公司的MCS-51、MCS-96系列单片机,单片机普及阶段。是8位CPU,片内RAM、ROM容量加大,片外寻址范围可达64KB,增加了串行口,多级中断处理系统,16位定时器/计数器。
20世纪90年代至今为单片机的高速发展阶段。典型代表:MCS—96系列单片机。是16位CPU,片内RAM、ROM容量进一步增大,增加了A/D、D/A转换器,8级中断处理功能,实时处理能力更强,它允许用户采用面向工业控制的专用语言,如C语言等。任务一一只会闪光的灯单片机发展可归结为以下几个方面:
1.增加字长,提高数据精度和处理的速度2.改进制作工艺,提高单片机的整体性能3.由复杂指令集CISC转向简单指令集RISC技术4.多功能模块集成技术,使一块“嵌入式”芯片具有多种功能5.微处理器与DSP技术结合6.融入高级语言的编译程序7.低电压、宽电压、低功耗任务一一只会闪光的灯四、51系列单片机开发概述单片机应用系统的开发是以单片机为核心,配合一定的外部电路及程序,从而实现特定测量及控制功能的应用系统。其中单片机的选型、资源分配以及程序设计是整个系统设计的关键。
一般来说,一个完整的单片机应用系统设计包括分析测控系统、单片机选型、硬件资源分配、单片机程序设计、仿真测试并最终下载到实际硬件电路中执行。单片机开发的整个流程,如右图所示。任务一一只会闪光的灯52子系列与51子系列相比,其功能增强的具体方面如下:1.片内RAM从128字节增加到256字节2.片内ROM从4KB增加到8KB3.定时器/计数器从2个增加到3个4.中断源从5个增加到6~7个任务一一只会闪光的灯1.2单片机结构AT89S52系列单片机是新一代超强抗干扰、高速单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择。增强型6时钟/机器周期,12时钟/机器周期8051CPU
工作电压:5.5V-3.4V(5V单片机)3.8V-2.0V(3V单片机)工作频率范围:0-40MHz用户应用程序空间4K/8K/16K/20K/32K/64K字节片上集成128字节/512字节RAM四个8位并行I/O端口。一、单片机的结构任务一一只会闪光的灯ISP(在系统可编程)/IAP(在应用可编程),可通过串口(P3.0/P3.1)直接下载用户程序。EEPROM功能看门狗内部集成专用复位电路,外部晶振频率<20MHz时,可省略外部复位电路共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用4路外部中断,下降沿中断或低电平触发中断。通用异步串行口(UART),还可用定时器软件实现多个UART。任务一一只会闪光的灯任务一一只会闪光的灯单片机定时器/计数器输入/输出接口CPU控制器运算器ALUACC寄存器BPSW十进制调整电路布尔处理器CYACF0RS1RS0OVPPCIDDPTRIR定时与控制电路SP存储器ROMRAM1.CPU
中央处理器CPU是单片机的核心,是单片机的大脑和心脏。它由运算器和控制器等部件组成。作用:主要完成运算和控制功能。
MCS-51CPU是字长为8位的中央处理单元,即它对数据的处理是以字节为单位进行的。(1)
运算器运算部件以算术逻辑单元ALU为核心,加上累加器ACC、寄存器B、暂存器、程序状态字PSW以及十进制调整电路和布尔处理器等许多部件组成的。任务一一只会闪光的灯1)算术逻辑单元(
ALU—ArithmeticLogicUnit)可以对4位(半字节)8位(一字节)和16位(双字节)数据进行操作。作用:完成算术四则运算和逻辑运算、位操作及循环移位等逻辑操作,操作结果的状态信息送至状态寄存器(PSW)。2)累加器ACC,在指令中用助记符A来表示
A是一个8位寄存器,是CPU中工作最繁忙的寄存器。作用:在算数逻辑运算中,用来存放一个操作数或运算结果(包括中间结果)。在与外部存储器和I/O接口打交道时,完成数据传送。
任务一一只会闪光的灯3)寄存器B作用:可作通用寄存器。在乘、除运算中使用。作乘法运算时,寄存器B用来存放乘数以及积的高位字节;作除法运算时,寄存器B用来存放除数以及余数;不作乘、除运算时,寄存器B可作通用寄存器使用。4)程序状态字寄存器PSW(程序状态标志寄存器)8位寄存器。作用:存放当前指令执行后操作结果的某些特征,以便下一条指令的执行提供依据。任务一一只会闪光的灯程序状态字PSW各位标志的含义CYACF0RS1RS0OV-P
PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CY(PSW.7)进位标志位AC(PSW.6)辅助进位(或称半进位)标志F0(PSW.5)用户标志位RS1和RS0(PSW.4,PSW.3)工作寄存器组选择位OV(PSW.2)溢出标志位
PSW.1未定义位P(PSW.0)奇偶标志位CY是PSW中最常用的标志位。由硬件或软件置位和清零。*在字节运算时:
它表示运算结果是否有进位(或借位)。加法时:有进位Cy由硬件置“1”即Cy=1;无进位CY被硬件清“0”即Cy=0。减法时:有借位Cy由硬件置“1”即Cy=1;无借位CY被硬件清“0”即Cy=0。*在位操作(布尔操作)时:
CY作为累加器使用,其作用相当于字节操作的累加器ACC。在指令中可作为转移的条件
JCrel;cy=1转移
JNCrel;cy=0转移位操作指令中做累加器
ANLC,bitANLC,/bitORLC,bitORLC,/bitSETBCCLRCCPLCMOVC,bitMOVbit,cAC(PSW.6)辅助进位(或称半进位)标志。
当执行加减运算时,其运算结果产生低四位向高四位进位或借位时,AC由硬件置“1”;否则AC位被自动清“0”。
一般在BCD码运算时,系统用于进行十进制调整。任务一一只会闪光的灯F0(PSW.5)用户标志位。用户可根据自己的需要对F0位赋予一定的含义,由用户置位或复位,作为软件标志。
SETBF0;置位CLRF0;复位任务一一只会闪光的灯RS1(PSW.4)、RS0(PSW.3)
寄存器区选择控制位。RS1RS0寄存器组片内RAM地址00第0组00H-07H01第1组08H-0FH10第2组10H-17H11第3组18H-1FH任务一一只会闪光的灯CPU通过对PSW中的D4、D3位内容的修改,就能任选一个工作寄存器区。例如:SETBPSW.3 CLRPSW.4;选定第1区
SETBPSW.4CLRPSW.3;选定第2区
SETBPSW.3SETBPSW.4;选定第3区任务一一只会闪光的灯OV(PSW.2)溢出标志位它反映运算结果是否溢出,溢出时则由硬件将OV位置“1”;否则置“0”。只有在补码运算时起作用。
双进位位法判溢出:
OV=C8⊕C7P(PSW.0)奇偶标志位
P标志表明累加器ACC中1的个数。每条指令执行完后,单片机根据ACC的内容对P位自动置位或复位。
若累加器ACC中有奇数个“1”,则P=1;若累加器ACC中有偶数个“1”,则P=0.任务一一只会闪光的灯OV与CY辨析溢出和进位是两种不同性质的概念溢出是指有正负号的两个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。进位则表示两数运算,最高位(D7)相加/相减时有无进位/借位。使用时应加以注意。任务一一只会闪光的灯(2)控制器
控制器是CPU的大脑中枢,是计算机的指挥控制部件。组成:程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、数据指针(DPTR)、堆栈指针(SP)以及定时与控制电路等。功能:对来自存储器中的指令进行译码,通过定时控制电路在规定的时刻发出各种操作所需的控制信号,使各部分协调工作,完成指令所规定的功能。任务一一只会闪光的灯1)程序计数器(PC)16位计数器(重要)
PC是程序的字节地址计数器,16位专用寄存器,寻址范围为64KB。
作用:存放CPU执行的下一条指令的地址,具有自动加1的功能。工作原理:当一条指令按照PC所指的地址从程序存储器中取出后,PC会自动加1,指向下一条指令。任务一一只会闪光的灯2)指令寄存器IR和指令译码器ID指令寄存器IR:8位寄存器作用:用于暂存待执行的指令,等待译码。指令译码器ID:作用:对指令寄存器中的指令进行译码,即将指令转变为所需的电平信号。根据译码器输出的电平信号,再经定时控制电路定时产生执行该指令所需要的各种控制信号。任务一一只会闪光的灯程序存储器PC取出指令码指令寄存器IR指令译码器ID把指令转变成所需要得电平信号CPU产生执行该指令所需的各种控制信号取指令执行指令分析指令任务一一只会闪光的灯3)数据指针(DPTR)16bit
16位专用寄存器。它可以对64K的外部数据存储器和I/O口进行寻址。也可作为两个8位寄存器。DPL(地址82H):DPTR的低字节,DPH(地址为83H):DPTR的高字节。作用:用作外部数据存储器的地址指针。
4)堆栈指针(SP)8bit
SP的内容就是堆栈栈顶的存储单元地址。不论是数据进栈还是数据出栈,都是对堆栈的栈顶单元进行的,即对栈顶单元的写和读操作。任务一一只会闪光的灯2.存储器配置及特殊功能寄存器程序存储器(64KB寻址空间)数据存储器(64KB寻址空间)任务一一只会闪光的灯★程序存储器EA=0:片内ROM不起作用。完全执行片外程序存储器指令,外部ROM的地址为0000H~0FFFFH,可达64KB。EA=1:执行片内程序存储器指令,地址为0000H~1FFFH;当指令地址超过1FFFH后,自动转向片外ROM取指令,2000H~0FFFFH。★数据存储器分为内部数据存储器和外部数据存储器。
任务一一只会闪光的灯★内部数据存储器AT89S52有256字节的片内RAM,地址空间为00H~FFH。其中,低128B(地址为00H~7FH,可直接或间接寻址)是真正(内部)的RAM区;高128B(地址为80H~FFH,间接寻址)与片内特殊功能寄存器(SFR)区(80H~FFH,直接寻址)地址完全重合。但在物理上是完全独立的。单片机采用不同的寻址方式,以区分这两个重叠的逻辑地址空间。访问(80H~FFH)区间的SFR时,只能用直接寻址方式。如MOV0A0H,#Data指令的目的操作数是直接地址,将立即数#Data送入SFR中的0A0H单元中。任务一一只会闪光的灯访问(80H~FFH)区间的片内RAM时,只能间接寻址方式。如MOVR0,0A0HMOV@R0,#Data★外部数据存储器地址范围为0000H~0FFFFH,可达64KB。用MOVX指令进行访问。
任务一一只会闪光的灯AT89S52单片机在系统上采用了哈佛型,其存储器在物理结构上分程序存储器(ROM)和数据存储器(RAM)。有四个物理上相互独立的存储空间:其配置如图所示。片内ROM片外ROM片内RAM
片外RAM/I/O口56KB8KB64KB128BRAM128BSFR1FFFH2000H任务一一只会闪光的灯1.电源引脚Vcc和GND
VCC(40):电源端,+5V。GND(20):接地端。通常在Vcc和GND引脚之间接0.1μ高频滤波电容。任务一一只会闪光的灯二、单片机引脚功能2.时钟电路引脚XTAL1和XTAL2XTAL2(18):接外部晶体和微调电容。若使用外部TTL时钟时,该引脚为外部时钟的输入端。XTAL1(19):接外部晶体和微调电容的另一端。若使用外部TTL时钟时,该引脚必须接地。3.控制信号引脚
ALE地址锁存控制信号。
PSEN片外程序存储器选通信号,低电平有效。
EA访问外部程序存储器的控制信号,低电平有效
RST
复位信号,高电平有效。任务一一只会闪光的灯4.I/O(输入/输出)端口(Port)P0、P1、P2、P3P0口(32脚~39脚):8位漏极开路型双向I/O口。当用做通用I/O口时,每个引脚可驱动8个TTL负载;当用做输入时,每个端口默认置1。在访问外部存储器时,它是分时传送的低字节地址和数据总线,此时,P0口内含上拉电阻。P1口(1脚-8脚):带有内部提升电阻的8位准双向I/O口。当用做通用I/O口时,每个引脚可驱动8个TTL负载。当用作输入时,每个端口默认置1。P2口(21脚-28脚):带有内部提升电阻的8位准双向I/O口.在访问外部存储器时,它输出高8位地址。可以驱动四个TTL负载。当用作输入时,每个端口默认置1。P3口(10脚—17脚):带有内部提升电阻的8位准双向I/O口。能驱动四个TTL负载。当用作输入时,每个端口默认置1。P3口还用于第二功能。任务一一只会闪光的灯P3口的第二功能任务一一只会闪光的灯P3.0 RxD
串行口输入端P3.1 TxD
串行口输出端P3.2 INT0外部中断0请求输入端P3.3 INT1外部中断1请求输出端P3.4 T0 定时器/计数器0计数脉冲输入端P3.5 T1 定时器/计数器1计数脉冲输入端P3.6 WR 外部RAM写选通输出端P3.7 RD 外部RAM读选通输出端P1口的第二功能P1.0 T2定时器2的外部事件输入端;可编程脉冲输出端P1.1 T2EX定时器2的捕捉/重装触发器输入端;定时器2的计数方向控制端P1.5 MOSIFlash串行编程/下载时串行指令输入端P1.6 MISOFlash串行编程/下载时串行数据输出端P1.7 SCK时钟输入端任务一一只会闪光的灯1602液晶接口(三)单片机开发平台介绍开关独立键盘矩阵键盘4位数码管8位LEDP0口插针复位下载芯片串口蜂鸣器P1口插针P3口插针P2口插针单片机模数芯片1.3单片机最小应用系统项目实施一闪光灯电路的设计项目要求:
组装一个单片机的最小系统,用以控制一只发光二极管(LED)闪光。任务一一只会闪光的灯一、单片机最小系统1.最小系统所谓最小系统就是指由单片机和一些基本的外围电路所组成的一个可以工作的单片机系统。一般来说,它包括单片机,晶振电路和复位电路。(1)晶振电路
XTAL1和XTAL2分别为振荡电路的输入输出端。其振荡电路有两种组成方式:片内振荡器和片外振荡器。片内振荡器如图所示。在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。任务一一只会闪光的灯XTAL2XTAL1GND89S52(a)片内振荡器组成任务一一只会闪光的灯片外振荡器如图所示。XTAL1是外部时钟信号的输入端,XTAL2可悬空。由于外部时钟信号经过片内一个2分频的触发器进入时钟电路,因此对外部时钟信号的占空比没有严格要求,但高、低电平的时间宽度应不小于20ns。(b)片外振荡器组成XTAL2XTAL1GND89S52NC外部时钟信号任务一一只会闪光的灯(2)CPU时序的概念
单片机在执行指令时,通常将一条指令分解为若干基本的微操作,这些微操作所对应的脉冲信号在时间上的先后次序称为单片的时序。
时序是非常重要的概念,它指明单片机内部以及内部与外部互相联系所遵守的规律。AT89S52的时序定时单位从小到大依次为:振荡周期(节拍)、时钟周期(状态)、机器周期和指令周期。
振荡周期:指晶体振荡器直接产生的振荡信号的周期。是振荡频率的倒数。用P表示。
任务一一只会闪光的灯时钟周期:又称状态周期,用S表示。是振荡周期的二倍。每个时钟周期分为P1和P2两个节拍,P1拍节完成算术逻辑操作,P2节拍完成内部寄存器间数据的传递。
S=2个振荡周期机器周期:机器的基本操作周期。
1个机器周期=6个时钟周期=12个振荡周期指令周期:执行一条指令所占用的全部时间。1个指令周期通常由1~4个机器周期组成。AT89S52系统中,有单周期指令、双周期指令和四周期指令。任务一一只会闪光的灯例如外接晶振频率为fosc=12MHZ,则四个基本周期的具体数值为:
(1)振荡周期=1/12μs。
(2)时钟周期=1/6μs。
(3)机器周期=1μs。
(4)指令周期=1~4μs任务一一只会闪光的灯(3)复位电路复位分为上电自动复位按键和手动复位。+5VVCCRST89S52GNDVCCRST89S52GND+5V10μF8.2KΩ10μF1KΩ5.1K按键(a)上电自动复位电路(b)手动复位电路任务一一只会闪光的灯2.单片机最小系统常用控制部件(1)继电器:用低电压控制高电压的器件,它分为线圈、铁芯、衔铁、触点,触点有常开触点、常闭触点之分;在开关特性上有单刀单掷、双刀单掷、单刀双掷、双刀双掷、单刀多掷、双刀多掷之别。
(2)光耦:在电路中起隔离作用,由光作为信号传递媒介,将单片机和外部设备在电器隔离。有三极管型光耦(又分带基极型和不带基极型)、可控硅型光耦(又分单向可控和双向可控)。(3)指示灯任务一一只会闪光的灯
(a)继电器(b)光耦任务一一只会闪光的灯◆硬件设计闪光灯电路是89C52单片机的一种最简单电路,它包含3个部分:晶振电路,上电复位电路和用户电路。见下图。当P1.0输出为“1”时,LED无电流不发光。当P1.0输出为“0”时,流过LED的电流为
任务一一只会闪光的灯二、任务分析
闪光灯电路原理图任务一一只会闪光的灯◆
软件设计1.程序设计步骤:(1)分析任务,确定算法或解题思路。(2)根据算法和解题思路画出程序流程图。(3)根据流程图编写程序。(4)上机调试程序。2.画流程图的符号
3.闪光电路流程图
汇编语言:
ORG 0000HL1: CPL P1.0 MOV R0,#0FFH;1个机器周期L2: MOV R1,#0FAH;1个机器周期L3: DJNZ R1,L3;2个机器周期
DJNZ R0,L2;2个机器周期
SJMP L1;2个机器周期
END4.闪光灯电路程序清单如下任务一一只会闪光的灯
ORG 0000H MOV R0,#04H;1个机器周期L2: MOV R1,#0FAH;1个机器周期L3: DJNZ R1,L3;2个机器周期
DJNZ R0,L2;2个机器周期
END延时时间计算任务一一只会闪光的灯若振荡频率=12MHz,1个机器周期=1μS,总延时时间:1+[1+2×250]×4+2×4=2013个机器周期1
μS
×
2013个机器周期=2013μS=2mS
闪光灯的总延时时间:1+[1+2×250]×255+2×255=128265个机器周期若振荡频率=12MHz1个机器周期=1μS则延时时间:
1μS×128265=128265μS=128.265mS
振荡频率=6MHz一个机器周期=2μS则延时时间:
2μS×128265=265530μS=265.53mS
调整R0和R1的值,可改变延时时间。任务一一只会闪光的灯#include<reg52.h>//52单片机头文件#defineuintunsignedint//宏定义#defineucharunsignedchar//宏定义sbitled1=P1^0;//单片机管脚位声明voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }C语言编程方法1voidmain() //主函数{while(1)//大循环{ led1=0;//点亮小灯 delay(1000);//延时1000毫秒 led1=1; //熄灭小灯 delay(1000);//延时1000毫秒}}编程方法2#include<reg52.h>
//52系列单片机头文件#defineuintunsignedint//宏定义#defineucharunsignedchar//宏定义sbitled1=P1^0;
//声明单片机P1口的第一位voidDelay(uintz);
//函数声明voiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数{ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }voidmain()//主函数{while(1)
//主循环{
LED0=0;//将P1.0口赋值0,对外输出低电平
Delay(10000);LED0=1;//将P1.0口赋值1,对外输出高电平
Delay(10000);
}}Reg52.h头文件的作用在代码中引用头文件,其实际意义就是将头文件中的全部内容放到引用头文件的位置处,以免语句重复编写。头文件有两种表示方法:#include<reg52.h>
和#include“reg52.h”
,<>表示编译器从软件安装文件夹处开始搜索,即不管工程文件保存在哪里,优先寻找编译器所在目录的头文件,因此所有程序的头文件都是一样的,一改具改;“”表示编译器进入到当前工程所在文件夹处开始搜索,即优先寻找工程文件所在目录的头文件,因此可以根据程序需要,修改编辑个性化的头文件。C语言中注释的写法在C语言中,注释有两种写法。(1)//……(2)/*……*/主函数的写法main()函数格式:voidmain(){/*程序内容*/}特点:无返回值,无参数。任何一个单片机C程序且仅有一个main函数,它是整个程序开始执行的入口。1.4熟悉Keil开发平台项目任务二数据传送后观察标志位的变化
任务要求:掌握KeilC51μVision4(或5)集成开发环境的基本使用方法;学会使用汇编语言进行程序编辑、汇编与模拟仿真调试的过程;学会在线下载和编程器的使用。任务二熟悉Keil开发平台一、单片机集成开发环境
所有的计算机只能识别和执行二进制代码,而不能识别我们熟知的语言,因此,对于已写好的单片机源程序汇编语言(或C语言),必须翻译成单片机可识别的目标代码,然后转载到单片机的程序存储器中进行调试,这种翻译工具称为编译器。KeilC51是51系列兼容单片机C语言软件开发系统,提供了丰富的库函数和功能强大的集成开发调试工具。另外很重要的一点,编译后生成的汇编代码,到KeilC51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。任务二熟悉Keil开发平台(一)keil51windows集成开发平台的使用
1.keil51windows集成开发平台介绍工具栏菜单栏源文件编辑窗口工程窗口输出窗口任务二熟悉Keil开发平台2.导入需要仿真的程序
建立一个工程项目芯片选择属性设置建立源程序文件添加文件到当前项目组中编译文件任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台任务二熟悉Keil开发平台(二)Keil程序调试1.程序调试时的常用窗口
编译文件界面任务二熟悉Keil开发平台调试程序窗口字母C:代码存储空间D:直接寻址的片内存储空间I:间接寻址的片内存储空间X:扩展的外部RAM空间“数字”:想要查看的地址。任务二熟悉Keil开发平台工程窗口寄存器页任务二熟悉Keil开发平台2.各种窗口在程序调试中的用途
程序调试界面任务二熟悉Keil开发平台I/O端口界面任务二熟悉Keil开发平台I/O口全部打开界面任务二熟悉Keil开发平台输入值的设置任务二熟悉Keil开发平台打开后的Interrupt窗口任务二熟悉Keil开发平台串口设置任务二熟悉Keil开发平台打开后的串口窗口任务二熟悉Keil开发平台定时器设置任务二熟悉Keil开发平台打开后的定时器1窗口任务二熟悉Keil开发平台常用的调试按钮复位按钮,按下后,所有的系统状态将变成初始状态。
全速运行
进入循环并单步执行
停止全速运行
跳过循环并单步执行跳出单步执行过程执行到断点处任务二熟悉Keil开发平台二、PZISP自动下载软件的使用打开下载软件,双击目录下的文件ISPgm.exe,打开软件进入软件使用界面1.芯片选择:左击界面右面芯片选择窗口的下拉箭标,选择编程芯片的型号。2.导入hex文件到缓冲区:点击界面上的“打开文件”按钮,选择本目录下的hex文件。3.先把开发板上电源开关关上,点击界面上的“程序下载”,同时把开发板电源开关打开,有进程条说明向芯片写入程序。4.完成写入编程。5.退出程序:点击界面右上角的“x”按钮,退出此程序。任务二熟悉Keil开发平台打开PZISP自动下载软件选择芯片项目实施2数据传输的实现1.单片机片内30H开始8个数据传到片外1000H存储器中。参考程序:ORG0000H MOVR0,#30H MOVR7,#08H MOVDPTR,#1000HLP:MOVA,@R0 MOVX@DPTR,A INCR0 INCDPTR DJNZR7,LP END
任务二熟悉Keil开发平台项目训练2单片机最小系统设计流水灯电路一、目的要求1.掌握单片机中输出端口的控制方法。2.掌握循环的分析方法。3.了解编程器的使用方法。二、任务目标用单片机控制8只并排的发光二极管(D1~D8),使各发光二极管从D1开始点亮并延时熄灭,然后再点亮下一个发光二极管,8只发光二极管循环点亮后再从D1开始重复循环。这种显示方式下的发光二极管通俗地称为流水灯。三、硬件电路
四、参考程序1.汇编语言程序
ORG 0000H
MOVA,#0FEH
;#0FEH送累加器AL1: MOV P1,A
;累加器A中内容送P1口
MOVR7,#0
;#0送R7寄存器L3: MOV R6,#0
;#0送R6寄存器L2: DJNZ R6,L2
;R6寄存内容-1,结果≠0转移至L2 DJNZ R7,L3
;R7寄存内容-1,结果≠0转移至L3 RL A
;累加器A中内容左移一位 SJMP L1
;转移至L1
END
;结束2.C语言程序方法1#include<reg52.h>//52单片机头文件#defineuintunsignedint#defineucharunsignedcharvoiddelay(uintz)//延时函数,z的取值为这个函数的延时ms数
{ //delay(500);大约延时500ms uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
voidmain(){ while(1) { P1=0Xfe; delay(200); P1=0Xfd; delay(200); P1=0Xfb; delay(200); P1=0Xf7; delay(200); P1=0Xef; delay(200); P1=0Xdf; delay(200); P1=0Xbf; delay(200); P1=0X7f; delay(200); }}C语言程序方法2#include<reg52.h>//左流水#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint
voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }voidmain(){ P1=0xFE; while(1) { P1=_crol_(P1,1); delay(200); }}#include<reg52.h>//右流水#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintvoiddelay(uintz){
uint
x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }voidmain(){ P1=0x7f; while(1) { P1=_cror_(P1,1);
delay(150); }}五、带反相驱动硬件电路参考程序ORG0000H;定义下一条指令的地址。MOVA,#01H
;#01H送累加器AL1:MOVP2,A;累加器A中内容送P2口MOVR7,#0;#0送R7寄存器L3:MOVR6,#0;#0送R6寄存器L2:DJNZR6,L2;R6寄存内容-1,结果≠0转移至L2DJNZR7,L3;R7寄存内容-1,结果≠0转移至L3RLA;累加器A中内容左移一位SJMPL1;转移至L1END;结束本章小结本章主要介绍了单片机的基础知识,包括单片机的定义、特点,单片机的内部结构,单片机最小系统的构成。介绍了KEIL软件的使用,通过闪光灯电路、流水灯电路进行了项目训练。单片机寻址方式和指令系统第二章学习目标:熟练掌握MCS-51单片机的寻址方式和指令系统能编写简单完整的程序掌握标志位技能目标:能够对工作任务进行分析,找出相应算法,绘制流程图。能够根据流程图编写程序。会使用KeilC51μVision2集成开发环境,观察与修改存储器。2.1片内存储器及特殊功能寄存器一、项目任务要求
在KeilC51μVision2集成开发环境下,在编辑窗口编辑给定程序,观察片内RAM工作寄存器区、内部RAM位寻址区、RAM间接与直接寄存器区、内部RAM间接寻址区、内部RAM特殊功能寄存器区、外部RAM区(XRAM)的数据,并根据要求进行修改,说明每条指令的寻址方式。AT89S52单片机寻址方式
AT89S52单片机指令寻址AT89S52单片机标志位MSC-51单片机指令系统简介
二、相关知识三、单片机寻址方式寻址方式是指CPU寻找操作数或操作数地址的方法。具体来说寻址方式就是如何找到存放操作数的地址,把操作数提取出来的方法,它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。四、单片机指令寻址存放指令代码的地址称指令地址。指令存放是在程序存储器中,是按顺序存放的,执行时也是按指令地址顺序执行,除非是转移。存放数据的地址称操作数地址。数据的存放是任意的,无规律。操作数的来源为:A.操作数在指令中B.操作数在存储器中C.操作数在寄存器中D.操作数在I/O端口中
寻址方式:7种
立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址(一)立即寻址
是指操作数在指令操作数域直接给出例:MOVA,#25H;A←25HMOVDPTR,#1856H;DPTR←1856H
M0111010000100101操作码立即数00100101APC→PC+1→立即寻址(MOVA,#25H)PC+1→PC→操作码M100100000001100001010110立即数高位→立即数低位→0001100001010110DPHDPL立即寻址(MOVDPTR,#1856H)(二)直接寻址是指操作数的地址直接在指令操作数域给出可访问3种地址空间(1)内部RAM低128单元:00H-7FHMOVA,3CH;A←(3CH)(2)特殊功能寄存器SFR,唯一方式80H-0FFH
MOVA,P1;A←(P1口)MOVA,90H
(3)211个位地址空间
MOVC,30H;Cy←(30H)
MOVA,30H;A←(30H)
直接寻址(MOVA,3CH)例:MOVA,30H;机器码为E530H指令功能是把直接地址30H单元的内容送累加器A,即(30H)→(A)
34H34H例:MOVDPTR,#1234h(DPH)=12H(DPL)=34H注意:立即数前加“#”号,以区别直接地址。例如:MOVA,#30H;(A)←30HMOVA,30H;(A)←(30H)(三)寄存器寻址—操作数存放在寄存器中MOV
A,R0MOV
R0,#01001111B工作寄存器(00H—1FH)
RS1RS0寄存器组片内RAM地址寄存器
00第0组00H~07HR0~R701第1组08H~0FHR0~R710第2组10H~17HR0~R711第3组18H~1FHR0~R7SETBRS0MOVR3,#56H寄存器为
R0~R7,A,B,DPTR,C例:
MOVA,R1;A←(R1)
1111111111111111寄存器寻址(MOVA,R1)
例:MOVA,R3;机器码为0EBH
指令功能是把当前R3中的操作数送累加器A。指令执行示意图如图所示。设(R3)=12H(四)寄存器间接寻址是指操作数存放在以寄存器内容为地址的单元中。寄存器中存放的是操作数的地址,而操作数在存储器中,通过寄存器可间接得到。用符号“@”表示。
寄存器间接寻址可寻址范围如下:(1)内部RAM低128单元,地址范围00H~7FH,用Ri(i=0,1)和SP作为间址寄存器;(2)与P2口配合使用,用Ri指示低8位地址,可寻址片外数据存储器或I/O口的64kB区域;(3)DPTR间接寻址寄存器,可寻址片外程序存储器或数据存储器包括I/O口的各自的64kB区域。可间接寻址的寄存器为R0,R1,SP,DPTR例:MOVA,@R1;机器码E7H
设(R1)=60H,(60H)=50H,执行结果(A)=50H,该指令执行过程如图所示。(五)变址寻址基址寄存器+变址寄存器的间接寻址方式
DPTR/PCAMOVCA,@
A+DPTR
(A)←((DPTR)+(A))MOVCA,@A+PC
(A)←((PC)+(A))JMP@A+DPTR
(PC)=(A)+(DPTR)MOVCA,@A+DPTR;A←((A)+(DPTR))
指令功能为DPTR中的内容与A中的内容相加,其和所指示的单元的数送入累加器A,如图所示。变址寻址(MOVCA,@A+DPTR)
(六)相对寻址
是以程序计数器PC的当前值为基地址,加上指令中给出的偏移量rel作为转移目的地址。转移目的地址=下一条指令地址+rel
例
JC80H
JCrel;4085H设rel=85H,Cy=1目标地址PC当前值(七)位寻址bit
位寻址是指对一些内部RAM和特殊功能寄存器进行位操作时的寻址方式。
位寻址范围:
(1)内部RAM的位寻址区,共16个单元的128位,单元地址为20H~2FH,位地址为00H~7FH。可用直接位地址或字节地址加位的表示方法。例如:MOVC,7AH或MOVC,2FH.2(2)特殊功能寄存器SFR可供位寻址的专用寄存器共11个,实有位地址位83位。位地址有4种表达方式。以对程序状态寄存器PSW辅助进位位AC进行操作为例:
PSWCy
ACF0RS1RS0OVPD0HD7HD6HD0H1)直接使用位地址3)单元地址加位的表示法
MOVC,0D6H
MOVC,0D0H.62)位名称表示法4)专用寄存器符号加位的表示法
MOVC,
AC
MOVC,
PSW.6寻址方式寻址空间寄存器寻址R0~R7(0、1、2、3组)A、B、CY、DPTR直接寻址内部RAM00H~7FH特殊功能寄存器SFR
80H~0FFH内部RAM中20H~2FH单元的128个位地址SFR中83个有效位地址
80H~0FFH寄存器间接寻址内部RAM00H~7FH(@R0、@R1、SP)外部RAM或外部I/O口0000H~0FFFFH(@R0、@R1、@DPTR)立即寻址程序存储器基址+变址寄间寻址程序存储器(@A+DPTR、@A+PC)寻址方式与寻址空间寻址方式与寻址空间(续)寻址方式寻址空间相对寻址程序存储器256B范围位寻址内部RAM和SFR的位地址五、AT89S52单片机标志位PSWCyACF0RS1RS0OV—P位地址D7HD6HD5HD4HD3HD2HD1HD0H单片机指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。
指令分类:数据传送类指令(28)传送类指令举例算术运算类指令(24)逻辑运算类指令(25)控制转移类指令(17)布尔处理类指令
(17)2.2单片机指令系统指令是指单片机执行某种操作的命令。指令系统(或指令集)是指单片机能够识别和执行的全部指令。用汇编语言编写的程序称为源程序。为完成某项任务,人们按要求编排的指令操作序列称为程序。例1:要做“10+20”的加法,可写成:汇编语言程序机器语言程序MOVA,#0AH740AHADDA,#14H2414H
一、指令及程序的概念1.汇编语言指令格式[标号]:操作码[目的操作数],[源操作数];[注释]例2:Loop:ADDA,R0;A+(R0)→(A)2.机器语言指令格式
二、指令格式70操作码7070数据或寻址方式70数据或寻址方式70数据或寻址方式70单字节指令:双字节指令:三字节指令:操作码操作码操作码三、指令系统中使用的常用符号Rn:当前寄存器工作区中的寄存器,其中,n=0~7;direct:内部数据存储器地址,可指定一个内部RAM单元(0~127)或一个专用寄存器(128~255);@Ri:通过R1或R0间接寻址,指定数据存储器RAM中的一个单元(0~255);#data:在指令中指明8位常数;#datal6:在指令中指明16位常数;addrll:11位目的地址,用在ACALL或AJMP指令中,表示调用或转移地址,寻址范围为2KB;addrl6:16位目的地址,用在LCALL或LJMP指令中,表示调用或转换地址,寻址范围为64KB;rel:8位偏移量,用补码表示,用在SJMP等转移指令中,寻址范围为-128~+127;bit:表示位寻址空间中的位地址,8位,寻址范围为0~FFH。四、指令系统助记符指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。按指令的功能可分为五大类。为了便于理解,加强记忆,给出每个助记符的解释。1.数据传送类指令(7种助记符,28条指令)MOV:对内部数据寄存器RAM和特殊功能寄存器SFR的数据进行传送。MOVC:读程序存储器数据表格的数据传送。MOVX:对外部RAM的数据传送。XCH:字节交换。XCHD:低半字节交换。PUSH:入栈。POP:出栈。例MOVA,40H;A←(40H)MOVA,#40H;A←40H注意40H和#40H的区别
例MOVA,R1;A←(R1)MOVA,@R1;A←((R1))
注意@R1和R1的区别
例MOV90H,#40H;P1←40HMOVP1,#40H;PI←40HMOVR0,#90H;R0←90HMOV@R0,#40H;(90H)←40H
注意:(1)目的操作数不能采用立即寻址。(2)@Ri中的i范围为0和1。(3)Rn中的n的范围为0~7。(4)每条指令中最多只能有1个Rn或@Ri。例
以下指令都是错误的。
MOV#30H,40HMOVA,@R2MOVR1,R3MOVR1,@R0MOV@R1,R2MOV@R0,@R1例MOVA,60H;
A←(60H),目的操作数为寄存器寻址
MOV0E0H,60H;
A←(60H),目的操作数为直接寻址
MOV09H,#40H;09H←40H,目的操作数为直接寻址
MOVR1,#40H;R1←40H,
目的操作数为寄存器寻址例
分析程序的执行结果设内部RAM中30H单元的内容为80H,试分析执行下面程序后各有关单元的内容。
MOV60H,#30H;60H←30HMOVR0,#60H;R0←60HMOVA,@R0;A←30HMOVR1,A;R1←30HMOV40H,@R1;40H←80H
程序执行结果为:
(A)=30H,(R0)=60H,(R1)=30H,(60H)=30H,(40H)=80H,(30H)=80HPUSHdirect;sp
(sp)+1,(sp)(direct)POPdirect;direct((sp)),(sp)
(sp)-1堆栈操作指令1、堆栈一种数据结构,是“先进后出”线性表。2、堆栈操作:压入PUSH,弹出POP3、堆栈区:占片内RAM中连续的存储单元复位后,系统自动将SP指针指向07H
用户可将堆栈区设在30H~7FH数据缓冲区内,
MOVSP,#5FH堆栈有两种类型:向上生长型和向下生长型,如图所示。
向上生长型堆栈,栈底在低地址单元。随着数据进栈,地址递增,SP的内容越来越大,指针上移;反之,随着数据的出栈,地址递减,SP的内容越来越小,指针下移。如(b)图所示。栈顶栈顶2.算术运算类指令(8种助记符,24条指令)ADD:加法。ADDC:带进位加法。SUBB:带借位减法。DA:十进制调整。INC:加1。DEC:减1。MUL:乘法。DIV:除法。
例
设20H~
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民间工艺品制作工技巧模拟考核试卷含答案
- 乙炔发生工安全理论评优考核试卷含答案
- 幻灯机与投影机维修工诚信道德考核试卷含答案
- 污泥处理工工作质量测试考核试卷含答案
- 衡器装配调试工岗前管理应用考核试卷含答案
- 梳理热轧非织造布制作工岗位强化考核试卷含答案
- 羽绒羽毛加工处理工操作安全能力考核试卷含答案
- 煮糖助晶工技能实操测试考核试卷含答案
- 2026年小学三年级数学上册《数的认识》标准教案
- 2026年西师版小学三年级英语上册Lesson3《Thisismyfriend》教案
- 儿童功能性腹痛诊疗指南
- 安徽省省十联考2027届高三上学期第一次教学质量测评物理试卷(含答案)
- 【小学】【秋季上】高年级【信息技术】开学第一课【课件】
- 2026年学习教育工作总结
- 产品采购检验制度
- 2026年云南昆明市磨憨磨丁合作区事业单位招聘笔试参考题库附带答案详解
- 学生传染病请假制度
- 2025年10月自考13174概率论与数理统计(工).试题及答案
- 景区观光车驾驶员初级考试试卷与答案
- 服装面料采购合同协议书范本
- T/CTRA 01-2020废轮胎/橡胶再生油
评论
0/150
提交评论