原本只是想做个TM1650驱动4位共阴数码管的板子,但是想了想,还有足够空间(主要是穷,打板子贵,而且麻烦,想尽一切办法在10*10cm中塞入东西),就放了STC8F2K16S2芯片上去,动态扫描,推挽输出。连限流电阻都省了。
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
制作出来的实物图如下:
单片机源码:
这里只贴出主函数:void main(void)
{
unsigned int num=0,wei=0;
unsigned char key=0;
unsigned char state=STATE_NORMAL;
init_sysclock();
delay_1ms(50);
init_dis_io();
all_sge_light();
delay_1ms(500);
init_time0();
init_key();
// control_8888_flick(0x01,1);
//select_wei(2);
while(1)
{
key=GetKeycode();
//select_wei(key);
switch (state)
{
case STATE_NORMAL:
if(flig_200ms)
{
flig_200ms=0;
dis_time(time.hour,time.min);
}
if(key==KEY_SET)
{
set_time(key);
state=STATE_SET_TIME;
}
break;
case STATE_SET_TIME:
if(set_time(key)==1)
state=STATE_NORMAL;
break;
default:
break;
}
if(flig_1s)
{
flig_1s=0;
going_time();
}
if(flig_05s)
{
flig_05s=0;
dis_colon_flick();//unit=500ms ðoÅéá˸
dis_8888_flick();//unit=500ms
}
if(flig_50ms)
{
}
if(flig_20ms)
{
flig_20ms=0;
scan_key();//unit=20ms
}
if(flig_5ms)
{
flig_5ms=0;
dis_4X8();//unit=5ms
}
}
}
详细代码见附件
TM1650驱动4位共阴数码管 STC8F2K16S2直驱.rar
(479.72 KB, 下载次数: 154)
TIME.rar
(85.26 KB, 下载次数: 108)
|