电子时钟C语言程序和涡流传感器称重C语言程序.docVIP

  • 11
  • 0
  • 约7.53千字
  • 约 11页
  • 2018-02-01 发布于河北
  • 举报

电子时钟C语言程序和涡流传感器称重C语言程序.doc

电子时钟C语言程序和涡流传感器称重C语言程序

传感器课程设计 软时钟实验源程序: #pragma db oe #include reg52.h #include absacc.h #include string.h #include stdio.h #include intrins.h #include MATH.H #define uint unsigned int #define uchar unsigned char #define ulong unsigned long void display(void); void initsiu(void); void delay(void); void sztz(void); void jssz(void); void setsz(void); void tzszw(uchar zj); uchar inkey(void); uchar sec,min,hour; uchar disdat[6]; uchar code tab[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f}; uint count; uchar set_state,xsd; sbit zsd=P1^0; main() { uchar i; for (i=0;i6;i++) { disdat[i]= 0; //将显示缓存清零 } initsiu(); //初始化单片机 set_state=0; do { i=inkey(); //读取键盘值 if(i==0xe0)//如果读取i=0xe0,进入设置时钟 setsz(); //设置时钟 jssz(); //计算数值 display(); //显示 if((sec 0x01))//指示灯闪烁 zsd=1; else zsd=0; } while(1); } void display(void) //6位数码管显示程序,disdat[]是要显示的内容(是0~9的数字),xsd是在那一位显示小数点 { uchar i,disa,disb,disc; disb = 0x00; //显示第n位 for (i=0;i6;i++) //共显示6个数据 { disa = disdat[i]; //显示数据 if (disa 10) { P2 = disb; disc = tab[disa]; //显示段码 if (set_state==0) //显示时钟 { if ((i == 1) || (i == 3)) disc = disc | 0x80;//增加小数点显示 } else //设置时显示 { if (xsd == i) disc = disc | 0x80;//增加小数点显示 } P0 = disc; //送显示 delay (); //延时 P0 = 0x0; disb++; //下一个要显示的位置 } } P2 = 0xff; } void setsz(void) //设置时间 { uchar i,k; set_state=1; //改变显示状态 xsd=0; //设置位置 TR0=0; //停止时钟运行 jssz(); //将现在的结果放到数组disdat[] do { display(); //显示 i=inkey(); //读键 switch (i) { case 0xd0: k=0xff; //退出设置,3号键,左 break; case 0xb0: k=0; //改变设置位置,每按下一次右移一个,2号键,次左 xsd++; //数码管转换 if(xsd==6) xsd=0; break; case 0x70: //加1,1号键,右 k=0; tzszw(0); break; default: k=0; break; }

文档评论(0)

1亿VIP精品文档

相关文档