单片机课程设计-跑马灯游戏机设计

上传人:na****u 文档编号:56504549 上传时间:2022-02-21 格式:DOC 页数:18 大小:1.28MB
收藏 版权申诉 举报 下载
单片机课程设计-跑马灯游戏机设计_第1页
第1页 / 共18页
单片机课程设计-跑马灯游戏机设计_第2页
第2页 / 共18页
单片机课程设计-跑马灯游戏机设计_第3页
第3页 / 共18页
资源描述:

《单片机课程设计-跑马灯游戏机设计》由会员分享,可在线阅读,更多相关《单片机课程设计-跑马灯游戏机设计(18页珍藏版)》请在装配图网上搜索。

1、 摘要单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。本课程设计是基于51系列单片机所设计的,用AT89C51芯片控制跑马灯游戏机,整个系统有2种模式可以选择,首先接通电源后单片机全部LED闪烁;若按下K1,则使单片机从全部LED闪烁切换到LED从

2、左到右依次点亮,再从右到左依次点亮,循环往复;若按下K2,则使单片机在LED流水灯模式中暂停。 关键词:单片机、AT89C51、跑马灯目录1.设计任务与要求12.总体设计方案13.系统硬件电路设计13.1时钟电路设计13.2复位电路设计23.3按键电路设计23.5 LED电路设计33.6系统总电路原理图34.系统软件设计34.1系统软件总体设计34.1.1定义及函数文件34.1.2子程序44.1.3主程序44.2 主程序设计54.2.1流程图55.实验结果及分析8结束语11附录A 程序清单12附录B 系统总电路原理图14参考文献15I1.设计任务与要求 (1)用单片机I/O口控制发光二极管(L

3、ED)点亮和熄灭来模拟跑马灯游戏机;(2)控制8个发光二极管(LED)依次点亮,被点亮的灯短暂延时后熄灭。循环此状态;(3)用开关模拟功能按键,分别实现开始、停止功能;(4)当“开始键”未按下时,处于待机状态,所有发光二极管闪烁;(5)当“开始键”按下后,发光二极管循环点亮;(6)当“停止键”按下时,发光二极管(LED)循环状态暂停,若此时,正巧最后一个红色LED被点亮,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响3秒,以示庆祝;反之则蜂鸣器鸣响500ms示意输掉游戏。(7)继续按下“开始键”,游戏仍能继续。2.总体设计方案发光二极管 N Y N Y N Y 按键模块蜂鸣器51单片机 图21 总

4、体设计方案3.系统硬件电路设计 3.1时钟电路设计几乎所有的数字系统在处理信号都是按节拍一步一步地进行的,系统各部分也是按节拍做的,要使电路的各部分统一节拍就需要一个“时钟信号”,产生这个时钟信号的电路就是时钟电路。 时钟电路的核心是个比较稳定的振荡器(一般都用晶体振荡器),振荡器产生的是正弦波,频率不一定是电路工作的时钟频率,所以要把这正弦波进行分频,处理,形成时钟脉冲,然后分配到需要的地方。让系统里各部分工作时使用。如图3-1所示。 图31 时钟电路3.2复位电路设计 图32 复位电路 图33 公式复位电路是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算机有着异曲同工之妙,只是

5、启动原理和手段有所不同。为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。见图32,33。3.3按键电路设计 按键中有上下两张薄膜,涂有导电橡胶电路,中间有个薄膜,带孔,用于隔离两张带有导电橡胶的薄膜。按键在孔的位置,按下按键的时候,两张带导电橡胶的薄膜透过中间的圆孔,接通电路,通过芯片编码,输出。见图34。 图34

6、 按键电路3.4蜂鸣器电路设计 图35 蜂鸣器电路 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.515V直流工作电压),多谐振荡器起振,输出1.52.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。见图353.5 LED电路设计 图36 LED电路3.6系统总电路原理图 本系统由一个89C52芯片、8个发光二极管、3个开关,电阻,电容,蜂鸣器,晶振,三极管等组成,电路原理图如图3-7所示。其中按功能分为时钟电路,复位电路,按键电路,蜂鸣器电路,LED电路。主体成分为89C52芯片。图详见附录二。 4.系统软件设计4.1系统软件总体设计4.1.1定义及函数文件#include reg5

