1. 前言

Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。

这篇文章介绍Proteus的下载,安装,建立工程,完成仿真运行。

2. Proteus的下载安装

下载地址: https://pan.baidu.com/s/1jhveG9w1Hs6nL4IuZHTtlw 提取码: vswi

这是 Proteus 8.9 SP2 仿真软件安装包,软件已经注册,安装即可使用。内部带了汉化包,软件安装后将汉化安装包拷贝到软件的安装目录下覆盖即可。

将软件包下载下来之后,双击Proteus 8.9 SP2 Pro.exe然后按照提示点击下一步安装即可,中途的选项都可以选择默认。软件安装完毕后,如果想要汉化,将软件包里汉化补丁的目录下的文件夹拷贝到Proteus安装目录下覆盖即可。

3. Proteus仿真STM32程序

3.1 运行软件

软件安装后,会在桌面创建快捷方式,Proteus软件需要使用管理员身份打开运行,否则会导致元器件库找不到报错。为了方便每次启动都是管理员身份,可以选择软件图标点击鼠标右键,设置管理员身份运行。

3.2 新建工程

设置工程名称和保存路径点击下一步。

我这里是仿真STM32程序,这里就选择STM32的芯片。

创建完成之后工程的样子。

切换到原理图绘制页面,接着就可以进行原理图设计了。

3.3 keil编写程序

这里要做的实验是,按键按下控制LED灯的亮灭,并且做一个闪光灯程序,先使用keil编写一个例子程序。

硬件连线:

按键使用PA1,按下为低电平,松开为高电平。

2盏LED灯分别连接在PB6和PB7口上。

(1)按键的初始化

#include "key.h"
/*
函数功能:按键初始化
硬件连接:PA1
特性: 按下为低电平---没按下高电平
*/
void KEY_Init(void)
{//开时钟RCC->APB2ENR|=1<<2;//配置模式GPIOA->CRL&=0xFFFFFF0F;GPIOA->CRL|=0x00000080;//上拉GPIOA->ODR|=1<<1;
}/*
函数功能:函数扫描函数
函数参数: mode=1表示使用连续模式  mode=0使用单击模式
返回值:  2 3 4 5 表示具体的按钮   0表示没有按下
*/
u8 KEY_Scan(u8 mode)
{static u8 flag=1; //记录上一次按下的状态 if(mode)flag=1;if(flag&&(KEY_S3==0)){flag=0;delay_ms(20);if(KEY_S3==0)return 3;}else if(KEY_S3){flag=1; }return 0;
}

(2)主函数实现代码

