APP下载

基于单片机的三位抽奖号系统的设计

2016-07-04陈清清

电脑知识与技术 2016年15期
关键词:C语言单片机

陈清清

摘要:传统的纸签和采球既麻烦又单调,而基于单片机的三位抽奖号系统的设计与实现,使得抽奖机在我们的生活中被广泛地使用。它以AT89C52单片机为控制芯片,通过P0口控制数码管的段选,在上拉电阻的作用下,将0~9之间的数字送入数码管,使数码管显示三位数的组合,同时,用P2口通过送入十六进制控制数码管的位选,在延时函数的配合下,实现抽奖想过,通过外部中断显示中奖号码,从而实现抽奖功能,

关键词:单片机; 三位抽奖号; C语言

中图分类号:TP368 文献标识码:A 文章编号:1009-3044(2016)15-0230-02

Abstract: the traditional paper sign and the ball picking is troublesome and monotonous, and based on the design and implementation of the three bit lottery system, the lottery machine is widely used in our life. It AT89C52 as the control chip, through the P0 port control segment digital tube, the pull-up resistor, the numbers between 0 to 9 into digital tube, the digital tube display a combination of three digits, at the same time, by P2 through into hexadecimal digital control of selected, in cooperation with the time delay function, draw thought, through the external interrupt according to the winning number, so as to realize the draw function.

Key words: single chip microcomputer; three lottery numbers; C language

如今,公司年会,迎新晚会,超市抽奖,产品促销等等,各种各样的聚会和活动少不了安排抽奖助兴。传统的纸签和采球既麻烦又单调,由此抽奖机越来越受人们的喜爱,而且,在我们的生活中被广泛地使用,本文通过C语言编程实现了一种基于AT89C52单片机的三个数码管的显示。

1 系统硬件总体结构

本次设计的三位抽奖号的显示器选用AT89C52单片机为主芯片[1],对数码管的动态显示、中断的产生都由AT89C52芯片实现,它是三位抽奖号的显示器的核心,控制各部分硬件稳定、协调地工作。其总体实现框图如图1所示。

2 模块电路分析

三位抽奖号的显示器能正常工作[2],是在各个电路模块组合下协调完成的,其中包括了单片机工作电路、数码管显示电路,按键电路等,下面做详细介绍。

2.1 单片机最小系统

所谓单片机最小系统,就是在尽可能少的外部电路条件下,形成一个可以独立工作的单片机系统,在此基础加上应用系统所需,才能构成一个整体的电路系统[3],单片机最小系统如图2所示。

2.2 数码管显示电路

三位抽奖号的显示器是由AT89C52提供控制信号,通过数码管的段选和位选来控制数码管的动态显示芯,其中P0口提供段选,给数码管送入要显示的数字,P2口控制位选,通过给P2口送入数字来控制数码管的亮灭,仿真电路图如图3所示。

其中数码管的a,b,c,d,e,f,g,df,分别接到AT89C52单片机P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7。单片机运行程序代码,将信号输入到P0口,驱动芯片内含的H桥路将控制信号处理过后,由P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7输出,控制数码管的工作状态。其中排阻在本次设计中起上拉电阻的作用,数码管内部发光二极管点亮时,需要5mA以上的电流[4],而且电流不可过大,否则会烧毁发光二极管,由于单片机的p0口送不出如此大的电流,所以数码管与单片机连接时需要加驱动电路,所以上拉电阻起到了驱动电路的作用。

2.3 按键电路

本设计使用的是外部中断0,由AT89C52单片机的P2^3口控制,当中断发生时,数码管静止,执行中断,当中断结束时跳出中断程序,继续执行被中断打断的程序。仿真成功的电路图如图4所示。

在引脚P3.2接通一个开关开关接地,当开关被按下后,P3.2口送入低电平[5],即发生中断,AT89C52单片机响应中断,程序代码开始执行中断,,这样设计实现中断控制按键这一效果。

3 软件设计

3.1 主函数设计

主函数模块为设计中最主要的部分[6],主函数模块会用到之前各个模块的函数。在本次设计中,需要先初始化外部中断0,开总中断,执行主程序,控制数码管的动态显示[7],当有中断发生时,程序转去执行中断函数,当中断结束后,跳出中断函数,继续执行主程序。程序图如图5所示。

3.2 数码管显示程序设计

抽奖时大家关注的是中奖号,因此数码管的显示是非常重要的,P0口读入数据控制数码管的静态显示,当有中断发生时,保护现场,响应中断,此时三位数码管停下来,数码管上此时显示的数字即为中奖号。当中断结束后,恢复现场,执行主函数,数码管继续动态显示。在AT89C52上,P3.2口控制外部中断0,中断流程图如图6所示。

4 总结

本次设计研究的是基于单片机的三位抽奖号的显示器的设计与实现,原理是三位数码管随机动态显示,当有按键按下时,数码管静止,此时数码管上的数字即为中奖号,在设计原理图之前,一定得先弄清所做的功能是什么,然后在去把每一个模块的原理图了解透彻。以便于以后调试时出问题,比较容易查出原因,当有问题出现时,要想想为什么,及时去查阅资料。连接实物图一定要认真,连接的实物图要尽可能的清晰明了。连接仿真图时要有耐心和细心。

参考文献:

[1] 梁国祥. 基于MC51简易四位抽奖机的设计[J]. 宁德师范学院学报:自然科学版,2011,23(3):268-270.

[2] 郭天祥. 新概念51单片机C语言教程——入门.提高.开发.拓展全攻略(附光盘[M]. 北京:电子工业出版社,2009.

[3] 王新颖. 单片机原理及应用[M]. 北京:北京大学出版社, 2008.

[4] 江晓安,董秀峰.模拟电子技术[M]. 西安:西安电子科技大学出版社, 2011.

[5] 江晓安,董秀峰,杨颂华.数字电子技术[M]. 西安:西安电子科技大学出版社,2011.

[6] 吴鹏. 基于C#抽奖系统设计与实现[J]. 装备制造与教育,2014,28(4):57-61.

[7] 谭浩强. C程序设计[M].4版.北京:清华大学出版社,2010,20:114.

猜你喜欢

C语言单片机
基于Visual Studio Code的C语言程序设计实践教学探索
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
基于C语言的计算机软件编程
小议PLC与单片机之间的串行通信及应用
C语言程序设计课程教学与学科专业相结合的探索
基于单片机的平衡控制系统设计
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用