知方号

知方号

基于Proteus无实物STM32入门自学教程(三)<数码管的电路图>

基于Proteus无实物STM32入门自学教程(三)

本自学教程三开始教大家点亮 数码管,本教程为静态点亮方式。 利用STM32与数码管的接口技术,完成STM32的数码管静态显示电路设计和程序的设计、运行及调试。任务要求使用STM32F103R6芯片的PC0~PC15引脚分别接2个共阴极LED数码管。个位数码管接PC0~PC7;十位数码管接PC8~PC15。采用静态显示方式,编写程序使2位数码管上循环显示 0~20。 嵌入式电子产品常用的显示器有LED和LCD两种方式 LED数码显示器价格低廉、体积小、功耗低、而且可靠性好,因此得到广泛使用。 数码管的结构和工作原理 数码管内部是由八个LED(简称位段)组成,其中有七个条形LED和一个小圆点LED。 LED导通时,相应的线段或点发光,将这些LED排成一定图形,常用来显示数字0~9、字符A~G,还可以显示H、L、P、R、U、Y、符号“—”及小数点“.”等。 LED数码管可以分为共阴极和共阳极两种结构。

共阴极就是吧二极管的阴极全部连在一起,共阳极就是把二极管的阳极全部连在一起。

 千言万语汇成一句话,LED数码管本质就是多个led灯摆成了数码的形状而已。

那么写程序的时候还是跟上一讲一样吗?当然不是,否则就不需要再讲了。我们有另外一种简便的写法。就是事先把这些abcdefg的状态集体做成数组,方便我们来下一步使用。

数码管的字型编码,要使数码管上显示某个字符,必须使它的8个位段上加上相应的电平组合,即一个8位数据,这个数据就叫该字符的字型编码。 通常用的位段的编码规则如下图所示。

共阴极和共阳极数码管的字型编码是不同的,对于同一个字符,共阴极和共阳极的字型编码是反相的。下图给出来led数码管共阳极的数据00-08,09请同学们自行补充。

一、Proteus仿真图

仿真数码管会在00和99之间循环显示。其中74LS245为LED数码管驱动芯片,可以理解为信号放大,其过程不会改变任何电平逻辑。即单片机输出高电平,到数码管端仍为高电平。

二、MDK代码

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。