使用Proteus 8.9仿真STM32F103流水灯实验

这篇具有很好参考价值的文章主要介绍了使用Proteus 8.9仿真STM32F103流水灯实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

keil5-MDK程序

STM32流水灯程序非常简单,在我的实验中使用GPIOC的引脚连接流水灯。主要程序如下:

LED初始化:led.h

#ifndef __LED_H
#define __LED_H	 
#include <stm32f10x.h>   


void LED_Init(void);	//初始化		 				    
#endif

 led.c

#include "led.h"


//LED IO初始化
void LED_Init(void)
{
	RCC->APB2ENR|=1<<4;    //使能PORTC时钟
	
	GPIOC->CRL&=0X00000000;//清零
	GPIOC->CRL|=0X33333333;//推挽50MHz输出
	GPIOC->ODR=0X00FF;      //输出高
}

test.c文件,main主函数:

#include <stm32f10x.h>   
#include "led.h"


void delay_ms(uint32_t ms)
{
	uint32_t i_cnt,j_cnt;
	for(i_cnt=0;i_cnt<454000;i_cnt++);
		for(j_cnt=0;j_cnt<ms;j_cnt++);
}
int main(void)
{
	int i;
//	Stm32_Clock_Init(9);//系统时钟设置
	LED_Init();//初始化与LED连接IO口
	while(1)
	{
		for(i=0;i<8;i++)
		{
			GPIOC->ODR=~(1<<i);//输出低
			delay_ms(500);
		}
	}
}

 工程目录如下,记得包含头文件。工程链接在文末。

使用Proteus 8.9仿真STM32F103流水灯实验

 编译生成.hex文件即可,接下来绘制仿真电路。

Proteus仿真电路

打开Proteus

点击新建工程。

使用Proteus 8.9仿真STM32F103流水灯实验

我将工程保存至 D:\仿真 文件夹中,可以给工程重命名,点击下一步。

使用Proteus 8.9仿真STM32F103流水灯实验

从选中的模板中创建原理图,选择DEFAULT(默认),点击下一步。

使用Proteus 8.9仿真STM32F103流水灯实验

不创建PCB布版设计,直接下一步。

使用Proteus 8.9仿真STM32F103流水灯实验

 如果创建固件项目并且安装了编译器,则可以在Proteus中直接给STM32F103R6芯片编写程序。

使用Proteus 8.9仿真STM32F103流水灯实验

 因为我已经用keil编好流水灯程序了,所以选择不创建固件项目,点击下一步。

使用Proteus 8.9仿真STM32F103流水灯实验

 确认信息,点击完成,即可建立空白项目。

使用Proteus 8.9仿真STM32F103流水灯实验

使用Proteus 8.9仿真STM32F103流水灯实验

 添加STM32芯片,点击左上角设备选择器的“P”键。

使用Proteus 8.9仿真STM32F103流水灯实验

 在左上角“关键字”中输入:STM32。即可显示所有的仿真芯片,Proteus 8.9版本可以支持部分F4系列芯片的仿真。

使用Proteus 8.9仿真STM32F103流水灯实验

 右上为芯片原理图,右下为芯片PCB封装,我选择STM32F103R6芯片,双击芯片即可将芯片添加到设备选择器中。

使用Proteus 8.9仿真STM32F103流水灯实验

 同理,搜索关键字添加电阻(RES)和LED元件,最后点击右下角确认。

使用Proteus 8.9仿真STM32F103流水灯实验

 在元件列表中选择元件,再在原理图中左键单击即可选择元件位置,右键取消选择,再次单击鼠标左键放置元件。

总原理图如下:(不用连外部晶振电路,双击芯片弹出页面可以直接设置晶振频率)

使用Proteus 8.9仿真STM32F103流水灯实验

电源VDD使用左侧终端中的POWER,芯片引脚连接使用DEFAULT。

使用Proteus 8.9仿真STM32F103流水灯实验

使用Proteus 8.9仿真STM32F103流水灯实验

 放置元件,双击元件命名为VDD、PC0~7即可通过网络标号连接。

使用Proteus 8.9仿真STM32F103流水灯实验

使用Proteus 8.9仿真STM32F103流水灯实验

 总原理图中没有给芯片供电的电源,因为仿真芯片有默认的电源引脚没有显示出来。

点击设计中的配置供电网。

使用Proteus 8.9仿真STM32F103流水灯实验

弹出以下窗口,设置VCC/VDD电压为3.3,点击确定。

使用Proteus 8.9仿真STM32F103流水灯实验

仿真电路就完成了,接下来下载程序即可实现仿真。

双击STM32芯片,弹出窗口。

点击Program File的文件夹图标,将之前keil编译生成的hex文件添加进来。并修改晶振频率Crystal Frequency为8MHz,点击确定。

使用Proteus 8.9仿真STM32F103流水灯实验

 点击左下角按钮开始仿真。使用Proteus 8.9仿真STM32F103流水灯实验

