加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于STM32的八位数码管显示Proteus仿真设计

11/07 13:44
1657
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
    • 1.主要功能
    • 2.仿真设计
    • 3. 程序设计
    • 4. 设计报告
    • 5. 资料清单&下载链接
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0093

1.主要功能

以STM32单片机为核心,设计八位数码管显示仿真实验。

1.使用Proteus仿真软件STM32F103系列芯片设计数码管显示电路

2.开始仿真后数码管显示87654321.显示数字可以修改为其他内容

3.使用STM32CubeMx图像化工具新建工程。

4.数码管使用74HC245和74HC138作为驱动电路

主要硬件设备:STM32F103C6+数码管+74HC245+74HC138

资料下载链接(可点击):

通过百度网盘分享的文件:KEY_C0093

链接:https://pan.baidu.com/s/1AR-5aXgClKMVHf-Q-84QcA?pwd=ksjd

提取码:ksjd

以下为本设计资料展示:

2.仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

仿真显示87654321

img

3. 程序设计

程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序是HAL版本编写的,有stm32cubemx配置文件。有注释可以结合讲解视频理解。

img

img
数码管显示驱动代码

#include "smg.h"
#include "system.h"
#include "gpio.h"

//共阴极数码管显示0~F的段码数据
uint8_t gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//数码管端口8位数据同时操作,不影响高位
//写入数据到8位端口,数据低位对应端口低引脚
//GPIO_Pin:8位端口低位引脚
//data:写入数据
void SMG_Write_Data(u8 data)
{
#if 1
		uint16_t Set_Pins = 0, Rst_Pins = 0;
	//DataDir('O');
	if(data & 0x01) Set_Pins |= LED0_Pin;
	else Rst_Pins |= LED0_Pin;
	if(data & 0x02) Set_Pins |= LED1_Pin;
	else Rst_Pins |=  LED1_Pin;
	if(data & 0x04) Set_Pins |=  LED2_Pin;
	else Rst_Pins |=  LED2_Pin;
	if(data & 0x08) Set_Pins |=  LED3_Pin;
	else Rst_Pins |=  LED3_Pin;
	if(data & 0x10) Set_Pins |=  LED4_Pin;
	else Rst_Pins |=  LED4_Pin;
	if(data & 0x20) Set_Pins |=  LED5_Pin;
	else Rst_Pins |=  LED5_Pin;
	if(data & 0x40) Set_Pins |=  LED6_Pin;
	else Rst_Pins |=  LED6_Pin;
	if(data & 0x80) Set_Pins |=  LED7_Pin;
	else Rst_Pins |=  LED7_Pin;
	
	HAL_GPIO_WritePin(GPIOA, Set_Pins, GPIO_PIN_SET);
	HAL_GPIO_WritePin(GPIOA, Rst_Pins, GPIO_PIN_RESET);
#else
	 GPIOA->ODR = gsmg_code[data];  
#endif
}

//数码管显示
void SMG_Display(uint8_t dat[],uint8_t pos)
{
	u8 i=0;
	u8 pos_temp=pos-1;//从0开始

	for(i=pos_temp;i<8;i++)
	{
	   	switch(i)//位选
		{
			case 0: LSC=1;LSB=1;LSA=1;break;
			case 1: LSC=1;LSB=1;LSA=0;break;
			case 2: LSC=1;LSB=0;LSA=1;break;
			case 3: LSC=1;LSB=0;LSA=0;break;
			case 4: LSC=0;LSB=1;LSA=1;break;
			case 5: LSC=0;LSB=1;LSA=0;break;
			case 6: LSC=0;LSB=0;LSA=1;break;
			case 7: LSC=0;LSB=0;LSA=0;break;
		}
		SMG_Write_Data(dat[i]);
		//传送段选数据
		HAL_Delay(2);//延时一段时间,等待显示稳定
		SMG_Write_Data(0x00);//消隐
	}
}

4. 设计报告

5644字设计报告,内容包括硬件设计、软件设计、结论等。

img

数码管显示字程序流程框图

img

5. 资料清单&下载链接

img

0、常见使用问题及解决方法–必读!!!!

1、程序代码

2、Proteus仿真

3、功能要求

4、设计报告

5、讲解视频

6、框图

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

  • 设计资料获取联系方式.doc

相关推荐

电子产业图谱