与运算器相关的寄存器(3个)1、累加器ACC,8位。提供操作数,存结果。2、寄存器B,8位。主要用于乘、除法运算。3、程序状态字寄存器PSW,8位。P:奇偶标志位。ACC中结果有奇数个1时P=1,否则P=0。OV:溢出标志位。有溢出时OV=1,否则OV=0;RS1、RS0:当前工作寄存器组选择位;F0:用户标志位,由用户自己定义;AC:辅助进位、借位标志;CY:进位、借位标志。有进位、借位时CY=1,否则CY=0;D7D6D5D4D3D2D1D0CyACF0RS1RS0OV/P第29页,共48页,星期日,2025年,2月5日寄存器观察窗口(ProjectWindow)在调试状态下,选择主菜单View下的ProjectWindow选项,可打开或关闭工程项目窗口。工程项目窗口中的寄存器页(Regs)给出了当前的工作寄存器组(r0~r7)和系统寄存器的值。系统寄存器组有一些是实际存在的寄存器如a、b、sp、dptr、pc、psw等特殊寄存器,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。KeilC51中的第30页,共48页,星期日,2025年,2月5日寄存器及其存储器映射如下图:第31页,共48页,星期日,2025年,2月5日每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示。用鼠标单击然后按下F2键,即可修改该值。在执行程序的过程中可以看到,这些值会随着程序的执行发生相应的变化。第32页,共48页,星期日,2025年,2月5日思考:1、R2共变化了几次?R2的这几个数值分别对应哪几个存储单元?2、通过什么可以切换当前工作寄存器组?切换当前工作寄存器组有什么用处?我来演示ORG0000HMOVR2,#30HMOVPSW,#08HMOVR2,#45HMOVPSW,#10HMOVR2,#91HMOVPSW,#18HMOVR2,#0C2HEND打开一个含汇编语言文件的工程项目,修改程序,编译通过。调试,单步运行,查看R2、PSW、片内数据存储器的变化。第33页,共48页,星期日,2025年,2月5日思考:1、单片机的位寻址区主要有两大块,它们分别为哪两大部分?2、位地址与字节地址是如何区分的?我来演示ORG0000HCPL00HCPL7FHCPL80HCPLP0.1CPLCMOV20H,#34HMOV20H,CEND打开一个含汇编语言文件的工程项目,修改程序,编译,调试,单步运行,查看并讲述片内数据存储器、P0口的变化。第34页,共48页,星期日,2025年,2月5日第1页,共48页,星期日,2025年,2月5日单片机的存储器有哪些类型?单片机存储器的地址空间如何分配?如何对不同的存储器单元空间进行检查?涉及问题第2页,共48页,星期日,2025年,2月5日单片机的存储器采用哈佛体系结构。程序存储器和数据存储器互相独立,有各自的寻址机构和寻址方式。通用微机的存储器结构采用普林斯顿体系结构。只有一个存储器逻辑空间,可随意安排ROM或RAM,访问时用同一种指令。单片机的存储器有哪些类型?参见教材《单片机的C51应用程序设计》第5、6页第3页,共48页,星期日,2025年,2月5日内部存储资源外部扩展存储资源片内程序存储器片外程序存储器片内数据存储器片外数据存储器从物理地址看分两大类、4个存储地址空间:参见教材《单片机的C51应用程序设计》第6页第4页,共48页,星期日,2025年,2月5日程序存储器用于存放程序及表格常数。在单片机应用时,只能读,不能写。数据存储器用于存放程序运行所需要的给定参数和运行结果。在单片机应用时,既能读,又能写。第5页,共48页,星期日,2025年,2月5日KeilC51的Memory窗口能显示各种存储区的内容。如何对不同的存储器单元进行检查?参见教材《单片机的C51应用程序设计》第316页单片机存储器的地址空间如何分配?不同的单片机,存储器的地址空间有所不同。第6页,共48页,星期日,2025年,2月5日程序存储器参见教材《单片机的C51应用程序设计》第5页、第59页以8051为例存储容量:64KB地址范