本次作业需要的软件有:keil5、proteus 两个软件安装的步骤很简单,这里不再赘叙。
(1)project—>new uvsion project (2)选择单片机种类 (3)创建成功
这次流水灯程序的编译需要创建三个文件 main.c、 led.c 、led.h (1)main.c
(2)led.c (3)led.h (代码为工程模板)
自己编写程序时,遇到了以下问题:
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如下: 需要包括程序中用到的头文件
(1)project—>new uvsion project (2)选择单片机:Atmel—>AT89C51 (3)成功创建一个空白工程
(1)intrins.h是函数 crol 的头文件 (2)delay 函数是延时,通过改变delay(i)中的i的数值,可以改变灯亮的时间长短 (3)crol:向左移,crol(P1,1)表示将P1的二进制数循环向左移一位,而_cror_则是向右移。 _crol_与"<<"的区别:_crol_是循环向左,<<是向左,末尾补0.
需要在target1的属性output一栏勾选create HEX file (仿真时需要hex文件)
(1)仿真电路图 (2)运行
这次作业是我第一次接触stem32,相比于C51,stem32在建立工程方面比较复杂,也是我在这次作业遇到的最大困难,但是由一个流水灯小程序,可以看出,stem32的标准库比C51的丰富,程序大部分可以直接用标准库的函数。