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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

按按鍵時數字會閃。查要幾天搞不定。

[復制鏈接]
跳轉到指定樓層
樓主
ID:71991 發表于 2015-7-7 22:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按按鍵時數字會閃。還有就是想實現按鍵松開后才加1,按住不放是沒有功能。

#include<reg51.h> // 包含51 單片機寄存器定義的頭文件
unsigned char code Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//數字0~9 的段碼
unsigned char int_time ; //中斷次數計數變量
unsigned char second; //秒計數變量
unsigned char minute; //分鐘計數變量
unsigned char hour; //小時計數變量
sbit S1=P1^4; //將S1 位定義為P1.4
sbit S2=P1^5; //將S2 位定義為P1.5
sbit S3=P1^6; //將S3 位定義為P1.6
sbit S4=P1^7; //將S4 位定義為P1.7
/******************************************************************
函數功能:數碼管掃描延時
********************************************************************/
void delay(void)
{
unsigned char j;
for(j=0;j<200;j++)
;
}
/******************************************************************
函數功能:鍵盤掃描延時
********************************************************************/
void delay60ms(void)
{
unsigned char i,j;
for(i=0;i<200;i++)
for(j=0;j<100;j++)
;
}
/******************************************************************
函數功能:顯示秒
入口參數:s
********************************************************************/
void DisplaySecond(unsigned char s)
{
P2=0x40; //P2.6 引腳輸出低電平, DS6 點亮
P0=Tab[s/10]; //顯示十位
delay();
P2=0x80; //P2.7 引腳輸出低電平, DS7 點亮
P0=Tab[s%10]; //顯示個位
delay();
P2=0x00; //關閉所有數碼管
}
/******************************************************************
函數功能:顯示分鐘
入口參數:m
********************************************************************/
void DisplayMinute(unsigned char m)
{
P2=0x08; // P2.3 引腳輸出低電平, DS3 點亮
P0=Tab[m/10];//顯示個位
delay();
P2=0x10; // P2.4 引腳輸出低電平, DS4 點亮
P0=Tab[m%10];
delay();
P2=0x20; //P2.5 引腳輸出低電平, DS5 點亮
P0=0xbf; //分隔符“-”的段碼
delay();
P2=0x00; //關閉所有數碼管
}
/******************************************************************
函數功能:顯示小時的子程序
入口參數:h
********************************************************************/
void DisplayHour(unsigned char h)
{
P2=0x01; //P2.0 引腳輸出低電平, DS0 點亮
P0=Tab[h/10]; //顯示十位
delay();
P2=0x02; //P2.1 引腳輸出低電平, DS1 點亮
P0=Tab[h%10]; //顯示個位
delay();
P2=0x04; //P2.2 引腳輸出低電平, DS2 點亮
P0=0xbf; //分隔符“-”的段碼
delay();
P2=0x00; //關閉所有數碼管
}
/******************************************************************
函數功能:鍵盤掃描
********************************************************************/
void key_scan(void)
{
P1=0xf0; //將P1 口高4 位置高電平“1”
if((P1&0xf0)!=0xf0) //有鍵按下
{
delay60ms(); //延時60ms 再檢測
if((P1&0xf0)!=0xf0) //確實有鍵按下
{
if(S1==0) //如果是S1 鍵按下
second++; //秒加1
second=0; //秒清0
if(S2==0) //如果是S2 鍵按下
minute++; //分鐘加1
second=0; //秒清0
if(S3==0) //如果是S3 鍵按下
hour++; //小時加1
second=0; //秒清0
if(S4==0) //如果是S4 鍵按下
{
second=0; //秒清0
minute=0; //分鐘清0
hour=0; //小時清0
}
}
}
}
/******************************************************************
函數功能:主函數
********************************************************************/
void main(void)
{
TMOD=0x01; //使用定時器T0
EA=1; //開中斷總允許
ET0=1; //允許T0 中斷
TH0=(65536-46083)/256; //定時器高八位賦初值
TL0=(65536-46083)%256; //定時器低八位賦初值
TR0=1; //啟動定時器T0
int_time=0; //中斷計數變量初始化
second=0; //秒計數變量初始化
minute=0; //分鐘計數變量初始化
hour=0; //小時計數變量初始化
while(1)
{
DisplaySecond(second); //調用秒顯示子程序
DisplayMinute(minute); //調用分鐘顯示子程序
DisplayHour(hour); //調用小時顯示子程序
}
}
/******************************************************************
函數功能:定時器T0 的中斷服務子程序
********************************************************************/
void interserve(void ) interrupt 1 using 1 //using Time0
{
TR0=0; //關閉定時器T0
key_scan(); //執行鍵盤掃描
int_time++; //中斷次數加1
if(int_time==20) //如果中斷次數滿20
{
  int_time=0; //中斷計數變量清0
  second++; //秒計數變量加1  

}
if(second==60) //如果秒計滿60
{
  second=0; //如果秒計滿60,將秒計數變量清0
  minute++; //分鐘計數變量加1
}
if(minute==60) //如果分鐘計滿60
{
  minute=0; //如果分鐘計滿60,將分鐘計數變量清0
  hour++; //小時計數變量加1
}
if(hour==24) //如果小時計滿24
{
  hour=0; //如果小時計滿24,將小時計數變量清0
}
TH0=(65536-46083)/256; //定時器T0 高四位賦值
TL0=(65536-46083)%256; //定時器T0 低四位賦值
TR0=1; //啟動定時器T0
}

QQ圖片20150707224248.jpg (95.36 KB, 下載次數: 133)

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

使用道具 舉報

沙發
ID:61876 發表于 2015-7-8 13:48 | 只看該作者
程序按鍵子程序部分應該加軟件消抖句。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 97精品国产一区二区三区 | 国产精品久久久久久久久久久久久久 | 区一区二在线观看 | 九九热在线免费视频 | 国产一区欧美 | 欧美一级在线 | 欧美一级高潮片免费的 | 伊人性伊人情综合网 | 欧美日韩视频在线播放 | 麻豆一区二区三区 | 欧美一级免费看 | 操一草| 久久久91精品国产一区二区三区 | 精品久久久久一区二区国产 | 国产亚洲一区二区三区 | 国产亚洲一区二区三区 | 国产精品一区二区欧美黑人喷潮水 | 欧美精品久久 | 成人欧美一区二区三区黑人孕妇 | 日韩精品成人 | 国产精品视频久久久 | 91porn成人精品 | 亚洲视频在线免费观看 | 亚洲精品黑人 | 在线观看中文字幕 | 91成人免费看 | 日韩av一区二区在线观看 | 99在线免费视频 | 欧美黄色网络 | 国产日韩一区二区三免费高清 | 在线免费观看a级片 | 国产精品不卡视频 | 黄色大片网站 | 911精品国产 | 美女视频一区 | 北条麻妃国产九九九精品小说 | 日韩国产精品一区二区三区 | 秋霞影院一区二区 | 大陆一级毛片免费视频观看 | 精品国产鲁一鲁一区二区张丽 | 日韩久久久久久久久久久 |