抽奖器的设计与制作.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
抽奖器的设计与制作

抽奖器的设计与制作 1 任务 为某超市设计一个周年庆纪念抽奖器。 2 要求 (1)用4位0~9数字组合作为中奖号码。 (2)按动抽奖器抽奖按钮,抽奖器自动倒计时,随即随机产生一个0000~9999的随机数,作为中奖号码,此后不能再按抽奖按钮抽数,除非主持人按动清零按钮。 3 设计意义 超市为了增加营业额,吸引更多客户,经常利用店庆和节假日的机会举办“抽奖”活动进行促销,他们的抽奖活动大多是通过特殊的抽奖器抽出一组数字编码,这组数字编码即为中奖号码,当本店会员所持会员卡上的编号与中奖号码相同,便可视为中奖。除此之外,在一些电视娱乐节目中也经常将抽奖器用作道具使用。 4 系统方案设计 根据实际设计的需求,本系统使用STC89C52单片机,按键、显示、C51库函数及中断实现抽奖功能,具体如下: * 按键:按键抽奖是一个随机事件,如果采用前面的查询方式,效率较低,为保证高效处理这样的随机事件,按键的扩展可结合中断实现。 * 中奖号码显示:系统能及时显示中奖号码。 * 中奖号码产生:中奖是一个随机事件,要保证号码随机性,就必须要求系统产生一个随机码,以减少重复。而随机码产生的算法较为复杂,为较为简单的实现该算法,本设计采用C51编译环境提供的库函数。 根据以上功能分析,抽奖器的结构,如图1所示,由单片机最小系统,按键模块和显示模块组成。 图1 抽奖器的结构 5 硬件电路的设计 根据系统设计要求及相关器件的典型用法,系统设计电路如图2所示: * P0口和P2.0~P2.3扩展数码显示,实现中奖号码显示 * P3.2(外部中断0),扩展按键,用于启动抽奖和清零 * P3.3(外部中断1),扩展按键,用于产生随机数的造作。 图2 抽奖器电路原理图 6 元器件清单(见表1) 表1 元器件清单 序号 名称 型号 单位 数量 备注 1 IC STC89C52 片 1 2 数码管 SM410564 只 1 4位8段用阳数码管 3 晶振 12M 个 1 4 铝电解电容 10uf 个 1 5 瓷片电容 30pf 个 2 6 三极管 9013 个 4 7 电阻 10k/0.25w 个 1 8 电阻 1k/0.25w 个 4 9 电阻 300欧/0.25w 个 8 10 轻触开关 6mm*6mm 个 2 11 万用版 9cm*15cm 块 1 12 7 所需仪表、工具的清单(见表2) 表2 所需仪表、工具的清单 序号 名称 单位 数量 1 万用表 台 1 2 电烙铁 支 1 3 直流电源(5v) 个 1 4 USB转TTL线 条 1 5 焊锡 卷 1 6 松香 盒 1 7 8 程序流程图设计 根据系统设计要求,软件的设计主要实现中奖号码的产生和显示。因此,整个软件分为按键中断子程序、中断号码产生子程序、显示子程序和主程序等。 * 按键中断子程序:按下 * 显示子程序:主要实现中断号码的显示 * 主程序:通过调用各个子程序,实现系统功能 本系统设计的程序流程图,如图3 图3:程序流程图 9 软件编译与调试运行 按照图2所示的电路原理图,用万用板自行焊接电路实物图(如图4所示)。做通电前检测,用万用表检测是否有短路和断路情况,线路连接是否正确。确认无误后,接入5V的直流电源,检测电路工作参数,随后可带上防静电手套,触摸电路板各处,是否有异常发热的情况,诺有,断电检查原因。排除故障后,接下来就可以按照上述程序流程图编写程序,编译程序,下载测试程序。代码如下: #includereg52.h #includestdlib.h//包含rand()函数 #define uint unsigned int #define uchar unsigned char uchar code bit_tab[]={0x04,0x02,0x01,0x08}; uchar code disp_tab[]={0xa0,0xbe,0x62,0x2a,0x3c, 0x29,0x21,0xba,0x20,0x28,};//共阳段码表 uint randvalue=0; sbit key1=P3^2; sbit key2=P3^3; sbit led=P1^0; //中断初始化 void init() { EA=1; IT0=1; EX0=1; IT1=1; EX1=1; } //毫秒延时 void delay(uint m) { uchar c; for(;m0;m--) for(c=124;c0;c--); } //中奖号码获取的中断函数 void int_1() interrupt 2 { EX1=0; key2=1; if(key2==0) { delay(10);/

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档