这是一个数字计数器的设计,有图,有源程序,还有仿真结果。附件里是所有资料。
down 减1
rest 归零
stop 停止
UP加1
播放音乐
记步器
单片机源程序如下:
- #include<reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit up=P1^0;
- sbit down=P1^3;
- sbit stop=P1^6;
- sbit reset=P1^7;
- sbit Beep=P3^7;
- uint gw,sw,gww,sww,temp;
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};
- uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12, 12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0};
- void delay(uint z)
- {
- uint x,y;
- for (x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void PlayMusic( )
- {
- uint i=0,j,k;
- while (SONG_LONG[i]!=0||SONG_TONE[i]!=0)
- {
- for(j=0;j<SONG_LONG[i]*20;j++)
- {
- Beep=~Beep;
- for (k=0;k<SONG_TONE[i]/2;k++);
- }
- delay (10);
- i++;
- }
- }
- void init( )
- {
- gw=0;
- gww=0;
- sw=0;
- sww=0;
- temp=0;
- P0=0;
- P2=0xff;
- P3=0xff;
- Beep=0;
- P0=table[sw];
- P2=table[gw];
- IT0=1;
- EX0=1;
- }
- void keyscan( )
- {
- if(temp==0)
- {
- if(up==0)
- {
- delay(5);
- if(up==0)
- {
- while(!up);
- if(gw==9)
- {
- gw=0;
- P2=table[gw];
- if(sw==9)
- {
- sw=0;
- P0=table[sw];
- }
- else
- {
- sw++;
- P0=table[sw];
- }
- }
- else
- {
- gw++;
- P2=table[gw];
- }
- }
- }
- if(down==0)
- {
- delay(5);
- if(down==0)
- {
- while(!down);
- if(gw==0)
- {
- gw=9;
- P2=table[gw];
- if(sw==0)
- {
- sw=9;
- P0=table[sw];
- }
- else
- {
- sw--;
- P0=table[sw];
- }
- }
- else
- {
- gw--;
- P2=table[gw];
- }
- }
- }
- }
- if(stop==0)
- {
- delay(5);
- if(stop==0)
- {
- while(!stop);
- if((gw!=0) || (sw!=0))
- {
- temp++;
- if(temp==1)
- EA=1;
- if(temp==2)
- EA=0;
- if(temp==3)
- {
- temp=1;
- EA=1;
- }
- }
- }
- }
- if(reset==0)
- {
- delay(5);
- if(reset==0)
- {
- while(!reset);
- if((gw!=0) || (sw!=0))
- {
- gw=0;
- sw=0;
- P2=table[gw];
- P0=table[sw];
- Beep=0;
- init( );
- EA=1;
- }
- }
- }
- }
- void main()
- {
- init();
- while(1)
- {
- keyscan();
- }
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
智能仪表.rar
(339.01 KB, 下载次数: 42)
|