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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2454|回復: 2
打印 上一主題 下一主題
收起左側

為什么這個單片機秒表不計時,一直0,要落淚啦?

[復制鏈接]
跳轉到指定樓層
樓主
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar second=50,minute=16,hour=15,year=20,month=06,day=22,count,count1;  //時間15:16:50,日期20.06.22
uchar second1=00,minute1=00,hour1=00,h=0;
sbit Key1=P3^0;//計時停止
sbit Key2=P3^1;//調位
sbit Key3=P3^5;//加一
sbit Key4=P3^6;//切換
sbit Buzzer=P1^1;


//延遲函數
void delay(uint t)
{
while(t)
{
t--;
}
}

//時分秒顯示函數
void dispaly1(uchar second,uchar minute,uchar hour)
{
//第一位數碼管
P2=b[0];
P0=a[hour/10];
delay(10);
//第二位數碼管
P2=b[1];
P0=a[hour%10];
delay(10);
//第三位數碼管
P2=b[2];
P0=0x40;
delay(10);
//第四位數碼管
P2=b[3];
P0=a[minute/10];
delay(10);
//第五位數碼管
P2=b[4];
P0=a[minute%10];
delay(10);
//第六位數碼管
P2=b[5];
P0=0x40;
delay(10);
//第七位數碼管
P2=b[6];
P0=a[second/10];
delay(10);
//第八位數碼管
P2=b[7];;
P0=a[second%10];
delay(10);
}
//秒表顯示
void dispaly3(uchar second1,uchar minute1,uchar hour1)
{
//第一位數碼管
P2=b[0];
P0=a[hour1/10];
delay(10);
//第二位數碼管
P2=b[1];
P0=a[hour1%10];
delay(10);
//第三位數碼管
P2=b[2];
P0=0x40;
delay(10);
//第四位數碼管
P2=b[3];
P0=a[minute1/10];
delay(10);
//第五位數碼管
P2=b[4];
P0=a[minute1%10];
delay(10);
//第六位數碼管
P2=b[5];
P0=0x40;
delay(10);
//第七位數碼管
P2=b[6];
P0=a[second1/10];
delay(10);
//第八位數碼管
P2=b[7];;
P0=a[second1%10];
delay(10);
}
//年月日顯示函數
void dispaly2(uchar day,uchar month,uchar year)
{
P2=b[0];
P0=a[day/10];
delay(10);

P2=b[1];
P0=a[day%10];
delay(10);

P2=b[2];
P0=0x40;
delay(10);

P2=b[3];
P0=a[month/10];
delay(10);

P2=b[4];
P0=a[month%10];
delay(10);

P2=b[5];
P0=0x40;
delay(10);

P2=b[6];
P0=a[year/10];
delay(10);

P2=b[7];
P0=a[year%10];
delay(10);
}


//時鐘按鍵掃描函數
void Keyscan1()
{
static uchar i=0,j=0;
if(Key1==0)
{
delay(10);//消抖
if(Key1==0)
while(!Key1);//等待按鍵彈
i++;
}
//時鐘暫停功能/
if(i%2==1)
{
TR0=0;//如果是奇數次按鍵自然關閉定時器0
}
if(i%2==0)
{
TR0=1;//如果是偶數次按鍵則打開定時器0
}
//時鐘調位和數值加一功能
if(Key2==0)
{
delay(10);
if(Key2==0)
while(!Key2);
j++;
}
if(j%4==1)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
second++;
if(second==60)
second=0;
}
}
if(j%4==2)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
minute++;
if(minute==60)
minute=0;
}
}
if(j%4==3)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
hour++;
if(hour==24)
hour=0;
}
}
}
//日期按鍵掃描函數
void Keyscan2()
{
static uchar m=0,n=0;
if(Key1==0)
{
delay(10);
if(Key1==0)
while(!Key3);
m++;
}
if(m%2==1)
{
TR0=0;//奇數次按鍵則關閉定時器0
}

if(m%2==0)
{
TR0=1;//偶數次按鍵則打開定時器0
}
if(Key2==0)
{
delay(10);
if(Key2==0)
while(!Key2);
n++;
}
//日期調位和日期加一功能
if(n%4==1)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
day++;
if(day==30)
day=0;
}
}
if(n%4==2)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
month++;
if(month==12)
month=0;
}
}
if(n%4==3)
{
if(Key3==0)
{
delay(10);
if(Key3==0)
while(!Key3);
year++;
if(year==99)
year=0;
}
}
}

