单片机四位抽奖机设计方案_第1页
单片机四位抽奖机设计方案_第2页
单片机四位抽奖机设计方案_第3页
单片机四位抽奖机设计方案_第4页
单片机四位抽奖机设计方案_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 单片机四位抽奖机设计方案 1 摘要 : 本设计由单片机 片和 阳数码管为核心, 辅以必要的电路,构成了一个由单片机控制的四位显示设计, 设计 制作同步和单步抽奖机 ,在模式键、启动键,停止键的控制下实现 设计集成了时钟、秒表、四位抽奖三种功能于一体。 2 关键字 : 态显示 四位抽奖 按键扫描 随机数 秒表 3 设计任务 种抽奖方式 抽奖启动键时,四位数码管以不同的随机数快速滚动显示,按抽奖停止键时,四位随机数停止滚动显示在数码管上。 抽奖启动键时,个位数码管以随机数快速滚动 显示,按抽奖停止键时,个位随机数停止滚动显示在数码管上;用同样的方法来确定十位、百位、千位的随机数。 展功能 电子时钟 : 电子钟以 99 时 59 分 59 秒 为一个计数周期, 在显示分秒,时分模块化之间 切换。 4 设计方案 计思路 本设计需要实现两种方式的抽奖(即四位同时抽和逐位抽奖),因此重点在于由软件产生随机数;而硬件则需由数码管来显示中奖结果以及按键来控制抽奖模式和启动、停止抽奖。系统以 核心,主要有显示模块、按键模块和单片机 软件 控制模块构成。 案 比较 与论证 数码管显示模块: 2 方案一:单片机输出数 据经译码芯片 行译码后直接驱动数码管,数码管公共端接 9012 三极管扩流,并通过单片机 I/O 口控制三极管的选通,实现动态显示。 方案二:有单片机的 I/O 口直接驱动数码管的段码,数码管的公共端接 9012 三极管,通过灌电流的方式点亮数码管,也需通过单片机 I/O 口控制三极管的选通,实现动态显示。 由于所需 I/O 口由 直接提供,无须因为 I/O 口不够而用 节省I/O 口,方案二又较方案一更容易实惠,所以,我选择方案二。 统结构框图 片机在模式键、启动键和停止键的控 制下,由 输出数据,通过 数码管显示信息。 系统框图: 图 2统总框图 5 各功能模块设计 示模块 原理 由单片机 (引脚 间等数据信息,通过片选信号 位选信号 送出数据也为低电平就点亮数码管,电流灌进单片机。 多位示,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个 8位 I/共阳极公共端分别接一个 9012,由相应的 I/012,实现各位数码管的分时选通。段选码,位选码每送入一次后延时 10人的视觉暂留时间为 100所以每位显示的时间不能超过 20保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称为软件扫描方式。电路如(图 3示。 由于采用的是共阳极数码管,所以要让段码点亮需把 I/,例如:段码 a 到 g 对应的 I/O 口是 要让数码管显示 0 到 6 对应的 16 进值如图所示 3 G 3L E D 8 G 1L E D 8 G 2L E D 8 G 4L E D 8 S 2 S 2 S 2 S 2+ 5V+ 5V+ 5V+ 5Vh g f e d c b a d g f e d c a b h g f e d c a b h g f e d c a . 0P 2. 1P 2. 4P 2. 7R 14R E 3R E 2R E 1R E 0R E 示电路 图 3表 数计算 由于 I/O 口高电平约等于 5V,使用灌电流的方式驱动数码管,故选用 三极管 9012; 数码管能正常工作的段电流为 3降为 极管发射极和集电极的压降为 因此限流电阻的压降为 500105以选用限流电阻的阻值 R=470 欧 . 立式按键模块 独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根I/个按键的工作不会影响其它 I/立式按键的典型应用如(图 3示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/此,在按键较多时, I/本设计只用到三个按键,顾采用 独立式按键电路。 6进制 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 1 99H 5 0 0 1 0 0 1 0 92H 6 0 0 0 0 0 1 0 82H 4 立式按键电路 系统原理图 单片机 ( 脚为 复位输入端。上电复位,只要 脚上有大于二个机器周期以上的高电平, 单片机 (复位。 按键从单片机 ( 按键被按下时,相应的输入口就会输入低电平 0。 单片机 ( 、 接一个由 12M 晶振和 10成的振荡电路。为单片机提供相应的时序。 5 10p 010p 1X T 112M H G 3L E D 8 G 1L E D 8 G 2L E D 8 S E G 4L E D 8 S 2R 234K 7 S 2 S 2 S 2R 22+ 5V+ 5V+ 5V+ 52104+ 5Vh g f e d c b . 4P 3. 0P 3. 7d g f e d c a b h g f e d c a b h g f e d c a . 0P 2. 1P 2. 4P 2. 7a b c d c 1780 5 P 1P 1. 5R S . 6P 1. 7+ 5V+ 5V+ 512302 4R E 3R E 2R E 1R E 0R E or 件设计 主程序主要起到一个导向和决策功能,控制程序 的走向。本系统在主程序中运用模块化结构,所有控制量集中处理,提高了处理效率,并在 便各功能模块的编程及修改。运用散转结构,可实现无扰动重入。本设计主要有以下几个模块:时钟模块、四位抽奖模块 、逐位抽奖模块。 操作说明:上电复位后进入数码初显示模块;按 动,四位数码管产生四位随机数,按 位随机数停止(操作可重复);按 次进入抽奖 2 模块;按 动,四位数码管最低位产生随机数,按 低位停止 高位 启动 按 4 次 四位数码管均 产生随机数,按 停止抽奖 (操作可 重复);按 次进入时间模块(可循环) 。 按 单片机复位 。 、 位、十位、百位、千位数码管 片选 。 6 2、 3、 为段码 a到 机数算法 在 随 机 数 模 式 下 , 调 用 库 函 数 用 i=%10 返回随机数值 产生算法 将定时器 0定时 5每计数 200次为 1S。 键扫描 直接判断按键的按下与放开,不采用标 志位判断。 示扫描 显示扫描采用高、低两位分开显示;这样,在进行时钟显示及秒表显示时易于处 7 流程图 5? 重新对计数器赋值 调用按键扫描程序 调用显示子程序 调用闪烁子程序 500 取反闪烁标志位 根据 值进行散转 数码显示初值 四位数同时抽奖 四位数逐位抽奖 时钟显示分秒 时钟显示时分 Y Y N 初始化 N 7 数码显示初值 返回 :四位同时抽奖 j=1? 据 产生随机数 四位数码管闪烁 返回 Y Y Y Y N N N N Y Y Y N N N : 8 :逐位产生随机数: ? 据 模块 j=1? 产生个位随机数 Y Y Y 返回 N N N 返回 N Y j=1? 产生个位随机数 Y Y Y N N N 返回 j=1? 产生个位 随机数 Y Y Y N N 返回 N 9 N 返回 j=1? 产生个位随机数 Y Y Y N N 返回 1s 到? 00 : +a 秒个位 a 送显 a9? 10 a=0, +b N Y N 秒十位 b 送显 b5? 1 分到? b=0, +c N Y 分个位 d 送显 c9? 10 分到? N Y c=0, +d 分十位 d 送显 d5? 1 时到? N Y d=0, +e 时个位 e 送显 e9? 10 时到? N Y e=0, +g 时十位 g 送显 g9? 99 时到? N Y g=0 Y 按下 到 ,显示小时、分钟 10 8 程序清单 /*称:四位抽奖机 编写:张小叶 日期: 台: # _ /*口定义 #0 / 数据端口 20; 21; 24; 22; 30; /独立按键端口 11 34; 37; /*义变量 / 定义键值寄存器 / 定义键沿寄存器 ; ; ; / 定义闪烁标志 ; 00, / 闪烁标志 ; ; a,b,c,d,e,g,h; =0=0,*数声明 ; / 显示函数 ; /闪烁函数 ; /读键函数 ; / 定时器初始化 ; /抽奖方式 2 ; /电子时钟 ; /*函数 i; /定时器 0 工作方式 1 13 ; ) /5; /定时器初值重设 ; /调用键扫描函数,显示函数 ; ; /if(=100) /; / if(=600) ; ; : 14 =0 /数码显示初值 =0=0=0if( ; if( ; if( ; : if(if( i=0;a=0;+b; if(b5) b=0;+c; if(c9) c=0;+d; 17 if(d5) d=0;+e; if(e9) e=0;+g; if(g9) g=0; =c; =d; =e; =g; 00; ; 18 /*奖方式 2 逐位抽奖 : if(if(=%10; if(; : if(if(=%10; if(; 19 : if(if(=%10; if(; : if(if(=%10; if(; /*20 电子时钟 分秒 +a; if(a9) a=0;+b; if(b5) b=0;+c; if(c9) c=0;+d; if(d5) d=0;+e; =a; =b; =c; =d; /*时器 0 初始化函数 21 0 /定时器 0 工作在方式 1 /定时器 5值 1; /开定时器 0 /*扫描函数 3|0 / 读独立按建 3; 0 if( / 键有变化? 电平,if(0) /键 有变,计数到? /放弃不稳定的键 22 / 重赋去抖值 /键前沿提取 /*示函数 / 根据显示指针,转相应显示位 : ; / 点亮第零位数码管 ; ; if(; / 点亮第一位数码管 23 : ; ; ; if(; / 点亮第二位数码管 : ; ; ; if(; : ; / 点亮第三位数码管 ; ; if(; 24 /*烁函数 / 据闪烁状态转相应位 : if( / 300,关显示 ; : if(; : if(; : if(; : if( / 300,关显示 ; 25 if(; if(; if(; 9 调试要点 件调试 1、硬件完成后,检查电路有无短路、断路或虚焊; 2、电路板检查正常后,编一段简单的显示程序,检验显示电路是否正常; 3、若显示电路正常后,则可开始进行程序调试; 4、动态显示时要注意任一时刻只能一个数码管工作; 5、按键对应的 I/。 件调试 1、 软件平台采用 2、参考的子程序均用 保结果正确;(参考的子程序有:二翻十进制 转换、拆字) 3、本设计要实现 3 种功能:时钟、秒表及四位抽奖机;调试时哪个功能不正常,则直接找相应的模块进行调试。 果分析及设计工作总结 1、实现功能:正常走时 秒表及四位抽奖机。 2、经验:通过本电路的设计使我更进一步了解了单片机 89列芯片的强大的功能,进一步熟悉 89列单片机的编程指令集的实际应用,再次增强了自己的动手、思考能力,同时也体现了实践和理论相结合的要求。为将来步入社会奠定了基础。 26 10 参考文献及附件 考文献 云峰单片机原理与应用 2009 华林,周小方 编著电子设计竞赛实训教程北京:北京

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论