欢迎来到天天文库
浏览记录
ID:40672083
大小:28.50 KB
页数:5页
时间:2019-08-05
《51系列单片机软件应用技巧数例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、51系列单片机软件应用技巧数例吕群周绍平(扬州职业大学,江苏扬州225012)摘要:随着电子产品智能化的发展,单片机在电子产品中的作用越来越重要。为了提高产品的性价比,设计人员努力在降低产品的硬件成本,同时不断地提高软件的设计水平。51系列单片机有三种实用的编程技巧和方法值得介绍:多字节减1和减1非零跳转处理方法、消除定时器方式1积累误差的方法及状态检测中消除干扰及延时控制的方法。关键词:单片机编程技巧最优控制SeveralCasesof51SeriesSCMSoftwareApplicationSkillsLvQunZh
2、ouShaoping(YangzhouTechnicalInstitute,Yangzhou225012,Jiangsu)Abstract:Withtheintelligentizingdevelopmentofelectron,SCMisbecomingmoreimportant.Inordertoimproveproducts,designersareworkinghardtodecreaseproducts’hardwarecost,meanwhile,increasingsoftwaredesigning.51se
3、riesSCMhas3practicalprogrammingtechniquesandmethodstointroduce:morebytesminus1andminus1non-zerotransferofcontrolprocedures;eliminatetheaccumulatederrorinTimerofWay1;interfereeliminationanddelayedcontrolmethodinconditionexamination.KeyWords:SCM;programmingskills;op
4、timalcontrol随着电子产品智能化的发展,单片机在电子产品中的作用越来越重要。为了提高产品的性价比,设计人员努力在降低产品的硬件成本,同时不断地提高软件的设计水平。在单片机应用过程中,设计一个功能达标、字节数少、同时可靠性及抗干扰性强的软件是广大工程技术人员一直在孜孜不倦追求的目标。笔者在多年的产品设计中,总结了一些51系列单片机软件应用技巧,现选几例介绍如下,与读者共同探讨。1多字节减1和减1非零跳转处理方法51系列单片机指令集中有加1指令如INCA,INCRn,INCdirect,INC@Ri和INCDPTR,
5、其中前面四条为8位二进制数即一个字节,第五条为16位二进制数即两个字节,同时指令集中有减1指令如DECA,DECRn,DECdirect和DEC@Ri共四条,但这四条全是8位二进制数,即一个字节,若程序中有两个以上字节数需进行减1运算,或者当循环次数超过256次时,采用DJNZdirect,rel就无法进行循环控制。这时可采用借位减法实现,但程序就显得冗长,且占用其它资源。1.1多字节减1处理程序先看二字节减1程序,设此二字节数存放于DY1和DY2单元中。方法一:MOVA,DY1;低字节数送累加器ACLRC;进位位清零SU
6、BBA,#01H;低字节数带借位位减1MOVDY1,A;结果送回DY1MOVA,DY2;高字节数送累加器ASUBBA,#00H;高字节数减去借位位MOVDY2,A;结果送回DY2方法二:INCDY1;低字节数加1DJNZDY1,LP1;低字节数减1不为零转LP1DECDY2;高字节数减1LP1:DECDY1;低字节数减1方法一是采用借位减法实现减1功能,方法二的前面两条指令是先对DY1进行判零检查,若是零此时减1就要产生借位,于是把高字节数减1,若不为零就直接转到减1指令。方法一和方法二比较:同样的功能,方法二比方法一少了
7、三条指令,目标程序少了四个字节。更重要的是方法二:不占用累加器A和标志寄存器PSW;解决了DPTR无减1功能的缺点。方法二也可用在三字节数减1程序中。INCDY1;DY1非零判别DJNZDY1,LP1;INCDY2;DY2非零判别DJNZDY2,LP2;DECDY3;LP2:DECDY2;LP1:DECDY1;1.2多字节减1非零转移程序设计一个二字节减1非零转移程序,循环控制变量低字节存DY1,高字节存DY2。MOVDY1,#XXH;低字节赋值MOVDY2,#YYH;高字节赋值LOOP:…;循环体…;循环体…;循环体DJ
8、NZDY1,LOOP;低字节数减1不为零返回DJNZDY2,LOOP;高字节数减1不为零返回这不是循环嵌套,而是高低字节共同控制循环。在预置初值时要注意:当低字节数值不为零时高字节要比原定数加1,低字节数为零时不加1,这是因为只有当低字节数减1为零时才进入高字节减1判断,而高字节一旦减1为零就不再进入循
此文档下载收益归作者所有