新人,求大神!求基于89c52单片机的电子琴和时钟的c语言程序

2019-03-24 18:29发布

跪求!!!!大神如果觉得程序太长,也可以大概讲讲!!!! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
豆沙的包子
2019-03-26 13:49
#include <reg52.h> #include <stdio.h> #define uchar unsigned char #define uint unsignde int  sbit P20 = P2^0; sbit P21 = P2^1; unsigned char code table []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code table2 []={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x80}; unsigned int shi=0;  unsigned int fen=0; unsigned int miao=0; unsigned int a=0; unsigned int b=0; unsigned int i;         unsigned int t=0; unsigned int w=0; unsigned int v=0; sbit p30=P3^0; sbit p31=P3^1;  void delay1ms(unsigned int i)   //1ms {     uchar j;         while(i--)         {for(j=0;j<125;j++)         {;}         }         }   void dis() {  a=shi/10; b=shi%10;                            P0=table[a]; P2=0xdf; delay1ms(5); P0=(table[b]|0x80); P2=0xef; delay1ms(5);  a=fen/10; b=fen%10;                            P0=table[a]; P2=0xf7; delay1ms(5); P0=(table[b]|0x80); P2=0xfb; delay1ms(5);  a=miao/10; b=miao%10;                            P0=table[a]; P2=0xfd; delay1ms(5); P0=table[b]; P2=0xfe; delay1ms(5); if(v==1) {P1=0x00;} else  {P1=table2[w];}    }  void key(void) {  P3=0xff; if(p30==0) { dis();     if(p30==0)      {          shi++;          if(shi==24)          {shi=0;}          fen=0;          miao=0;          } } if(p31==0) { dis();     if(p31==0)      {          fen++;          if(fen==60)          {fen=0;}          miao=0;                    } }   }  void main() { P0=0x00; P2=0x00; P3=0xff; shi=00; fen=00; miao=00;  EA=1; ET0=1; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1;  while (1) {    dis(); key();    }    } void Time0(void) interrupt 1 using 0 {  t++; if (t==20) { t=0; miao++; w++; if(w==8) {w=0;}    if (miao==60)         {         miao=0;         fen++;         v=0;            if(fen==60)               {                   fen=0;                   shi++;                   v=1;                      if(shi==24)                            {shi=0;                            }                   }         } }                         TH0=(65536-50000)/256; TL0=(65536-50000)%256; }

一周热门 更多>