void Keyscan3()
{
static uchar i=0;
if(Key1==0)
{
delay(10);//消抖
if(Key1==0)
while(!Key1);//等待按鍵彈
i++;
}
//時鐘暫停功能/
if(i%2==1)
{
TR0=0;//如果是奇數次按鍵自然關閉定時器0
}
if(i%2==0)
{
TR0=1;//如果是偶數次按鍵則打開定時器0
}
}
//主函數
void main()
{
        TMOD=0x11;            //定時器0,1工作于方式1;賦初值
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        TH1=(65536-1000)/256;
        TL1=(65536-1000)%256;
        EA=1; //開啟總中斷

        ET0=1;  //定時器0中斷允許位
                ET1=1;

                IT0=1;   //外部中斷0邊沿觸發方式
        IT1=1;  //外部中斷1邊沿觸發方式

        TR0=1;   //時鐘工作           
                TR1=0;           //秒表不工作
while(1)
{
static uchar h=0;

//時鐘和日期切換功能
if(Key4==0)
{
delay(10);
if(Key4==0)
while(!Key4);
h++;
}
if(h==1)//如果按鍵偶數次則顯示時鐘
{
dispaly1(second,minute,hour);
Keyscan1();
}

if(h==2)//如果按鍵奇數次則顯示日期
{
dispaly2(year,month,day);
Keyscan2();
}

while(h==3)//如果按鍵次則顯示秒表
{
dispaly3(second1,minute1,hour1);
Keyscan3();
}
}
}


/*************外部中斷1中斷函數************/
void ex1_int() interrupt 2
{
                h++;
                if(h==3)
                h=0;
}               

//中斷函數
void time0_int(void) interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
count++;
if(count==100)
{
count=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
{
hour=0;
day++;
if(day==30)
{
day=0;
month++;
if(month==12)
{
month=0;
year++;
if(year==99)
{
year=0;
}
}}
}
}}
//鬧鐘提醒01:01:01時
if(second==01&&minute==01&&hour==01)
Buzzer=0;
else
Buzzer=1;
}
}

void time1_int(void) interrupt 2   //秒表
{
TH1=(65536-1000)/256;
TL1=(65536-1000)%256;
count1++;
if(count1==100)
{
count=0;
second1++;
if(second1==60)
{
second1=0;
minute1++;
if(minute1==60)
{
minute1=0;
hour1++;
if(hour1==24)
{
hour1=0;
}
}
}
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:147710 發表于 2020-6-28 15:01 | 只看該作者

回復

使用道具 舉報

板凳
ID:155507 發表于 2020-6-28 15:38 | 只看該作者
/*************外部中斷1中斷函數************/
void ex1_int() interrupt 2
{

void time1_int(void) interrupt 2   //秒表
{


這一行錯誤

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清视频在线观看播放 | 粉嫩高清一区二区三区 | 久久综合爱 | 91 久久 | 婷婷丁香综合网 | 亚洲一区精品视频 | 青草福利 | 国产午夜视频 | 色伊人久久 | 日韩网站在线观看 | 亚洲社区在线 | 国产1区2区3区 | 一区二区视频在线 | 91资源在线 | 日韩在线欧美 | 亚洲自拍偷拍av | 成人妇女免费播放久久久 | 91精品国产一区二区三区 | 日韩中文字幕一区二区 | 欧美久久久久久久 | 91精品在线观看入口 | 亚洲成人免费在线观看 | 青草久久免费视频 | 91久久精品国产 | 欧美日韩电影一区二区 | 国产wwwcom| 国产欧美一区二区三区久久手机版 | 久久精品国产免费 | 欧美一区二区三区在线 | 夜夜爽夜夜操 | 中文天堂在线观看 | 做a的各种视频 | av网站免费看 | 欧美精品一区二区三区四区 | 久久久精品视频一区二区三区 | 国产高清在线 | 91精品国产乱码久久久久久久久 | 在线观看日本高清二区 | 久久毛片| 国产自产c区 | 成人国产精品色哟哟 |