找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

有關(guān)數(shù)組方面的難題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:8198 發(fā)表于 2008-12-30 22:17 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
我想搞個(gè)抽題的 程序通過數(shù)碼管顯示題號
1-24隨機(jī)數(shù)字   按一個(gè)鍵抽一個(gè)數(shù)n
下次再抽個(gè)數(shù)m
要保證抽過的數(shù) 不再抽到

我寫的程序但是抽過的數(shù)還會顯示出來



#include  <AT89X51.h>
#define unchar unsigned char
#define unint unsigned int
sbit key1=P1^4;
sbit key2=P1^7;
unint nb[];
unchar numb,du,we,u,c=0,ui,x=24;
unchar disnum,dis,o;
unchar code tabdu[]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,             //編碼定義
0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f};
unchar code tabwe[]={0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
void xianshi(unint,unint);
void yanshi(unint);
void chuandi();
void xianshi2(unint,unint);
void main()
{
 unint nb[24]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
 while(1)
 {
   
   chuandi();  
   EA=1;
      ET1=1;
      TMOD=0x10;                               //工作模式
      TH1=(65536-65000)/256;           // fuzhi 高八位
      TL1=(65536-65000)%256;        //低八位
      TR1=1;
  
      do
          { 
     
                  if(numb==1)
            {
                 numb=0;
                 if(disnum==24)
                   disnum=0; 
                                disnum++;
              
            }
                           xianshi(disnum%100/10,disnum%10);   
   }
   while(key1!=0);
    //if(&&)
    //chuandi();
   do
   {
    TR1=0;
    
  
    xianshi(nb[disnum]%100/10,nb[disnum]%10);
   
   }
   while(key2!=0);
   for(o=disnum;o<24-1;o++)  //刪除出現(xiàn)過的數(shù)
     {
      nb[o]=nb[o+1];
     } 
   
   
 }
}
void time1() interrupt 3
{
      TH1=(65536-65000)/256;          // fuzhi 高八位
      TL1=(65536-65000)%256;
      numb++;
}
void chuandi()
{
 unchar io;
io=1;
}
void xianshi(unint shi,unint ge)
{
  
 
    P0=tabdu[shi];
    P2=0xfd;
    yanshi(5);

    P0=tabdu[ge];
    P2=0xfb;
    yanshi(5);
}
void xianshi2(unint shi,unint ge)
{
  
 
    P0=tabdu[shi];
    P2=0xf7;
    yanshi(5);

    P0=tabdu[ge];
    P2=0xef;
    yanshi(5);
}
void yanshi(unint x)
{
    unint a,b;
   for(a=x;a>0;a--)
   for(b=200;b>0;b--);
}

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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