找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5336|回复: 2
收起左侧

51单片机打地鼠游戏指示灯仿真和源程序,可调速。

[复制链接]
ID:287259 发表于 2018-3-3 20:23 | 显示全部楼层 |阅读模式
新手学习,了解到随机函数的运用,LED灯的控制,中断函数的运用等。
八个位置不同的指示灯代表地鼠。每次随机亮一个灯。
有一个按键可以对灯亮的间隔进行调整,分别为0.5s,1s,2s,3s。
包含Proteus原理图和C源程序。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png

0.png
单片机源程序如下:
  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. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
打地鼠仿真及程序.zip (16.81 KB, 下载次数: 149)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:85733 发表于 2020-5-11 09:32 | 显示全部楼层
学习了,非常好的程序,虽然不是用于打地鼠游戏,但是很有启发
回复

使用道具 举报

ID:654606 发表于 2020-6-12 21:30 | 显示全部楼层
我很想看但是黑币不足
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表