久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4080|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)時(shí)鐘程序 為什么秒到了60,分不會(huì)加一?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
20黑幣


我的程序在下面,可以幫我看看為什么秒到了60,分不會(huì)加一?可以教教我怎么改嗎?謝謝
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
#define TIME=1200
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit K5=P1^4;
unsigned int cnt=0;
unsigned char i=0;
unsigned long sec=0;
unsigned char second = 0;
unsigned char minute = 0;
unsigned char hour = 0;
unsigned char code segment_code[10] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f};
unsigned char digital_tube[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x39,0x38};
void ScanLed()
{
        static unsigned char display_bit = 0;
        switch (display_bit)
        {
        case 0:
                P2=0xfe;
                break;
        case 1:
                P2=0xfd;
                break;
        case 2:
                P2=0xfb;
                break;
        case 3:
                P2=0xf7;
                break;
        case 4:
                P2=0xef;
                break;
        case 5:
                P2=0xdf;
                break;
        case 6:
                P2=0xbf;
                break;
        case 7:
                P2=0x7f;
                break;
        default:
                break;
}
        P0=digital_tube[display_bit];
                display_bit++;
        if (display_bit == 8)
                display_bit = 0;
}
void main()
{
        TMOD = 0x01;
    TH0 = 64536 / 256;
    TL0 = 64536 % 256;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
        while (1)
                ;
}
void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=100;j>0;j--);
}
void Timer0() interrupt 1
{
        static int index = 0;
        TH0 = 64536 / 256;
   TL0 = 64536 % 256;
        index++;
        ScanLed();
        if (index == 1000)
        {
                index = 0;
                second++;
        }
        if (second == 60)
        {
                second = 0;
                minute++;
        }
        if (minute == 60)
        {
                minute = 0;
                hour++;
        }
        if (hour == 24)
        {
                hour = 0;
        }
        if(K4==0)
    {
  delay(10);
   if(K4==0)
{
hour++;
if(hour==24)        hour=0;
}
  while(!K4);
}
if(K3==0)
   {
  delay(10);
  if(K3==0)
{
  minute++;
  if(minute==60)        minute=0;
   }
while(!K3);
  }
if(K2==0)
{
delay(10);
if(K2==0)
   {
second++;
if(second==24)       second=0;
}
while(!K2);
}
if(K1==0)
     {
delay(10);
if(K1==0)
      {
hour=0;
minute=0;
second=0;
}
while(!K1);
}
digital_tube[0] = segment_code[hour / 10];
digital_tube[1] = segment_code[hour % 10]+0x80;
digital_tube[2] = segment_code[minute / 10];
digital_tube[3] = segment_code[minute % 10]+0x80;
digital_tube[4] = segment_code[second / 10];
digital_tube[5] = segment_code[second % 10]+0x80;
digital_tube[6] = 0x39;
digital_tube[7] = 0x38;        
}

最佳答案

查看完整內(nèi)容

給你一個(gè)程序小函數(shù)參考,希望對(duì)你有幫助 //-----------------------計(jì)時(shí)---秒-分-時(shí)----------------------------------- if(js == 2) //判斷是否是計(jì)數(shù)2次500ms即是1秒 { js = 0; Sec ++; if(Sec == 60) { Sec = 0; min ++; if(min == 60) { min = 0; hour ++; if(hour == 24) { hour = 0; } } } }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:65956 發(fā)表于 2020-6-23 15:53 | 只看該作者
給你一個(gè)程序小函數(shù)參考,希望對(duì)你有幫助
//-----------------------計(jì)時(shí)---秒-分-時(shí)-----------------------------------
                if(js == 2)                                                                        //判斷是否是計(jì)數(shù)2次500ms即是1秒
                {
                        js = 0;
                        Sec ++;
                        if(Sec == 60)
                        {
                                Sec = 0;
                                min ++;
                                if(min == 60)
                                {
                                        min = 0;
                                        hour ++;
                                        if(hour == 24)
                                        {
                                                hour = 0;
                                        }
                                }
                        }
                }
回復(fù)

使用道具 舉報(bào)

板凳
ID:548551 發(fā)表于 2020-6-23 17:22 | 只看該作者
void Timer0() interrupt 1 .你這個(gè)中斷程序不知道定時(shí)是多久, 如果可以建議更改一下定時(shí)的時(shí)長(zhǎng), 改成4MS一個(gè)定時(shí);這樣好計(jì)算一點(diǎn). 下面是一個(gè)參考.
下面的幾個(gè)變量你自己定義全部是unchar類型的.你以后寫程序,定時(shí)的時(shí)候不要用if(mmm==60)這樣的.
void Timer0() interrupt 1
{
        //前面的定時(shí)你自己設(shè)定,4MS一個(gè)定時(shí)就可以了
        time_1s++;                                //4ms開始加加到250時(shí)1s時(shí)間到了清零再開始加.
        if(time_1s>=250)                        //1s到
        {
                time_1s=0;                        //清零1S計(jì)數(shù)
                time_1m++;                        //1M開始計(jì)數(shù)
                if(time_1m>59)                //1M到
                {
                        time_1m=0;                //清零1M計(jì)數(shù)
                        time_1h++;                //1H開始計(jì)數(shù)
                        if(time_1h>59)                //1H到
                        {       
                                time_1h=0;                //清零1H計(jì)數(shù)
                                time_24h++;                //24H開始計(jì)數(shù)
                                if(time_24h>23)                //24H到
                                {
                                        time24h=0;        //清零24小時(shí)計(jì)數(shù)
                                }
                        }
                }
        }
}
回復(fù)