可以看到程序正常运行,LED逐个点亮。

使用Proteus 8.9仿真STM32F103流水灯实验

最后保存所有工程文件,实验完毕。

使用发现延时时间并不准确,只能仿真出个大概,无法仿真太复杂的外设电路;而且仿真运行时很占CPU,可能就是这个原因导致仿真时间过慢。

工程文件链接文章来源地址https://www.toymoban.com/news/detail-440364.html

到了这里,关于使用Proteus 8.9仿真STM32F103流水灯实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Stm32f103c8t6(proteus仿真)学习——3.按键控制LED灯

    按键:button 电阻:res 先配置LED灯的GPIO 编写LED亮灭的函数 实现按下按键LED灯的状态取反 led.c总代码 先配置按键的GPIO 获取当前按键键值的函数 key.c总代码 5.1 按键按下实现LED亮或者灭 仿真效果图: 5.2 按键按下实现LED状态取反 仿真效果图: 百度网盘 链接:https://pan.baidu.co

    2024年02月07日
    浏览(20)
  • [proteus]STM32F103单片机直流电机PID算法PWM波电机调速正反转Proteus仿真

    1、实现功能: (1)、基于STM32F103单片机PID算法PWM控制直流电机正反转调速,LCD1602显示转速等。可通过“加速”、“减速”按键修改“目标转速”并实时测量“实际转速”送到LCD1602上显示。 (2)、“启动”按键控制电机启动,默认启动电机是正转(示波器上的黄色PWM波)。 (3)、“

    2024年02月06日
    浏览(24)
  • STM32F103之点亮LED流水灯

    目录 一、设计分析及代码思路 1.实现流水灯步骤 2.代码设计过程 二、创建项目 1.新建项目 2.编写代码 三、仿真运行 四、连接电路 1.器件连接 2.程序烧录 五、代码烧录及实现 1.烧录实现 2.流水灯实现 六、总结  配置时钟使能寄存器 配置端口寄存器 设置输出模式 实物连接及

    2024年04月25日
    浏览(17)
  • STM32F103C8T6定时器实现led的周期闪烁及PWM实现流水灯

    通过定时器Timer方式实现时间的精准控制,相当于给CPU上了一个闹钟,CPU平时处理其它任务,当定时时间到了以后,处理定时相关的任务。请设置一个5秒的定时器,每隔5秒从串口发送“hello windows!”;同时设置一个2秒的定时器,让LED等周期性地闪烁。 使用TIM3和TIM4,分别输

    2024年01月23日
    浏览(29)
  • STM32F103 点亮LED闪烁与仿真

    今天给大家分享一下STM32 流水灯简单的仿真吧,我感觉这个提供有用的,但是自己也是第一次使用,主要是感觉曲线很高级。在PWM中查看脉宽很有用。 code: led.c #include \\\"led.h\\\" #include \\\"delay.h\\\" /* GPIO的控制寄存器的配置 1、配置输出引脚 2、打开对应的输出的寄存器的时钟 3、配置

    2024年02月16日
    浏览(19)
  • [嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

    上一篇:[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键 学C语言时,使用的printf()函数,就是通过串口打印出来的。 跟外部器件通信,比如GPS模块、蓝牙模块、wifi模块; 两个开发板之间通信,制定私有协议。 PC电脑通信,使用上位机显示数据或控制下位机。 操作:打

    2024年01月22日
    浏览(27)
  • stm32f103c8t6单片机使用st-link/v2仿真器烧录程序的过程

    1、首先,电脑usb接口接上仿真器ST-LINK/V2,查看设备管理器。 若连接正常,则出现上图红线部分 2、ST-link/v2与stm32f103c8t6的连接,如下图 对应引脚相连接即可。 3、stm32f103c8t6 烧录时单片机必须接电,我一般boot0,boot1都接0(这一步单片机的启动方式没懂) 4、烧录程序 STM32F1

    2023年04月12日
    浏览(16)
  • 基于STM32F103控制舵机 仿真 简单二轴机器人逆运动学(20220615完成 正在处理三轴)

    本项目基于 正点原子精英(stm32f103zet6) 控制小舵机 模拟 二轴机器人逆运动学控制。 目录 概述: 1. 我的问题总结 2.stm32控制部分 与机械部分 2.1 对于二轴机器人设计 2.2 stm32 输出 pwm 2.3 舵机控制 3.正运动学 3.1 D-H建模下对姿态的描述 4.逆运动学 4.1 几何解法 4.2 代数解法 4.3 多重

    2023年04月20日
    浏览(36)
  • J-Link使用汇总(STM32F103)

    内容包括SWD硬件连接,Keil仿真设置与其问题解决, J-Flash解除写保护与下载Hex文件及对芯片批量加密 。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易!  一、SWD实时仿真硬件电路 1、SWD实时仿真接线 2、注意 二、仿真设置 三、仿真时问题的解决 (Keil5.

    2024年02月06日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包