文档详情

单片机-编程.doc

发布:2018-04-20约2千字共3页下载文档
文本预览下载声明
1、求50H与40H单元内容之和,结果存入20H,进位位存入2lH。 2、试编写程序,求出内部RAM20H单元中的数据含“1”的数,并将结果存入21H单元。 3、编程将片内RAM30H单元开始的15字节的数据传送到片外RAM3000H开始的单元中去。 4. 从内部RAM20H单元开始,有30个带符号数,试编一个程序,把其中正数、负数分别送到51H和71H开始的存储单元,并分别记下其中正数和负数的个数送到50H和70H单元。 5. 设单片机的晶振频率为fosc=6MHz,使用T l工作于工作方式0,设计程序使P1.0端输出周期为500μs的连续等宽方波,要求以中断的方式编写程序。 6、.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。 7. 已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。 Y= 8. 已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。 9. 将存于外部RAM 8000H开始的50H数据传送0010H的区域,请编程实现。 1. 解答: ? MOV?A, 50 H ? ADD? A,40H ? MOV?20H, A ? CLR??? A ? ADDC A.#00H ? MOV? 21H,A ? SJMP?$ 2. 答 MOV?21H, #00H MOV?A, 20H CLR?C MOV?R7, #08H LOOP: RLC?A JNC?NEXT INC?21H NEXT: DJNZ?R7, LOOP SJMP?$ 3. 答:STRAT: MOV???? R0,#30H ???????? MOV???? R7, #0FH ???????? MOV???? DPTR, #3000H ? LOOP: MOV???? A,@R0 ????? ???MOVX??? @DPTR, A ???????? INC?????? R0 ???????? INC?????? DPTR ???????? DJNZ????? R7, LOOP ???????? RET 4. ORG 0000H LJMP 0030H ORG 0030H MOV R5, #30 MOV SP ,#3DH? MOV R0, #51H MOV R1,#71H MOV 50H, #00H MOV 70H,#00H LOOP1:POP A???? JB ACC.7,LOOP2 MOV @R0, A INC 50H??? INC R0??? SJMP NEXT?? LOOP2: MOV @R1, A INC 70H INC R1 NEXT:DJNZ R5,LOOP1?? END 5. 解答 完整的程序:ORG? 001BH MOV?TH1, #00H MOV?TL1, #0FCH CPL?P1.0 RETI ORG?0030H MOV?TMOD, #00H MOV?TH1, #0FCH MOV?TL1, #03H MOV?IE, #88H SETB?TR1 SJMP?$ 6.SQR:1NC A MOVC A,@A+PC RET TAB:DB 0,1,4,9,16 DB 25,36,49,64,81 7、. MOV A,VAR CJNE A,#0,COMP SJMP RES ;x=0,Y=0 COMP:JNC POSI ;x0,Y=1 MOV A,#0FFH ;x0,Y=-1 SJMP RES POSI:MOV A,#01H RES:MOV FUNC,A RET 8、MOV R0,#SUM MOV A,R2 ANL A,#OFH MOV @R0,A ;存低字节BCD MOV A,R2 ANL A,#0F0H SWAP A 1NC R0 MOV @R0,A ;存高字节BCD RET 9、 MOV DPTR,#8000H MOV R0,#10H MOV R2,#50H LOOP:MOVX A,@DPTR ;取数 MOVX @R0,A ;存数 1NC DPTR 1NC R0 DJNZ R2,LOOP
显示全部
相似文档