1.前面的一些Keil uVision5环境搭建具体的操作我已经省略,可以参照我前面写的博客
2.Main.c代码
#include "stm32f10x.h"
uint16_t table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //定义0~9十个数字的字型码表
uint16_t disp[2];
uint16_t temp,i;
void Delay(unsigned int count) //延时函数
{
unsigned int i;
for(;count!=0;count--)
{
i=5000;
while(i--);
}
}
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = 0xffff;//PC0-PC15引脚配置
//GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;//PB8-PB11引脚配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //配置PB8为推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIOB速度为50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化PB8
//GPIO_SetBits(GPIOB,GPIO_Pin_8); //PB8输出高电平,LED熄灭
//GPIO_Write(GPIOC, 0x0FFFF); //先熄灭所有数码管
//while(1);
while(1)
{
//GPIO_ResetBits(GPIOC, 0x0FFFF); //先熄灭所有LED
// temp = 0x0001;
for(i=0;i<=20;i++)
{
disp[1]=table[i/10]; //十位数码管显示0
disp[0]=table[i%10]; //个位数码管显示0
temp=(disp[1]<<8)|(disp[0]&0x0ff);
GPIO_Write(GPIOC,temp);
//GPIO_SetBits(GPIOC, temp); //向GPIOB口写控制码
Delay(100);
//temp =( temp<<1)+1; // temp左移一位加1获得下一个控制码
}
}
}
3.打开Proteus,添加元器件
4.添加接地和开关
5.添加总线(在总线模式下点一下,然后拖一下,间断双击两下)
6.连线
7.右击添加网络编号。
8.设计配置供电网
9.
9.选择VSSA,点击增加到GDN里面。
10.再把名称切换成VCC/VDD
11.选择VDDA点击增加到VCC/VDD里面,点击确定
12.双击STM32F103R6
13.点击文件
14.点击OBJ
15.点击最近生成的hex文件,点击打开。
16.点击确定
17.点击左下角运行
18.运行成功
附软件安装包和汉化包和工程模板
链接:https://pan.baidu.com/s/18-zauIW_uneoRqQPw9_PIA
提取码:hhhh