共阳数码管

更新时间:2023-03-08 07:35:47 阅读: 评论:0

人间世观后感-羊肉白菜饺子馅的做法

共阳数码管
2023年3月8日发(作者:多少人和我一样)

STM32--数码管显⽰使⽤

STM32–数码管显⽰

简介

1.硬件部分

STM32F103C8T6最⼩系统板⼀位共阴数码管

2.软件部分

Keil软件编程数码管码表

硬件部分

数码管

简介

数码管,也称作辉光管,是⼀种可以显⽰数字和其他信息的电⼦设备。玻璃管中包括⼀个⾦属丝⽹制成的阳极和多个阴极。⼤部分数码管阴极的形状为数字。管中充以低压⽓体,通常

⼤部分为氖加上⼀些汞和/或氩。给某⼀个阴极充电,数码管就会发出颜⾊光,视乎管内的⽓体⽽定,⼀般都是橙⾊或绿⾊。

分类

数码管也称LED数码管,不同⾏业⼈⼠对数码管的称呼不⼀样,其实都是同样的产品。

按发光⼆极管单元连接⽅式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光⼆极管的阳极接到⼀起形成公共阳极(COM)的数码管,共阳数码管在应⽤时应将公共极

COM接到+5V,当某⼀字段发光⼆极管的阴极为低电平时,相应字段就点亮,当某⼀字段的阴极为⾼电平时,相应字段就不亮。共阴数码管是指将所有发光⼆极管的阴极接到⼀起形

成公共阴极(COM)的数码管,共阴数码管在应⽤时应将公共极COM接到地线GND上,当某⼀字段发光⼆极管的阳极为⾼电平时,相应字段就点亮,当某⼀字段的阳极为低电平时,相

应字段就不亮。

1.共阳数码管

共阳数码管在应⽤时应将公共极COM接到+5V,当某⼀字段发光⼆极管的阴极为低电平时,相应字段就点亮,当某⼀字段的阴极为⾼电平时,相应字段就不亮。

2.共阴数码管

对于共阴极数码管来说,当某个发光⼆极管的阳极为⾼电平时,发光⼆极管点亮,相应的段被显⽰。同样,共阳极数码管的阳极连接在⼀起,公共阳极接+5V,当某个发光⼆极管的

阴极接低电平时,该发光⼆极管被点亮,相应的段被显⽰

数码管码表

unsignedcharcodesmgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管

unsignedcharcodesmgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};共阴数码管

静态数码管硬件电路设计

实物

软件部分

/**********************************************************************

*⽂件名:smg.c

*描述:smg应⽤函数库

*硬件连接:-----------------

*|PA0-A|

*|PA1-B|

*|PA2-C|

*|PA3-D|

*|PA4-E|

*|PA5-F|

*|PA6-G|

*|PA7-DP|

*-----------------

*********************************************************************/

#include"smg.h"

#include"delay.h"

//共阳数码管断码表

u8constsmg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

/*

*函数名:SMG_GPIO_Config

*描述:配置数码管⽤到的I/O⼝

*输⼊:⽆

*输出:⽆

*/

voidSMG_GPIO_Config(void)

{

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

GPIO__Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;

GPIO__Mode=GPIO_Mode_Out_PP;

GPIO__Speed=GPIO_Speed_50MHz;

GPIO_Init(GPIOA,&GPIO_InitStructure);

GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//turno

ffallled

}

/*

*函数名:SMG_Display

*描述:驱动数码管显⽰0-F

*输⼊:⽆

*输出:⽆

*/

voidSMG_Display(void)

{

u8i;

for(i=0;i<16;i++)

{

GPIO_Write(GPIOA,smg_data[i]);

delay_ms(1000);

}

}

voidDisplay_N(u8N)

{

GPIO_Write(GPIOA,smg_data[N]);

}

smg.h

#ifndef__SMG_H

#define__SMG_H

#include"stm32f10x.h"

voidSMG_GPIO_Config(void);

voidSMG_Display(void);

