单片机C语言编程实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Keil C51编译器仿真程序要求

由于Keil C51是用于MCS51单片机的编程软件,产生的机器码只能在MCS51单片机上运行,为了便于调试编程,可利用串行口进行仿真,因此需对串行口进行初始化,其程序一般需具有下列格式。

      #pragma symbols code               // 定义编译环境
      #include<reg52.h>                  // 存储器说明库
      #include<stdio.h>                  // 标准输入、输出库
      void init_rs232(void)              // 串行口初始化子函数
      { T2CON=0x34;                      // 定时器2作为波特率发生器,自动重装
        SCON=0xda;                       // 方式3,9位数据,单机通信,允许接收,TB8=1
        RCAP2H=0xff; }
      main()                             // 主函数
      { 定义各种变量(如char kk; char mm;)
        ……………………
        init_rs232();                    // 调用串行口初始化子函数
        …
        编写自己的程序
        …
      }

1.4 实践

1.4.1 实践任务

初步了解C语言,学会上机编辑、编译及调试C语言程序,会把C语言程序下载到单片机实践板里,作简单的调试。

1.4.2 实践设备要求

1.装有Keil C51 uvision3集成开发环境和STC-ISP的计算机。

2.单片机实践板(初级)。

1.4.3 实践步骤

1.打开计算机,连接计算机实践板。

2.进入Keil C51开发环境,建立工程项目文件。

3.建立例1.1的C语言源程序文件。

4.编译源程序文件。

5.下载程序到单片机实践板中。

6.运行程序,观察8个发光二极管变化情况和变化时间。

上述步骤可参考“附录C”。

注意

在保存源程序时,由于是C语言程序,扩展名应改为.c,不能使用汇编程序的.asm。

7.将“kk=kk+1”改为“kk=kk-1”,重新编译、下载,观察程序执行有什么变化?

8.将“kk=kk-1”改为“kk=kk-4”,重新编译、下载,观察程序执行有什么变化?

9.如果想将发光二极管的变化速度加快1倍或减慢1倍,应该怎样改变程序?

10.进入“调试程序状态”,单击主菜单“View”的下拉菜单“Serial Window #1”,打开仿真显示窗口“Serial #1”,单击主菜单“Peripherals”的下拉菜单“I/O-Ports”,打开“Parallels Port 0”窗口,如图1-1所示,按【F10】键单步运行,记录每一步程序执行的过程和效果。

图1-1 程序调试界面

注意

如进入调试状态无法运行,单击屏幕左上角的“RST”复位按钮和红色的“X”停止按钮。

11.单击主菜单“File”的下拉菜单“Open…”,打开扩展名为“.lst”的列表文件,如图1-2 所示,找到delay、init_rs232 子函数和main主函数所对应的汇编程序,说出下列C语言程序对应的汇编指令。

图1-2 观看C语言程序对应汇编指令界面

      A.--time;                     B.SCON=0xda;
      C.if(kg==0){ fmq=0; }          D.delay(1000);

成绩评定