- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验第4章
3.3 顺序程序设计 3.1 编程将外部数据存储器的000EH和000FH单元的内容相交换。 编程:对外部RAM访问只能用MOVX指令,地址则可由Ri或者DPTR给出。 ORG 0000H XCH A,20H MOV P2,#0H MOVX @R1,A MOV R0,#0EH MOV A,20H MOV R1,#0FH MOVX @R0,A MOVX A,@R0 SJMP $ MOV 20H,A END MOVX A,@R1 3.2 将片内数据存储器(31H)(30H)中的16位数 求补码后放回原单元。 设计分析:先判断数据的正负,再根据正数的补码=原码,负数补码=原码取反+1,分别处理。 ORG 0000H MOV 30H,A MOV A,31H MOV A,31H JB ACC.7, CPLL CPL A SJMP $ ADDC A,#0 CPLL: MOV A,30H ORL A,#80H CPL A MOV 31H,A ADD A,#1 SJMP $ END 3-3 查表程序,设变量放在片内RAM的20H单元,取值范围0~9,要求编写查表程序,查出变量的平方值,并放入片内RAM 21H单元 分析:对程序存储器查表采用MOVC A,@A+DPTR实现 表格定义也可用10进制数表示,如DB 0,1,4,9,16 ORG 0000H MOV DPTR,#TAB2 MOV A,20H MOVC A,@A+DPTR MOV 21H,A SJMP $ TAB2: DB 00H,01H,04H,09H,16H,25H,24H,31H,40H,51H GR EQU 30H LE EQU 31H ORG 0000H LESS:MOV LE,A MOV A,40H MOV GR,41H CJNE A,41H,NEQ SJMP $ MOV GR,A MOV LE,A SJMP $ NEQ: JC LESS MOV GR,A MOV LE,41H SJMP $ 3.6 位操作程序设计 例3-14:编写程序,实现图3-7逻辑运算电路功能,其中P1.1,P2.2分别是端口上的信息,TF0和IE1分别是定时器定时溢出标志和外部中断请求标志,25H,26H分别是两个位地址,运算结果由端口P1.3输出。 3-16 用程序实现c=a2+b2,设a,b均小于10,a存放在31H单元,b存放在32H单元,把c存入34H和33H单元(以BCD码表示) 主程序: ORG 0000H MOV SP,#3FH MOV A,31H LCALL SQR MOV R1,A MOV A,32H LCALL SQR ADD A,R1 DA A MOV 33H,A MOV A,#0 ADDC A,#0 MOV 34H,A SJMP $ 子程序: ORG 0100H SQR: INC A MOVC A,@A+PC RET TAB: DB 00H,01H,04H,09H,16H,25H,36H,49H,64H,81H END 3-17:求两个无符号数据块中的最大值的乘积。 数据块的首地址分别为60H和70H,每个数据块的第一个字节都存放数据块长度,结果放入5FH和5EH单元
文档评论(0)