软件
本次作业需要的软件有: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的丰富,程序大部分可以直接用标准库的函数。