Proteus仿真运行流水灯程序

一、protues画出流水灯图架

1.项目工程的创建

  1. 打开软件,点击new project。
    在这里插入图片描述
  2. 选择工程创建的位置,我直接默认位置。
    在这里插入图片描述
  3. next之后,选择一个空板
    在这里插入图片描述
  4. 继续next,选不创建PCB
    在这里插入图片描述
  5. 还是next,选择创建Firmware Project,选择芯片(如图所示)
    在这里插入图片描述
  6. next之后就是finsh。

2.画图

至于怎么操作,推荐看这篇博客。Proteus实现简单51程序的设计与仿真
在这里插入图片描述

二、程序的实现

程序的仿真用的是keil5。
在这里插入图片描述
一定要勾选Create HEX File(在output里面)。
在这里插入图片描述
C++里面的路径一定要准确
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到编译和重编译都没问题,可以下载程序进行仿真调试了,我这里出了一个问题——找不到仿真器。
在这里插入图片描述
在这里插入图片描述
即使我下载了这些仿真器但是在设备管理里面都没有找到,目前还在解决中,不过程序应该没什么问题,下载就可以用。

源代码
#include "stm32f10x.h"

GPIO_InitTypeDef GPIO_InitStructure;
void delay_ms(uint32_t ms)
{
	uint32_t i_cnt, j_cnt;
	for (i_cnt = 0; i_cnt < 3000; i_cnt++);
	for (j_cnt = 0; j_cnt < ms; j_cnt++);

}
uint32_t i;
int main(void)
{

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_Init(GPIOC, &GPIO_InitStructure);

	GPIOA->BSRR = 0xff;
	while (1)
	{
		for (i = 0; i < 8; i++)
		{
			delay_ms(99000);
			GPIOA->BRR = (1 << i);

			delay_ms(99000);
			GPIOA->BSRR = (1 << i);
		}
		for (i = 0; i < 8; i++)
		{
			delay_ms(99000);
			GPIOA->BRR = 0x000000ff;

			delay_ms(99000);
			GPIOA->BSRR = 0x000000ff;

		}

	}
}
效果演示

没有解决仿真器的问题,目前还无法展示。

三、小结

在keil5中进行仿真的时候,文件路径一定要对,不然错误百出

四、资料引用

Proteus仿真STM32流水灯实验例程、详细步骤

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Proteus仿真软件实现STM32流水灯程序的步骤: 1. 打开Proteus软件,新建一个工程,选择STM32F103C8T6作为芯片型号。 2. 在左侧的Components窗口中搜索LED,将LED灯和220Ω电阻分别拖放到工作区中。 3. 在左侧的Components窗口中搜索STM32F103C8T6,将芯片拖放到工作区中。 4. 连接LED灯和220Ω电阻,将正极连接到芯片的PB0引脚,将负极连接到地。 5. 右键单击芯片,选择Edit Symbol,进入编辑模式。 6. 在左侧的Components窗口中搜索Crystal,将8MHz晶振拖放到芯片上。 7. 连接晶振,将两个引脚分别连接到芯片的OSC_IN和OSC_OUT引脚。 8. 在左侧的Components窗口中搜索Reset,将复位电路拖放到芯片上。 9. 连接复位电路,将RESET引脚连接到芯片的NRST引脚。 10. 右键单击芯片,选择Edit Program,进入程序编辑模式。 11. 在程序编辑窗口中输入以下代码: ```c #include "stm32f10x.h" void delay(int time) { int i, j; for(i = 0; i < time; i++) for(j = 0; j < 800; j++); } int main() { RCC->APB2ENR |= 1<<2; //使能GPIOB时钟 GPIOB->CRL &= 0xFFFFFFF0; //GPIOB0设置为输出模式 GPIOB->CRL |= 0x00000003; //GPIOB0设置为推挽输出 while(1) { GPIOB->BSRR = 1<<0; //点亮LED灯 delay(500); //延时500ms GPIOB->BRR = 1<<0; //熄灭LED灯 delay(500); //延时500ms } } ``` 12. 保存程序并编译,编译通过后返回到工作区。 13. 右键单击芯片,选择Program,将程序下载到芯片中。 14. 点击仿真按钮,开始仿真。 15. 查看LED灯是否会流水闪烁,如果正常,则仿真成功。 以上就是使用Proteus仿真软件实现STM32流水灯程序的步骤。请注意,实际硬件环境下可能需要对代码进行适当修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值