《单片机应用课程设计》跑马灯.docx
- 文档编号:10124284
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:18
- 大小:1.29MB
《单片机应用课程设计》跑马灯.docx
《《单片机应用课程设计》跑马灯.docx》由会员分享,可在线阅读,更多相关《《单片机应用课程设计》跑马灯.docx(18页珍藏版)》请在冰豆网上搜索。
《单片机应用课程设计》跑马灯
目 录
第1章课程设计内容及要求.......................5
第2章引言......................................6
第3章系统硬件电路设计..........................7
第4章系统软件设计..............................12
第5章课程设计心得..............................14
第6章参考文献..................................15
第7章附录(实物图,程序清单)..................16
第1章课程设计内容及要求
一、设计内容:
1.1.1、了解各种元器件在电路中的作用和一些芯片的功能,并学会掌握Keil和proteus两个软件;
1.1.2、对照原理图在proteus软件中画出原理电路图;
1.1.3、检查焊接好的硬件实物图并检验实物图效果;
1.1.4、根据实物图写出程序并仿真,并结合Keil和proteus两个软件进行调试和仿真。
2、设计要求:
1.2.1外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。
具体过程为:
按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。
反之则蜂鸣器鸣响较短时间示意输掉游戏。
下次再按下开始键,游戏又开始;
1.2.2、按下开关K1,实现跑马灯模式则进行灯循环点亮;
1.2.3、按下开关K2,跑马灯停止循环,并停在LED灯中的一个;
1.2.4、若是停在P1.0~P1.6中的一个,则响起短时间的音乐并表示游戏失败;
1.2.5、若是停在P1.7LED灯时,则该对应的这LED灯亮并响起较长时间的音乐并表示游戏胜利。
第2章引言
跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由多个LED发光二极管组成。
在单片机运行时,可以在不同状态下让跑马灯显示不同的组合,作为单片机系统正常的指示。
当单片机系统出现故障时,可以利用跑马灯显示当前的故障码,对故障做出诊断。
此外,跑马灯在单片机的调试过程中也非常有用,可以在不同时候将需要的寄存器或关键变量的值显示在跑马灯上,提供需要的调试信息。
本设计使用AT89C2051芯片,利用P1的8个端口连接8个发光二极管,通过P1.0到P1.7的值控制“跑马灯”的亮灭,以达到显示效果。
设计的中断程序要对多个按键动作进行响应,改变开关按键,使得跑马灯,二极管循环点亮模式,当停止循环时并短时间有音乐发出。
单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。
这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。
演奏时,要根据音符频率的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。
这次跑马灯游戏机设计要求:
外部功能按键连接于(INT0/1)作用时,分别实现开始、停止的功能。
具体过程为:
按开始键,LED循环显示,按停止键时,LED循环状态暂停,若正巧最后一个LED被点亮,而其他LED皆熄灭时,表示该操作人获胜,赢得游戏,同时蜂鸣器鸣响较长时间,以示庆祝。
反之则蜂鸣器鸣响较短时间示意输掉游戏。
下次再按下开始键,游戏又开始。
第3章系统硬件电路设计
3.1跑马灯游戏机设计电路原理图如下:
元器件清单:
一个AT89C2051芯片,一个74LS240芯片,一个排阻4K7,两个开关,一个蜂鸣器,一个12M晶振,两个30p电容,一个10uF极性电容,一个9012三极管,8个LED灯,三个10K电阻,一个5K1电阻,一个1K电阻,一个150欧姆电阻。
3.2芯片性能简介:
3.2.1AT89C2051芯片引脚图
1、VCC:
电源电压。
2、GND:
地。
3、P1口:
P1口是一个8位双向I/O口。
口引脚P1.2~P1.7提供内部上拉电阻,P1.0和P1.1要求外部上拉电阻。
P1.0和P1.1还分别作为片内精密模拟比较器的同相输入(ANI0)和反相输入(AIN1)。
P1口输出缓冲器可吸收20mA电流并能直接驱动LED显示。
当P1口引脚写入“1”时,其可用作输入端,当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。
当引脚P1.2~P1.7用作输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。
4、P3口:
P3口的P3.0~P3.5、P3.7是带有内部上拉电阻的七个双向I/O口引脚。
P3.6用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。
P3口缓冲器可吸收20mA电流。
当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。
用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流。
P3口还用于实现AT89C2051的各种第二功能,如下表所列:
引脚口
功能
P3.0
RXD串行输入端口
P3.1
TXD串行输出端口
P3.2
INT0 外中断0
P3.3
INT1 外中断1
P3.4
T0定时器0外部输入
P3.5
T1定时器1外部输入
5、RST:
复位输入。
RST一旦变成高电平所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
6、XTAL1:
作为振荡器反相器的输入和内部时钟发生器的输入。
7、XTAL2:
作为振荡器反相放大器的输出。
主要性能:
1、和MCS-51产品兼容;
2、2KB可重编程FLASH存储器(10000次);
3、2.7-6V电压范围;
4、全静态工作:
0Hz-24MHz;
5、2级程序存储器保密锁定;
6、128*8位内部RAM;
7、15条可编程I/O线;
8、两个16位定时器/计数器;
9、6个中断源;
10、可编程串行通道;
11、高精度电压比较器(P1.0,P1.1,P3.6);
12、直接驱动LED的输出端口。
3.2.2八缓冲器/总线驱动器(三态、反相)74LS240
74LS240这种八缓冲器和线驱动器是为提高三态输出存储地址驱动器、时钟驱动器和总线定向接收器和发射器的性能和集成度而特意设计的。
此电路的特点是,扇出高,扇入好,噪声容限高(400mV)。
可用来驱动小到133Ω的终端负载线。
3.2.3PNP三极管9012
9012是非常常见的晶体三极管,在各种放大电路中经常看到它,应用范围很广,它是PNP型小功率三极管。
9012三极管(TO-92封装)管脚图:
1、发射极 2、基极
3、集电极
9012三极管管脚
3.3硬件电路分析:
图3.3.1晶振时钟电路
3.3.1晶振时钟电路:
一般由晶体震荡器、晶震控制芯片和电容组成,产生象时钟一样准确的振荡电路。
在电路中主要是提供时钟信号的作用。
图3.3.2排阻电路
3.3.2排阻电路:
就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出。
在电路中主要是起到限流的作用。
图3.3.3复位电路
3.3.3复位电路:
为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。
一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。
由于单片机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,单片机电路开始正常工作。
在电路中起到复位(RST)操作功能。
图3.3.4中断和定时电路
3.3.4中断和定时电路:
中断电路于INT0,INT1组成,用按键K1,K2来控制芯片程序的操作,定时电路在定时器T0的程序控制,并在PNP9012三极管的控制下,使得蜂鸣器是否发出声音。
图3.3.5蜂鸣器驱动电路
3.3.5蜂鸣器驱动电路:
一般都包含以下几个部分:
一个三极管、一个蜂鸣器、一个续流二极管和一个电源滤波电容。
P3.3/T0作为I/O口通过三极管来驱动蜂鸣器LS1,而P3.2/PWM0则作为PWM输出口通过三极管来驱动蜂鸣器。
另外在P3.3和P3.2分别接了两个按键,一个是PWM按键,是用来控制PWM输出口驱动蜂鸣器使用的;另一个是PORT按键,是用来控制I/O口驱动蜂鸣器使用的。
连接按键的I/O口开内部上拉电阻。
3.3.6八个LED灯在循环点亮状态:
以上八个图形为代表LED灯在循环的点亮,在按键开关的操作下进行跑马模式。
当停到任意一个灯是,则发出短时间的音乐,但当停到第八个灯时,则发出时间比较长的不同音乐。
第4章系统软件设计
4.1电路函数程序设置流程图如下图:
主程序
初始化
开中断
延时程序设置
判断哪个外部中断
K1K2
K2键按下
K1键按下
置跑马灯模式循环点亮
跑马灯停止并发出音乐
图4.1.1电路函数程序设置流程图
4.2电路的安装与调试
用keil将程序编写好之后,检查程序有无错误。
有错误就改正,直到没有错误,最后生成.HEX文件,再用proteus画好硬件电路图,将单片机指向刚生成的.HEX文件并进行仿真调试,在调试过程当中通过调试的结果完善程序。
一切完善之后,即在焊接好的硬件电路板上,用烧录器将.HEX文件烧录到AT89C2051单片机中。
最后接上电源,检验烧录的程序在硬件电路中是否实现效果。
4.3硬件模板布置电路板实物图一
4.4焊接硬件工艺实物图二
第5章 课程设计心得
在这为期两周的单片机跑马灯游戏机课程设计中,通过陈老师的指导及同学的帮助,总算完成了这次课设。
在设计过程中,和同学们相互探讨,相互学习。
加强了动手能力,更深入的了解了所学知识的用途。
在这次设计过程中,进一步体现出自己单独根据电路图如何在万能板中布置的能力以及综合运用知识的能力,以及对proteus和keil软件的学习和熟悉。
也再一次的温习了C语言和汇编程序。
体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
通过此次课程设计,不仅初步掌握了51单片机的一些基本功能应用,还学会了使用keil和proteus两个软件。
知道了怎么用keil新建工程文件、编写调试程序、生成.HEX文件;怎么用proteus软件画图,怎么仿真等。
总之,得感谢老师的教导及同学的帮忙。
在这次课程设计中,我受益匪浅,学到了很多书本上所没有的东西,懂得了理论和实际联系的重要性。
在以后的学习中,我不仅要把理论知识掌握牢固,更要提高自己的动手能力和分析能力。
第6章 参考文献
[1]高洪波.MCS-51单片机原理及应用技术教程.北京:
人民邮电出版社,2009
[2]李丽娟.C语言程序设计教程(第2版).北京:
人民邮电出版社,2010
[3]谭浩强《C程序设计教程》[M].北京:
清华大学出版社
[4]刘斌文.精通VisualBasic.NET中文版[M].北京:
机械工业出版社,2004
致谢
在这两周的单片机课设中,不仅初步掌握了51系列单片机的一些基本功能应用,还学会了使用keil和proteus两个软件。
再一次的温习了汇编和C语言程序的编写,虽然在中途中遇到一些麻烦,但老师的教导下和同学的帮助下,总算顺利得完成了此次课设。
总之得感谢陈芳老师的教导和同学的帮忙。
第7章附录(实物图,程序清单)
7.1实物图:
图7.1.1硬件模板布置电路板
图7.1.2焊接硬件工艺
7.2程序清单:
#include
sbitKey0=P3^2;
sbitKey1=P3^3;
sbitBEEP=P3^4;
unsignedcharflag1=0,flag2=0;
unsignedchart0h,t0l,time;
codeunsignedchars[]={3,1,1,6,1,1,6,1,1,6,1,1,7,1,1,1,2,1,6,1,1,6,1,1,6,1,1,1,2,1,7,1,1,5,1,1,5,1,2,7,1,1,1,2,1,6,1,1,0,0,0};
codeunsignedcharFreqH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,};
codeunsignedcharFreqL[]={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,
0xEE,0x44,0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};
voiddelay(w)
{
unsignedinti;
for(i=0;i } voidDEEG() { unsignedchari,k; for(;;) { k=0x01; for(i=0;i<8;i++) { if(flag2) return; P1=k; delay(10000000); k=k<<1; } } } voidint0()interrupt0 { flag2=1; } voidint1()interrupt2 { flag1=1; } voiddelay2(unsignedchart) {unsignedchart1; unsignedlongt2; for(t1=0;t1 { for(t2=0;t2<8000;t2++); } TR0=0; } voidT0_int()interrupt1 { TR0=0; BEEP=! BEEP; TH0=t0h; TL0=t0l; TR0=1; } voidsong() { TH0=t0h; TL0=t0l; TR0=1; delay2(time); } voidmain() { unsignedchari; TMOD=0x01; BEEP=0; IE=0xff; EX0=1; IT0=1; IT1=1; P1=0x00; while (1) { if(flag2) { if(P1==0x80) { while(Key0==0) { i=0; time=1; while(time) { t0h=FreqH[i]; t0l=FreqL[i]; time=s[i+1]; i=i+1; song(); } } } else { while(Key0==0) { if(P1==0x80) break; BEEP=0; delay(500000); BEEP=1; delay(100000); } } BEEP=0; flag2=0; } if(flag1==1) { DEEG(); flag1=0; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机应用课程设计 单片机 应用 课程设计 跑马
![提示](https://static.bdocx.com/images/bang_tan.gif)