最新大学考试复习资料-单片机原理编程题.docVIP

  • 17
  • 0
  • 约2.21万字
  • 约 29页
  • 2021-08-26 发布于湖北
  • 举报

最新大学考试复习资料-单片机原理编程题.doc

最新大学考试必备复习资料 编程题 (每题8分,共16分) 设在内RAM 40H开始的存储区有假设干个字符和数字,最后一个为字符“$“〔并且只有一个,试统计这些字符数字的个数,结果存入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 $ ;等待中断 4.设有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 CJNE A,#0,L1 INC 32H SJMP L2 L2: JC L3 INC 30H SJMP L2 L3: INC 31H L2: DJNZ R1,L4 SJMP $ 5.编程将内部数据存储器20H~24H单元压缩的BCD码转换成ASCⅡ存放在于25H开始的单元。 参考程序:注意压缩的BCD码为一个字节占两位BCD码。 ORG 0000H MOV R7,#05H ;R7为转换字节数 MOV R0,#20H ;R0为源操作数地址 MOV R1,#25H ;R1为目的操作数地址 NE: 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: D

文档评论(0)

1亿VIP精品文档

相关文档