日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

歷史上的今天

今天是:2025年08月05日(星期二)

2021年08月05日 | 基于8051實(shí)現(xiàn)的雙倒計(jì)時(shí)器(Version1.1)

發(fā)布者:Amy啊111111 來(lái)源: eefocus 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

Version1.1較Version1.0功能更加完善.


程序實(shí)現(xiàn)的功能:


1. 實(shí)驗(yàn)箱上電后, 兩倒計(jì)時(shí)器都不顯示, 且都處于暫停狀態(tài).


2. 向8051發(fā)送"Show countdown 1st.E"后, 第一個(gè)倒計(jì)時(shí)器顯示秒數(shù)(初始為0, 然后從15開(kāi)始倒計(jì)時(shí)).


3. 向8051發(fā)送"Show countdown 2nd.E"后, 第二個(gè)倒計(jì)時(shí)器顯示秒數(shù)(初始為0, 然后從25開(kāi)始倒計(jì)時(shí)).


4. 向8051發(fā)送"Start countdown 1st.E"后, 第一個(gè)倒計(jì)時(shí)器開(kāi)始倒計(jì)時(shí).


5. 向8051發(fā)送"Start countdown 2nd.E"后, 第二個(gè)倒計(jì)時(shí)器開(kāi)始倒計(jì)時(shí).


6. 向8051發(fā)送"Hide countdown 1st.E"后, 第一個(gè)倒計(jì)時(shí)器隱藏秒數(shù).


7. 向8051發(fā)送"Hide countdown 2nd.E"后, 第二個(gè)倒計(jì)時(shí)器隱藏秒數(shù).


8. 向8051發(fā)送"Stop countdown 1st.E"后, 第一個(gè)倒計(jì)時(shí)器暫停倒計(jì)時(shí).


9. 向8051發(fā)送"Stop countdown 2nd.E"后, 第二個(gè)倒計(jì)時(shí)器暫停倒計(jì)時(shí).


10. 向8051發(fā)送"Show both.E"后, 兩個(gè)倒計(jì)時(shí)器顯示秒數(shù).


11. 向8051發(fā)送"Hide both.E"后, 兩個(gè)倒計(jì)時(shí)器隱藏秒數(shù).


12. 向8051發(fā)送"Start both.E"后, 兩個(gè)倒計(jì)時(shí)器開(kāi)始倒計(jì)時(shí).


13. 向8051發(fā)送"Stop both.E"后, 兩個(gè)倒計(jì)時(shí)器暫停倒計(jì)時(shí).


#include

 

#include

 

unsigned char code DIG_CODE[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};//對(duì)應(yīng)數(shù)碼管顯示0~9

 

char buf[30];//存儲(chǔ)接收到的命令

 

int tcount = 0;//記錄經(jīng)過(guò)的5ms區(qū)間段個(gè)數(shù)

 

int sec1 = 15, sec2 = 25;//倒計(jì)時(shí)初始值

 

int sec1_ = 0, sec2_ = 0;//實(shí)時(shí)變化

 

int t1 = 0, t2 = 0;

 

char en1 = 0, en2 = 0;//兩計(jì)時(shí)器秒數(shù)顯示標(biāo)志, 默認(rèn)為不顯示

 

char en1_ = 0, en2_ = 0;//兩計(jì)時(shí)器啟停標(biāo)志, 默認(rèn)為停止

 

void T0_INT() interrupt 1 //timer0中斷, 每5ms觸發(fā)一次

