51單片機(jī)編程制作電子鐘時(shí)間問(wèn)題.
51單片機(jī)編程制作電子鐘時(shí)間問(wèn)題.
后兩位數(shù)碼管顯示到59后,直接跳到變?yōu)橹挥械谝晃粩?shù)碼管顯示0.感覺(jué)整個(gè)人都不好了,
下面是代碼::
#include "reg52.h"
#define uchar unsigned char
unsigned char code dula_table[16]=
{
\x090xc0,0xf9,0xa4,0xb0,
\x090x99,0x92,0x82,0xf8,
\x090x80,0x90,0x88,0x83,
\x090xc6,0xa1,0x86,0x8e
};
uchar sec=0,min=0,tnum;
display(uchar,uchar,uchar,uchar);
void delay(int x)
{
\x09int i,j;
for(i=x;j>0;i--);
for(j=100;j>0;j--);\x09
}
display(uchar ml,uchar m,uchar sl,uchar s)
{
\x09P0=dula_table[ml=min/10];
\x09P2=0xEF;
\x09delay(10);
\x09P0=dula_table[m=min%10];
\x09P2=0xDF;
\x09delay(10);\x09
\x09P0=dula_table[sl=sec/10];
\x09P2=0xBF;
\x09delay(10);
\x09
\x09P0=dula_table[s=sec%10];
\x09P2=0x7F;
\x09delay(10);\x09
}
void main()
{
\x09EA=1; //打開(kāi)總中斷
\x09TMOD=0x01; //設(shè)定為定時(shí)器0工作方式1
\x09TH0=(65536-5000)/256; //賦初值,12M晶振下50ms產(chǎn)生中斷
\x09TL0=(65536-5000)%256;
\x09ET0=1; //打開(kāi)定時(shí)器0中斷
\x09TR0=1; //打開(kāi)定時(shí)器0
\x09while(1)
\x09{
\x09\x09if(tnum==20)
\x09\x09{\x09
\x09\x09\x09tnum=0;
\x09\x09\x09sec++;\x09\x09\x09
\x09\x09\x09if(sec==60)
\x09\x09\x09{\x09
\x09\x09\x09\x09min++;
\x09\x09\x09\x09sec=0;
\x09\x09\x09\x09if(min==60)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09min=0;
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09}
\x09\x09display(min/10,min%10,sec/10,sec%10);
\x09}
}
void timer0() interrupt 1 //中斷函數(shù),interrupt 1表示定時(shí)器0
{
\x09TH0=(65536-5000)/256; //重新賦初值,50ms后再次進(jìn)入中斷
\x09TL0=(65536-5000)%256;
\x09tnum++;
}
后兩位數(shù)碼管顯示到59后,直接跳到變?yōu)橹挥械谝晃粩?shù)碼管顯示0.感覺(jué)整個(gè)人都不好了,
下面是代碼::
#include "reg52.h"
#define uchar unsigned char
unsigned char code dula_table[16]=
{
\x090xc0,0xf9,0xa4,0xb0,
\x090x99,0x92,0x82,0xf8,
\x090x80,0x90,0x88,0x83,
\x090xc6,0xa1,0x86,0x8e
};
uchar sec=0,min=0,tnum;
display(uchar,uchar,uchar,uchar);
void delay(int x)
{
\x09int i,j;
for(i=x;j>0;i--);
for(j=100;j>0;j--);\x09
}
display(uchar ml,uchar m,uchar sl,uchar s)
{
\x09P0=dula_table[ml=min/10];
\x09P2=0xEF;
\x09delay(10);
\x09P0=dula_table[m=min%10];
\x09P2=0xDF;
\x09delay(10);\x09
\x09P0=dula_table[sl=sec/10];
\x09P2=0xBF;
\x09delay(10);
\x09
\x09P0=dula_table[s=sec%10];
\x09P2=0x7F;
\x09delay(10);\x09
}
void main()
{
\x09EA=1; //打開(kāi)總中斷
\x09TMOD=0x01; //設(shè)定為定時(shí)器0工作方式1
\x09TH0=(65536-5000)/256; //賦初值,12M晶振下50ms產(chǎn)生中斷
\x09TL0=(65536-5000)%256;
\x09ET0=1; //打開(kāi)定時(shí)器0中斷
\x09TR0=1; //打開(kāi)定時(shí)器0
\x09while(1)
\x09{
\x09\x09if(tnum==20)
\x09\x09{\x09
\x09\x09\x09tnum=0;
\x09\x09\x09sec++;\x09\x09\x09
\x09\x09\x09if(sec==60)
\x09\x09\x09{\x09
\x09\x09\x09\x09min++;
\x09\x09\x09\x09sec=0;
\x09\x09\x09\x09if(min==60)
\x09\x09\x09\x09{
\x09\x09\x09\x09\x09min=0;
\x09\x09\x09\x09}
\x09\x09\x09}
\x09\x09}
\x09\x09display(min/10,min%10,sec/10,sec%10);
\x09}
}
void timer0() interrupt 1 //中斷函數(shù),interrupt 1表示定時(shí)器0
{
\x09TH0=(65536-5000)/256; //重新賦初值,50ms后再次進(jìn)入中斷
\x09TL0=(65536-5000)%256;
\x09tnum++;
}
其他人氣:142 ℃時(shí)間:2020-06-11 07:51:15
優(yōu)質(zhì)解答
uchar sec=0,min=0,tnum;把它放到主函數(shù)里面看看,并且tnum=0放進(jìn)去以后它只顯示0000,不會(huì)動(dòng)了你是不是放在主函數(shù)下面,千萬(wàn)不要放在這while(1){;}里面,放在這下面的話,可能就會(huì)一直顯示0000
我來(lái)回答
類似推薦
- 修一條公路,已經(jīng)修完840米,是剩下長(zhǎng)度的75%.這條公路全長(zhǎng)多少米?
- 已知2a^y+5b^3x和 -3a^2xb^2-4y是同類項(xiàng),那么x,y的值是
- (100-X)/100=25%一步步的式子幫我寫一下
- 一個(gè)三位數(shù),百位上是既是奇數(shù)又是合數(shù)的最小自然數(shù),十位上是一位的最大質(zhì)數(shù),個(gè)位上是最小的合數(shù),這個(gè)
- 小紅的媽媽帶小紅去買牙膏.超市里同一種品牌的牙膏有兩種規(guī)格:120克的,每支9元,160克的,每支11.2元.媽媽問(wèn)小紅,買哪種規(guī)格的牙膏更合算呢?請(qǐng)你幫小紅算一算,回答為什么?
- 世界上最輕的鳥(niǎo)是蜂鳥(niǎo).一只麻雀的體重是81克,比蜂鳥(niǎo)的50倍還多1克.一只蜂鳥(niǎo)重多少克?
- 什么是矢量力? 就是力?
- OA垂直O(jiān)B,角1與角2互補(bǔ),求證OC垂直O(jiān)D
- 一種春天開(kāi)紫色的花,樹(shù)葉心形的樹(shù)
- 2.5X>50,如何計(jì)算?
- 化學(xué)文獻(xiàn)翻譯 氣液相平衡方面的 azeotopes
- 二氧化碳呈什么性,是酸性氣體嗎,酸性氣體和酸性是一個(gè)概念嗎
猜你喜歡
- 1用AgNO3和KCl(過(guò)量)制備AgCl溶膠.下列說(shuō)法錯(cuò)誤的是 ( )膠粒是帶負(fù)電荷的
- 21.做一批零件,甲單獨(dú)做要用10小時(shí).乙在相同的時(shí)間內(nèi)只能做這批零件的六分之五.現(xiàn)在甲乙合做3小時(shí)后,剩下的由甲來(lái)做,還要做幾小時(shí)?
- 3一個(gè)物體從40米高處自由下落下落多少米后該物體動(dòng)能是勢(shì)能的三倍
- 4家長(zhǎng)給高三的孩子說(shuō)幾句鼓勵(lì)的話.該怎么說(shuō)呢.
- 5在銳角角abc中.角a等于五十度.ac.bc兩邊的垂直平分線交于點(diǎn)o.則角boc的度數(shù)是多少
- 6求一篇400的《牧羊少年奇幻之旅》的讀后感.
- 7火在不同溫度下成什么顏色?
- 8已知m^2-3m-1=0 求m^3-m^2-7m+2008的值
- 9折紙花,每人折5朵則差7朵,折6朵則多16朵,有多少人?要折幾朵?
- 103只小貓分魚(yú),每只小貓分2條,還多三條,原來(lái)有多少條魚(yú)?怎樣列式?
- 11絕世美人 THE MOST BEAUTIFUL MAN IN THE WORLD怎么樣
- 12自我介紹(英文的)不少于55個(gè)單詞