老师啊,,,那个电子时钟里 用小数点表示秒,怎么表示啊,,,急啊,,,,:Q
一个“或”指令把那个位并上去。
如LED的A、B、C、D、E、F、G、H、DP分别接0、1、2、3、4、5、6、7脚。
那么如果显示“0”则它的代码是3FH,而小数点对应的位是7,那么它的权是80H。
此时只要使用
MOV A,要显示的数
JNB 显示秒位标志位,不显示秒位
ANL A,#80H
不显示秒位:MOV 显示输出,A
就可以了。
注:可以做一个500MS计数,让其不断的取反秒位标志位就可实现秒位一秒闪烁一次。
把小数点闪烁进行1S定时,就可以了。下面是部分程序
bit s=0;//小数点控制位
void xs()//显示程序
{
P0=x[e/10];
if(b3)
p24=0;
fun();
p24=1;
if(s)//控制小数点闪
P0=x[e%10];
else
P0=x[e%10]&0x7f;
if(b2)
p25=0;
fun();
p25=1;
P0=x[d/10];
if(b1)
p26=0;
fun();
p26=1;
P0=x[d%10];
if(b0)
p27=0;
fun();
p27=1;
}
void inetop() interrupt 1//T2控制时间
{
TH0=0X3C;//0.1S,重装初值
TL0=0XB0;
j++;//记录定时次数
if(j==10)//1s
{j=0;
s=!s;//小数点开关
}
最好在前面介绍硬件情况,程序中加注释,这样容易看懂
如果用P0口控制数码管的8个段,P0.7对应小数点DP
共阳型数码管则P0.7为0小数点亮即:CLR P0.7
共阴型数码管则P0.7为1小数点亮即:SETB P0.7
要想小数点闪烁,只要在显示过程中一段时间执行上面这条指令,一段时间不执行这条指令就可以了。
一段时间用定时器定时。
回复 沙发 huchuan987 的帖子
定时1秒就让DP闪一下就可以解决了