#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "key.h"int main()
{u8 key_val;u32 time=0;LED_Init();BEEP_Init();KEY_Init();while(1){key_val=KEY_Scan(0); //PA1if(key_val){BEEP=!BEEP;LED1=!LED1;   //PB6}delay_ms(5);time++;if(time>=10){time=0;LED2=!LED2; //PB7}}
}

(3)编译生成hex文件

HEX文件生成后,可以导入到proteus里仿真运行

3.4 设计原理图

(1)原理图缩放

把鼠标光标放在元器件上,滚动鼠标滚轮可以放大缩小元器件。

(2)添加LED灯

点击这个P,添加元器件。

(3)选择LED灯

输入元器件名称按下回车搜索,选择LED。

(4)放置LED灯

点击空白处,点击鼠标右键,放置元器件。如果需要多盏LED灯,可以放置多个。

如果元器件的位置需要拖动重新摆放,可以点击左边的黑色箭头,然后鼠标放在元器件上按下鼠标就可以拖动位置。或者选中元器件,点击鼠标右键,选择移动元器件。

(5)LED连线设置属性

LED灯默认添加进来的位置是竖着的,如果设计不好连线,可以将鼠标光标放在LED元器件上,再点击鼠标右键,弹出对话框,改变属性方向。

鼠标光标放在接线的口上就可以连线,LED灯接在PB6,PB7,这里将线连接起来。

(6)添加电阻

元器件放置好之后,点击电阻设置阻值为1K,电阻阻值默认为10K。

设置好后的效果。

(7)添加电源

再添加一个电源,完善电路。

鼠标光标放在空白处,点击鼠标右键,选择终端-POWER。

添加后与电阻的另一边连接起来。

(8)添加按键

因为要实现,按键按下控制LED灯,需要添加一个按键元器件。

点击元器件模式,切换到元器件模式下,点击P,输入BUTTON搜索。

按键是接在PA1上的,放置好按键再设置一个电源。

3.5 开始仿真

(1)设置hex文件

双击单片机,弹出对话框,设置HEX文件,晶振。HEX文件就是前面keil生成的。

(2)配置供电网

在菜单栏里选择设计—配置供电网。

(3)点击仿真

点击左下角的箭头开始仿真。

成功运行后,可以看到LED灯已经在闪烁了。

鼠标可以点击按键,可以控制LED灯的亮灭。

到此,仿真就完成了。

3.6 常见的元器件名称

51单片机        AT89C52
按键          BUTTON
晶振          CRYSTAL
发光二极管       LED
蜂鸣器(无源)   SOUNDER
蜂鸣器(有源)   BUZZER
数码管         SEG(xSEG-xxx)
排阻          RESPACK
Analog ICs 模拟IC
CMOS 4000 series CMOS 4000系列
Data Converters 数据转换器
Diodes 二极管
Electromechanical 机电设备(只有电机模型)
Inductors 电感
Laplace Primitives Laplace变换器
Memory ICs 存储器IC
Microprocessor ICs 微处理器IC
Miscellaneous 杂类(只有电灯和光敏电阻组成的设备)
Modelling Primitives 模型基元
Operational Amplifiers 运算放大器
Optoelectronics 光电子器件
Resistors 电阻
Simulator Primitives 仿真基元
Switches & Relays 开关和继电器
Transistors 三极管 常用的一些外设模块:
DHT11   温湿度传感器
DS18B20 温度传感器
SR04    超声波测距模块
SSD1306  0.96寸OLED

利用Proteus仿真STM32实现按键控制LED灯设计相关推荐

  1. 51单片机 4个独立按键控制LED灯 (protues仿真)(C语言版)

    51单片机 4个独立按键控制LED灯 仿真操作及代码展示 _ (protues仿真)_(C语言版) 一.思路及相关问题 1.逻辑思路: 当按下key1时 led1亮起来 因为按下去具有瞬时性不用whi ...

  2. STM32按键控制LED灯亮灭(四)

    编程要点: 1)使能GPIO端口时钟: 2)初始化GPIO目标引脚为输入模式(浮空输入): 3)编写简单测试程序,检测按键的状态,实现按键控制LED灯: bsp_led.h文件 #ifndef T_L ...

  3. led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验

    1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...

  4. 记录1——stm32f411CEU6之点亮一盏LED灯+按键控制LED灯

    文章目录 前言 一.准备工作 二.点亮一盏LED灯 1.配置工程 2.代码实现 3.程序烧录注意 三.按键控制LED灯 1.配置工程 2.代码实现 按键控制 按键进阶1: 按键进阶2 3.基于自己理解 ...

  5. 【tiny4412】按键控制led灯亮灭

    前言:使用友善之臂tiny4412进行嵌入式学习,对于初学者而言并不是一件轻松事情,即使该平台已经存在很多年,网上也有很多分享,但由于官方文档相对还是不够全面,导致很多初学者遇到问题不知如何下手,如果 ...

  6. c51按键控制灯亮汇编语言,用一个按键控制LED灯亮/暗的汇编程序

    今天又搞了一个小汇编,是用一个按键控制LED灯亮/暗的汇编程序.程序编好后,开始编译,发现又是通不过,找了好几遍也没找到原因,后来找枫雪大哥看了,才找出原因,原来编写程序时不能在中文环境下编写,不然就 ...

  7. 嵌入式系统开发设计——按键控制LED灯实现

    一.实验目的 掌握STM32固件库的使用方法: 掌握基于库函数模板的开发方法: 掌握基于固件库进行GPIO端口编程的方法: 4.规范编程格式. 二.实验内容 1.查阅STM32-V5开发板按键.LED ...

  8. FPGA-02FPGA按键控制LED灯

    按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等特点,在家电.数码产品.玩具等方面有广泛的应用.本章我们将介绍如何使用按键控制多个LED的亮灭. 本章包括以下几个 ...

  9. FPGA(1)基础入门 -- 按键控制led灯

    目录 效果说明 1.配置输入输出变量 2.变量赋值 3.配置引脚(输入输出变量) 代码 效果说明 key1按键按下,led1被点亮. key2按键按下,led2被点亮. 1.配置输入输出变量 inpu ...

最新文章

  1. [转]JQuery ui 实现类似于confirm的功能
  2. vue 获取当前发布的版本_Vue 3.0重磅发布!
  3. How is parsed BeanDefinition registered
  4. Singleton patterns 单件(创建型模式)
  5. Fiddler抓包-只抓APP的请求
  6. [react] react的性能优化在哪个生命周期?它优化的原理是什么?
  7. C#LeetCode刷题之#830-较大分组的位置(Positions of Large Groups)
  8. mysql创建索引以及进程过程中出现的问题
  9. python自动化测试环境搭建_(一)Python+Appium自动化测试环境搭建
  10. next.js 安装简易教程
  11. plsqldev解决中文乱码问题
  12. 向日葵如何远程桌面Linux,最快的远程桌面向日葵软件
  13. 【懒懒的Python学习笔记一】
  14. 数据挖掘人工神经网络,神经网络的数据处理
  15. 微信小程序修改标题背景色
  16. 【matplotlib】可视化解决方案——共享绘图区域问题
  17. 基于Matlab的载波同步建模与仿真(科斯塔斯环)
  18. nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 异常
  19. html5 启动qq,web启动本地QQ程序
  20. 02笔记 离散数学——命题逻辑——基于离散数学(第3版)_章炯民,陶增乐

热门文章

  1. 0522模拟赛 A. 求和 B.农民(farmer) C.仙人掌
  2. D0x-17(anti—Sp17)-3C12/TPGS抗精子蛋白单克隆抗体/维生素E聚乙二醇琥珀酸酯偶联阿霉素研究
  3. 云计算,终将成为阿里和腾讯之争?
  4. ios 扇形 按钮_IOS 开发中画扇形图实例详解
  5. Crowd Counting by Adaptively Fusing Predictions from an Image Pyramid (BMVC2018)
  6. Vue 项目对接接口数据
  7. 找二叉树根节点到叶子结点最长路径
  8. Java游戏开发——对对碰
  9. <<浏览器工作原理与实践>>读书笔记
  10. Involution 详解与维度推导