亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
(分享設(shè)計)還是99秒倒計時程序,有修改增加兩個按鍵功能
[打印本頁]
作者:
海闊天空2015
時間:
2015-7-18 16:50
標(biāo)題:
(分享設(shè)計)還是99秒倒計時程序,有修改增加兩個按鍵功能
其實編程就是一個小模塊一個小模塊積累而成的,當(dāng)我完成99秒倒計時,我就想加入按鍵檢測模塊
今天下午有點興趣,就加入了兩個按鍵,一個是上升按鍵,每次按下后數(shù)字加1
而按鍵二 就是啟動和停止按鍵
當(dāng)按下KEY4時 停止倒計時,按下另一個按鍵可以啟動
當(dāng)啟動倒計時時,按下按鍵KEY3時就會停止,再按一次就會重新啟動
數(shù)字最大可以加到999
與大家分享我不值一提的小程序 吧!程序風(fēng)格是宋老師的風(fēng)格
也不搞什么回復(fù)可見了 !大家有什么意見要提出,一起進(jìn)步的好
另外,發(fā)表在網(wǎng)絡(luò)上也是自己備份的,到時自己的計算機(jī)沒有了,也好在這里找到
/******************************************************
項目名稱:99秒倒計時
時間:2015-7-9 V1.0
目的:使用51單片機(jī)的定時器1實現(xiàn)99秒倒計時
單片機(jī)平臺:KST51單片機(jī)開發(fā)平臺-金沙灘單片機(jī)
注意:unsigned char 的取值范圍為0-255
unsigned char 的取值范圍為0-65535
要結(jié)合單片機(jī)的硬件來看程序
2015-7-18 V1.1
增加按鍵功能
增加顯示為3位數(shù)碼管
按鍵按住后,可以讓數(shù)字上升,最大至999
增加按鍵功能停止或者啟動,同一個按鍵實現(xiàn)功能
**********************************************************/
#include<reg52.h>
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
sbit KEY3 = P2 ^6;
sbit KEY4 = P2 ^7;
bit flag = 1;
bit KeySta = 1;
bit KeySta_1 = 1;
unsigned int sec = 99;
unsigned char code LedChar[] ={
0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,
0x80,0x90,0X88,0x83,0XC6,0xA1,0x86,0x8E
};
unsigned char LedBuff[6] = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
void LedScan() //此函數(shù)實現(xiàn)Led的動態(tài)掃描
{
static unsigned char i = 0;
P0 = 0xFF;
P1 = (P1 & 0xF8)| i;
P0 = LedBuff[ i];
if(i < 2)
i++;
else
i = 0;
}
void Led()
{
LedBuff[0] = LedChar[sec % 10];
LedBuff[1] = LedChar[sec/10 %10];
LedBuff[2] = LedChar[sec/100 %10];
}
void main()
{
bit backup = 1; //按鍵值備份,保存前一次的掃描值
bit backup_1 = 1;
ENLED = 0;
ADDR3 = 1;
//定時器寄存器初始化
TMOD = 0X01;
TH0 = 0xFC; //1 ms定時
TL0 = 0x67;
EA = 1;
ET0 = 1;
TR0 = 1;
P2 = 0xF7; //P2.3 and P2.0 置 0 ,即Keyout1 keyout4輸出低電平
while(1)
{
if(KeySta != backup) //當(dāng)前狀態(tài)與前次值不相等說明此時按鍵有動作
{
if(backup == 0) //如果前次值為0,則說明當(dāng)前是彈起狀態(tài)
{
flag = 0; //倒計時停止
sec++;
}
}
backup = KeySta; //更新備份為當(dāng)前值,以備時行下次比較
if(KeySta_1 != backup_1) //Enter按鍵
{
if(backup_1 == 0)
{
flag = ~flag; //重新啟動倒計時
}
}
backup_1 = KeySta_1;
Led();
}
}
//中斷服務(wù)函數(shù)
void InterruptTimer0() interrupt 1
{
static unsigned int cnt = 0;
static unsigned char keybuf = 0xFF;
static unsigned char keybuf_1 = 0xFF;
//Range of "unsigned char" is 0 to 255
//Range of "unsigned int" is 0 to 65535
TH0 = 0xFC;
TL0 = 0x67;
cnt++;
LedScan();
keybuf = (keybuf << 1) | KEY4;
if(keybuf == 0)
{
KeySta = 0;
}
else if(keybuf == 0xFF)
{
KeySta = 1;
}
else
{
}
//end key4 pro
keybuf_1 = (keybuf_1 << 1) |KEY3;
if(keybuf_1 == 0)
{
KeySta_1 = 0;
}
else if(keybuf_1 == 0xFF)
{
KeySta_1 = 1;
}
else
{
}
//end the key3
if(cnt >= 1000 && flag == 1 )
{
cnt = 0;
if(sec >0)
sec --;
else
sec = 99;
}
}
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1