芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片破解51单片机的4人抢答器代码

  1. /*
  2. 芯片破解此程序为4人抢答器。
  3. 芯片破解抢答者4人对应,K1-4的按钮
  4. 芯片破解裁判可操作Ks,Kr,Kc,Ka4个按钮
  5. Ks:按下就进入抢答倒计时
  6. Kr:按下复位,准备下次抢答
  7. Kc,Ka:用于调整倒计时。
  8. 在复位之前使用,且当前的操作是对复位之后的倒计时有用
  9. 保证没有人按下除了Kc,Ka之外的按钮。
  10. 最大设置为1分钟,最小10s
  11. 按一次Kc加1s
  12. 操作步骤:按下Kr,后要按住Ka不松的状态按Kc加时间,然后再次按下Kr

  13. 显示器第一行显示倒计时的时间
  14. 例如:countdown:10s
  15. 显示器第二行显示违规者和抢答成功者的对应按钮
  16. 例如:error:0 win:2  表示:无人违规,2号抢答成功
  17. 例如:error:2 win:0  表示:有人违规,2号违规
  18. */

  19. #include "reg52.h"
  20. #include "lcd.h"

  21. #define uchar unsigned char
  22. #define uint unsigned int

  23. sbit K1=P1^0;
  24. sbit K2=P1^1;
  25. sbit K3=P1^2;
  26. sbit K4=P1^3;
  27. sbit Ks=P3^0;   //按下就进入抢答倒计时
  28. sbit Kr=P3^2;   //按下复位,准备下次抢答
  29. sbit Kc=P3^3;   //按下调整倒计时,注意事项见timeset()
  30. sbit Ka=P3^4;   //配合Kc
  31. sbit beep=P3^7;
  32. sbit led=P3^1;

  33. uchar fallflag=0,sflag=0,jflag=0,sjflag=0;
  34. uchar win,time=10;     //time为倒计时秒数,num为程序中控制倒计时的变量,win为抢答成功的按钮
  35. uchar num,numf;        //numf为配合num来显示lcd

  36. uchar Disp1[16]="countdown:00s   ";
  37. uchar Disp2[16]="error:0 win:0   ";

  38. void judge();
  39. void search();

  40. void delay(uchar ms)
  41. {
  42.         uchar y;
  43.         for(;ms>0;ms--)
  44.                 for(y=120;y>0;y--);
  45. }



  46. void T0_Init()
  47. {
  48.         TMOD=0X11;
  49.         TH0=(65536-1000)/256;
  50.         TL0=(65536-1000)%256;
  51.         TH1=(65536-1000)/256;
  52.         TL1=(65536-1000)%256;
  53.         ET0=1;
  54.         ET1=1;
  55.                                 TR0=1;    //定时器0开
  56.                                 TR1=0;    //定时器1关
  57.         EA=1;
  58. }
  59. /*lcd1602显示程序*/
  60. void display(uchar date1,uchar date2)
  61. {
  62.         uchar i,a;
  63.         LcdInit();
  64.         Disp1[10]=num/10+'0';
  65.         Disp1[11]=num%10+'0';
  66.         Disp2[6]=date1+'0';
  67.         Disp2[12]=date2+'0';
  68.         for(i=0;i<16;i++)
  69.         {
  70.                 LcdWriteData(Disp1[i]);        
  71.         }
  72.         LcdWriteCom(0x80+0x40);
  73.         for(a=0;a<16;a++)
  74.         {
  75.                 LcdWriteData(Disp2[a]);        
  76.         }
  77. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信