‘壹’ 单片机如何用c语言使数码管显示3
这里面,只有显示两位数的程序,要想显示“-”,必须再加一位。
如果是四位显示器,可以先考虑把最左边的当做符号位。
用两个数字相减,cy=0时,把符号位显示空白。
cy=1时,把符号位显示“-”,再把数字反减,再去显示即可。
--
符号位,应该紧贴着数值位。
所以,应该判断百位、十位为零否,再把“-”显示在合适的位置上。
‘贰’ 单片机中使用数码管前三位,显示一个三位数246,的程序怎么写
利用数码管位选,加上定时器定10Ms左右的时间,依次循环显示三位数码管数字246,利用视觉余晖暂留效应,显示出三位数
‘叁’ 如何让单片机不同数码管同时显示不同数
你的图不是很清楚,根据你图上的功能来看,器件应该是:
单片机(51系列)
->
8路缓冲器(74hc245)
->
数码管(四位)
1、由于单片机io口的驱动能力有限,在单片机和数码管中间增加了缓冲器
这样可以有效的保护单片机,提高了驱动能力。
2、接法:四位数码管有四个选择端,保证统一时间只a-g字段,只对一个数码管有效。
3、点亮数码管,通过选取不同的选择端,选择好某一位数码管,通过a-g字段点亮。这个10k的上拉电阻,就针对单片机的,
因为单片机的p0口,内部是不带上拉电阻的,
10k,既能保证单片机有可靠的高电平输出,又能保证有一定的驱动
‘肆’ 单片机,P1两个数码管上静态显示1和3,求程序!
如果是静态显示,要用两个锁存器 ,用另外两个IO口控制其锁存端,假设为P2.0和P2.1
#include<reg52.h>
#define uchar unsigned char
sbit le1=P2^0;
sbit le2=P2^1;
//共阴数码管七段码
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};
void main(void )//主程序
{
le1=1;
P1=table[1];
le1=0;
le2=1;
P1=table[3];
le2=0;
while(1);
}
‘伍’ 单片机让第3个数码管显示1个3字,求程序
#include<reg51.h>
#defineucharunsignedchar
ucharcodeledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//0-9
voidt1isr()interrupt3 //显示
{
TH1=0xec;
TL1=0x78;
P2=1<<2;
P0=~ledtab[3];
}
main()
{
TMOD=0x10;
TH1=0xec;
TL1=0x78;
TR1=1;
ET1=1;
EA=1;
while(1);
}
‘陆’ 单片机按键控制数码管显示
你有原理图没?
设置三个标志位,全局变量,需要在倒计时中断里改变状态的。
程序流程是:
主程序流程:
上电初始化(设置LED状态,设置定时器相关寄存器参数,设置三个标志位状态)--->
死循环(判断标志位是否容许按键有效,然后判断是否有按键按下,转入响应的子程序处理段)
定时器中断任务:
判断是否到15秒,到了就置位标志位。
‘柒’ C语言单片机代码 数码管动态显示
这里的16个元素代表的是从十六进制数0~9、A、B、C、D、E、F的段码,根据什么来填这些数组元素?那就要看你设计程序时定义数组的作用才能确定.table[1]对应的元素为0x06,是十六进制数,转换成二进制数是00000110B,分别对应于数码管的Dp、g、f、e、d、c、b、a 脚,所以在共阴数码管上点亮b、c两段,显示的是数字1,其它同理。
‘捌’ 求编写一段程序,按下第一个按钮,数码管显示1,第二个显示2,第三个显示3
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//七段码
uchar flag=0;
void main()
{
while(1){
if(key1==0)//按键1按下
{ delayms(20);
if(key1==0){while(key1==0);flag=1;}
}
if(key2==0)//按键2按下
{ delayms(20);
if(key2==0){while(key2==0);flag=2;}
}
if(key3==0)//按键3按下
{ delayms(20);
if(key3==0){while(key3==0);flag=3;}
}
P3= table[flag];//显示
}
}
‘玖’ 如何用单片机让数码管显字
LED静态显示接口
数码管工作在静态显示方式时,共阴极(共阳极)的公共端COM连接在一起接地(电源)。每位的段选线与一个8位并行口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O接口片(例如80C51的P1端口、8155和8255的I/O端口等),也可以采用串行输入/并行输出的移位寄存器。考虑到若采用并行I/O接口,占用I/O资源较多,因而静态显示方式常采用串行接口方式,外接8位移位寄存器74HCl64构成显示电路,图2是通过串行口扩展8位LED显示器静态驱动电路,在TXD(P3.1)运行时钟信号,将显示数据由RXD(P3.0)口串行输出,串行口工作在移位寄存器方式(方式0)。
图2中使用的是共阴极数码管,因而各数码管的公共极COM端接地,要显示某字段,则相应的移位寄存器74HC164的输出线必须是高电平。 显然,要显示某字符,首先要把这个字符转换成相应的字形码,然后再通过串行口发送到74HC164。74HC164把串行口收到的数变为并行输出加到数码管上。先建立一个字形码表,以十六进制数的次序存放它们的相应字形码,共阴极字形码表如表1所示。
考虑到本设计成本问题,静态电路需要对应于每一个数码管LED接一个移位寄存器74HC164芯片。而且TXD、RXD端口在上位机通信中要用到,而如果界别的端口,编码就变得比较复杂了,所以静态显示就放弃了。
如要显示字符6,查表可知6的字形码为0x7d,把0x7d送到8位移位寄存器74HC164即可。显然,要显示字符0~9、A~F,其高4位为全0,而低4位为十六进制数。如果要显示的数高半字节不是0,则要通过程序加以变换。这种静态LED显示法有着显示亮度大,软件较为简单的特点,但硬件上使用芯片多,每个LED显示器需要一个驱动电路。