第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口 第一章 8086程序设计 第二章 MCS-51单片机程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口 第六章 计数器、定时器与接口 第七章 显示器与键盘接口 第八章 串行通信及接口 第九章 数模转换器和模数转换器接口
本章知识点 MCS-51 单片机的结构 MCS-51单片机程序设计 MCS-51单片机系统的程序设计
本章知识点 MCS-51 单片机的结构 MCS-51单片机程序设计 MCS-51单片机系统的程序设计
MCS-51 单片机的结构 MCS-51单片机采用程序存储器和数据存储器分别寻址的方式,程序存储器和外部数据存储器的寻址范围均为64K 如采用外部程序存储器,用信号-PSEN控制读入程序存储器中的程序或数据 访问程序存储器采用的指令: MOVC A,@A+PC MOVC A,@A+DPTR。
MCS-51 单片机的结构 内部数据存储器256个字节, 00-7FH的128个字节为通用数据存储器, 80-FFH的128个字节为特殊寄存器,是MCS-51单片机的累加器A,寄存器B,中断控制,片内外围电路如I/O口、定时器、串行接口所用的寄存器
MCS-51 单片机的结构 内部数据存储器00-7FH的结构
MCS-51 单片机的结构 外部数据存储器寻址范围为64K,包括外部数据存储器和I/O 通过数据指针指定外部数据存储器的地址 MOVX A,@DPTR MOVX @DPTR,A 采用间接地址指定外部数据存储器的地址 MOVX A,@R0/R1 MOVX @R0/R1,A
MCS-51 单片机的结构 MCS-51单片机的片内外围电路 4个并行I/O口P1、P2、P3、P4的操作通过对应的寄存器进行。 定时器采用TMOD、TCON、THX、TLX等寄存器。 串行接口采用SCON、SBUF等寄存器。 MCS-51单片机的有5个中断源,分别是2个外部中断、2个定时器中断和1个串行接口中断。
本章知识点 MCS-51 单片机的结构 MCS-51单片机程序设计 MCS-51单片机系统的程序设计
MCS-51单片机程序设计 程序设计方法 MCS-51单片机程序设计
程序设计方法 1.作程序流程图 根据题意,找出最合理、简便的解决方法并作程序流程图。流程图分粗略和详细两种,粗略流程图给出大致步骤,而详细流程图则给出每一步骤细节。对一些大问题,先给出粗略流程图以得出总体概念,再作详细流程图对每一步骤作具体描述;
程序设计方法 2.存贮单元分配 根据题意合理地分配程序和数据在存贮器中地址。存贮单元分配合理,可使编程简单和避免程序出错。应避免程序区与数据区相互混合、交叉。
程序设计方法 3.源程序编制 将流程图中每步所规定的操作用程序语言实现,可选用不同指令,各人所编程序可能不同。程序质量衡量标准为:程序短,占用存贮单元少,运行时间短,而且程序结构合理。
MCS-51单片机程序设计 简单程序 设计MCS-51程序时,需注意内部存储器访问和外部存储器访问 源程序 标号 操作码 操作数 ORG 4000H MOV A,#00H MOV 30H,A INC A MOV DPTR,#4100H MOVX @DPTR,A INC DPTR MOV A,R2 HE: SJMP HE 把直接数00H送到内部RAM30H单元中,把直接数01H及02H分别送到外部RAM4000H、4001H单元中。
MCS-51单片机程序设计 分支程序常用的指令
MCS-51单片机程序设计 分支程序 在寄存器R2中存有数码0~F,要求将其转换为ASCII码,并存于外部存贮器 4100H单元中
MCS-51单片机程序设计 利用散转指令实现多分支程序的方法 将直接转移指令如AJMP、LJMP构成转移表,将此表的首地址装入数据指针DPTR,把标志单元的内容乘以转移指令表所采用的直接转移指令的长度(AJMP为2、LJMP为3),并传送到累加器A中,然后调用JMP@A+DPTR指令实现散转。
MCS-51单片机程序设计 利用地址偏移量表实现多分支程序,适用于各个处理程序的目的地址均在同一页的情形 先将处理程序的目时地址减去表的首地址(应在同一页内,不大于256字节)构成一偏移量表,将表的首地址装入数据指针DPTR,利用查表指令MOVC A,@A+DPTR求出偏移量,然后利用JMP@A+DPTR实现散转。
MCS-51单片机程序设计 利用目的地址表实现多分支程序 将目的地址直接转成目的地扯表,然后利用查表的方法根据标志单元的内容求出目的地址,将此地址装入数据指针DPTR,将累加器A清零,再利用JMP @A+DPTR实现散转利用地址偏移量表实现多分支程序,适用于各个处理程序的目的地址均在同一页的情形.
MCS-51单片机程序设计 循环程序 将内部RAM的40H ~4FH单元置为00H~0FH, 以R2作为循环计数器
MCS-51单片机程序设计 循环程序 把内部RAM40H ~4FH的内容传送到外部数据存储器的4100H ~410FH单元内。
MCS-51单片机程序设计 循环程序 将外部数据存储器中4100H ~410FH单元置为00H~0FH 以内部RAM 32H作为循环计数器
MCS-51单片机程序设计 循环程序 将4100H ~410FH单元的内容传送到4200H开始的单元中。 以内部RAM 32H作为循环计数器, 用30H、31H作为4200H的地址计数器
MCS-51单片机程序设计 查表程序 在R2寄存器存有数0~9的BCD码,利用查表程序求其平方值,并存于4100H单元中。 先将0~9平方值的BCD码存于程序存贮器中,标号为TABLE。
本章知识点 MCS-51 单片机的结构 MCS-51单片机程序设计 MCS-51单片机系统的程序设计
MCS-51单片机系统的程序设计 专用系统的程序构成 MCS-51单片机专用系统程序的设计
专用系统的程序构成 一个完整的系统程序的结构 专用系统的程序构成 一个完整的系统程序的结构 专用系统的系统程序必须具备一个完整的结构,保证在系统上电时能自动启动,并根据系统硬件的要求执行一定功能
MCS-51单片机专用系统程序的设计 MCS-51单片机具有64K程序存储器和64K数据存储器的寻址能力。 数据存储器和I/O设备统一编址均在64K的范围内。 复位后的程序指针为0000H,因此在设计系统硬件时必须将程序存储器的地址安排在0000H开始的存储器,使其与系统复位后的程序指针保持一致。同时在设计系统程序时,也必须将程序的起始地址安排在0000H开始的单元中。
MCS-51单片机专用系统程序的设计 MCS-51单片机的堆栈安排在内部RAM的00H~7FH单元。 由于00H~1FH为寄存器组,20H~2FH为位操作单元,此外还需在30H以后的地址安排部分工作单元,因此堆栈通常只能安排在大于30H的内部RAM中。 MCS-51单片机的堆栈操作采用了在数据压入堆栈时,堆栈指针加大,而数据弹出堆栈时,堆栈指针减小的方法,因此可将堆栈指针设置为在内部RAM中堆栈的最小地址减1。 应估计子程序和中断程序使用的数量和数据压入弹出堆栈的数量,以确定堆栈大小。如堆栈估计不足将导致程序无法执行,形成死机。
MCS-51单片机专用系统程序的设计 MCS-51单片机采用5个中断:即外部中断0、定时器T0中断、外部中断1、定时器T1中断和串行口中断, 中断服务程序入口地址分别为 0003H、000BH、0013H、001BH和0023H。 如程序中使用上述中断,就在上述地址内存放相应的转移指令,在执行中断程序时,通过这5个地址的转移指令跳转到相应的中断服务程序中。 地址0000H到0003H之间只有3个字节,因此启动地址通常只能安排转移指令,使程序在启动后转移到主程序 。