使用道具 舉報(bào)

地板
ID:584814 發(fā)表于 2020-6-23 17:36 | 只看該作者
關(guān)注一下中斷里的這個(gè) static int index = 0;
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2020-6-23 20:19 | 只看該作者
http://www.zg4o1577.cn/bbs/forum.p ... 0872&highlight=


回復(fù)

使用道具 舉報(bào)

6#
ID:786338 發(fā)表于 2020-6-23 22:32 | 只看該作者
aking991 發(fā)表于 2020-6-23 17:18
給你一個(gè)程序小函數(shù)參考,希望對(duì)你有幫助
//-----------------------計(jì)時(shí)---秒-分-時(shí)------------------ ...

好的,謝謝
回復(fù)

使用道具 舉報(bào)

7#
ID:636538 發(fā)表于 2020-6-24 09:40 | 只看該作者
aking991 發(fā)表于 2020-6-23 17:18
給你一個(gè)程序小函數(shù)參考,希望對(duì)你有幫助
//-----------------------計(jì)時(shí)---秒-分-時(shí)------------------ ...

if (second == 60)
  {
                second = 0;
                minute++;
   }
if (minute> 59)
   {
                minute = 0;
                hour++;
   }
這么寫有問題嗎?
我一般是你寫的這樣,但是這個(gè)這么寫我也不覺得有問題
回復(fù)

使用道具 舉報(bào)

8#
ID:636538 發(fā)表于 2020-6-24 09:45 | 只看該作者
man1234567 發(fā)表于 2020-6-23 17:36
關(guān)注一下中斷里的這個(gè) static int index = 0;

為什么關(guān)注這,看著沒有問題啊,
回復(fù)

使用道具 舉報(bào)

9#
ID:636538 發(fā)表于 2020-6-24 09:51 | 只看該作者
整體看完邏輯沒有問題,但是為什么沒有加1,我認(rèn)為是你的中斷定時(shí)設(shè)置時(shí)間太短,按照你index=1000;說明你定時(shí)時(shí)間是1MS,而你1MS的時(shí)間太短沒有處理完你的中斷程序就結(jié)束了,因此建議你將定時(shí)時(shí)間設(shè)置為10ms試試,將定時(shí)時(shí)間延長(zhǎng),這樣在我看來沒有問題了。而且不建議你把按鍵也放在中斷里處理,
回復(fù)

使用道具 舉報(bào)

10#
ID:744327 發(fā)表于 2020-6-24 09:58 | 只看該作者
寫一個(gè)定時(shí)模塊給你
void SystemInit(void)

{

TMOD=0x01;

TH0=(65536-45872)/256;//定時(shí)50ms//晶振:11.0592MHZ

TL0=(65536-45872)%256;

ET0=1;

TR0=1;

EA=1;

}
回復(fù)

使用道具 舉報(bào)

11#
ID:65956 發(fā)表于 2020-6-28 08:19 | 只看該作者
SKYLAR123 發(fā)表于 2020-6-24 09:40
if (second == 60)
  {
                second = 0;

這樣寫是你的邏輯沒有搞對(duì),你的目的是在計(jì)一秒后要對(duì)另外兩個(gè)變量進(jìn)行判斷,如果你不放在鉗套中去判斷,當(dāng)你定時(shí)器一中斷可能會(huì)影響到它的另外變量判斷,這樣就會(huì)出現(xiàn)某個(gè)變量不動(dòng)的原因。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 三a毛片| 97人人干 | 国产伦精品一区二区三区照片91 | 国产成人亚洲精品 | 国产综合av | 午夜精品一区二区三区在线视频 | 一区二区三区回区在观看免费视频 | 精品国产不卡一区二区三区 | 超级碰在线 | 国产日韩欧美二区 | 成人久草 | 成年人在线观看 | 国产视频中文字幕 | 亚洲第一色av | 亚洲欧洲日韩精品 中文字幕 | 精品一区精品二区 | 欧美视频三区 | 国产精品视频久久久 | a级黄色片在线观看 | 一级毛片在线播放 | 久久看精品 | 亚洲精品一区中文字幕 | 久草新在线 | 一区二区免费 | 国产日韩一区二区 | 中文字字幕一区二区三区四区五区 | 午夜一区二区三区在线观看 | 国产精品久久 | 91一区二区 | 日韩欧美在线观看 | 色99视频| 日韩一级免费观看 | 精品国产久 | 亚洲国产网 | 国产美女视频黄a视频免费 国产精品福利视频 | 免费小视频在线观看 | 偷拍自拍在线观看 | 91麻豆精品国产91久久久更新资源速度超快 | 999精品视频 | 午夜羞羞 | 亚洲国产18 |