单片机 共阴数码管。如何编程

作者&投稿:华版 (若有异议请与网页底部的电邮联系)
单片机连接共阴极六位数码管,显示23.3458....类似这样的数,选择显示前四位。怎么编程编程啊?~

首先会分离十位,百位 十分位 百分位,扫描显示时,对于不需要显示的位,可以直接跳过,也可以送暗码0xFF或0x00,对于带小数点的那一位,可以在没有小数点的七段码前加0x80。

首先你要告诉别人是什么单片机 89C51 PIC?是C语音的还是汇编的?

      你所说的“8”  0xff是共阴的,那么要是他点亮,8段数码管abcdefg都应该为1,h是小数点,没有用到,则是0.

                abcdefgh则为:11111110   

                把顺序倒过来就是01111111

把八为二进制分2组,四位一组

根据8421码:

 

   8  4  2  1      8   4  2  1

-----------------------------------------------------

   0  1  1  1     1   1   1   1

 

 

4+2+1=7        8+4+2+1=15  (分数下面是0的不用和上面相加的)

 

16进制中  10=a  11=b  12=c 13=d 14=e 15=f

 

即  0x7f

 

你上面说的8=0xff是把小数点也算上去了的!

 

 



3FH,06H,5BH,4FH,66H,6DH,7DH,07H [0-7]

7FH,6FH ,77H,7CH,39H,5EH,79H,71H,76H [8-F]

这个是右下方那个小数点不亮的共阴段码,如果要亮就把最高位改为1

是这样,你要想弄清编码形式,首先要搞清数码管管脚的排列方式,有了管脚的排列方式,编码就很容易了,可以借助现成的软件,可以百度“数码管段位计算工具”,也可以自己手工编码,例如:

管脚排列顺序为a-b-c-d-e-f-g-dp时如下画表格,逐个取模即可;



你是想问段码怎么编出来的吗?


格尔木市15095656616: 求基于AT89C52单片机共阴数码管0到59秒循环计时器c语言代码 -
欧牵慰宁: #include<reg51.h> #include<INTRINS.h> #define u16 unsigned int #define u8 unsigned char/*********************************************************/ u8 ds[2]; //数码管显示缓存//共阴 code u8 w[]={~0x01,~0x02,~0x04,~0x08}; //位码 code u8 d[]={~0...

格尔木市15095656616: 用c语言编写一个计数器(单片机为51型,数码管为共阴)要求有三个按键分别控制停止、加、减 -
欧牵慰宁: 一看到你说是计数器,又看到你要求有停止功能,意思是把Timer改为计数器,然后可以通过一个键停止计数对吧?如果这样的话挺简单的,51单片机的计数器io口记得好像是P3^0和P3^1,但不管怎么,首先设置TMOD,将C/T位置1,这就改为计数器了,然后可以编写函数来对一个变量进行加减;同样利用51单片机的外部中断也可以实现计数功能,打开外部中断开关,在外部中断服务函数对计数变量进行加减;最简单的,直接利用io口高低电平变化来进行计数,编写if函数,只要某个io口电平变化了,就对计数变量进行加减.如果你对这个有点陌生,那么回复我一起讨论或者我可以帮你写程序.希望我的回答能帮助到你.

格尔木市15095656616: 3寸共阴数码管,怎么用单片机控制.最好有个电路.或者,说下方案. -
欧牵慰宁: 将阴极接到地,8个阳极接到单片机的8个I/O口上,那么哪一个I/O口为高电平则对应数码管的那段亮

格尔木市15095656616: 用51单片机C语言怎样编程,可以实现切换两个四位共阴数码管时分秒的调试? -
欧牵慰宁: 思路有点问题.除思路问题外,键盘扫描的处理也有点问题,去抖没做好.1,建议定义一个变量status标记当前调整的是“时”还是“分”还是秒.用一个按键控制这个变量的变化,变量的值由0变到3,再变为0.0的时候不调整,1的时候调整...

格尔木市15095656616: 51单片机如何用汇编语言让4个共阴数码管同时显示1234 P3口是片选 P0是段选 -
欧牵慰宁: 可以用proteus仿真来实现,用四位一体的共阴数码管.仿真图和显示效果如下图. 汇编程序

格尔木市15095656616: 有谁知道AVR单片机atmega16L控制8位共阴极数码管的程序? -
欧牵慰宁: mega16完全就可以驱动了,没必要再加驱动,另外你的驱动也就相当于uln2003吧,给你一个可行的程序你试试#include#include #define uchar unsigned char#define uint unsigned int uchar SEG7[10]={/*0x3f,0x06, 0x5B,0x4F,0x66,0x6D...

格尔木市15095656616: 90C51RD+单片机中74hc138 怎么编程序控制数码管位选的?请详细解答,最好有程序试试,谢谢 -
欧牵慰宁: 用共阴极的数码管的公共位接到138的8个输出口上,然后通过控制a,b,c三个角的电平来一次选中8个数码管.即所谓的位选!

格尔木市15095656616: 单片机共阴极两位数码管动态显示15秒倒计时 -
欧牵慰宁: 没有具体的原理图,所以就从原理上说明一下吧,首先应该先根据原理图推出每个数码管每个数字对应的8位驱动信号类型,既然是共阴极,那么如果给数码管对应的引脚置1,就会让该位发光,这样就可以推出从0到9的数码管驱动序列,如果是...

格尔木市15095656616: C51单片机如何用c语言让四位共阴数码管显示1314,要c程序 -
欧牵慰宁: 这是学51单片机的基础入门课程.看你电路咋设计,数码管是共阳还是共阴.没有固定的程序,建议你弄一个开发板,配的有课件,跟着学学,两三天就会了.

格尔木市15095656616: 一位共阴极数码管怎么与单片机相连 -
欧牵慰宁: 取单片机的8个引脚,每个引脚通过100欧的电阻与数码管的a~dp引脚相连,数码管的共阴端连接pnp型三极管的发射极e,基极b和集电极c接地就可以了,单片机的引脚最好加个10k的上拉电阻,就这样,看看行不.谢谢!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网