单片机原理编程题.doc

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理编程题 单片机原理编程题 PAGE / NUMPAGES 单片机原理编程题 一. 编程题 ( 每小题 8 分,共 16分) 设在内 RAM40H开始的存储区有若干个字符和数字,已知最后一个为字符“ $“(并且只有一个,试统计这些字符数字的个数,结果存入 30H单元中。 参考程序: ORG 0000H START:  MOV R1,#40H  ;R1作为地址指针 CLR A  ;A 作为计数器 LOOP: CJNE @R1,#24H,NEXT  ;与“ $”号比较, 不等转移 SJMP NEXT1  ;找到“  $“结束循 环 NEXT: INC A  ;计数器加  1 INC R1  ;指针加  1 SJMP LOOP  ;循环 NEXT1:  INC A  ;再加入”  $”这个 字符 MOV 30H,A END  ;存结果 试编一程序, 分别统计在内部 RAM的 30H~50H单元的数据区中奇数和偶数的个数, 并将奇数和偶数的个数分别存放在 51H和52H单元中。 参考程序: ORG 0000H MOV 51H,#0H MOV 52# ,#0H MOV R1,#30H MOV R0,#20H MOV A,@R1 INC R1 ANL A , #01H JZ LOOP1 INC 51H SJMP LOOP2 LOOP1: INC 52H LOOP2: DJNZ R0 , LOOP3 RET 3.用 8XX51的 P1 口接 8 个 LED发光二极管,由 INT0 接一消 抖按键开关,开始的 LED亮,以后由 INT0 按键每中断一次,下一个LED亮,顺序下移,且每次只一个 LED亮,周而复始。请编制程序。 参考程序: ORG 0000H AJMP MAIN ORG 0003H RL A ; 中断服务 MOV P1,A RETI MAIN: MOV A,#0FFH MOV P1,A ;第一灯亮 SETB EA SETB EX0;允许 INT0 外部中断 SETB IT0 ;中断触发方式为下降沿触发 SJMP $ ;等待中断 设有 100 个有符号数,连续存放在以 2000H为首地址的存储区 中,试编程统计其中正数、负数、零的个数并分别存放在30H、 31H、32H单元中。 MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV DPTR ,#2000H MOV R1,#100 L4: MOVX A,@DPTR INC DPTR L2: L3: L2:  CJNE A,#0,L1 INC 32H SJMP L2 JC L3 INC 30H SJMP L2 INC 31H DJNZ R1,L4 SJMP $ 编程将内部数据存储器 20H~24H单元压缩的 BCD码转换成 ASC Ⅱ存放在于 25H开始的单元。 参考程序:注意压缩的 BCD码为一个字节占两位 BCD码。 ORG 0000H MOV R7,#05H;R7为转换字节数 MOV R0,#20H;R0为源操作数地址 NE:  MOV R1,#25H;R1为目的操作数地址 MOV A,@R0 ANL A,#0FH ;先取低位  BCD码 ADD A,#30H ;将  BCD码转换成  ASCⅡ码 MOV @R1,A INC R1 MOV A,@R0 ANL A,#0F0H ;取高位 BCD码 SWAP A;半字节交换 ADD A,#30H ;将高位 BCD码转换成 ASCⅡ码 MOV @R1,A INC R0 INC R1 DJNZ R7,NE SJMP $ END 编程题,另外加上第 4 章课件上的例子。 三、程序解释(每小题 5 分,共 10 分) 1. ORG 0200H MOV DPTR,#1000H MOV R0,#20H LOOP: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 CJNE R0,#71H,LOOP SJMP $ 程序功能: 把片外数据存储器 1000H~1050H中的内容传送到片内数据存储器 20H~70H中。 2. ORG 0200H MOV A,R0 ANL A,#0FH MOV DPTR,#TAB MOVC ,A@A+DPTR MOV R0,A SJMP $ TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H; 0~9 的 ASCⅡ码 DB 41H,42H,43H,44H,45H,46H ;A~F 的 ASCⅡ码 程序功能:利用查表的方法实现 RO中的十六进制数转换为 ASCⅡ 码 对每小题程序中划线的指令含义 ( 或指令作用 ) 进行解释,并说明程序的作用。 *****************

文档评论(0)

150****7287 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档