是实施人工.docx
- 文档编号:5653911
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:11
- 大小:79.49KB
是实施人工.docx
《是实施人工.docx》由会员分享,可在线阅读,更多相关《是实施人工.docx(11页珍藏版)》请在冰豆网上搜索。
是实施人工
第4章控制系统的大脑-软件(控制程序)的构建基础
第6讲内容提示√√√4.4汇编语言指令分析
4.5从指令到程序设计
结构和数制转换类汇编语言程序设计
4.7主体程序结构及构造方法
第4章控制系统的大脑-软件(控制程序)的构建基础
问题:
(1)怎样为系统构建控制程序?
考虑几个具体问题:
构建系统程序需要哪些步骤或过程?
单片机
(2)怎样才能应用51机内部资源?
(3)如何验证程序运行的状态与结果?
(4)单片机应用系统从研发到产品如何过渡的?
第4章控制系统的大脑-软件(控制程序)的构建基础
4.1系统开发条件及开发平台的建立
Ø方提供的软件开发平台的。
Ø计算机只认识二进制数。
计算机程序是由软件开发人员的源程序过编译、连接生成CPU能识别的二进制代码。
Ø还为软件开发人员提供了程序调试工具,称为
,可用它进行单步、断点、连续运行等方式对程序进行,运行结果可以相应窗口中观察。
Ø调试程序的目清除程序中的逻辑错误(BUG),工作量巨编程工作的重要环节,绝不能省略。
第4章控制系统的大脑-软件(控制程序)的构建基础Ø传统方法是借助于仿真机或开发机。
Ø开发系统的本质是:
为你提供一个与你的目标板上一样的单片机,只是这个单片机可以通过开发软件来控制,想停就停,想动就动,想在哪里停都可Ø停止运行时,各寄存器的值都在屏幕上,由你判断运行结果是时程序不能运行到你所指令的地址,而这个地址又是你希望则你的这段程序必然有逻辑错误。
Ø试想,如果你没有进行程序调试这一工作过程,直接将程序注入单片机系统内,运行时出现意外,这个错误就难找出来了。
而借助于开发系统就容易多了。
第4章控制系统的大脑-软件(控制程序)的构建基础
训练题:
4-1在你的计算机上安装一个MCS-51系列单片机的编译系统,从它自带的演示程序中找一个汇编程序,对它进行编译、修改、简单调试、建立工程式项目、保存等练习,熟悉编译系统的工作环境,为后面学习汇编语言,对程序的软件部分进行仿真做准备。
第4章控制系统的大脑-软件(控制程序)的构建基础
4.2从机器码-汇编语言-到高级语言:
C51
机发明之初,程序是由编程者直接输入CPU能识别的二进这是计算机最原始、最低层的编程语言。
工作量巨大,效,于专业计算机软件人员应用,不利于计算机的发展和普及出现了计算机汇编语言和接近人的思维表达方式的高级语言
第4章控制系统的大脑-软件(控制程序)的构建基础汇编语言是用助记符和操作数表达指令的计算机语言。
指令直对CPU寄存器的操作,对计算机的硬件操作的透明性是它,因此也需要编程者对计算机硬件有充分的理解,从编程者所处的高度而言属于低级语言范畴。
语言因CPU系列指令不同,如PC机为8086汇编语言,单片机都有自己的汇编语言,如51机、MCS-96系列、系因此汇编语言是不能移植的,除非有供汇编语言互换方软件(难)。
第4章控制系统的大脑-软件(控制程序)的构建基础高级语言采用接近人的语句表达编程者的意思,容易接受,编具体CPU,从编程者所处的高度而论,称这为高级语言。
具有良好的移植性。
这使资源共享成为可能。
其基本单位语句,具有很强的表现能力。
在函数库支持下,能够完成各种复杂的数学和逻辑运算。
以最“+”、“-”、“×”、“÷”运算为例,编程是再简单不了。
用汇编语言编程,要考虑正负号、数据范围等诸多因素。
第4章控制系统的大脑-软件(控制程序)的构建基础与单片机相关的高级语言主要有BASIC和C语言。
C版本的C51的问世具有划时代的意义。
最流行的版本是KeilC51。
它们是专为51系列设计的,与ANSI和库函数方面有少许差别。
一些不适用于嵌入式系统应用的库数包含到C51编译器中。
同时扩充一定数量的非ANSI标准库函。
C51源文件编译时先将C语言翻译成汇编语言,再进一步生成51机的指令代码。
程序界面你可以打开CPU窗口,看到汇编语言程序,了解将C语言语句转换成汇编语言的“习惯”。
第4章控制系统的大脑-软件(控制程序)的构建基础高级语言大大加速了单片机应用系统的开发进程。
那么汇编语言的地位如何?
优势在于工业控制与检测低层层面上的应用,而这些应用系要对各种接口器件进行透明操作,汇编语言将这种透明表现,具有指向哪,操作到哪,看到哪的效果。
单片机原理时,最佳的还是汇编语言。
外汇编语言写的程序其代码量要远低于高级语言,所以系统的运行速度必然高语言编写的系统,尤其对接口器件的驱动方面。
第4章控制系统的大脑-软件(控制程序)的构建基础所以,在系统中实时性要求特别高部分都还采用汇编语言编程,形成C混合编程系统。
编译器支持这种混合语言源程序的编译。
从学习效果上讲,C51是为懂汇编语言的人设计的。
将以汇编语言程序设计为主线,同时尽量给出对应的C51函C语言做系统开发打基础。
第4章控制系统的大脑-软件(控制程序)的构建基础
4.3STC系列机片内存贮器及特殊功能寄存器
4.3.1STC系列片内存贮器
(一)STC系列片内数据存储器RAM
计算机科学的基本计数单位。
位(Bit):
二进制数的一位(空间);
字节(Byte):
8位二进制数组成的数,称为1字节(Byte);字(Word):
单片机计数中称2字节二进制数长度的数称为1字()。
图中的LSB表示最低位,MSB表示最高位。
第4章控制系统的大脑-软件(控制程序)的构建基础位(Bit)、字节(Byte)、字(Word)之间的关系如图4-1所示。
第4章控制系统的大脑-软件(控制程序)的构建基础单片机常用16进制数,如8AH。
直观看出操作指令的意图或结果。
二进制数(如10001010B)更有优越,只是数字长度太长。
也可用十进纯粹意义的数(D或省略),编译系统一般都支持混合数字编程。
对16进熟练到十进制水平。
进制系统中,每个位中只有0和1两种情况,当一字节中的所有都为,字节数值最小为00H,当一个字节中的所有位都为1时,字最大为,因此:
一个字节最大能表示的数为FFH=255,共可示28=256地址线的宽度为8位,则有256个不重合地址;
第4章控制系统的大脑-软件(控制程序)的构建基础一个字最大能表示的数为FFFFH=65535,共可表示216=65536或表示65536种状态。
如果地址线的宽度为16位,则有
65536(64K)个不重合地址。
51机的地址总线为16位,故可寻址的围为。
:
当两个字节组成一个字时,字的高8位应升级为D8~D15。
字排D0~D15。
计算机科学中数的排序常常是从0开始而不从1开始,给便利,要习惯它。
列单片机片内RAM的容量最少也为512字节,多出256的单元将视为片外数据存储器单元。
这样STC系列就与标准51机存储器结构就。
第4章控制系统的大脑-软件(控制程序)的构建基础图4-2看出,51机程序存储器、内、外部数据存储器地址空间是可以重叠的。
CPU如何处理重叠问题
?
-软件(控制程序)的构建基础
RD存储器期间,PSEN信号有效;访问外部数据存储器时,
,CPU根据指令代码的不同,有选择地使上述三个信号有同物理空间存储器的数据交换,不会混乱。
2.51机对程序存储器、内部、外部数据存储器寻址的指令不同。
程放指令代码外,常常也将处理数据的数表存在其中,可以通过表格数据。
程序存储器区读取数据用MOVC,外部数据存储器用MOVX数据存储器用MOV。
第4章控制系统的大脑-软件(控制程序)的构建基础
3.片内数据存储器低、高端128字节,SFR三个区同用MOV指令助采用不同的寻址方式,指定不同的物理空间,完成数据操作。
因此必须关注各类存储器的用途、结构、寻址命令寻址只有给出正确反映希望的指令及寻址方式命令,单片机才能给出正确的执行结果,单片机在这里扮演的是忠实奴仆角色,听话,但别指望他能有任何有益的提示。
第4章控制系统的大脑-软件(控制程序)的构建基础
4.3.251机片内数据存储器
STC系列片内数据存储器与51机完全相同,故只讨论51。
数据存储器不是完全提供给用户使用的,要除去系占分,才是真正的用户使用区。
RAM根据用途可划分为工作寄存器组和用户数据区。
第4章控制系统的大脑-软件(控制程序)的构建基础
1.工作寄存器组
区域地址从00H~1FH共32B(字节)单元。
他为CPU提供4个组,每组含8个8位寄存器,编号为R0~R7相同,但于不同物理空间。
R0~R7是最常用的寄存器,提供4组是因为1组往往不够用。
工作区的切换通过CPU执行一条改变程序状态字PSW的第3、4位(RS0,RS1指令而实现的,(见表4-1)。
不论工作寄存器处在哪一组们的名称R0~R7不变。
第4章控制系统的大脑-软件(控制程序)的构建基础
第4章控制系统的大脑-软件(控制程序)的构建基础
2.用户数据区
又分为可位寻址和不可位寻址区。
可位寻址区地址从20H~2FH共有16个字节单元。
CPU对这16个单元,不仅节为单位寻址,8位并行操作,而且也能以位为单位寻址,即按位进“置位”、“复位”操作。
字节共有16×8=128个位地址。
位地址从字节地址为20H的最低位始,到2FH的最高位(MSB),顺序生成00H~7FH共128个位地址见表加上SFR的高端128个位地址(C语言应用时可定义128个位变量),51机共256个位地址正好为8位二进制数的最大地址寻址范围。
注意:
外部数据存储器均不可位寻址。
第4章控制系统的大脑-软件(控制程序)的构建基础可位寻址区和不可位寻址区的区别?
于字节是否再可细分为位来操作。
可位寻址区是51机的宝贵资源,他相当于将16个字节空间扩展为128个位空间,而对以逻辑操作和特的单片机来说,使用位的频率非常高。
位寻址区常称为数据缓冲区,对51机来说,这部分区域范围为30H~7FH对52机可达到FFH。
在单片机编常用的中断、子程序(调用)等技术手段,需要一定容量RAM空间的殊数据,称为堆栈区,须占用单片机内的RAM空间。
第4章控制系统的大脑-软件(控制程序)的构建基础
4.3.3STC系列单片机片内特殊功能寄存器
述
单片机编程的精华在于:
①片上资源的应用;
②中断的应用;
③结构化程序设计方法的应用。
片上资源主要指:
定时/计数器,外部中断管理器、异步串行口。
所有的片上都是通过指令对单片机内的特殊功能寄存器(SFR)组中对寄存器的设置实现的。
第4章控制系统的大脑-软件(控制程序)的构建基础特殊功能寄存器(SFR,即SpecialFunctionRegisters是对能模块(如并行I/O端口、串行口、定时器/计数器、中断控制)行管理、控制、监视的特殊寄存器(组)。
SFR必须用直接寻址指令访问(读/写)。
其兼容机,片内有128字节的特殊功能寄存器单元。
特殊功能寄存器列在表4-3中,含盖标准51机的所有特殊功能寄存器内
第4章控制系统的大脑-软件(控制程序)的构建基础
第4章控制系统的大脑-软件(控制程序)的构建基础
第4章控制系统的大脑-软件(控制程序)的构建基础51机与通用微处理器不同,除了为I/O接口电路寄存器、定时控制寄存器配字节地址外,CPU内的寄存器也有字节地址,如累加器Acc字节为0E0H。
51共有26个SFR,其中有5个是52以上机所特有的。
而带“*”号的是STC系列单片机所特有的。
下面先对他们进行。
第4章控制系统的大脑-软件(控制程序)的构建基础
2.程序计数器PC
计数器(PC)是专用来控制指令执行顺序的寄存器,字长16位。
上电或复位后,PC=0000H,强制CPU从程序的零单元开始。
一般情况下,CPU每取一次机器码,PC就自动加1,从而保证指令顺序执行。
上,PC是指令机器码字节单元的地址指针。
PC的内容可以被指令行改当需要改变程序执行顺序时,可通过改写PC内容实现。
但PC不在SFR之列。
第4章控制系统的大脑-软件(控制程序)的构建基础
3.累加器A
机CPU内部最常用的寄存器。
也可写作Acc。
常用于存放参加算术运算的操作数及运算结果。
由于期的CPU没有乘法运算功能,乘法运算需要通过多次加法运实现,在多次加法运算中,寄存器Acc总是存放中间结果,“累加器”。
4.B寄存器
也是CPU内一个寄存器,51的乘、除指令必须通过他和累加器A实现。
在不、除法运算时,可作为通用寄存器使用。
B寄存器是可位寻址的。
第4章控制系统的大脑-软件(控制程序)的构建基础
5.程序状态字寄存器PSW
称为“标志寄存器”,他由标志位组成,存放指令运行的状态。
容是进行算术、逻辑、条件分支不可缺少的依据。
51PSW各位的分布如图4-3所示。
各位的含义
如下:
第4章控制系统的大脑-软件(控制程序)的构建基础Cy:
进位标志。
运算时,当最高位即b7位有进位,或执行减法最高位有借位为1;反之为0;
AC:
辅助进位标志。
加法算时,当b3位有进位,或执行减法运算b3有借位时,AC为0。
辅助进位标志AC便于BCD码加法、减法运算的调正;
OV:
溢出标志。
计算,带符号数一律用补码表示。
8位二进制数,补码所能表示的围是-128,而当运算结果超出这一范围时,OV标志为1,出;反之;
第4章控制系统的大脑-软件(控制程序)的构建基础P:
奇偶标志。
志位始终体现累加器Acc中“1”的个数的奇偶性。
加器Acc中“1”的个数为奇数,则P位置1;累加器Acc中“1”的数为偶(包括0个)时,P位为“0”,即MCS-51采用奇校验方式;
RS1、RS0:
工作寄存器组选择位,见表4-1;
F0:
用户标志位:
用户可用位,没有标志意义;
留位。
第4章控制系统的大脑-软件(控制程序)的构建基础
【例4-1】下列指令执行后,PSW寄存器各标志位的值。
,#10101101B;立即数ADH送到A。
即数ADH传送到累加器A中,由于立即数0ADH中共有5个“1”,因此该指令行后,奇偶标志位P为“1”,PSW其他状态不变;
②,#10011101B;0ADH与7DH相加放A
(无符号数)或-83(带符号数:
补码);
(无符号数)或-99(带符号数)。
计算式如竖式4-4所示。
第4章控制系统的大脑-软件(控制程序)的构建基础结果:
作为无符号数时,和为14AH,即330;(由于结果超出一个字节放和时,前面的“1”自然丢失,寄存器A的内容为作为有符号数时和为-182。
由b7位向前进位,因此Cy为“1”;
b3位也有进位,AC位也为“1”;
为带符号数时,结果为4AH,即+74,显然不对,因为结果不。
之所以出错,是因为-83加-99的结果为-182,超出-~。
因此,OV标志位为“1”。
又因为计算低8位在累加器A中,有3个“1”,则奇偶标志位P为“1”。
第4章控制系统的大脑-软件(控制程序)的构建基础当OV标志位为“1”时,说明存放在目的操作数中的结果不正确。
不难发现:
个同号数相加,结果可能溢出;
两异号数相加,结果肯定不会溢出。
个同号数相减,结果肯定不会溢出;
两个异号数相减,结果可能溢出。
:
有关带符数的概念本书只做介绍,重点将放在无符号整数的处理方法上。
第4章控制系统的大脑-软件(控制程序)的构建基础
6.堆栈指针SP
指针SP是一个8位的专用寄存器。
51的堆栈区指定在片内RAM,所以8位长度指针就够用了。
堆栈是计算机中的一块可读、写的特殊区域。
主要用途是:
响应周期,CPU自动将断点压入堆栈,以保存返回点;调用子程序指令时,CPU自动将转入子指令的下一条指令地址压入堆栈调用返回做准备;
第4章控制系统的大脑-软件(控制程序)的构建基础③保护现场,方法之一是用压栈/弹栈指令将现场信息压入堆栈予④利用堆栈交换信息。
为现堆栈的功能,堆栈区被设计成:
先进后出或后进先出,简称FILO特性的存储区。
堆栈指针SP寄存器计的。
在51机中,SP可指向内部RAM中任一单元,且堆栈向上生长,即将数据压入堆栈后,SP内容增大。
假设SP当前值为2FH,则入堆指令“”(将B内容压入堆栈)的执行过程如图4-5所示。
第4章控制系统的大脑-软件(控制程序)的构建基础而将数据从堆栈中弹出时,先将SP寄存器指定的存储单元内容传送给定的寄存器或内部RAM单元中,然后SP减1(即SP←SP图4-6所示。
(POPB指令执行前;
(b)将SP指定单元内容传送到寄存器B中;
SP减1。
从图出:
堆栈的底部是固定的,且永远不会被堆栈区使用,“吝啬编程者会”这一单元计划在数据缓冲区内。
而堆栈的顶部则随着据入栈和出栈上下浮动。
第4章控制系统的大脑-软件(控制程序)的构建基础51机复位后,PSW的b4、b3位为0,即当前工作寄存器组组。
寄存器的初值为07H,堆栈将从08H单元向上占有。
在程序初始化时,没有设置SP指针,CPU将以07H作为。
一般是不允许的!
因为08H~1FH属于工作寄存器区,不宜占用20H~2FH是位地址区,是MCS-51的重要资源,需要部分或全部保留。
因此程序初始化时必须设置SP的初值,将堆栈底部设在30H~7FH或30H~FFH如:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实施 人工