① 单片机数码管显示小数
我不懂你的电路图是怎么接的,但是数码管的小数点是这样的
P0=table1[ge];你这个是寻址的后面加个点就得了
给为 P0=table1[ge]+0x80;或者P0=table1[ge]|0x80应该都一样的;
0x80就是那个点亮,不懂你是公阳还是共阴的,
如果是公阳的是0x7f。。。和共阴的相反
② 单片机数码管如何从1显示到9
在处理单片机数码管从1显示到9的问题时,首先需要计算出1到9对应的显示码。这些码通过编程语言可以轻松获取。接着,你需要编写一个循环程序,依次显示这些数字。每次显示一个数字后,稍作等待再显示下一个数字。
为了确保数码管正常工作,你需要确认它的工作方式是共阳极还是共阴极。你可以通过简单的测试来判断这一点。例如,可以将数码管的一个段直接连接到电源,观察是否点亮,以此来判断其类型。
对于共阳极数码管,各段的公共端连接在一起,而每个段的另一端分别连接到单片机的I/O端口。对于共阴极数码管,则是所有段的末端连接在一起,公共端单独连接。
在编写代码时,还需要注意数码管的段码设置。不同数字对应的段码各不相同。例如,数字1的段码可能为0x06,数字2为0x5b,以此类推。你需要将这些段码赋值给相应的I/O端口,以实现数字的显示。
在显示每个数字后,需要适当延时,以便观察显示效果。你可以使用单片机的定时器功能来实现这一延时。这一步骤的延时时间可以根据实际需要调整,以达到理想的显示效果。
通过上述步骤,你可以轻松实现单片机数码管从1显示到9的功能。这不仅有助于你掌握数码管的显示原理,还能进一步提升你的编程技能。
③ 单片机8位数码管怎么让其中一个带小数点12.345678
你这应该是一个循环程序,循环变量是 i ,来完成8位数码管显示的吧?Display_data[i+1] ,这应该是段码表数组吧?
数码管是共阳还是共阴的,加小数点的方法是不同的。
如下图是共阳的
程序
m=_crol_(m,1);
P2=m;
if(i==1)
P0=Display_data[i+1]+0x80;//加小数点
else
P0=Display_data[i+1];
delayms(2);
④ 单片机数码管在isis哪里
点击使用元件的P,会出现元件菜单,在点击optoelectronits,在右边的菜单中找到7seg-mpx2-ca这就是两位数码管了。8位的也在里面你整排找看看
⑤ 单片机数码管小数点闪烁
假设4个数码管,每个亮2ms,一轮扫描共亮8ms,我们可以让其以120次为周期(0.96s),扫描前60次小数点亮,后60次小数点不亮,这样小数点就 以大约1HZ的速度闪烁。
例如,小数点在第二位,数码管七段码table[]中不含小数点
显示部分如下
if(a<60)
{dataport=(table[a1]);
sm1=0; Delay1ms(2);sm1=1;
dataport=(table[a2])|0x80;//第二位多个小数点
sm2=0; Delay1ms(2);sm2=1;
dataport=(table[a3]);
sm3=0; Delay1ms(2);sm3=1;
dataport=(table[a4]);
sm4=0; Delay1ms(2);sm4=1;
ia++;
}
else {dataport=(table[a1]);
sm1=0; Delay1ms(2);sm1=1;
dataport=(table[a2]); //第二位无小数点
sm2=0; Delay1ms(2);sm2=1;
dataport=(table[a3]);
sm3=0; Delay1ms(2);sm3=1;
dataport=(table[a4]);
sm4=0; Delay1ms(2);sm4=1;
ia++;
}
if(a==120) a=0;//120次后重新归零