做的一个时钟,3月份完成,到现在用着好好的。高考后买了电脑想学一下,可该死的就是显示不出,郁闷,就看见数码管的绿点和红点不停地闪,只有第十一个数码管A段在最开始闪了一下。
数码管型号7SEG-MPX6-CC,想在公共端接地时,段码接高电平时让它亮。纠结于什么叫共阳什么叫共阴,又在总线上接了一个7SEG-MPX1-CA。
现在是CA(接位选1)的A段不亮,其它段都亮了,在位1段A上接了个发光二极管,能闪烁,可CC的位1就是不见亮,一直暗着。
是不是这些都只是模型不能仿真?那为什么之前位11段A会亮一下?
真郁闷。
伪程序:
main()
{
uchar disp[]={*};//前6位为hello的LED段码,后10位为0xff,即8.
do{
disLED();//将disp[]的内容送至p1,p0的0~3为位选,通过BCD选16选择位
}while(1);
}
disLED()
{
P1=0XFF;//消隐
for(i=0;i<16;i++){
k=P0&0XF0;//取高四位,防止送低四位时影响高四位
P0=k+i;
P1=disp[i];
delay12();//延时12条指令的时间,不延迟的话显示会很暗
for(ii=0;ii<200;ii++)delay12();//从1到200都试过了
//200时会有明显的数字跳变,但数字是乱码
//100时没显示。
P1=0xff;//消隐,不然会影响下一个字符
}
} |