1樓:手機使用者
下面程式你試下,延時函式自己加一下,幾毫秒到幾十毫秒#include"reg51.h"unsigned char i,j,m,xa[4];unsigned char table1[]={0x01,0x02,0x04,0x08};unsigned char table2[]={0x3fev0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};main(){tmod=0x01;tf0=1;tr0=1;ie=0x82; ex0=1;m=0;while(1) { for(j=0;j<4;j++) { p0=table1[j]; x=a[j]; p1=table2[x]; delay(); //這裡加個幾毫秒的延時,函式體自己寫下 }} }timer1() interrupt 1{ th0=0x3c; tl0=0xb0; i++; if(i==20) { i=0; m++; a[3]=m/1000; a[2]=m/100%10; a[1]=m/10%10; a[0]=m%10; }}
2樓:cindere鞡
你好:你貼出的程式很少會有人認真仔細地幫你分析。
我給你一的我的秒錶程式,有開始、停止、清零的功能,計時時間精確到小數後兩位。
希望我的回答能幫助到你。
3樓:匿名使用者
這**太亂了,。。。。不規整.
有誰可以用c語言編一個 0到59秒迴圈的秒錶的程式
4樓:匿名使用者
#include
#include
#include
int main()
}system("pause");
}純手打 希望採納,程式已測試可直接用!
5樓:不傻不笨不弱智
#include
#include
int main()}
微控制器秒錶計時器c語言程式圖 需要圖和程式
6樓:匿名使用者
#include// 時鐘與秒錶
#define uchar unsigned char
#define uint unsigned int
sbit qingling=p1^0; //清零
sbit tiaofen=p1^1; //調分
sbit tiaoshi=p1^2; //調時
sbit sounder=p1^7; //naozhong
uint a,b;
uchar hour,minu,sec, //時鐘
hour0,minu0,sec0, //秒錶
hour1,minu1,sec1;
h1,h2,m1,m2,s1,s2, //顯示位
k,s; //狀態轉換標誌
uchar code select=;
uchar code table=;
/*****************函式宣告***********************/
void keyscan();
void init();
void delay(uchar z);
void display(uchar,uchar,uchar);
void sounde();
/*****************主函式*************************/
void main()
init();
while(1)
while(tr1)
keyscan(); // 掃描函式
while(s==1) // s是狀態標誌,當s=0時,鬧鐘取消。s=1時,設定鬧鐘時間
//(也是通過調時,調分函式);
{ //s=2時,鬧鐘工作,時間與設定時刻一致時,鬧鐘響
// (一分鐘後自動關閉,可手動關閉)。再次切換,s=0.
keyscan(); //s狀態切換(0-》1-》2-》0)通過外部中斷1實現。
display(hour1,minu1,sec1); //鬧鐘時刻顯示
display(hour0,minu0,sec0);//時鐘表顯示
while(k) /*k是秒錶狀態(0-》1-》2-》0)通過外部中斷0實現。
0秒錶關;1秒錶從零計時;2秒錶停,顯示計時時間*/
display(hour,minu,sec); //秒錶顯示
/*****************初始化函式***********************/
void init()
a=0;
b=0;
k=0;
s=0;
hour0=0;
minu0=0;
sec0=0;
hour=0;
minu=0;
sec=0;
hour1=0;
minu1=0;
sec1=0;
tmod=0x11; //定時器0,1工作於方式1;賦初值
th0=(65536-5000)/256;
tl0=(65536-5000)%256;
th1=(65536-50000)/256;
tl1=(65536-50000)%256;
ea=1;
ex0=1; //秒錶中斷
ex1=1; //鬧鐘設定中斷
et0=1;
et1=1;
it0=1; //邊沿觸發方式
it1=1;
px0=1;
px1=1;
tr0=0; //初始,秒錶不工作
tr1=1; //時鐘一開始工作
/*****************定時器0中斷*************/
void timer0_int() interrupt 1 //秒錶
th0=(65536-5000)/256;
tl0=(65536-5000)%256;
a++;
if(a==2)
a=0;
sec++;
if(sec==100)
sec=0; //毫秒級
minu++;
if(minu==60)
minu=0; //秒
hour++;
if(hour==60) //分
hour=0;
/*************外部中斷0中斷函式************/
void ex0_int() interrupt 0
k++;
if(k==3)
k=0;
if(k==1)
tr0=~tr0;
if(tr0==1)
hour=0;
minu=0;
sec=0;
if(k==2)
tr0=~tr0;
/*************外部中斷1中斷函式************/
void ex1_int() interrupt 2
s++;
if(s==3)
s=0;
/*************定時器1中斷****************/
void timer1_int() interrupt 3 //控制時鐘工作
th1=(65536-50000)/256;
tl1=(65536-50000)%256;
if(s==2)
if(hour1==hour0 && minu0==minu1)
sounde();
b++;
if(b==20)
b=0;
sec0++;
if(sec0==60)
sec0=0;
minu0++;
if(minu0==60)
minu0=0;
hour0++;
if(hour0==24)
hour0=0;
/*************鍵盤掃描****************/
void keyscan()
if(s==1)
if(qingling==0)
delay(10);
if(qingling==0)
sec1=0;
minu1=0;
hour1=0;
if(tiaofen==0)
delay(10);
if(tiaofen==0)
minu1++;
if(minu1==60)
minu1=0;
while(!tiaofen);
if(tiaoshi==0)
hour1++;
if(hour1==24)
hour1=0;
while(!tiaoshi);
else //調整時鐘時間
if(qingling==0)
delay(10);
if(qingling==0)
sec0=0;
minu0=0;
hour0=0;
if(tiaofen==0)
delay(10);
if(tiaofen==0)
minu0++;
if(minu0==60)
minu0=0;
while(!tiaofen);
if(tiaoshi==0)
hour0++;
if(hour0==24)
hour0=0;
while(!tiaoshi);
/*************顯示函式****************/
void display(uchar hour,uchar minu,uchar sec)
h1=hour/10;
h2=hour%10;
m1=minu/10;
m2=minu%10;
s1=sec/10;
s2=sec%10;
p0=0xff;
p2=table[h1];
p0=select[7];
delay(5);
p0=0xff;
p2=table[h2];
p0=select[6];
delay(5);
p0=0xff;
p2=0x40;;
p0=select[5];
delay(5);
p0=0xff;
p2=table[m1];
p0=select[4];
delay(5);
p0=0xff;
p2=table[m2];
p0=select[3];
delay(5);
p0=0xff;
p2=0x40;
p0=select[2];
delay(5);
p0=0xff;
p2=table[s1];
p0=select[1];
delay(5);
p0=0xff;
p2=table[s2];
p0=select[0];
delay(5);
/*************鬧鐘函式****************/
void sounde()
sounder=~sounder;
/*************延時函式****************/
void delay(uchar z)
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
C語言程式程式設計,如何編寫C語言程式
把你的思路想好,想要達到什麼樣的功能,思路清晰後就可以一個一個功能的去寫,出錯了不用急,想一下自己錯在什麼地方,好好的看一下 雖然這樣做會花很多 的時間,但是這樣做會提高自己的閱讀分 能力,啊?書上不是有麼 自己學著寫啊 10.include main printf n 如何編寫c語言程式?首先,你...
c語言程式填空問題,C語言程式填空問題
很明顯,第bai一個是開啟檔案du,因為下面提 zhi示了開啟失dao敗。已經給出了迴檔案指標file fp,必然答最後是判斷fp的值,但是fp一開始就是空,所以肯定不會直接判斷,必然是要求寫fopen函式,已經提示檔名稱,且明說了要寫檔案所以肯定是fopen f1.dat 但是問題出來了,是w什麼...
c語言小程式的問題,c語言程式問題
注意標記符號所作用的程式域!其他的都是一些小問題,自己慢慢除錯這執行,相信你能執行成功的。c語言程式問題 c語言中只有傳遞值的一種方式,即使傳遞的是指標,還是指標的值,因此雖然p加了3,但是與pt無關,如果要修改指標形參,則要使用二重指標 include point char pt main pt ...