- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Freescale HCS08 片机原理及应用
体值,而无需用户自己计算。由于复位矢量位于Flash 空间,并且每个复位/ 中断矢量占用2 字节的
Flash 空间,因此用DC.W 伪指令定义。注意不能用DS 伪指令定义Flash 常量。
对于有中断服务子程序的源程序,为了在发生中断时能够响应中断进入相应的中断服务子程序,
和填写复位向量类似,只需将中断服务子程序的入口地址填入对应的中断复位向量区即可。
3.6.3 汇编程序设计
3.6.3.1 算术/逻辑运算程序设计
MCU 主要用于控制目的,其数据运算、处理的能力并不强。 由于HCS08 系列MCU 具有相
应的算术、逻辑指令,因此它可以完成一些简单的算术/逻辑运算功能。
[ 3.1] 若字变量Data1 和Data2 分别存放着两个16 位无符号数,编写求这两个数之和的子程
序,并将和存放到Sum 字节存储空间中。
两个16 位无符号数相加,和为17 位,至少需要3 个字节的存储空间,和按照从高位到低位的
顺序依次存放在以Sum 为首地址的字节存储单元中。
Add_Pro: CLC ; 清进位标志位
LDA Data1+1
ADD Data2+1 ; 两数低八位相加
STA Sum+2 ; 存低八位之和
LDA Data1
ADC Data2 ; 高八位带低八位进位加
STA Sum+1 ; 存高八位之和
ROLA
AND #01H
STA Sum ; 存高八位进位位
RTS
3.6.3.2 查表和散转程序
HCS08 具有变址寻址方式,实现查表操作非常方便。利用查表可以实现转换、计算等各种功能。
散转是指根据输入数据的不同跳转到不同的程序入口进行处理。
[ 3.2] 单字节变量Hex_Byte 中存放了一十六进制数,编写子程序将其转换为两位ASCII 码,
并将结果存至以Result 开首的字节存储单元中。例如4AH 的ASCII 码为3441H,$F9 的ASCII 码为
4639H 。
……
ORG 0070H ; 用户变量一定要定位在Ram 区域
Hex_Byte DS.B 1
Result DS.B 2
……
HUST Freescale 合实验室 94
Freescale HCS08 片机原理及应用
ORG 0870H
ASCII_Table DC.B 0123456789ABCDEFG’ ; 常数表格、代码一定要定位在Flash 区域
……
Hex_To_Ascii:
LDA Hex_Byte
AND #$F0 ; 取出高4 位
NSA ; (A[3:0]:A[7:4]) →A
TAX ; A→X
LDA ASCII_Table,X ; 查表,得高4 位的ASCII 码
STA Result ; 存高4 位的ASC II 码
LDA Hex_Byte
文档评论(0)