Advertisement

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

阅读量:

本次实验以Keil C51集成开发环境为基础,旨在掌握单片机汇编语言和C语言程序设计方法及开发流程。通过完成两个任务——使用汇编语言计算1+2+…+100的值并完成程序调试;使用C51编写程序完成相同功能并通过串口输出结果——熟悉了Keil环境的配置与应用。在编程过程中遇到了一些问题(如汇编代码运行不正确),但通过查阅资料和同学帮助解决了这些问题,并掌握了单片机系统调试技巧及高效编程的重要性。


实验 报 告

实验名称 使用集成开发环境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<reg51.h>
    
    #include<stdio.h>
    
    #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\n", 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变量一直被赋值而不累加。在此期间,在同学的帮助下(即通过同学指导或寻求帮助),我们发现了问题根源:原来OSC定义与芯片预设频率不一致导致时序失配。随后并及时地完成了相应的设置,并最终观察到了预期的结果数据。

通过初次单步调试操作,得以窥探内存中每个单元的具体变化情况,从中体会到了单片机系统运行过程中的严谨性所在.在对比使用汇编语言与C语言进行程序调试的过程中,认识到汇编语言操作起来相对繁琐,而感受到高级编程语言带来的效率提升.

全部评论 (0)

还没有任何评论哟~