嵌入式作业2:stem32的程序编译及c51仿真

    科技2025-05-15  58

    这里写目录标题

    软件stem32流水灯程序编译1、创建工程2、编写程序3、编译运行4、注意 C51流水灯程序编译及仿真编程(keil4)1、创建项目2、编程3、编译运行注意 proteus仿真 小结

    软件

    本次作业需要的软件有:keil5、proteus 两个软件安装的步骤很简单,这里不再赘叙。

    stem32流水灯程序编译

    1、创建工程

    (1)project—>new uvsion project (2)选择单片机种类 (3)创建成功

    2、编写程序

    这次流水灯程序的编译需要创建三个文件 main.c、 led.c 、led.h (1)main.c

    (2)led.c (3)led.h (代码为工程模板)

    3、编译运行

    4、注意

    自己编写程序时,遇到了以下问题:

    user\main.c(29): warning: #223-D: function "LED1_OFF" declared implicitly user\main.c(10): error: #5: cannot open source input file "stm32f1xx_hal.h": No such file or directory

    第一个是“LED1_OFF”没有声明 第二个是没找到“stm32f1xx_hal.h”文件的位置(一般可以通过修改target属性中,文件目录路径来解决) 这两个错误都是因为没在工程里面添加相应的头文件 工程模板的project如下: 需要包括程序中用到的头文件

    C51流水灯程序编译及仿真

    编程(keil4)

    1、创建项目

    (1)project—>new uvsion project (2)选择单片机:Atmel—>AT89C51 (3)成功创建一个空白工程

    2、编程

    (1)intrins.h是函数 crol 的头文件 (2)delay 函数是延时,通过改变delay(i)中的i的数值,可以改变灯亮的时间长短 (3)crol:向左移,crol(P1,1)表示将P1的二进制数循环向左移一位,而_cror_则是向右移。 _crol_与"<<"的区别:_crol_是循环向左,<<是向左,末尾补0.

    3、编译运行

    注意

    需要在target1的属性output一栏勾选create HEX file (仿真时需要hex文件)

    proteus仿真

    (1)仿真电路图 (2)运行

    小结

    这次作业是我第一次接触stem32,相比于C51,stem32在建立工程方面比较复杂,也是我在这次作业遇到的最大困难,但是由一个流水灯小程序,可以看出,stem32的标准库比C51的丰富,程序大部分可以直接用标准库的函数。

    Processed: 0.013, SQL: 8