620 likes | 736 Views
模块 1 数据与存储器的操作训练. 课题 1 认识单片机. 任务 1 单片机的应用实例与 MSC-51 单片机引脚功能. 任务 2 MSC-51 单片机最小应用系统. 课题 2 存储器简介及操作训练. 任务 1 程序存储器( ROM )空间分配法. 任务 2 数据存储器( RAM )操作训练. 一、认识单片机. 1 、单片机是一种集成电路芯片。 2 、芯片中的主要部件有:运算器、控制器、 存储器、各种输入 / 输出接口 3 、其组成和功能上已经具有了计算机系统 的特点,因此称之为单片微型计算机,
E N D
模块1 数据与存储器的操作训练 课题1 认识单片机 任务1 单片机的应用实例与MSC-51单片机引脚功能 任务2 MSC-51单片机最小应用系统 课题2 存储器简介及操作训练 任务1 程序存储器(ROM)空间分配法 任务2 数据存储器(RAM)操作训练
一、认识单片机 1、单片机是一种集成电路芯片。 2、芯片中的主要部件有:运算器、控制器、 存储器、各种输入/输出接口 3、其组成和功能上已经具有了计算机系统 的特点,因此称之为单片微型计算机, 简称单片机。
二、单片机产品近况 (1)51系列单片机 其产品有:AT89C51/52 AT89S51/52等 51系列单片机是最容易解密的单片机系列之一。 迄今为止,最有效的加密方法就是烧断51单片机的数据总线 (例如烧断AT89C51的32、33、34脚等等),其解密价格 通常是普通价格的十几倍以上,随着烧断总线数量的增加, 有些甚至根本无法解密 。
二、单片机产品近况 (2)ATMEL公司的AVR单片机 AVR早期的单片机: ATTINY12/13/15、AT90S2313、 ATMEGA8/16/64等,教容易解密。 最新的几款AVR单片机 : ATTINY2313、ATMEGA168/169 及最新推出的ATMEGA1280/2560等 , 是目前最难解密的单片机之一 。
二、单片机产品近况 (3)MicroChip单片机
二、单片机产品近况 (4)Motorola公司的68系列
三、单片机的应用实例 1、智能控制
三、单片机的应用实例 2、消费类数码产品
三、单片机的应用实例 3、军事技术应用
三、单片机的应用实例 4、工业控制
三、单片机的应用实例 5、宣传指示应用
认识单片机 相关知识 一、进制数 • 十进制数是人们习惯使用的进制 • 计算机只能“二进制数” • 为了书写和识读方便,计算机程序需要用十六进制 表示。
认识单片机 相关知识 二、常用数制 1、十进制数(后缀为D,如10D,一般省略后缀) 2、二进制数(后缀为B,如10010101B) • 只有0和1两个数码 • 基数为2,采用“逢二进一”的原则 • 各位上的权均是2的某次幂。 3、十六进制数(后缀为H,如1AH) • 十六进制数中出现的数码为0、1、……、9、A、B、 C、D、E、F共16个 • 基数为16,采用“逢十六进一”
认识单片机 相关知识 三、进制间的转换 1、十进制数转换为二进制数 • 除以2取余数,倒计 例1:将十进制数73转换为二进制数 73 = 01001001B 2、二进制数转换为十进制数 • 按权展开,权为“2” 例2:将二进制数101101B转换为十进制数
认识单片机 相关知识 三、进制间的转换 3、十进制数转换为十六进制数 • 除以16取余数,倒计 例3:将十进制数86转换为十六进制数 86 = 56H 4、十六进制数转换为十进制数 • 按权展开,权为“16” 例4:将十六进制数9AH转换为十进制数
认识单片机 相关知识 三、进制间的转换 5、二进制数转换为十六进制数 • 8421码 例5:将二进制数11001010转换为十六进制数 8 4 2 1 8 4 2 1 11001010B=0CAH 1 1 0 0 1 0 1 0 B
认识单片机 相关知识 三、进制间的转换 6、十六进制数转换为二进制数 例5:将十六进制数0D9H转换为二进制数 解: D=13=8×1+4×1+2×0+1×1=1101B 9=8×1+4×0+2×0+1×1=1001B 0D9H=11011001B
认识单片机 相关知识 四、位与字节 ⊙位:指二进制数的位,位是数的最小单位。 1或0表示一个位 ⊙字节:8位二进制数成为一个字节。 字节是最基本的数据单位。 ⊙字:两个字节为一个字,即16个位 例如: 01101001B表示一个字节,1AH表示一个字节, 0B2C5H表示两个字节,即一个字 。
单片机硬件结构 T0 T1 时钟电路 ROM RAM 定时计数器 CPU 并行接口 串行接口 中断系统 TXD RXD INT0 INT1 P0 P1 P2 P3 • 并行I/O口:4个8位的I/O口P0、P1、P2、P3。 • 中央处理器CPU:8位,运算和控制功能 • 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。 • 串行口:一个全双工串行口。 • 中断控制系统:5个中断源(外中断2个,定时/计数中断2 个,串行中断1个) • 时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ • 内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。 • 定时/计数器:两个16位的定时/计数器,实现定时或计数功能。 结构框图
一、51单片机的基本结构 • 中央处理器CPU:8位,运算和控制功能 • 内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。 • 内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。 • 定时/计数器:两个16位的定时/计数器,实现定时或计数功能。 • 并行I/O口:4个8位的I/O口P0、P1、P2、P3。 • 串行口:一个全双工串行口。 • 中断控制系统:5个中断源(外中断2个,定时/计数中断2 个,串行中断1个) • 时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ
二、MCS-51单片机信号引脚简介 1234567891011121314151617181920 4039383736353433323130292827262524242221 8031 8051 8751 89C51 EA RXD/TXD/INT0/ INT1/ T0/ T1/WR/ RD/ 5、EA:访问程序存储控制信号 PSEN 6、PSEN:外部ROM读选通信号 P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 VCC 1、电源线:VCC(+5V)、VSS(地) P0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P3口线的第二功能 2、振荡电路:XTAL1、XTAL2 3、复位引脚:RST 4、并行口:P0、P1、P2、P3 RST P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 ALE P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0 7、ALE:地址锁存控制信号 XTAL2XTAL1 VSS
1234567891011121314151617181920 4039383736353433323130292827262524242221 8031 8051 8751 89C51 并行输入/输出电路结构 (1)特点: P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 • 4个8位并行I/O口:P0,P1,P2,P3; • 均可作为双向I/O端口使用。 P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 • P0:访问片外扩展存储器时, 复用为低8位地址线和数据线 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0 P2:高8位地址线。 P1:双向I/O端口 P3:第二功能
1 P1. 0 0 1 0 0 1 1 P1. 1 1 0 1 0 1 P1. 2 1 1 1 0 P1. 3 1 1 0 0 P1. 4 0 P1. 5 1 1 1 P1. 6 1 0 1 0 0 1 P1. 7 1 1 WR RD (2)输出举例 +5V 指令1:MOV P1,#00H ALE 0 指令2:MOV P1,#0FFH 指令3:MOV P1,#0AAH 指令4:CLR P1.0 指令5:SETB P1.0
P3.4 1 P3. 0 1 1 P3. 1 1 1 P3. 2 1 1 × 1 × × 1 1 × 1 × 1 × × 1 1 × +5 V S0 1 1 P3. 3 1 P3. 4 1 P3. 5 1 1 P3. 6 1 1 W 4.7 k 1 1 P3. 7 WR RD (3)输入举例 你知道P3.4对应寄存器A哪一位吗? 读端口: MOV P3, #11111111B MOV A, P3 89C51 ALE 0 1 寄存器A 注:当I/O端口作为输入使用时,需先向端口写入“1”,使内部的FET截止,再读入引脚的状态。 你知道这是为什么吗?
三、单片机的最小应用系统 任务2
任务2 当 =1(即接高电平)时,内部地址为0000H~0FFFH, 外部地址为1000H~0FFFFH。 当 =0(即接低电平)时,内部ROM就不起作用了,此 时,外部ROM的地址变成0000H~0FFFFH。 三、单片机的最小应用系统 1、电源电路 Vcc(40脚):接电源+5V Vss(20脚):接地 2、程序存储器选择电路
三、单片机的最小应用系统 任务2 3、时钟电路 时钟引脚(18、19脚)外接晶体时与片内的反相器构成一 个振荡器,它提供单片机的时钟控制信号。 CPU时序
三、单片机的最小应用系统 任务2 4、复位电路 ☆复位原理 通常为了保证应用系统可靠地复位,复位电路应使引脚 RST保持10ms以上的高电平。只要引脚RST保持高电平,单片 机就复位。 ☆复位方法 复位电路可分为上电自动 复位和手动复位两种。 谁知道 复位电路怎么起到复位的作用? 复位状态
CPU时序 任务2 Tosc=, 为晶体振荡器的频率 ☆振荡周期Tosc 外部晶体振荡电路经XTAL1脚输入的脉冲周期定义为振荡周期。 ☆机器周期Tcy 一个机器周期总共有12个振荡周期。 即Tcy=12Tosc
CPU时序 任务2 ☆指令周期Torder 指令周期是最大的时序定时单位,执行一条指令所需要 的时间称为指令周期。 单周期指令 双周期指令 四周期指令 Torder= Tcy Torder= 2Tcy Torder= 4Tcy
CPU时序 任务2 因为 =12MHZ 所以振荡周期Tosc= =1/12us 例如:如果晶体振荡器的频率为12MHz,那么其振荡周期、 机器周期为多少?执行一条双周期指令需要多少时间? 解: 机器周期Tcy=12Tosc=1us 一条双周期指令所需时间Torder=2Tcy=2us
复位状态 任务2 ◇复位后,单片机从程序存储器的0000H单元开始执行程序。 ◇单片机复位后堆栈寄存器SP=07H, P0-P3输出高电平,其他寄存器全部清零,不影响RAM中的内容。
四、存储器 1234567891011121314151617181920 4039383736353433323130292827262524242221 1234567891011121314 1234567891011121314 2827262524232221 201918171615 2827262524232221 201918171615 1234567891011121314 1234567891011121314 2827262524232221 201918171615 2827262524232221 201918171615 EPROM EPROM 片内 ROM RAM 6264 RAM 6264 2764 2764 片内 RAM 4K 64K 8031 8751 8051 89C51 64K 256B(字节)
0FFFH 0FFEH . 002BH . . FFFFH 中断5 0023H 中断4 定时器1中断 串行口中断 001BH 中断3 0013H (64K) 定时器0中断 中断2 000BH 0002H 中断1 外部中断0 外部中断1 0003H 0001H 0FFFH 0FFFH 0000H是程序执行 的起始单元,在这三 个单元存放一条无 条件转移指令 外部 内部 (4K) (4K) EA=1 EA=0 0000H 0000H 0000H 8位 0000H 1、程序存储器(ROM) 中断入口地址 (PC) 程序存储器 程序存储器资源分布
R7 R0 R7 R0 7FH 30H R7 R0 R7 R0 2FH 7F 78 07 00 FFFFH 数据缓冲区 /堆栈区 可位寻址区 20H 工作寄存器区 17H 0FH 1FH 07H (64K) 1 1 18H~1FH 第 3 区 3区 08H 00H 18H 10H 2区 0FFH 外部 0 1 第 1 区 08H~0FH 80H (高128B) 1区 7FH 1 0 0 0 第 2 区 第 0 区 00H~07H 10H~17H 内部 片内RAM地址 (低128B) RS1 RS0 寄存器区 0000H 00H 0区 2、数据存储器(RAM) 工作寄存器区选择位RS0、RS1 专用寄存器 RAM 数据存储器
高128个单元 ☆离散分布有21个特殊功能寄存器SFR。 ☆11个可以进行位寻址。 ☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。
(1)累加器ACC(通常用A表示) 主要专用寄存器 功能:在进行算术和逻辑运算时,用于存放数据和运算 结果,是工作最频繁的寄存器。 例: MOV A, #2 ADD A, #5 (2)乘法、除法辅助寄存器B 功能:主要用于乘法、除法指令。 例: MUL AB DIV AB
主要专用寄存器 (3)程序状态字寄存器PSW 功能:用于存放程序运行的状态信息,以便查询和判断。 • CY(PSW.7):进位标志位。在进行加法(或减法)运算时, 若运算结果最高位有进位或借位,则CY自动置“1”,否则CY 置“0”,在进行布尔操作运算时,CY(简称C)作为布尔处理 器。 • AC(PSW.6):辅助进、借位。当进行加法或减法时,若低 4位向高4位有进位(或借位)时,AC被置“1”,否则AC被 置“0”。
主要专用寄存器 (3)程序状态字寄存器PSW • FO(PSW.5):用户标志位。 • OV(PSW.2):溢出标志位。溢出标志位,当运算结果溢 出时OV为“1”,否则为“0”,此标志位反映了运算结果是否 溢出。 • PSW.1:未定义位。 • P(PSW.0):奇偶校验位。用来表示ALU结果中二进制数 位“1”的个数的奇偶性。当累加器A中“1”的个数为奇数 时,P置“1”,否则P置“0”。
主要专用寄存器 (3)程序状态字寄存器PSW • RS1(PSW.4)、RS0(PSW.3):工作寄存器组选择位。用来 选择当前工作的寄存器组。RS1、RS0的内容与工作寄存 器区的对应关系如表2-1所示。
主要专用寄存器 (4)数据地址指针DPTR 功能:可以用来访问外部数据存储器中的任一单元,也 可以作为通用寄存器来用。分为DPH(高8位)和DPL (低8位)两个寄存器。一般用来存放16位地址值。
汇编语言知识 一、指令的汇编语言格式 一条汇编语言指令中最多包含4个区段 [标号:] 操作码 [操作数] [;注释] NEXT: MOV A , R0 ;A←(R0) ◇标号:用来说明指令的地址,是一个名字。标号可以由数字、字母和下划线组成,但是首字符必须是字母。语句标号以冒号结束。操作码、寄存器等保留字不能做标号。 ◇操作码:用指令助记符或伪指令助记符表示,用来规定语句要执 行的操作。 ◇操作数:用于向指令提供数据或地址。一条语句中可以有1~3个操 作数也可以没有操作数。 ◇注释:对语句的解释,不属于语句的功能部分,用“;”开头。
汇编语言知识 二、常用汇编语言符号及其意义
汇编语言知识 (1)ORG指令:程序开始指令 三、新指令剖析 格式:ORG 地址(用十六进制表示) ORG 0000H LJMP START ORG 0030H START: LCALL DELAY NOP LJMP START DELAY: NOP RET END 功能:规定其后的目标程序或数据块 的起始地址。 (2)END指令:程序结束指令 功能:仅用于标示程序的结束,END 后面的所有程序将无效。 (3)JMP指令:跳转指令 格式:LJMP 标号 AJMP 标号 SJMP 标号
汇编语言知识 三、新指令剖析 (4)CALL指令:调用子程序指令 ORG 0000H LJMP START ORG 0030H START: LCALL DELAY NOP LJMP START DELAY: NOP RET END 格式:LCALL 标号 ACALL 标号 例: LCALL DELAY 执行“LCALL DELAY”的结果 是执行一个名为“DELAY”的子程序 模块(即从“DELAY:”到“RET”范 围内的所有语句)。 (5)RET指令:子程序返回指令
汇编语言知识 四、寻址方式 (1)立即寻址 立即寻址方式是直接在指令中给出操作数,即操作数包 含在指令中。一般把指令中的操作数称为立即数。 例如:MOV A, #0E8H ●数据作为立即数操作时,前面必须加“#”;
汇编语言知识 四、寻址方式 (2)直接寻址 指令中的操作数直接以单元地址形式出现。 例如:MOV A,50H;将50H单元中的数据传送到A里面 MOV21H,30H;将30H单元中的数据传送到21H单元里面
汇编语言知识 四、寻址方式 (3)寄存器寻址 寄存器寻址对选定的8个工作寄存器R0~R7、累加器A、 寄存器B、地址指针DPTR和布尔处理器的位累加器C进行操作, 也就是操作数在寄存器中。 例如: MOV P1,R4 CLR A ;将A清零 MOV A,B