• 大小: 1.5MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-21
  • 语言: 其他
  • 标签:

资源简介

基于AT89S52芯片四位抽奖机的设计,包括程序源代码,可以实现逐位抽奖和四位抽奖,以及时钟设置与显示

资源截图

代码片段和文件信息

	#include
#include
#define uint  unsigned int
#define uchar unsigned char
#define disport P0// 数据端口
uchar data key1; // 定义键值寄存器
uchar data key2;
uchar bdata ekey1; //状态键
uchar bdata ekey2; //时间设定位转换
uchar bdata lastkey1; //键去抖后的键值存放
uchar bdata lastkey2;
uchar f70cnt;  //一位抽奖280ms一个随机数
uchar msta;  // 定义状态寄存器
uchar flasta;  //一位抽奖中的哪位抽
uchar fmiao;  //秒计数
uchar wei;//时间设定模块设定位标志位
uchar bufs;//显示指针
uchar ld;//LED发光管码值
uchar yimiao;//秒计数
uchar f500cnt;//闪烁时间计数
uchar f24cnt;//累计定时5ms的次数
uchar f32cnt;
uchar f41cnt;
uchar f47cnt;
uchar f300cnt;
uchar gg;   //四位抽奖方式个位抽奖值
uchar ss;   //四位抽奖方式十位抽奖值
uchar bb;   //四位抽奖方式百位抽奖值
uchar qq;   //四位抽奖方式千位抽奖值
uchar g;
uchar s;
uchar b;
uchar q;   //一位抽方式奖抽奖值
sbit cs0=P2^7;    //数码管位选信号
sbit cs1=P2^6;
sbit cs2=P2^5;
sbit cs3=P2^4;
sbit sw1=P1^0;        //独立按键端口
sbit sw2=P1^1;
sbit sw3=P3^7;
sbit esw1=ekey2^0;
sbit esw2=ekey2^1;
sbit esw3=ekey1^7;     
bit  flag;  //设置时钟初值标志位
bit  flaflag; //定义闪烁标志
bit  miao;    //秒标志秒计数器
bit  f500flag; //闪烁亮暗标志位
bit  flag1; //一位抽方式开始奖抽标志位
bit  flag4; //四位抽方式开始奖抽标志位
unsigned char led7[16]={0xC00xF90xA40xB00x990x920x820xF80x800x900xff};  //数码管七段码
unsigned char buf[4]={0000};//显示数据缓冲单元 ,初始为0000  
//-----------------函数申明------------------------------------
void t0_init(void);//定时器初始化
void disp(void);//显示
void keyscan(void);//读独立按键及矩阵键盘
void flaply(void);//数码管闪烁函数
//----------------主函数--------------------------------
void main()
{
  t0_init();
  while(1)
{
 while(!TF0);  //4ms到了?
 TF0=0;
   TH0=0xf0;    //4毫秒延时
   TL0=0x60;
 keyscan();
 disp();
 yimiao++;  //一秒计时
 if(yimiao==250)
  {
    miao=1; //秒标志位
   yimiao=0;  
  }
 switch(msta)
 {
  case 0:  if(f24cnt++>=24)   //四位一起抽奖
               { 
     f24cnt=0;
             gg+=3;
             if(gg==30)gg=0;
       }
                if(f32cnt++>=32)
               {
    f32cnt=0;
            ss+=3;
            if(ss==30)ss=0;
   }
               if(f41cnt++>=41)
               {
    f41cnt=0;
            bb+=3;
            if(bb==30)bb=0;
   }
               if(f47cnt++>=47)
           {
    f47cnt=0;
            qq+=3;
           if(qq==30)qq=0;
   } 
if(esw1)flag4=1;  //sw1开始抽奖
                if(flag4==1) 
                 {
  buf[3]=gg%10;
                  buf[2]=ss%10;
                  buf[1]=bb%10;
                  buf[0]=qq%10;
 }
                if(esw2)flag4=0;   //sw2停止抽奖

if(esw3)msta=1;   //sw3转入逐位抽奖
    break;    
 case 1:    f300cnt++;
            if(esw2)flasta+=1; //sw2控制每一位停止
                if(f300cnt>=24)
                 {
              f300cnt=0;
              g+=1;
              s+=3;
              b+=7;
                q+=9;
              if(g==10)g=0;
              if(s==30)s=0;
              if(b==70)b=0;
              if(q==90)q=0;
        

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-05-31 22:09  四位抽奖机的课程设计\
     文件    56970005  2012-09-24 15:20  四位抽奖机的课程设计\11111.doc
     文件      356352  2012-05-20 08:51  四位抽奖机的课程设计\单片机PCB.DDB
     文件      231424  2012-05-20 08:52  四位抽奖机的课程设计\单片机原理图.ddb
     目录           0  2012-05-31 22:09  四位抽奖机的课程设计\课程设计源程序代码\
     文件       11857  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main
     文件        7539  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.c
     文件        3011  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.hex
     文件          40  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.lnp
     文件       17842  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.LST
     文件       16122  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.M51
     文件       14624  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.OBJ
     文件         370  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.plg
     文件       55218  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.uvopt
     文件       13236  2012-05-20 10:09  四位抽奖机的课程设计\课程设计源程序代码\main.uvproj
     文件       51350  2012-05-20 10:05  四位抽奖机的课程设计\课程设计源程序代码\main_uvopt.bak
     文件           0  2012-05-20 10:07  四位抽奖机的课程设计\课程设计源程序代码\main_uvproj.bak
     目录           0  2012-05-31 22:09  四位抽奖机的课程设计\软件部分\
     文件        7654  2012-05-23 16:27  四位抽奖机的课程设计\软件部分\com_fct.h
     文件        9936  2012-05-23 22:14  四位抽奖机的课程设计\软件部分\main.c
     文件       16752  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\main.LST
     文件       39304  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\main.OBJ
     文件       15655  2012-05-23 16:11  四位抽奖机的课程设计\软件部分\music.h
     文件        3728  2012-05-23 22:14  四位抽奖机的课程设计\软件部分\vadef.h
     文件       32686  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\投篮机
     文件       13005  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\投篮机.hex
     文件          42  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\投篮机.lnp
     文件       31352  2012-05-23 20:30  四位抽奖机的课程设计\软件部分\投篮机.M51
     文件        8617  2012-05-23 22:14  四位抽奖机的课程设计\软件部分\投篮机.plg
     文件       56742  2012-05-23 22:14  四位抽奖机的课程设计\软件部分\投篮机.uvopt
     文件       13573  2012-05-23 17:07  四位抽奖机的课程设计\软件部分\投篮机.uvproj
............此处省略2个文件信息

评论

共有 条评论

相关资源