找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī)打地鼠游戲指示燈仿真和源程序,可調(diào)速。

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
新手學(xué)習(xí),了解到隨機(jī)函數(shù)的運(yùn)用,LED燈的控制,中斷函數(shù)的運(yùn)用等。
八個(gè)位置不同的指示燈代表地鼠。每次隨機(jī)亮一個(gè)燈。
有一個(gè)按鍵可以對(duì)燈亮的間隔進(jìn)行調(diào)整,分別為0.5s,1s,2s,3s。
包含Proteus原理圖和C源程序。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)



單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4. #define u8 unsigned char
  5. #define u16 unsigned int
  6. #define u32 long
  7. sbit KEY=P3^2 ;
  8. u8 led[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  9. u8 flag=0;
  10. u8 n=1,m=1,x=1;
  11. void main()
  12. {        
  13.         u8 j=0,a,b;
  14.         P0=0;
  15.         TMOD=0x01;
  16.         TH0=15536/256;
  17.         TL0=15536%256;
  18.         ET0=1;
  19.         EA=1;
  20.         TR0=1;
  21.         while(1)
  22.         {        
  23.                 if(KEY==0)
  24.                 {
  25.                         for(b=38;b>0;b--)
  26.                         {
  27.                                 for(a=130;a>0;a--);
  28.                         }
  29.                         if(KEY==0)
  30.                         {        
  31.                                 while(KEY==0){P0=0XFF;}                        
  32.                                 n++;
  33.                                 if(n==3||n==5){
  34.                                 n++;
  35.                                 }
  36.                                 if(n==7){
  37.                                 n=1;
  38.                                 }
  39.                                        
  40.                         }
  41.                         
  42.                 }        
  43.                 if(x==1)
  44.                 {
  45.                         x=0;        
  46.                         j=(rand()%8);                                 
  47.                 }
  48.                  P0=led[j];                                   
  49.         }
  50.                  
  51. }        
  52. void TT() interrupt 1
  53. {
  54.   flag++;
  55.   if(flag>=(n*10))
  56.   {
  57. ……………………

  58. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
打地鼠仿真及程序.zip (16.81 KB, 下載次數(shù): 149)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:85733 發(fā)表于 2020-5-11 09:32 | 只看該作者
學(xué)習(xí)了,非常好的程序,雖然不是用于打地鼠游戲,但是很有啟發(fā)
回復(fù)

使用道具 舉報(bào)

板凳
ID:654606 發(fā)表于 2020-6-12 21:30 | 只看該作者
我很想看但是黑幣不足
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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