【C51】C51单片机实现的 抽奖机 设计与编程指南

#include <config.h> #include <ST7920.h> #include <stdlib.h> bit flag = 0; // 表示是否按键 u8 prizes[][10]={"特等奖", "1等奖", "2等奖", "3等奖", "谢谢参与"}; u16 count = 0; void main() { u8 i = 0; u8 m = 0; EA = 1; // 开中断总开关 EX0 = 1; // 开外部中断0中断 IT0 = 1; // IT1=0 时,为平电平触发,IT1=1,为跳变沿触发 // 0 号计数器 方式1 TMOD = TMOD & 0xf0; TMOD = TMOD | 0x01; TH0 = 0x00; // 50ms@11.0592Mhz TL0 = 0x4c; ET0 = 1; // 开定时器0中断 TR0 = 1; // 启动定时器0 ST7920_Init();//初始化函数 ST7920_str("祝你好运!",0,2); while(1) { if(flag == 1) { flag = 0; ST7920_Clear(); ST7920_str("开始抽奖!",0,2); ST7920_str("3",1,4); delay_ms(500); ST7920_str("2",1,4); delay_ms(500); ST7920_str("1",1,4); delay_ms(500); srand(count); //生成随机数种子 for (i = 0; i < 20; ++i) { ST7920_Clear(); m = rand() % 5; ST7920_str(prizes[m],1,3); delay_ms(100); } ST7920_Clear(); ST7920_str("恭喜获得:",0,2); ST7920_str(prizes[m],1,3); delay_s(1); TR0 = 1; // 开启定时器T0 } } } void intx0() interrupt 0 // 方式0 外部中断 { flag = 1; TR0 = 0; // 关闭定时器T0 } void timer0() interrupt 1 // 方式1 定时器中断 { ++count; }
上一篇:零基础入门学用Arduino 第一部分(三)-七、模拟输出


下一篇:在.NET Core,除了VB的LikeString,还有其它方法吗?(四种LikeString实现分享)