《单片机技术及应用(基于Proteus 的汇编和C语言版)项目1 单片机认知及其开发软件使用》由会员分享,可在线阅读,更多相关《单片机技术及应用(基于Proteus 的汇编和C语言版)项目1 单片机认知及其开发软件使用(49页珍藏版)》请在金锄头文库上搜索。
1、单片机认知及其开发软件使用单片机认知及其开发软件使用项目1 单片机认知及其开发软件使用知识与能力目标熟悉单片机的基本结构组成、引脚的功能1掌握内部存储器的结构、用途、地址分配和使用特点2理解单片机时序的相关概念3掌握单片机最小应用系统构成4初步学会Keil与Proteus软件的使用5任务1.1 认知单片机及其编程语言1. 初识单片机2. 分析单片机硬件系统3.认知单片机编程语言1. Keil软件认知及使用任务1.2 初步使用单片机开发软件2. Proteus软件认知及使用项目1 单片机认知及其开发软件使用单片机 时钟电路 蜂鸣器 点阵跑马灯 按键 复位电路 实物运行视频任务1.1 认知单片机及
2、其编程语言1.1.1 初识单片机1.1.1 初识单片机单片微控制器I/O随机内存中央处理器端口只读存储器中断系统定时器/计数器CPUCPURAMRAMROMROM集成电路块T/C1.1.1 初识单片机控制功能强控制功能强可靠性高可靠性高应 用优 点工工业业业业控制控制结结结结构构简单简单简单简单家用家用电电电电器器智能化智能化仪仪仪仪器器 仪仪仪仪表表电电电电子玩具子玩具控制功能强控制功能强可靠性高可靠性高体体积积积积小小 价格低价格低MCS-51单片机内部结构框图 1.1.2 分析单片机硬件系统MCS-51单片机的内部结构11.1.2 分析单片机硬件系统 1CPU:CPU是中央处理器的简称,
3、是单片机的核心部件内存:4KB的ROM和256B的RAM23并行I/O接口:共有4个8位并行I/O接口定时器/计数器:2个16位定时器/计数器45中断控制:5个中断源和2个中断优先级6串行接口:异步工作方式的全双工串行通信接口单片机硬件系统单片机的引脚及其功能2.1.1.2 分析单片机硬件系统 1.1.2 分析单片机硬件系统 STC89C51 单片机电源引脚时钟电路引脚控制信号引脚I/O口引脚VCC VSSXTAL1 XTAL2P0、P1、 P2和P3RST/VPD/VPP1.1.2 分析单片机硬件系统 单片机最小系统电路。复位信号 RST一定要连接复位电路,外接晶体 引线端XTAL1和XTA
4、L2必须连接时钟 电路,这两部分是单片机能够工作所 必须的电路。引脚一定要连接高电平或低电平。除了电源和地线引脚外,以下引 脚信号也必须连接相应电路。1.1.2 分析单片机硬件系统 单片机最小系统是指单片机能进行正常工作的最简单电路。包括单片机、电源电路、时钟电路和复位电路,四者缺一不可。3.单片机最小系统 时钟 电路模块单片机 电路模块电源接口复位 电路模块1.1.2 分析单片机硬件系统 a)上电复位b)按键复位复位是指使单片机内部各寄存器的值变为初始状态。单片机复位的条件:当RST(9引脚)端出现高电平并保持两个机器周期以上。复位电路1.1.2 分析单片机硬件系统 时钟电路时钟电路中的电容
5、一般取值为30pF左右,晶振的振荡频范围一般为1.224MHz。在通常情况下,51单片机使用的晶振频率为6MHz或12MHz,在通信系统中常用11.0592MHz 。1.1.2 分析单片机硬件系统 1、振荡周期:为单片机提供时钟信号的振荡源的周期2、状态周期:一个状态周期等于两个振荡周期3、机器周期:一个机器周期为6个状态周期组成4、指令周期:一般为1个、2个或4个机器周期组成单片机的时序周期441.1.2 分析单片机硬件系统 单片机内部存储器 在单片机内部具有 数据存储器RAM和程序 存储器ROM两个内存存 储资源 。片内数据存储器又叫内 部RAM,也叫随机存取内存 ,主要用于数据缓冲和中间
6、 数据的暂存,同时这种内存 在使用过程中可随时进行写 入和读取信息。片内程序存储器 ROM主要是用来存放 计算机中所事先编制好 的程序和表格常数。 1.1.2 分析单片机硬件系统 51单片机内部有256个字节(B)的RAM,分为两部分:1、低128字节(单元地址00H7FH)RAM按用途可分为三个区域 :通用寄存器区(00H1FH) 位寻址区(20H2FH) 用户RAM区(30H7FH) 2、高128字节(单元地址80H0FFH)。 (一)片内数据存储器片内低128字节RAM结构图 1.1.2 分析单片机硬件系统 RS1RS0工作寄存器组号R0R7物理位元址00000H07H 01108H0F
7、H 10210H17H 11318H1FH注:单单片机复位后,RS0、RS1的状态为态为 00。1.1.2 分析单片机硬件系统 通用寄存器区地址为00H1FH,分为4组,每组8个单元,共32个单元,每组8个单元的符号为R0R7。CPU通过程序状态字寄存器(PSW)中的RS1和RS0的状态选定选用哪组寄存器组工作。1.1.2 分析单片机硬件系统 位寻址区地址为20H2FH的空间单元为位寻址区,这16个单元(共128位) 的每一位都有一个对应的地址。位寻址区的每一位都可当作软件触发器,由程序直接进行位处理。通常 可以把各种程序状态标志、位控制变量存于位寻址区内。用户RAM区地址为30H7FH的80
8、个单元空间用于供用户使用的RAM区。 凡是特殊功能寄存器字节地址能被8整除的单元均能按位 寻址。 1.1.2 分析单片机硬件系统 内部数据存储器高128字 节单元的地址为80H 0FFH,其间离散的分布 着若干个特殊功能寄存器 (简称SFR),专用于控 制、选择、管理、存放单 片机内部各部分的工作方 式、条件、状态、结果 。不同的SFR管理不同的硬 件模块,负责不同的功能 ,包括程序状态字寄存器 、累加器、I/O口锁存器 、定时器/计数器、串口 数据缓冲器及数据指针等 。片内高128字节RAMPC是一个16位的计数器,其内容为将要执行的指令地址,寻址范 围达64KB。PC有自动加1的功能,以实
9、现程序的顺序执行。PC没 有地址,是不可寻址的,因此用户无法对它进行读写。但在执行转 移、调用或返回等指令时能自动改变其内容,以改变程序的执行顺 序。 ACC简称A,是所有特殊功能寄存器中最重要、使用频率最高的 寄存器,常用于存放参加算术或逻辑运算的两个操作数中的一个,运 算结果最终都存放在A中,许多功能也只有通过A才能实现。B寄存器也是单片机内部特有的一个寄存器,主要用于乘法和除法 运算,也可作为一般寄存器使用。 1.1.2 分析单片机硬件系统 累加器ACC及B寄存器 程序计数器PCDPTR通常用于存放外部数 据存储器的存储单元地址。 1.1.2 分析单片机硬件系统 一个8位的特殊 功能寄存
10、器,用于 指出堆栈栈顶的地 址。数据被压堆栈 时,SP自动加1; 数据出栈时,SP自 动减1。 数据指针DPTR堆栈指针SP专用寄存器(16位)DPH(8位)DPL (8位)PSW(0D0H )D7D6D5D4D3D2D1D0位定义CyAcF0RS1RS0OVP位含义进位 标志辅助进位标 志用户自定义 位工作寄存 器选择位溢出 标志未定 义位奇偶 标志位地址0D7H0D6H0D5H0D4H0D3H0D2H0D1H0D0H1.1.2 分析单片机硬件系统 程序状态字寄存器PSW 程序状态字寄存器PSW(8位)是一个标志寄存器,用于存放指令运 行结果的状态信息。以供程序查询和判别。有些位在执行中硬件
11、自动设置 ,而有些位由用户自行设定。表1-5 寄存器复位状态态寄 存 器复 位 值寄 存 器复 位 值 PC0000HTMOD00H B00HTCON00H PSW00HTH000H SP07HTL000H ACC00HTH100H DPTR0000HTL100H P0P30FFHSCON00H IE0XX00000BSBUF不定 IPXXX00000BPCON0XXX0000B1.1.2 分析单片机硬件系统 I/O口寄存器 单片机内部有4个I/O口寄存器P0、P1、P2、P3,实际上就是 P0P3口所对应的I/O口锁存器,用于锁存通过端口的数据。 1.1.2 分析单片机硬件系统 51单片机芯
12、片中有4KB的片内程序内存单元,其地址为0000H0FFFH,其中地址为0003H002AH的单元在使用时是有特殊规定的。 地址为0000H0002H的3个单元是系统的启动单元,在单片机进入复位后,会自动从0000H单元开始执行指令程序。这3个单元并不能存放任何完整的程序,用户在使用时,必须在该单元存放一条无条件跳转指令,以便跳转到指定的程序地址处执行。 (二)片内程序存储器 表1-6 中断源地址分配表中断入口地址中断地址区间中断源 0003H0003H000AH外部中断0 000BH000BH0012H定时器/计数器中断T0 0013H0013H001AH外部中断1 001BH001BH00
13、22H定时器/计数器中断T1 0023H0023H002AH串行口中断1.1.2 分析单片机硬件系统 地址为0003H002AH的40个单元则被平均分为5段,每段8个单元,分别用作5个中断源的中断地址区。1.1.2 认知单片机编程语言 2311、机器语言是由机器能直接识别的由0和1组成的编码(通常用 十六进制数表示),也被称为机器指令。用机器指令编写的程序 称为机器语言源程序,它是机器所能理解和执行的,但是人们记 忆和读写都很困难。 2、汇编语言是一种用“助记符”和数字符号来表示机器指令的符号语言,是最接近于机器码的一种语言。但是它必须通过汇编 程序汇编成机器语言程序后,机器才能理解和执行。3
14、、语言(高级语言)是由标识符、常量、变量、运算符和分 隔符号等组成的一种具有良好的可读性、易维护性、可移植性 和硬件操作能力的编程语言。也是一种编译型程序设计语言, 具备汇编语言的功能。 单片机的编程语言ORG 0000H ;程序初始化入口地址LJMP MAIN ;程序跳入主函数MAIN中 ORG 0003H ;外部中断0程序入口地址LJMP INT_0 ;程序跳入中断子程序INT_0中ORG 000BH ;定时/计数器T0程序入口地址LJMP T_0 ;程序跳入中断子程序T_0中ORG 0013H ;外部中断1程序入口地址LJMP INT_1 ;程序跳入中断子程序INT_1中ORG 001BH ;定时/计数器T1程序入口地址LJMP T_1 ;程序跳入中断子程序T_1中ORG 0023H ;串口中断程序入口地址LJMP CK ;程序跳入中断子程序CK中ORG 0030H ;主程序入口地址MAIN: ;主程序部分 ;程序语句 ;程序语句DELAY: ;子程序部分 ;程序语句RET ;子程序返回INT_0: ;外部中断0子程序部分 ;程序语句RETI ;中断返回1.1.2 认知单片机编程语言 汇编语言1.1.2 认知单片机编程语言 C语言使用视频1.2.1 Keil软件