两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.上一講的代碼

#include <reg52.h> 
sbit ADDR2 = P1^2;
sbit ADDR1 = P1^1;
sbit ADDR0 = P1^0;
sbit ENLED = P1^4;
sbit ADDR3 = P1^3;
 
sbit BEEP   = P1^6;
sbit KEY13  = P2^4;
sbit KEY14  = P2^5;
sbit KEY15  = P2^6;
#define  TIMES  300   //此例程的主循環(huán)里循環(huán)一次所要花費(fèi)的時(shí)間比以往的例程要多,所以按鍵的times判斷需要減少到300,不然還是500的話(huà)需要我們長(zhǎng)按住一段時(shí)間才會(huì)響應(yīng)功能代碼
unsigned char code LedChar[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//數(shù)碼管狀態(tài)值初始化
unsigned char LedBuff[6]={0xFF, 0xFF, 0xBF, 0xBF, 0xFF, 0xFF};//初始化數(shù)碼管顯示緩存區(qū)
unsigned char man=30,woman=30;//初始化男人和女人的錢(qián)
 
void UPDATE_LED()//更新數(shù)碼管顯示緩存區(qū)
{
    LedBuff[5]=LedChar[man/10]; 
    LedBuff[4]=LedChar[man%10]; 
    LedBuff[1]=LedChar[woman/10]; 
    LedBuff[0]=LedChar[woman%10];
}
 
void SEG_task()//數(shù)碼管顯示函數(shù)
{
    static unsigned char i=0;
  
    P0=0xFF;//端口狀態(tài)全部熄滅數(shù)碼管里的LED達(dá)到刷新作用
    switch(i)
    {
        case 0:
        ADDR2 = 0;ADDR1 = 0;ADDR0 = 0;P0=LedBuff[0];i++;break;
        case 1:
        ADDR2 = 0;ADDR1 = 0;ADDR0 = 1;P0=LedBuff[1];i++;break;     
        case 2:
        ADDR2 = 0;ADDR1 = 1;ADDR0 = 0;P0=LedBuff[2];i++;break;  
        case 3:
        ADDR2 = 0;ADDR1 = 1;ADDR0 = 1;P0=LedBuff[3];i++;break;
        case 4:
        ADDR2 = 1;ADDR1 = 0;ADDR0 = 0;P0=LedBuff[4];i++;break;     
        case 5:
        ADDR2 = 1;ADDR1 = 0;ADDR0 = 1;P0=LedBuff[5];i=0;break; 
    }  
}
 
void KEY13_task()
{ 
    static unsigned char key_up=1;
    static unsigned int  times=0; //用來(lái)記錄進(jìn)入過(guò)按鍵判斷語(yǔ)句的次數(shù) 
    if(key_up==0)
    {      
        times++;     
        if(times>=TIMES&&KEY13==1)
        {
            times=0;
            man+=3;      //男人的錢(qián)加3塊
            woman-=3;    //女人的錢(qián)減3塊
            UPDATE_LED();//更新數(shù)碼管顯示緩存區(qū)
        }
    }
    key_up=KEY13;
}
 
void KEY14_task()
{ 
    static unsigned char key_up=1;
    static unsigned int  times=0; //用來(lái)記錄進(jìn)入過(guò)按鍵判斷語(yǔ)句的次數(shù) 
    if(key_up==0)
    {      
        times++;     
        if(times>=TIMES&&KEY14==1)
        {
            times=0;
            man+=1;      //男人的錢(qián)加1塊
            woman-=1;    //女人的錢(qián)減1塊
            UPDATE_LED();//更新數(shù)碼管顯示緩存區(qū)
        }
    }
    key_up=KEY14;
}
 
void KEY15_task()
{ 
    static unsigned char key_up=1;
    static unsigned int  times=0; //用來(lái)記錄進(jìn)入過(guò)按鍵判斷語(yǔ)句的次數(shù) 
    if(key_up==0)
    {      
        times++;     
        if(times>=TIMES&&KEY15==1)
        {
            times=0;
            man-=2;      //男人的錢(qián)減2塊
            woman+=2;    //女人的錢(qián)加2塊
            UPDATE_LED();//更新數(shù)碼管顯示緩存區(qū)
        }
    }
    key_up=KEY15;
}
 
void BEEP_ON(unsigned char x)
{
    unsigned int i,time;
    for(time=0;time<2000;time++)//“time<2000”決定鳴叫的時(shí)間
    {  
        if(x==1)BEEP=!BEEP;
        else BEEP=0;
        for(i=0;i<30;i++);
    }
}
 
void main()
{  
    unsigned int i,x;//做循環(huán)和延時(shí)用
    ADDR3 = 1;//使能三八譯碼器
    ENLED = 0;// 
  
    P2 = 0xFE;//讓K13,K14,K15能具備有被拉低的條件先
    UPDATE_LED();//更新數(shù)碼管顯示緩存區(qū)
    while(1)
    {        
        SEG_task();  //數(shù)碼管顯示函數(shù)
        KEY13_task();//K13按鍵的任務(wù)
        KEY14_task();//K14按鍵的任務(wù)
        KEY15_task();//K15按鍵的任務(wù)
   
        if(man>=45 || woman>=45)//只要其中一方的錢(qián)到達(dá)45塊及以上就結(jié)束游戲,程序進(jìn)入死循環(huán)
        {
            if(man>=45){LedBuff[1]=0xFF; LedBuff[0]=0xFF;}//不再顯示女人的錢(qián)
            else  {LedBuff[5]=0xFF; LedBuff[4]=0xFF;}     //不再顯示男人的錢(qián)  
            while(1)
            {
                P0=0xFF;               //熄滅所有數(shù)碼管
                BEEP_ON(1);            //蜂鳴器鳴叫一段時(shí)間
                for(i=0;i<300;i++)     //讓數(shù)碼管顯示一段時(shí)間
                {
                    SEG_task();
                    for(x=0;x<200;x++);//加此延時(shí)是為了讓數(shù)碼管顯示亮一點(diǎn),不然僅讓“SEG_task();”循環(huán),顯示就會(huì)暗一些
                }
            }  
        }
    }
}

“man+=3;”就是“man= man+3;”的簡(jiǎn)化書(shū)寫(xiě)。

 

2.感言

我們現(xiàn)在是模塊化編程了,在了解了美女與男人的游戲題目后,閱讀主函數(shù)都清晰明朗很多。

這個(gè)題目的要求就像是全國(guó)電子設(shè)計(jì)競(jìng)賽一樣,需要我們一步一步地完成每個(gè)模塊功能,包括以后做產(chǎn)品項(xiàng)目,模塊化編程是為了靈活運(yùn)用和增加可讀性,以后在做其他項(xiàng)目時(shí)遇到相似的要求我們拿來(lái)主義即可,維護(hù)起來(lái)也方便,但大家都需要習(xí)慣寫(xiě)很詳細(xì)的注釋才行。

在本講代碼的基礎(chǔ)上其實(shí)也可以簡(jiǎn)單地改寫(xiě)成一個(gè)籃球簡(jiǎn)易計(jì)分器的功能,如果大家能自己實(shí)現(xiàn)的出來(lái),以后去打球拿塊開(kāi)發(fā)板去計(jì)分也可騙騙一些不懂的同學(xué),認(rèn)為這是很高大上的玩意。

點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線(xiàn)編譯      (登錄可減少運(yùn)行等待時(shí)間)