200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】

【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】

时间:2019-04-27 16:47:05

相关推荐

【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】

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.运行成功

附软件安装包和汉化包和工程模板

链接:/s/18-zauIW_uneoRqQPw9_PIA

提取码:hhhh

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。