51单片机摇奖号设计,有仿真图,程序源码
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <config.h>
- #include <stdlib.h>
- #include <12864.h>
- u16 num1=0,num2=0;
- u16 botton=0;//记录按键按下的次数
- u16 m;
- void delay_ms(u16 x)//毫秒延时函数
- {
- u16 i,j;
- for(i=0;i<x;i++)
- for(j=0;j<115;j++);
- }
- void main()
- {
- EA=1;
- IT0=1;
- EX0=1;
- lcd12864_init();
- lcd12864_pos(1,2);
- LCD12864disp("祝你好运!");
- while(1);
- }
- void intr0() interrupt 0 //开始
- {
- botton++;//按下一次加一
- lcd12864_clear();
- m=rand();
- srand(m);
- if(botton%2==1)
- {
- //倒计时
- lcd12864_pos(0,2);
- LCD12864disp("开始抽奖");
- lcd12864_pos(2,3);
- LCD12864disp("3");//数字需要全角
- delay_ms(1000);
- lcd12864_clear();
- lcd12864_pos(0,2);
- LCD12864disp("开始抽奖");
- lcd12864_pos(2,3);
- LCD12864disp("2");
- delay_ms(1000);
- lcd12864_clear();
- lcd12864_pos(0,2);
- LCD12864disp("开始抽奖");
- lcd12864_pos(2,3);
- LCD12864disp("1");
- delay_ms(1000);
- lcd12864_clear();
- //随机显示奖项
- for(m=0;m<20;m++)
- {
- num1=rand()%5;
- lcd12864_pos(2,2);
- switch(num1)
- {
- case 0:LCD12864disp("特等奖!");break;
- case 1:LCD12864disp("1等奖!");break;
- case 2:LCD12864disp("2等奖!");break;
- case 3:LCD12864disp("3等奖!");break;
- case 4:LCD12864disp("谢谢参与");break;
- }
- delay_ms(200);
- //lcd12864_clear();
- }
- //最后结果
- lcd12864_pos(0,1);
- LCD12864disp("恭喜你获得:");
- //lcd12864_pos(2,2);
- }
- if(botton%2==0)
- {
- lcd12864_clear();
- lcd12864_pos(1,2);
- LCD12864disp("祝你好运!");
- }
- }
复制代码
所有资料51hei提供下载:
摇号抽奖机.rar
(268.7 KB, 下载次数: 27)
|