{

TR0 = 0;//關(guān)閉timer0

TH0 = 0xEC;

TL0 = 0x78;//65536 - 5000 = 60536

if(tcount % 4 == 0)

{

if(en1_ == 1)//若倒計(jì)時(shí)器1啟動(dòng)

{

//顯示個(gè)位數(shù)(第一個(gè)倒計(jì)時(shí)器)

P2 = 0;// P2 = 0 -> (P24, P23, P22) = (0, 0, 0) -> 右數(shù)第一個(gè)數(shù)字點(diǎn)亮

if(en1 == 1)//若倒計(jì)時(shí)器1顯示秒數(shù)

{

P0 = DIG_CODE[sec1_ % 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

t1 ++;

}

else//若倒計(jì)時(shí)器1暫停

{

//顯示個(gè)位數(shù)(第一個(gè)倒計(jì)時(shí)器)

P2 = 0;// P2 = 0 -> (P24, P23, P22) = (0, 0, 0) -> 右數(shù)第一個(gè)數(shù)字點(diǎn)亮

if(en1 == 1)//若倒計(jì)時(shí)器1顯示秒數(shù)

{

P0 = DIG_CODE[sec1_ % 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

}

tcount ++;

}

else if(tcount % 4 == 1)

{

if(en1_ == 1)//若倒計(jì)時(shí)器1啟動(dòng)

{

//顯示十位數(shù)(第一個(gè)倒計(jì)時(shí)器)

P2 = 1 << 2;//P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右數(shù)第二個(gè)數(shù)字點(diǎn)亮

if(en1 == 1)//若倒計(jì)時(shí)器1顯示秒數(shù)

{

P0 = DIG_CODE[sec1_ / 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

t1 ++;

}

else//若倒計(jì)時(shí)器1暫停

{

//顯示十位數(shù)(第一個(gè)倒計(jì)時(shí)器)

P2 = 1 << 2;//P2 = 0000 0100 -> (P24, P23, P22) = (0, 0, 1) -> 右數(shù)第二個(gè)數(shù)字點(diǎn)亮

if(en1 == 1)//若倒計(jì)時(shí)器1顯示秒數(shù)

{

P0 = DIG_CODE[sec1_ / 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

}

tcount ++;

}

else if(tcount % 4 == 2)

{

if(en2_ == 1)//若倒計(jì)時(shí)器2啟動(dòng)

{

//顯示個(gè)位數(shù)(第二個(gè)倒計(jì)時(shí)器)

P2 = 100 << 2;//P2 = 0001 0000 -> (P24, P23, P22) = (1, 0, 0) -> 右數(shù)第五個(gè)數(shù)字點(diǎn)亮

if(en2 == 1)//若倒計(jì)時(shí)器2顯示秒數(shù)

{

P0 = DIG_CODE[sec2_ % 10];

}

else 

{

P0 = 0;//不顯示數(shù)字

}

t2 ++;

}

else//若倒計(jì)時(shí)器2暫停

{

//顯示個(gè)位數(shù)(第二個(gè)倒計(jì)時(shí)器)

P2 = 100 << 2;//P2 = 0001 0000 -> (P24, P23, P22) = (1, 0, 0) -> 右數(shù)第五個(gè)數(shù)字點(diǎn)亮

if(en2 == 1)//若倒計(jì)時(shí)器2顯示秒數(shù)

{

P0 = DIG_CODE[sec2_ % 10];

}

else 

{

P0 = 0;//不顯示數(shù)字

}

}

tcount ++;

}

else if(tcount % 4 == 3)

{

if(en2_ == 1)//若倒計(jì)時(shí)器2啟動(dòng)

{

//顯示十位數(shù)(第二個(gè)倒計(jì)時(shí)器)

P2 = 101 << 2;//P2 = 0001 0100 -> (P24, P23, P22) = (1, 0, 1) -> 右數(shù)第六個(gè)數(shù)字點(diǎn)亮

if(en2 == 1)//若倒計(jì)時(shí)器2顯示秒數(shù)

{

P0 = DIG_CODE[sec2_ / 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

t2 ++;

}

else//若倒計(jì)時(shí)器2暫停

{

//顯示十位數(shù)(第二個(gè)倒計(jì)時(shí)器)

P2 = 101 << 2;//P2 = 0001 0100 -> (P24, P23, P22) = (1, 0, 1) -> 右數(shù)第六個(gè)數(shù)字點(diǎn)亮

if(en2 == 1)//若倒計(jì)時(shí)器2顯示秒數(shù)

{

P0 = DIG_CODE[sec2_ / 10];

}

else

{

P0 = 0;//不顯示數(shù)字

}

}

tcount ++;

}

if(tcount == 200)

{

tcount = 0;

}

if(t1 == 100)

{

t1 = 0;

if(-- sec1_ == -1)

{

sec1_ = sec1;

}

}

if(t2 == 100)

{

t2 = 0;

if(-- sec2_ == -1)

{

sec2_ = sec2;

}

}

TR0 = 1;//重新開(kāi)啟timer0

}

 

int main()

{

int i = 0;

P2 = 111 << 2;

P0 = 0;//數(shù)碼管全滅

TMOD = 0x21;

SCON = 0x50;//設(shè)置串行通信格式

TH0 = 0xEC;

TL0 = 0x78;//65536 - 5000 = 60536 = EC78H

TH1 = 0xE6;

TL1 = 0xE6;

IE = 0x82;

TR0 = 1;//開(kāi)啟timer0

TR1 = 1;//開(kāi)啟timer1

while(1)

{

if(RI == 1)//如果收到數(shù)據(jù)

{

RI = 0;

buf[i ++] = SBUF;//接收串口發(fā)來(lái)的數(shù)據(jù)

buf[i] = '