版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程论文题目:带有LCD显示的音乐倒数计数器课程:单片机的C语言程序设计与应用学期:班级:姓名:学号:教师:日期:摘要单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。单片机由CPU、一定容量的RAM和ROM构成,定期、计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,从而达成学习、设计、开发软、硬的能力。本设计运用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。用4个按键操作来设立当前想要倒计数的时间。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,告知倒计数终了,该做应当做的事。应用Proteus的ISIS软件和KeiluVision3来实现该计数器的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增长新功能,从而给人们的生活和工作带来更多的方便。关键词:AT89C51,计数器,键盘控制,LCD显示,Proteus,Keil目录1设计概述和规定 11.1设计概述 11.2设计规定 12系统设计 32.1框图设计 32.2元件清单 33软件设计 73.1程序流程图 73.1.1主程序流程图 73.1.2蜂鸣器发声程序流程图 83.2蜂鸣器发声电路原理 83.3蜂鸣器发声程序的关键代码 94PROTEUS仿真结果 104.1总体电路仿真结果 104.2假设倒计时为5秒时的仿真结果 105总结 126附表(本设计所有程序)………….14参考文献 14 1设计概述和规定本设计的任务是运用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响。1.1设计概述20世纪末,电子技术获得了飞速的发展。在其推动下,现代电子产品几乎渗透到了社会的各个领域,有力的推动和提高了社会生产力的发展与信息化限度。同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。随着科技的发展和社会的进步,人们对数字钟的规定越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。数字钟事实上是一个对标准频率进行计数的计数电路,走时精度高,稳定性好,使用方便,不需要经常调校。单片计算机即单片微型计算机,是集CPU,RAM,ROM,定期/计数和多种接口于一体的微控制器。它体积小成本低,功能强,广泛应用于智能产品和工业自动化上。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超多老式钟表,钟表的数字化给人们生产生活带来了极大地方便,并且大大的扩展了钟表原先的报时功能,诸如定期自动报警、0准时自动打铃、定期广播、自动启闭路灯、定期开关烘箱、通断动力设备、甚至各种定期电气的自动启用等,所有这些,都是以数字化为基础的,因此研究数字钟及扩大其应用有着非常现实的意义。本系统采用单片机作为数字钟的核心控制器,读取时钟的值,并通过LCD液晶显示器显示出来,并且可以通过按键电路控制执行信号,给时钟赋初值。还可以设立闹钟,当计数为0时,发出一阵音乐声。并可拓展其功能显示年月日。1.2设计规定运用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡半晌等。作品先接受用户输入的倒数计数时间,然后由用户启动作品工作(可用一个闪烁的LED灯指示),当倒计数为0时,则发出一段音乐声响,告知倒计数终了,该做应当做的事。定期闹钟的基本功能如下。字符型LCD(16
´
2)显示器。显示格式为“TIME分分:秒秒”。用4个按键操作来设立当前想要倒计数的时间。一旦按下键则开始倒计数,当计数为0时,发出一阵音乐声2系统设计2.1框图设计本项目的系统设计框图如图2-1所示:图2-1系统框图由系统框图可看出,本设计由单片机AT89C51、LCD液晶显示器、控制键盘、蜂鸣器、复位单路和定期器电路几大模块构成。2.2元件清单主控单片机采用AT89C51芯片,时钟模块选用一12MHZ晶振,产生时钟脉冲。显示模块采用LCD1602,设立部分选用键盘按键电路,发声部分选用BUZZER蜂鸣器。尚有一些电源、电阻、电容、接地等。重要元件清单如图2-2所示:图2-2重要元件清单AT89C51:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微解决器,俗称单片机。重要特性:与MCS-51兼容、4K字节可编程闪烁存储器、寿命:1000写/擦循环、数据保存时间:2023、全静态工作:0Hz-24MHz、三级程序存储器锁定、128×8位内部RAM、32可编程I/O线、两个16位定期器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。1602LCD:1602液晶模块内部的控制器共有11条控制指令,如表2-1所示.表2-11602液晶模块控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L**6置功能00001DLNF**7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容键盘:键盘采用5个button,分别控制倒计时开始、调分个位、调分十位、调秒个位、调秒十位;此外还加一个总开关用于控制所有电路的通电情况。蜂鸣器:用三极管、电阻和speaker组成蜂鸣器电路。蜂鸣器最重要的特点是只要按照极性规定加上合适的直流电压就可以发出固有频率的声音。 3软件设计3.1程序流程图3.1.1主程序流程图主程序开始初始化,然后扫描键盘、复位电路和计数器。当键盘按键有按下时,调整计数器值,LCD显示新值。当复位键有按下时,计数器复位为初值,重新倒计数。当计数器值倒计为0时,蜂鸣器发出声音,计数器停止倒计,程序结束。主程序流程图如图3-1所示:图3-1主程序流程图3.1.2蜂鸣器发声程序流程图蜂鸣器发声程序流程图如图3-2所示:图3-2蜂鸣器发声程序流程图3.2蜂鸣器发声电路原理对于单片机产生音乐,关键是控制频率的输出.我们知道,不同的声音相应不同的频率,产生有规律的频率输出就可以得到相应规律的声音.有8个基本音符:do﹑re﹑mi﹑fa﹑so﹑la﹑xi﹑do,八个不同的音符相应着不同的频率.只要我们对照音符输出相相应的频率,就可以产生美妙的音乐.本文中采用了T0中断方式产生不同频率,并用按键控制音乐的播放和停止。用三极管、电阻和BUZZER组成蜂鸣器电路。蜂鸣器最重要的特点是只要按照极性规定加上合适的直流电压就可以发出固有频率的声音。4PROTEUS仿真结果4.1电路原理图及仿真系统protel99se电路原理图和proteus电路仿真分别如图4-1(a)、图4-1(b)所示图4-1(a)总体电路电路原理图图4-1(b)电路仿真4.2倒计时设立仿真如下图4-2(a)所示图4-2倒计时设立仿真倒计数设立为5秒时的仿真如下图4-2(b)所示图4-2(b)倒计数5秒的仿真4.3蜂鸣器的仿真如下图4-3所示图4-3蜂鸣器的仿真5总结通过本次多功能数字计数器的设计制作,我们将从书本上学到的知识应用于实践,再次巩固了我的单片机知识,提高了我的电路仿真设计能力。虽然设计过程中碰到了很多困难,但是在解决这些问题的过程无疑是对自身专业素质的提高。当最终调试成功的时候也是对自己的一种肯定。本次的设计不仅增强了自己在专业设计方面的信息,鼓舞了自己,更是一次爱好的培养,为以后的学习方向明确了重点。此外在这次设计中我们碰到了不少的问题,针对不同的问题我们采用不同的解决方法,最终一一解决了。在我们碰到不懂得问题时,运用课本上、参考书上的知识,以及网上的资料最终解决问题。和队友之间互相讨论,明白了团队合作的重要性。本次项目设计还存在很多局限性,比如,LCD的日期显示还不够完美,计数功能也不够具体等。以后争取完善这个设计,以提高我们的单片机设计能力。这里很感谢蓝会立老师给我们的指导和教育,感谢他给我们提供了良好的学习设计环境,也很感谢可爱的伙伴们,让我觉得团队的力量很伟大。6附表(本设计所有程序)#include<reg51.h>#include<intrins.h>sbitrs=P2^4;sbitrw=P2^5;sbitep=P2^6;sbitk1=P1^4;sbitk2=P1^5;sbitk3=P1^6;sbitk4=P1^7;sbitk5=P1^3;sbitspeaker=P3^0;unsignedcharcodedis1[]={"605"};unsignedcharcodedis2[]={"TIME00:00"};unsignedcharcodedis3[]={""};unsignedintnum=0;unsignedintmiaogw=0;unsignedintmiaosw=0;unsignedintfengw=0;unsignedintfensw=0;unsignedcharflag=1;unsignedchartimer0h,timer0l,time;//世上只有妈妈好数据表codeunsignedcharsszymmh[]={6,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0};//音阶频率表高八位codeunsignedcharFREQH[]={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,8,i0xFC,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,//1,2,3,4,5,6,7,8,i0xEE,0x44,0x6B,0xB4,0xF4,0x2D,0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};voiddelayyy(unsignedchart){unsignedchart1;unsignedlongt2;for(t1=0;t1<t;t1++){for(t2=0;t2<8000;t2++){;}}TR0=0;}voidt0int()interrupt1{TR0=0;speaker=!speaker;TH0=timer0h;TL0=timer0l;TR0=1;}voidsong(){TH0=timer0h;TL0=timer0l;TR0=1;delayyy(time);}voiddelay(unsignedcharms){ unsignedchari; while(ms--) { for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } }}bitlcd_bz(){bitresult;rs=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);ep=0;returnresult;}voidlcd_wcmd(unsignedcharcmd){while(lcd_bz());//判断LCD是否忙碌rs=0;rw=0;ep=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();ep=1;_nop_();_nop_();ep=0;}voidlcd_pos(unsignedcharpos){lcd_wcmd(pos|0x80);}voidlcd_wdat(unsignedchardat){while(lcd_bz());//判断LCD是否忙碌rs=1;rw=0;ep=0;P0=dat;_nop_();_nop_();ep=1;_nop_();_nop_();ep=0;}voidlcd_wshuzi(void){ lcd_pos(0x47); lcd_wdat(dis3[fensw]); lcd_pos(0x48); lcd_wdat(dis3[fengw]); lcd_pos(0x4A); lcd_wdat(dis3[miaosw]); lcd_pos(0x4B); lcd_wdat(dis3[miaogw]);}voidlcd_init() //LCD初始化{lcd_wcmd(0x38);delay(1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);delay(1);}voidkeyscan(void){while(flag) {if(k1==0){delay(10);if(k1==0){fensw++;while(!k1);if(fensw==10)fensw=0;}}if(k2==0){delay(10);if(k2==0){fengw++;while(!k2);if(fengw==10)fengw=0;}}if(k3==0){delay(10);if(k3==0){miaosw++;while(!k3);if(miaosw==10)miaosw=0;}}if(k4==0){delay(10);if(k4==0){miaogw++;while(!k4);if(miaogw==10)miaogw=0;}}if(k5==0)flag=0;lcd_wshuzi();}}voiddelay1s(void){unsignedcharh,i,j,k;for(h=5;h>0;h--)for(i=4;i>0;i--)for(j=116;j>0;j--)for(k=214;k>0;k--);}voidmain(void){unsignedcharj;unsignedchark,i;speaker
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 航天教育活动方案策划(3篇)
- 2026广东河源市消防救援支队第一批政府专职消防员招聘127人备考题库附完整答案详解【名校卷】
- 钢筋进场施工方案(3篇)
- 门诊项目营销方案(3篇)
- 2026河北雄安交通投资有限公司校园招聘2人备考题库带答案详解(完整版)
- 顶楼的施工方案(3篇)
- 骑车活动比赛策划方案(3篇)
- 2026湖北黄石市阳新县高中学校校园招聘教师26人备考题库附参考答案详解(夺分金卷)
- 2026浙江省荣军医院特殊专业技术岗位招聘3人备考题库含答案详解【能力提升】
- 2026东方电气集团数字科技有限公司面向全社会招聘6人备考题库含答案详解【满分必刷】
- 2026年自贡市市本级招用高校毕业生从事公共服务(58人)笔试参考题库及答案解析
- 【2026年中考复习】全国中考物理真卷综合能力题100道(上)
- 2026年雨季安全驾驶试题及答案
- 2026年安徽工商职业学院单招职业技能测试题库带答案详解ab卷
- 低压电工特种作业全套教学课件
- TRIZ矛盾矩阵新版48个参数课件
- GB/T 18043-2013首饰贵金属含量的测定X射线荧光光谱法
- GB/T 17478-2004低压直流电源设备的性能特性
- 机修钳工题库(初版)
- 幼儿园小班社会:《蝴蝶找花》 课件
- 心力衰竭的护理和查房课件
评论
0/150
提交评论