单片机第一次实验课——Keil 软件的使用

发布时间 2023-03-22 21:10:52作者: Ryan爱吃糖

一、单片机第一次实验课——Keil 软件的使用


(1)把 R1R0 和 R3R2 中的两个 4 位 BCD 码数相加,结果送至 R5R4 中,如有进位,则保存于进位 C 中。
1)汇编

;实验1.1
ORG 0000H
CLR C
MOV R1,#36H
MOV R0,#64H
MOV R3,#24H
MOV R2,#51H
MOV A,R0
ADD A,R2
DA A
MOV R4,A
MOV A,R1
ADDC A,R3
DA A
MOV R5,A
SJMP $
END

(2)把外部数据存储器 0000H~0010H 中的内容传送到片内数据存储器 60H~70H 单元。

1)汇编(查表赋初值,也可以循环赋初值):

;实验1.2
ORG 0000H    
MOV DPTR,#D
MOV R0,#00H
MOV P2,#00H
LOOP:;赋初值
MOV A,R0
MOVC A,@A+DPTR
MOVX @R0,A
INC R0
CJNE R0,#11H,LOOP
MOV R0,#00H
MOV R1,#60H
LOOP1:;将值从外部RAM送到内部RAM
MOV A,R0
MOVX A,@R0
INC R0
MOV @R1,A
INC R1
CJNE R0,#11H,LOOP1
SJMP $
D: DB 18H,04H,06H,01H,0AH,05H,02H,03H,07H,08H,10H,13H,11H,12H,16H,14H,15H  ;数据乱给的
END

2)c语言

//实验1-2
#include"reg51.h"
#define uchar unsigned char

uchar xdata X_RAM[17] _at_ 0x0000;
uchar data I_RAM[17] _at_ 0x0060;
void main(){
uchar i;
for (i = 0; i < 17; i++) {
    X_RAM[i]=i+1;
}

for (i = 0; i < 17; i++) {
    I_RAM[i]=X_RAM[i];
}

while(1);
}