所谓“回文”,是指读和倒读都一样的字符串,如“XYZYX”。......
2023-10-21
所谓查表法,就是对一些复杂的函数运算如sinx,x2+ex等,事先把全部可能范围的函数值按一定的规律编成表格存放在计算机的程序存储器中。当用户程序中需要用到这些函数时,直接按编排好的索引值寻找答案。这种方法既节省了运算步骤,简化了程序,而且加快了程序执行的速度。在控制应用场合或智能仪器仪表中,经常使用查表法。这种方法唯一的不足之处是需要事先计算好函数值,而且需要占用较多的存储单元。
为了实现查表功能,在MCS-51单片机中专门设置了两条查表指令:
第1条查表指令采用DPTR存放数据表格的地址,其查表过程比较简单。查表前需要把数据表的首地址存入到DPTR,然后把所查表的索引值送至累加器A,最后使用MOVC A,@A+DPTR指令完成查表。
采用第2条指令时,操作过程和第1条不同,其步骤可分为以下3步:
1)使用数据传送指令把所查数据的索引值送至累加器A。
2)用ADD A,#data指令对累加器A进行修正。data值由下式确定:
其中,PC是MOVC A,@A+PC的下一条指令的地址。因此,data值实际上等于查表指令和数据表格之间的字节数。
3)采用查表指令MOVC A,@A+PC完成查表。
为了方便查表,要求表中的数据或符号按照便于查表的次序排列,并将它存放在指定首地址开始的单元。函数值在表中的序号即索引值应该和函数值有直接的对应关系。函数值的存放地址等于首地址加上索引值。在实际使用中,使用MOVC A,@A+DPTR指令比MOVC A,@A+PC简单。
【例4-10】利用查表指令实现求取数据0~9的平方。设数据变量x的值存放于累加器A中,查表后求x2的值并反送回累加器中。
【编程说明】数据0~9的平方值存放在存储器中。在程序中TABLE的地址可以是16位二进制数决定的任意值,也就是说,理论上TABLE表可以放在程序存储器的任意空间。(www.chuimin.cn)
【程序】
如果不想采用MOVC A,@A+DPTR指令,还可改用MOVC A,@A+PC指令来实现。在这里,TABLE表将紧跟在子程序之后,考虑到MOVC A,@A+PC与TABLE表间有一条单字节的返回主程序RET(RET是单字节指令),所以程序起始时需要对累加器A的内容进行调整。程序中用INC A指令就是来调整的。
【程序】
【例4-11】某智能仪器的键盘程序中,根据命令的键值(0,1,2,…,6)转换成相应的双字节16位命令操作入口地址,其键值与对应的入口地址关系如表4-2所示。
表4-2 键值与对应的入口地址
设键值存放在片内RAM的20H单元中,入口地址存放在片内RAM的22H和23H中。
【程序】
有关单片机基础及应用的文章
这三种整型数据类型都可以指定为“有符号”或“无符号”,如果既不指定为signed,也不指定为unsigned,则默认为signed。归纳起来,整型数据分为以下6种,如表2.1所示。表2.1整型数据类型表2.1中“类型”列中的方括号部分是可以省略的,如signed short int与short等价。例如:int a,b,c,d;unsigned e;long f,g;在程序中,一个int型变量最大允许值为32767,要防止数据的溢出。......
2023-11-18
事务通过向封锁管理程序的系统组成部分发出请求而对记录加锁。这时其他事务就不能读取和修改订票数,直到甲事务修改完成并将数据写回到数据库,并解除对此数据的封锁之后其他事务才能使用这些数据。加锁是实现并发控制的一个非常重要的技术。表7—1锁的相容矩阵在表7-1的加锁类型相容矩阵中,最左边一列表示事务T1已经获得的数据对象上的锁的类型,最上面一行表示另一个事务T2对同一数据对象发出的加锁请求。......
2023-11-24
多态从实现的角度来讲可以划分为两类:编译时的多态和运行时的多态。按照绑定进行阶段的不同,可以分为两种不同的绑定方法:静态绑定和动态绑定,这两种绑定过程中分别对应着多态的两种实现方式。有些多态类型,其同名操作的具体对象能够在编译、连接阶段确定,通过静态绑定解决,比如重载、强制和参数多态。包含多态操作对象的确定就是通过动态绑定完成的。分析以下程序的执行结果。......
2023-11-07
表3-5所示为数据转换指令,其中3位BCD码和7位BCD码的格式如图3-18所示。A I0.2 //如果I0.2为1L MD10 //将MD10中的双整数装入累加器1DTB //将累加器1中的数据转换为BCD码,结果仍在累加器1中图3-18 BCD码格式a)3位BCD码的格式 b)7位BCD码的格式JO OVER //运算结果超出允许范围则跳转到标号OVER处T MD20 //将转换结果传送到MD20A M4.0R M4.0 //复位溢出标志JU NEXT //无条件跳转到标号NEXT处OVER:AN M4.0S M4.0 //置位溢出标志NEXT:……......
2023-06-18
虚函数总是在派生环境中使用,用虚函数实现动态多态性的一般步骤如下:在基类中定义虚函数;在派生类中定义与基类虚函数同名、同参数、同返回类型的成员函数,即派生类中的虚函数。分析以下程序的执行结果。图7.18类层次类BaseA包括虚函数bf(),类BaseB包括非虚函数bf(),类Derived是从类BaseA和类BaseB派生的,其中也包括函数bf()。解:设计的类层次如图7.2所示,普通函数printobject()采用动态绑定的方法。......
2023-11-07
PROFINET和OPC在DCOM中享有相同的技术基础。·每个OPC服务器可通过一个标准的适配器作为PROFINET节点运行。PROFINET的功能远比OPC的功能强大。PROFINET提供了自动化解决方案所需要的实时能力。......
2023-11-20
图2.22教师教学工作数据原始表图2.23施加评定规则后的教师教学工作量化评定表本项目的任务目标即运用Excel数据计算、函数操作等技术,实现“教师教学工作量化评定规则”,将教师的各项原始工作记录数据量化,计算出每个教师的各类小计分数和最终分数。学院原始数据已记录所有老师参加各类项目的情况,需要转换成量化分数。......
2023-10-31
相关推荐