|
利用STC89C52芯片,進(jìn)行秒表的設(shè)計(jì)。將四位共陽極數(shù)碼管的,段選依口次連接到89C52的P2口上來送段選數(shù)據(jù),位選連接在P3口的0,1,2,3上。獨(dú)立鍵盤1連接到P1.6上,控制秒表暫停啟動(dòng)。鍵盤2連接到P1.7上,在秒表暫停狀態(tài)下可以進(jìn)行復(fù)位功能。晶振采用的是11.0592MHz,一個(gè)機(jī)器周期的時(shí)間為1.09us,兩邊電容的值為22pF,在電路中其穩(wěn)定振蕩頻率,達(dá)到快速起振的作用。將晶振兩端分別連接在XTAL1和XTAL2上,給單片機(jī)提供時(shí)鐘信號(hào)。
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit key1= P1^6;
- sbit key2= P1^7;
- uint a,c,bai,shi,ge,hao,num,num1,state=0;
- uchar code table[]={
- 0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,
- 0xc6,0xa1,0x86,0x8e};
- void init();
- void display();
- void delay(uchar);
- void keyscan();
- void main()
- {
- init();
- while(1){
- keyscan();
- display();
- }
- }
- void display()
- {
- hao = num%10;
- ge = num/10%10;
- shi = num /100%10;
- bai = num/1000%10;
- P3=0x01;
- P2=table[bai];//送百秒上段選數(shù)據(jù)
- delay(1);
- P3=0x02;
- P2=table[shi];//送十秒上段選數(shù)據(jù)
- delay(1);
- P3=0x04;
- P2=table[ge];//送秒上段選數(shù)據(jù)
- delay(1);
- P3=0x08;
- P2=table[hao];//送零點(diǎn)秒上段選數(shù)據(jù)
- delay(1);
- }
- void init()//初始化函數(shù)
- {
- TMOD=0x01;//工作方式選擇定時(shí)器0的工作方式1
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- EA=1;
- ET0=1;
- TR0=0;
- num = 0;
- }
- void time() interrupt 1
- {
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- a++;
- if(a==2)//2次50ms為0.1s
- {
- a=0;
- num++;
- if(num == 10000)//計(jì)滿,歸零重新開始
- num = 0;
- }
- }
- void keyscan(){
- if(!key1)
- {
- delay(10);//消抖
- if(!key1)//如果key1按下
- {
- state=~state;//state取反
- while(!key1){};
- TR0 = ~TR0;//定時(shí)器0的運(yùn)行控制位取反
- }
- }
- else if(!key2)
- {
- delay(10);
- if(!key2)//如果key2按下
- {
- if(state==1){}//在state為1即運(yùn)行狀態(tài)時(shí)繼續(xù)計(jì)時(shí)
- else if(state==0)//在state為0即暫停狀態(tài)時(shí),復(fù)位全部歸零
- {
- hao=0;
- ge=0;
- shi=0;
- bai=0;
- num=0;
- }
- }
- }
- }
- void delay(uchar z)
- {
- uchar x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
復(fù)制代碼
所有資料51hei提供下載:
秒表.zip
(13.45 KB, 下載次數(shù): 63)
2018-12-17 21:25 上傳
點(diǎn)擊文件名下載附件
秒表程序 下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|