7、2.h#include#define uchar unsigned char /uchar=unsigned char#define uint unsigned int /uint=unsigned int typedef unsigned int u16; /int=u16 typedef unsigned char u8; /char=u8sbit k1=P34; /定义k1=p3.4sbit k2=P35; /定义k2=p3.5sbit fmq=P23; /定义fmg(蜂鸣器)=p2.3u8 flag=0; /char flag=0#define led P1 /定义led=整个P1口4

8、.1.2子程序void delay(u16 i)while(i-); /延时程序,大约延时了10us4.1.3主程序void main()fmq=1; /蜂鸣器不工作while(k1=1) /判断K1是否为未接通led=0x00; /LED全亮delay(50000); /延时500msled=0xff; /LED全灭delay(50000);/延时500ms /闪烁程序 while(k1=0) /判断K1是否为接通 u8 i; led=0xfe; /最后一个LED亮delay(50000); /延时500mswhile(1) /死循环for(i=0;i7;i+) /对i赋值0,判断i是否小于

9、7,i+while(!k2)fmq=0; /蜂鸣器工作if(i!=6) delay(50000); /延时500mselse delay(300000); /延时3S;暂停程序fmq=1; /蜂鸣器不工作led=_crol_(led,1); /左移delay(50000); /延时500msfor(i=0;i7;i+) /对i赋值0,判断i是否小于7,i+while(!k2)fmq=0; /蜂鸣器工作if(i!=6) delay(50000); /延时500mselse delay(300000); /延时3S;暂停程序 fmq=1; /蜂鸣器不工作led=_cror_(led,1); /右移

10、delay(50000); /延时500ms /流水灯程序 4.2 主程序设计4.2.1流程图开始系统初始化读取初始设定fmq=1蜂K1=0?led=0x00 N led=0xff Y led=0xfe delay(50000) 1? i=0 i7? N Yi=i+1 !k2? N Yfmq=0i!=6? Y Ndelay(300000)delay(50000)fmq=1led=_crol_(led,1)delay(50000)i=0 i7? N Yi=i+1 !k2? N Yfmq=0i!=6? Y Ndelay(300000)delay(50000)fmq=1led=_cror_(led,

11、1)delay(50000) 图41 流程图开始int ii- 图42 子程序流程图4.2.2程序代码详见附录A5.实验结果及分析 图51 全部LED灯闪烁 未按下K1时(左下角第一个),8个LED闪烁。 图52 流水灯按下K1后,8个LED从左到右再从右到左依次点亮。 图53 暂停 按下K2(最下角第二个)后,停止执行流水灯程序,LED显示停止时的结果。若停在最后一个LED,则响三秒;若不是,则响500ms。结束语 在本次试验实现了未按下K1时,8个LED闪烁。按下K1后,8个LED从左到右再从右到左依次点亮;按下K2后,停止执行流水灯程序,LED显示停止时的结果;若停在最后一个LED,则蜂

12、鸣器响三秒以示庆祝;若不是,则蜂鸣器响500ms的功能。设计程序时则使用了循环与顺序相互嵌套的方法。结果符合设计要求,测试取得圆满成功。附录A 程序清单#include reg52.h#include#define uchar unsigned char #define uint unsigned int typedef unsigned int u16; typedef unsigned char u8; sbit k1=P34; sbit k2=P35; sbit fmq=P23; u8 flag=0; #define led P1 void delay(u16 i)while(i-);

13、void main()fmq=1; while(k1=1) led=0x00; delay(50000); led=0xff; delay(50000); while(k1=0) u8 i; led=0xfe; delay(50000); while(1) for(i=0;i7;i+)while(!k2)fmq=0; if(i!=6) delay(50000);else delay(100000); fmq=1;led=_crol_(led,1); delay(50000);for(i=0;i7;i+)while(!k2)fmq=0;if(i!=6) delay(50000);else delay(100000); fmq=1;led=_cror_(led,1); delay(50000); 附录B 系统总电路原理图 15参考文献1. 张毅刚.单片机原理及应用.第一版.北京:高等教育出版社,20102. 张淑华,朱建辉.C语言设计.第二版.北京:科学出版社,20153. 潘明莲,王传丹,庞晓凤.微计算机原理及应用.第三版.北京: 科学出版社,2015

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!