找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1420|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

拼數(shù)游戲 (lcd)課題要求:進入游戲之后,產(chǎn)生一個兩位的隨機數(shù),在lcd上顯示,通...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:412944 發(fā)表于 2019-1-5 21:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include <stdlib.h>
#include "lcd.h"
#define uint unsigned int
#define uchar unsigned char
sbit Key_1 = P3^3;
sbit Key_2 = P3^4;
sbit Key_3 = P3^6;
sbit Key_4 = P3^7;
uchar Num_Temp,Num_Ture,Num_False;//temp???????
uchar Total;//????
uchar Num_Dat=0;
uint Time_Coont;//???????????
bit Change_Flag=0;
void Delay10ms(uchar delaytime);  //@11.0592MHz
void Key_Scan();
void Timer0Init(void);
void main()
{
Timer0Init();//??????????
    LcdInit(); //LCD??????????
LcdWriteCom(0x0f);   //?????? LcdWriteCom ??lcdд????????????? ????com ?????
    LcdWriteStr(1,1,"N:00    T:0");//д??λ??//
LcdWriteStr(2,1,"T:0  F:0  C:0");
LcdWriteCom(0x80+3);//?????λ??N??00????0λ??
    while(1)
{
        Key_Scan();
}
}
void Key_Scan()
{
    if(Key_1 == 0)
    {
        Delay10ms(1);
        if(Key_1 == 0)
        {
            while(Key_1 == 0);
   if(Change_Flag == 1)
   {
    if(Num_Dat /10 < 9)
     Num_Dat = Num_Dat+10;
    LcdWriteNum(1,3,Num_Dat/10);   
    LcdWriteCom(0x80+2);
   }
   else
   {
    if(Num_Dat %10 < 9)
     Num_Dat++;;
    LcdWriteNum(1,4,Num_Dat%10);   
    LcdWriteCom(0x80+3);
   }
        }
    }
    if(Key_2 == 0)
    {
        Delay10ms(1);
        if(Key_2 == 0)
        {
            while(Key_2 == 0);
   if(Change_Flag == 1)
   {
    if(Num_Dat /10 > 1)
     Num_Dat = Num_Dat-10;
    LcdWriteNum(1,3,Num_Dat/10);   
    LcdWriteCom(0x80+2);
   }
   else
   {
    if(Num_Dat %10 > 0)
     Num_Dat--;
    LcdWriteNum(1,4,Num_Dat%10);   
    LcdWriteCom(0x80+3);
   }
        }
    }
    if(Key_3 == 0)  //?л?????????
    {
        Delay10ms(10);
  if(Key_3 == 0)
        {
            while(Key_3 == 0);
   Change_Flag = ~Change_Flag;
   if( Change_Flag == 1)
    LcdWriteCom(0x80+2);
   else
    LcdWriteCom(0x80+3);
        }
    }
if(Key_4 == 0)
    {
        Delay10ms(10);
  if(Key_4 == 0)
        {
            while(Key_4 == 0);
   LcdWriteCom(0x0c);  //?????????????
   TR0 = 1;   //???????
        }
    }
}
void Timer0Init(void)  
{
TMOD &= 0xF0;  
TMOD |= 0x01;
TL0 = 0x00;  
TH0 = 0xDC;
TF0 = 0;  

TMOD &= 0x0f;  
TMOD |= 0x20;  

TR1 = 1;
ET0 = 1;   
EA = 1;      
}
void Delay10ms(uchar delaytime)  //@11.0592MHz
{
    unsigned char i, j,k;
    for(k=0; k<delaytime; k++)
    {
        i = 18;
        j = 235;
        do
        {
            while (--j);
        } while (--i);
    }
}
void Timer_0()    interrupt 1
{
TL0 = 0x00;  
TH0 = 0xDC;  

Time_Coont++;
if(Time_Coont > 100)
{
  Time_Coont = 0;
  Total++;
  if(Total > 59)
   TR0 = 0;  
  srand(TL1);  
  Num_Temp = rand()%(91)+10;  
  if(Num_Temp == Num_Dat)
   Num_Ture++;
  else
   Num_False++;
  LcdWriteNum(2,13,Num_Temp);
  LcdWriteNum(2,3,Num_Ture);  
  LcdWriteNum(2,8,Num_False);
  LcdWriteNum(1,11,Total);
  
}
}


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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-1-6 04:16 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表