单片机编程练习题(含部分答案)
   
    编程练习题
    1. 编一程序将片内存储单元20H~3FH单元的内容复制到40H~5FH单元。
    MOV R0,#20H MOV R1,#40H MOV R7,#32
    LOOP: MOV A,@R0
    MOV @R1,A INC R0 INC R1
    DJNZ R7,LOOP SJMP $
    2. 编一程序将片内存储器40H单元的内容与41H单元的内容进行比较,若相等
    将50H置00H,若不等将50H置0FFH。
    3. 在片内数据存储单元30H~4FH中存有32个同学的数学成绩,编一程序计算
    有多少同学成绩不及格(成绩低于60为不及格)。若20H作为计数存储单元
    MOV R0,#30H  MOV 20H,#0 MOV R0,#30H MOV R7,#32 MOV 20H,#0
    LOOP: MOV A,@R0 MOV R7,#32  SUBB A,#60 LOOP: CJNE @R0,#60,NE  JNC GE NE:  JNC GE  INC 20H  INC 20H GE:  INC R0 GE:  INC R0
    DJNZ R7,LOOP DJNZ R7,LOOP
    SJMP $  SJMP $
    4. 内部RAM中分别以地址20H和30H开始的连续16个单元,按顺序依次将两
    组中相应单元的内容相加(不考虑溢出),并将和存入外部RAM  2000H开始的单元中。
    MOV R0,#20H MOV R1,#30H MOV DPTR,#2000H MOV R7,#16
    LOPP: MOV A,@R0
    ADD A,@R1 MOVX @DPTR,A INC R0 INC R1 INC DPTR
    DJNZ R7,LOOP SJMP $
    5. 设内部RAM 20H单元为数据块的起始地址,数据块长度为10H,数据为8位
    无符号数,试编程出数据块中的最小值,并将其存入40H单元。
   
    MOV R0,#20H MOV 40H,#255 MOV R7,#10H
    LOOP: MOV A,@R0
    SUBB A,40H JNC NJW
    MOV 40H,@R0
    NCW: INC R0
    DJNZ R7,LOOP  SJMP $
    6. 比较两个ASCII码字符串是否相等。字符串长度在内部RAM 2FH单元,两字
    符串的首地址分别为30H、50H。如果两个字符串相等,置CY=1,否则,置CY=0。
    MOV R0,#30H MOV R1,#50H
    LOOP: MOV 20H,@R0
    CJNE @R1,20H,NE INC R0 INC R1
    DJNZ 2FH,LOOP SETB C SJMP $
    NE:  CLR C  SJMP $
    7. 内部RAM 30H和31H单元中各存放一个“0-9”数字的ASCII码,将其转换为
    压缩BCD码(30H的BCD码在高4位),结果存入外部RAM  2300H单元中。 8. 将内部RAM 40H为起始地址的32个连续单元中的十六进制数转换成ASCⅡ码
    存入外部RAM  3000H开始的存储单元中。 0~9  +30H A~F  +37H
    9. 设时钟频率为6MHz或12MHz,分别编写一个延时1ms、5ms、20ms、100ms
单片机编程100例详解    子程序。
    10. 图示电路,若fosc=12MHz,数码管为共阳极,分别用延时法和定时器两种
    方法编程实现数码管从0~9的交替轮流显示,时间间隔为1秒。(数字0~9共阳极段选码为0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H。)
   
    定时器中断法:
   
    ORG 0000H LJMP MAIN ORG OOOBH
    MOV TH0,#3CH ;定时50ms MOV TL0,#0B0H DJNZ R7,NEXT MOV R7,#20  ;黄块程序每1s执行一次 MOV A,R6
    MOVC A,@A+DPTR MOV P1,A INC R6
    CJNE R6,#10,NEXT MOV R6,#0 NEXT:RETI
    MAIN:MOV TMOD,#01H
    MOV TH0,#3CH ;定时50ms MOV TL0,#0B0H MOV IE,#82H MOV R7,#20
    MOV R6,#0 ;显示内容初值为0 MOV DPTR,#TAB SETB TR0 SJMP $
    TAB:DB *********
   
          感谢您的阅读,祝您生活愉快。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。