|
這是一個(gè)數(shù)字計(jì)數(shù)器的設(shè)計(jì),有圖,有源程序,還有仿真結(jié)果。附件里是所有資料。
down 減1
0.jpg (52.07 KB, 下載次數(shù): 48)
下載附件
2017-12-19 18:45 上傳
rest 歸零
0.jpg (119.74 KB, 下載次數(shù): 54)
下載附件
2017-12-19 18:46 上傳
stop 停止
0.jpg (82.88 KB, 下載次數(shù): 54)
下載附件
2017-12-19 18:47 上傳
UP加1
0.jpg (80.35 KB, 下載次數(shù): 52)
下載附件
2017-12-19 18:47 上傳
播放音樂
0.jpg (54.97 KB, 下載次數(shù): 40)
下載附件
2017-12-19 18:47 上傳
記步器
0.jpg (43.38 KB, 下載次數(shù): 38)
下載附件
2017-12-19 18:48 上傳
單片機(jī)源程序如下:
- #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();
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
智能儀表.rar
(339.01 KB, 下載次數(shù): 42)
2017-12-19 09:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
|