南京邮电大学单片机实验一:使用集成开发环境Keil进行程序开发

2019-04-15 18:30发布


  实验 报 告 实验名称 使用集成开发环境Keil进行程序开发 指导教师 倪晓军 实验类型 课内实验 实验学时 2 实验时间 2017.10.19   一、    实验目的和要求 1.      了解汇编语言程序的设计方法,熟悉单片机汇编语言程序设计过程; 2.      了解C语言程序的设计方法,熟悉单片机C语言程序设计过程; 3.      掌握使用集成开发环境Keil进行单片机程序开发的方法; 4.      掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。 二、    实验要求 1.       使用汇编语言编写程序,完成1+2+3+…+100的计算; 2.       使用C51编写程序,完成1+2+3+…+100的计算,并通过串口输出计算结果; 三、    实验环境(实验设备) PC机,Keil C51集成开发环境 四、    实验原理及内容 1.编译,链接,调试汇编代码 汇编代码清单: Sum 1 to 100 HB EQU 30H LB EQU 31H LP EQU 32H ORG 0 JMP main ORG 30H main: MOV A,#60H MOV SP,A CLR A MOV HB,A INC A MOV LB,A MOV LP,#2 loop: MOV R7,HB MOV R6,LB MOV R5,#0 MOV R4,LP CALL add16 MOV HB,R7 MOV LB,R6 INC LP MOV R0,LP CJNE R0,#101,loop JMP $ ORG 0060H add16: CLR C MOV A,R4 ADD A,R6 MOV R6,A MOV A,R5 ADDC A,R7 MOV R7,A RET END main ① 建立目标,选择Atmel>AT89C52设备
② 设置参数 I.设置芯片频率为11.0592 MHz并勾选Use On-chip Rom(0x0-0x1FFF)
II.勾选Output中的 Create HEX file
③ .添加源程序到 Source Group
④ .编译链接查看结果
⑤ .调试
⑥ .查看内存
2.编译,链接,调试C语言代码: C语言代码清单: #include #include #define OSC11059200 #define BAUD9600 int main(void) { int i, result = 0; SCON = 0x50; TMOD = 0x20; TH1 = TL1 = 256 - (OSC / 12 / 16 / BAUD); TR1 = 1; TI = 1; for (i = 1; i <= 100; i++) { result += i; } printf("%d ", result); while (1); } ① 建立目标,选择Atmel>AT89S51设备 ② 设置参数 I.设置芯片频率为11.0592MHz,并勾选Use On-chip ROM(0x0-0xFFF) II.勾选Output中的Create HEX file ③ 添加STARTUP.A51和C语言代码程序 ④ 编译运行结果 ⑤ 调试并查看变量变化情况 五、    实验小结(包括问题和解决方法、心得体会、意见与建议等) 这次实验学习使用了Keli µVision软件开发单片机程序,由于之前没有使用过,所有不大熟悉,也出了很多的问题。调试C语言程序的时候,发现result的值一直是把变量i的值附上而没有累加。在同学的帮助下,发现是OSC定义没有和之前设置的芯片频率一致,导致不同步,改成了芯片频率之后终于看到了预期的结果。 第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨。在汇编语言调试和C语言调试的对比中,体会到汇编的繁琐和高级编程语言对编程效率的提高。