voidDisplay_N(u8N);

#endif/*__SMG_H*/

数码管案例(基于51单⽚机四位数码管模块(74HC595))

14脚:DS(SER),串⾏数据输⼊引脚

13脚:OE,输出使能控制脚,它是低电才使能输出,所以接GND

12脚:RCK,存储寄存器时钟输⼊引脚。上升沿时,数据从移位寄存器转存带存储寄存器。

11脚:SCK,移位寄存器时钟引脚,上升沿时,移位寄存器中的bit数据整体后移,并接受新的bit(从SER输⼊)。

10脚:MR,低电平时,清空移位寄存器中已有的bit数据,⼀般不⽤,接⾼电平即可。

9脚:串⾏数据出⼝引脚。当移位寄存器中的数据多于8bit时,会把已有的bit“挤出去”,就是从这⾥出去的。⽤于595的级联。

Qx:并⾏输出引脚

注意:

当芯⽚资料上⾯的引脚说有横线时,属于低电平⼯作。否则⾼电平⼯作;

共阳数码管如果要点亮,对应的引脚需要给1

共阴数码管如果要点亮,对应的引脚需要给0

#include"reg51.h"

unsignedcharcodeLED_0F[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,

0x90,0x8C,0xBF,0xC6,0xA1,0x86,0xFF,0xbf};//共阳数码管码表

unsignedcharcodesmgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显⽰0~F的值

//-----------------------------------------------------------------------------

//函数原形定义

#defineucharunsignedchar

#defineuintunsignedint

//能够使⽤unsignedchar//unsignedint尽量使⽤最原始的变量类型名字

voidmain(void);//主函数

voidLED4_Display(void);//LED数码管显⽰

voidLED_OUT(ucharX);//LED数码管单字节串⾏移位函数

unsignedcharcodeLED_0F[];//LED字模表

/*端⼝引脚定义*/

sbitDIO=P1^0;//串⾏数据输⼊

sbitRCLK=P1^1;//时钟脉冲信号――上升沿有效

sbitSCLK=P1^2;//打⼊信号――――上升沿有效

//-----------------------------------------------------------------------------

//全局变量

unsignedcharLED[8];//⽤于LED的8位显⽰缓存

//*****************************************************************************

//主程序

//

voidmain(void)

{

LED[0]=9;

LED[1]=0;

LED[2]=8;

LED[3]=5;

while(1)

{

LED4_Display();

}

}

//LED数码管显⽰函数

voidLED4_Display(void)

{

unsignedcharcode*led_table;//查表指针

unsignedchari;

//显⽰第1位

led_table=LED_0F+LED[0];

i=*led_table;

LED_OUT(i);

LED_OUT(0x01);//0x01显⽰在第⼀位

RCLK=0;

RCLK=1;

//显⽰第2位

led_table=LED_0F+LED[1];

i=*led_table;

LED_OUT(i);

LED_OUT(0x02);//0x02显⽰在第2位

RCLK=0;

RCLK=1;

//显⽰第3位

led_table=LED_0F+LED[2];

i=*led_table;

LED_OUT(i);

LED_OUT(0x04);//0x04显⽰在第3位

RCLK=0;

RCLK=1;

//显⽰第4位

led_table=LED_0F+LED[3];

i=*led_table;

LED_OUT(i);

LED_OUT(0x08);//0x08显⽰在第4位

RCLK=0;

RCLK=1;

}

//LED数码管单字节串⾏移位函数

voidLED_OUT(unsignedcharnumber)

{

unsignedchari;

for(i=8;i>=1;i--)

{

if(number&0x80)

{

DIO=1;

}

el

{

DIO=0;

}

number<<=1;

SCLK=0;

SCLK=1;

}

}

参考资料

本文发布于:2023-03-08 07:35:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678232147181517.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:共阳数码管.doc

本文 PDF 下载地址:共阳数码管.pdf

上一篇:幼师职业规划
下一篇:返回列表
标签:共阳数码管
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26 专利检索|