用硬盘音圈电机DIY摇摆显示钟 - 图文(5)

2020-05-23 15:06

};

unsigned int TZ,Ti;

unsigned char ii,jj,nn,mm,tt, Ms;

/*延时函数*/

void DelayMs(unsigned int msec) {

unsigned int x,y; for(x=0; x<=msec;x++) {

for(y=0;y<=110;y++); } }

/*键盘去抖处理函数*/ unsigned char ChKey(bit Key) {

if(Key==0){ DelayMs(30);

if(Key==0) return(1); } }

/*定时器中断0处理(时钟)函数*/ void timer0(void) interrupt 1 using 1 {

TH0=-(5000/256); TL0=-(5000%6); TR0=1;

BUFFER[0]=BUFFER[0]+1; if (BUFFER[0]>201){

BUFFER[0]=0; BUFFER[1]=BUFFER[1]+1; Ms=!Ms;

if (BUFFER[1]==60){

BUFFER[1]=0;BUFFER[2]=BUFFER[2]+1; if (BUFFER[2]==60){

BUFFER[2]=0;BUFFER[3]=BUFFER[3]+1; if (BUFFER[3]==24) BUFFER[3]=0; } } } }

/*定时器中断1处理(LED驱动)函数*/ void timer1(void) interrupt 3 using 1 {

TH1=(Ti+tt*15)/256; TL1=(Ti+tt*15)%6;

if((put1==1)&&(ii<7)&&(Ms*w[ii]==0)) P2=~ASCIIDOC[v[ii]*6+jj]; else P2=0xff;

jj++; tt++;

if(jj>5) {ii++; jj=0;};

if(ii>10) {ii=0;put1=~put1; put2=~put2;tt=0;} }

/*主程序*/ void main(void) { Ms=1;

Ti=-2100; //根据实际调整 mm=14;

put1=0;put2=1; /*初始化定时中断0*/ TMOD=0x11;

TH0=-5000/256; TL0=-5000%6; TR0=1;ET0=1; /*初始化定时中断1*/ TH1=Ti/256; TL1=Ti%6; TR1=1;ET1=1;

/* 七个显示位置,中间为\符 */ v[0]=10; v[1]=10; v[2]=10; v[3]=13; v[4]=10; v[5]=10; v[6]=10;

/*正常运行状态,让中间\符闪现*/ w[1]=0; w[2]=0; w[3]=1; w[4]=0; w[5]=0;

/*摇摆棒初始启动*/ do { mm--;

DelayMs(120+mm*5); put1=~put1; put2=~put2; }while(mm>0);

/*启动显示*/ ii=0;jj=0; EA=1;

/*正式运行*/

for(;;){ while(1){

/*显示时和分*/ v[1]=BUFFER[3]/10;

v[2]=BUFFER[3]-v[1]*10; v[4]=BUFFER[2]/10; v[5]=BUFFER[2]-v[4]*10;

/*按键处理*/

if(ChKey(set0)==1){ //调整项键 if(TZ<2) TZ++; else TZ=0; /*闪现调整项*/ switch(TZ){

case 0:w[1]=0;w[2]=0;w[3]=1;w[4]=0;w[5]=0;break;//正常时秒闪 case 1:w[1]=0;w[2]=0;w[3]=0;w[4]=1;w[5]=1;break;//调分时分闪 case 2:w[1]=1;w[2]=1;w[3]=0;w[4]=0;w[5]=0;break;//调时时时闪 } };

DelayMs(300);

if(ChKey(set1)==1){ if(BUFFER[TZ+1]

if(ChKey(set2)==1){ if(BUFFER[TZ+1]>0) BUFFER[TZ+1]--; else BUFFER[TZ+1]=maxnum[TZ-1];DelayMs(300);}; // 减法键 DelayMs(300); } } }

四. 结语

本制作的最大问题是操声和振动问题,尽管做了努力,还是没有完全解决,还有改善余地。由于设计没有考虑回摆时的显示,显示有明显闪烁现象,也需要进一步完善。


用硬盘音圈电机DIY摇摆显示钟 - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:NZ800C 数字式电容器保护测控装置说明书(V5.0)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: