版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安文理学院机械电子工程系课程设计任务书学生姓名焦银娟专业班级电子信息工程学号指导教师刘密歌职称副教授教研室电子信息工程课程单片机原理及应用题目基于单片机的彩灯设计任务与要求用三个按键开关K1,K2,K3组成一个独立式键盘,其中K1控制八个彩灯从左向右依次循环点亮,K2控制八个彩灯从右向左依次循环点亮,K3控制八个彩灯按一定的时间间隔闪烁点亮。给出硬件实现电路及软件程序论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。开始日期2023.12.19完成日期2023.12.302023年12月18日一:课程设计题目基于单片机的彩灯设计二:课程设计任务与要求:利用89C51单片机设计彩灯,用三个按键开关K1,K2,K3组成一个独立式键盘,其中K1控制八个彩灯从左向右依次循环点亮,K2控制八个彩灯从右向左依次循环点亮,K3控制八个彩灯按一定的时间间隔闪烁点亮。三:设计过程:设计原理:此次课程设计题目是基于单片机的彩灯设计,由课程设计的要求和任务,我采用的C语言编程,系统由AT89C51、LED发光二极管、按键,可以实现彩灯的不同类型显示切换。其硬件电路主要有主控制器,LED显示电路,复位电路,晶振电路。系统程序的设计包括主程序的设计,中断效劳程序等等。此程序直接在Keil软件编译程序,利用Proteus进行仿真调试,方便修改程序。2.1芯片介绍:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 2.2主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保存时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路AT89C51引脚路 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口, P2口:P2口为一个内部上拉电阻的8位双向I/O口, P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口,P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。 PSEN:外部程序存储器的选通信号。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.硬件系统框图与说明:关闭中断关闭中断再次读入按键状态保护现场读入按键状态保存延时10ms去抖两次按键状态相同?K1按下?K2按下?K3按下?右向循环点亮左向循环点亮间隔闪烁点亮恢复现场开中断返回主程序YNYYYNNN实验总体电路构造方案比拟简单,主要包括键盘控制电路〔用脉冲按键开关对电路进行控制〕和显示电路〔单片机控制发光二极管的显示〕。图1.1实验方案图按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C52单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C52单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。3.2硬件电路设计实验电路可划分为两个组成局部,一者为显示电路局部,主要是由8个相同的发光二极管组成,用来显示流水灯的不同显示形态,另一局部即控制电路局部,主要由脉冲按键开关组成,用以控制流水灯的不同显示状态。首先介绍显示电路局部,电路原理图如下列图所示:〔1〕K1控制八个彩灯从左向右依次循环点亮〔2〕K2控制八个彩灯从右向左依次循环点亮〔3〕K3控制八个彩灯按一定的时间间隔闪烁点亮。我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P0.0~P0.7连接8个发光二级管,P2.0~P2.2分别连接K1、K2、K3三个按键开关。从上图中可以看出,如果要让接在P0.0口的LED1亮起来,那么只要把P0.0口的电平变为低电平就可以了;相反,如果要接在P0.0口的LED1熄灭,就要把P0.0口的电平变为高电平;同理,接在P0.1~P0.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否那么我们就看不到“流水〞效果了。3.3软件主要模块流程图与说明:#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharuintm_led;uinta;uinti;uintled;voiddelay(uintz){ uintx,y; for(x=100;x>0;x--) for(y=z;y>0;y--);}voidinit(){ TMOD=0x01; ET0=1; EA=1; TR0=1; m_led=0; a=0; i=0; led=0;}voidmain(){ init(); P2=0xff; while(1) { switch(P2) { case0xfe: m_led=1; led=1; break; case0xfd: m_led=2; led=128; break; case0xfb: m_led=3; led=0; break; } }}voidtimer0()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; a++; if(a==20) { EA=0; switch(m_led) { case1: P0=~led; led*=2; if(led>0x80) led=1; break; case2: P0=~led; led/=2; if(led<1) led=128; break; case3: led=~led; P0=led; break; default: led=0; P0=~led; } a=0; EA=1; }}四:心得体会通过本次设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回忆,更加熟悉了89C51单片机的每一个拐角的输出和各项功能,而且对硬件电路的布线以及焊接能力有了很大的进步。本次的课程设计,使关于51系列单片机的,正是我们刚刚学到的51单片机,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非常好的,但真正编成和控制时,理论和实际结合不到一起,甚至于51芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。本次课程设计我主要负责编程,这次不仅锻炼了我C语言的知识,更加我们正在学习的51的定时与中断结合在一起,进行了实际的操作,让我的知识掌握得更加牢固。本次的实际经验之后,让我对单片机定时赋初值有了更新的认识,对程序的循环顺序、结构类型都有了非常深刻的认识,对真正硬件的连接也有了认识,不再将自己的知识局限于自己狭隘的空间中。这次课程设计终于圆满的完成了,我从理论和硬件以及实践上懂得了很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。2:通过这次课程设计——秒表/时钟计时器,使我又重新开始学习C语言,因为C语言是大一学的,至从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。刚开始以为可以用汇编很容易就写出来,因为我们正在学习汇编语言,以为学的很明白了,但是用汇编时才发现原来都不怎么熟练,编了一会程序发现只有一种感觉——举步维艰啊!还是放弃汇编选择C语言吧!对于单片机,我们课本学习的是80C51,但是这次做课程设计用的是89C51,这样不仅使我们掌握了80C51,而且对89C51也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次课程设计使我受益匪浅,而且都是实际的东西。3:这次课程设计,我们做的是秒表/时钟计时器,最终我们选择的是用C语言编程,但原来学的也只是能看懂别人写好的程序而已,通过这次课程设计,更加熟练了C语言的程序设计思路。这次课程设计我主要负责焊接电路板,焊接过程中最困难的地方就是数码管的焊接,因为数码管的管脚和89C51的管脚是不对应的,而且要防止接线的交叉,所以最后确定了布线最合理的方案,如硬件电路图所示。我们这次设计的出现的最大问题是电路当中的复位电路,开始电路在Proteus上仿真时都是可以正常复位的,但实际的电路中复位按键后的电阻的参数不合理,导致了RST上有电压,复位电路无效,所以最后我们去掉了那个电阻,此时复位电路才有效,所以理论和实际永远有差距,不实践永远发现不了问题。在焊接前我们没有想到给数码管用插槽固定,而是直接焊在了电路板上,这造成了后面的很多麻烦,我们方案中用的是共阴极的数码管,焊接第一个数码管时没有注意型号,等焊接到一半时才发现焊上的是共阳极的,所以不得不解焊重新焊接,这也是一个教训,以后焊接器件时能用上插槽的尽量用插槽,这在器件出了问题时很方便更换。最后焊接完成后在试验的过程中,刚一接通电源后的上电电压烧坏了LED显示器显示秒十位的c脚,这也是这次课程设计的遗憾,以后在硬件的实验时还要多小心,防止造成不必要的损失。4:通过本次秒表/时钟计时器的设计实验,使我对这学期学所学51系列的单片机从理论知识到实践硬件的应用以及C语言知识的回忆,更加熟悉了89C51单片机的每一个拐角的输出和各项功能,而且对硬件电路的布线以及焊接能力有了很大的进步。在这次试验中,我主要负责的是硬件电路的布线和焊接以及硬件测试。由于本次试验电路比拟简单,所以我们按照电路图布线后就马上开始焊接。焊好一个数码管检测后才发现我们把共阴极的数码管焊接成共阳级的了,很不容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年毛刷翻果机项目投资价值分析报告
- 2024解除租赁合同协议书皮卡车租赁合同协议书
- 2024年航空接插件项目可行性研究报告
- 2024年干炸腿肉块项目可行性研究报告
- 2024年实木写字台项目可行性研究报告
- 2024至2030年中国汽车排气喉管数据监测研究报告
- 2024年学校推普工作方案
- 幼儿园小学化倾向活动方案
- 2024中介买卖合同格式范本
- 2024【网络施工合同范本】网络施工合同
- 建筑专业大学毕业生个人事迹6篇
- 初中数学北师大七年级上册(2023年修订) 整式及其加减魏来《探索与表达规律二》教学设计
- 危险化学品物质安全告知卡 (硝酸)
- DBJ∕T 15-197-2020 高大模板支撑系统实时安全监测技术规范
- 材料成型与工艺
- 精通版五年级英语上册全册单元测试卷(含听力材料及答案)
- 三维建模收费标准
- 战略解码的方法-鱼骨图 鱼骨图分析-工具图
- 河西煤矿2022年度防治水一矿一策的矿井灾害治理方案
- 上锁挂牌培训讲义
- 轨道交通工程明挖法施工培训材料PPT(158页)
评论
0/150
提交评论