大家好,今天小编关注到一个比较有意思的话题,就是关于c语言数码管共阳极动态显示的问题,于是小编就整理了3个相关介绍c语言数码管共阳极动态显示的解答,让我们一起看看吧。
c语言数码管显示原理?
数码管分 共阳数码管 和 共阴数码管。
数码管其实就是8个段的发光二极管,只点亮其中的几个段即可显示出数字或字母用来表达信息。
共阳数码管:把8段LED的正极并在一起作为公共端连接在5V上(共阳极),然后8个LED通过单片机的8个IO端口输出高低电平使其决定点亮哪几个段。原理跟第二章的8盏LED硬件连接一样。
共阳极与共阴极数码管的显示代码各是什么意思?
拿八段数码管举例:顾名思义,一个八段数码管由八段二极管组成即a,b,c,d,e,f,g,dop(点),共八段。
其中数码管分两种,共阴极和共阳极(共阳极:数码管的阳极全部接在一起,低电平点亮它,如:如果是共阳极,显示数字“0”,代码为ox80或80H;共阴极和共阳极相反。a ━ f│ │b g━ e┃ ┃c ━d怎样用keil编写4位数码管显示1234的程序?
//头文件:
#include 'reg51.h'
//变量定义:
unsigned char table[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//表:共阳数码管 0-9
//引脚定义:
***it SMG_q = P1^0; //定义数码管阳级控制脚(千位)
***it SMG_b = P1^1; //定义数码管阳级控制脚(百位)
***it SMG_s = P1^2; //定义数码管阳级控制脚(十位)
***it SMG_g = P1^3; //定义数码管阳级控制脚(个位)
//函数声明:
void delay(void); //延时子函时
//主函数,C语言的入口函数:
void main(void)
{
unsigned char i=0; //作为查表的索引号
while(1) //不停的循环扫描,不扫描则不显示或显示不正确,即为动态显示,
{ //数码管显示 1234,可自行修改
SMG_q=0; //选择千位数码管
P0=table[1]; //查找'1'定义好的数码管段值与P0口输出,显示相应的1
delay(); //加入短暂延时
P0=0XFF; //清除数码管显示,因是共阳型,所以不是0
SMG_q=1; //关闭千位数码管
SMG_b=0; //选择百位数码管
P0=table[2]; //查找'2'定义好的数码管段值与P0口输出,显示相应的2
delay(); //加入短暂延时
P0=0XFF; //清除数码管显示,因是共阳型,所以不是0
SMG_b=1; //关闭百位数码管
SMG_s=0; //选择十位数码管
P0=table[3]; //查找'2'定义好的数码管段值与P0口输出,显示相应的2
delay(); //加入短暂延时
P0=0XFF; //清除数码管显示,因是共阳型,所以不是0
SMG_s=1; //关闭十位数码管
SMG_g=0; //选择个位数码管
P0=table[4]; //查找'2'定义好的数码管段值与P0口输出,显示相应的2
delay(); //加入短暂延时
P0=0XFF; //清除数码管显示,因是共阳型,所以不是0
SMG_g=1; //关闭个位数码管
}
}
//延时子函数,短暂延时void delay(void){ unsigned char i=10; while(i--);}
到此,以上就是小编对于c语言数码管共阳极动态显示的问题就介绍到这了,希望介绍关于c语言数码管共阳极动态显示的3点解答对大家有用。