电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

义隆单片机EMC法宝级的EMC单片机编程技巧集锦VIP专享VIP免费

义隆单片机EMC法宝级的EMC单片机编程技巧集锦_第1页
义隆单片机EMC法宝级的EMC单片机编程技巧集锦_第2页
义隆单片机EMC法宝级的EMC单片机编程技巧集锦_第3页
义隆单片机EMC-法宝级的EMC单片机编程技巧集锦 2007-03-16 11:44 EM78XXX单芯片自从问世以来已经陆续推出十余种不同等级的单芯片,小到8Pin的78P152,大到100Pin OTP的78P860,其汇编语言指令都是一样的,仅有57个,所以反复练习几次就能熟悉指令的用法。汇编语言用在 I/O控制非常容易,也有很高的效率,所以坊间的书籍大部份以讨论控制为主显,显少专门探讨软件技巧的篇幅,其实老手都知道,关于芯片之控制往往用到时再去翻一翻 DATA BOOK,注意一下 TIMING,然后准备一部示波器,三两下就可以搞定。反倒是算法用的好不好会大大影响产品的稳定度,所以有经验的程序设计师通常都有自己的一套葵花秘笈,所以要提升自己的功力最好的方式除了多练习之外,看看别人的程序也会使你进步很快。 BCD转换成 Binary 由于 EM78XXX是8位的微控器,因此为了节省内存,我们的范例仅以一个BYTE存放两位 BCD数为例,数字的范围在 0~99之间,转换后的结果放在 ACC,如果您需要更多的位数,相信您在看完之后应该不难自行修改才是。 程序一 这个范例程序共花费 13个指令CYCLE,需要两个变量空间,执行后会影响到原BCD的内容。 MOV A,BCD MOV TMP,A MOV A,@0x0F AND TMP,A SWAP BCD AND BCD,A BC PSW,0 RLC BCD ; *2 MOV A,BCD ADD TMP,A RLC BCD RLCA BCD ; *8 ADD A,TMP 说明 在程序一中所采用的方式应该算是最多人知道的方式,也是一种最直觉的方法,先将 BCD个位数保存起来,因为十位数必须要乘以10,所以利用移位的技巧乘以10再加上个位数,所得的答案放入 ACC。 程序二 在程序一的缺点,就是在执行程序以后,原本 BCD的内容已经在移位的过程中被破坏掉了,为了改善这项缺失,我们换一种方式看看。下面这个程序,我们企图改善前面的缺失,共花费 11个指令CYCLE,仍需要两个变量空间,但是执行后不会破坏原来BCD的内容。 SWAPA BCD MOV TMP,A MOV A,@0x0F AND BCD,A AND TMP,A BC PSW,0 RLCA TMP SWAP TMP RRC TMP ADD A,TMP ADD A,BCD 程 序 三 对 于 程 序 二 的 结 果 我 们 仍 然 不 满 意 , 似 乎 稍 嫌 复 杂 , 虽 然 速 度 有 所 改 善 , 但 在 内存 的 分 配 上 仍 有 余 地 , 所 以 我 们 再 改 善 成 程 序 三 的 型 态 。 转 换 过 程 只 花 费 10个指 令 CYCLE, 而 且 只 需 要 ...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部