ImageVerifierCode 换一换
格式:DOC , 页数:21 ,大小:666.86KB ,
资源ID:2522523      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2522523.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(单片机定时闹钟课程设计.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单片机定时闹钟课程设计.doc

1、目 录一、 设计目的二 、设计要求三 、设计的总体结构3.1电路的总体原理框图3.2 工作原理3.3 元器件名称四 、各部分电路设计4.1 主电路4.2 显示电路4.3 内部时钟方式的电路4.4 按键及蜂鸣器电路五 、整体电路图六、 设计总结6.1 设计过程中遇到的问题及解决方法6.2 设计体会6.3 对设计的建议七 、C语言程序八、附图一、设计目的 此次设计的目的是培养同学们系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力,以及一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案;通过完成所选题目的分析与设计,达到技术性能要求。二、设计要

2、求1、能显示时时分分秒秒。2、能够设定定时时间、修改定时时间。3、定时时间到能发出报警声或者启动继电器,从而控制电器的启停。三、设计的总体结构3.1 电路的总体原理框图开始扫描键盘程序初始化调用显示程序,时钟正常运行P3.0是否按下?调用时间设定程序,进行显示时间和定时时间的设定按初始时间继续NYYYY调用程序,判定是否定时时间到复位键是否按下YN时钟继续运行 图3.1 电路原理框图3.2 工作原理当给电路足够的电源时,电路开始正常初始化,此时显示“00 :00 :00”,若不进行时间调整和定时,时钟将正常计时下去。若按下按键1,由于按下次数的不同,出现光标闪烁的位置不同,即可进行时间的时分秒

3、的调整和定时时间的时分秒的调整,按键2和3分别是进行时间的加和减,若确定好时间,时钟将正常运行,到达定时时间后蜂鸣器将会响一段时间后停止。如果按复位键,时钟将重新初始化,需要重新定制时间。如果不做任何改动,到下一个定时的时间,时钟将会继续鸣叫。3.3 元器件名称 3.3.1 芯片AT89C52AT89C52 是ATMEL公司生产的低电压,高性能CMOS单片机 AT89C52 提供以下标准功能:8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52可降至OHz的静态逻

4、辑操作,并支持两种软件可选的节电上作模式。空闲方式停止CPU 的工作,但允许RAM,定时计数器串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位. 3.3.2 LCD显示屏1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点。晶模块内部的控制器共有11条控制指令,如表所示:表3-1:控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001

5、*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S: 屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电 平表示关显示

6、C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示F:低电平时显示57的点阵字符。 指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。3.3.3蜂鸣器有源蜂鸣器是一种一体化结构的电子讯响器,是内部自带振荡电路,只需电平驱动就可以发生的蜂鸣器,而与其对应的无源蜂鸣器内部则无振荡电路。四、各部分电路设计4.1、主电路主电路主

7、要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。 图4.1 主电路4.2、显示电路 显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。 图4.2显示电路4.3、 内部时钟方式的电路 单片机内部有一个用于构成振荡器的高增益反向放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器。时钟频率可以影响单片机的速度。单片机的各功能部件的运行都以时钟控制信号为基准 图4.3 内部时钟方式的电路4.4、按

8、键及蜂鸣器电路按键可以对时间进行调整,蜂鸣器可以在到达定时的时间时提醒我们。图4.5 按键及蜂鸣器电路五、整体电路图 见附图。六、设计总结6.1、设计过程中遇到的问题及解决方法在设计的过程中遇到问题是不可避免的,我遇到了很多问题,如下所示;1.做实物时无法驱动数码管显示,后来了解到可以加锁存器,如74LS253,74LS573等等,还可以加三极管用来加大电流。当然如果换成液晶显示屏的话就不需要考虑驱动不了的问题了。2.烧程序时没发烧进去,需要改变最高和最低波特率,才能按照步骤把程序烧进去。3.仿真时没问题的电路,在做好实物时发现无法运行。原因可能是程序出现问题,或者在连实物时线路连接错误等等都

9、有可能。这是很难的一部分,需要查找出原因。在做实物的过程中我进行的很多检查,有很多连接错误,最终又重新焊接的。4.复位电路在实物中可以运行,但是在仿真中不能正常运行。目前还未找到原因。6.2、设计体会 这次设计中遇到了很多问题,例如刚开始我在在仿真时程序出现了每次按按钮时总是显示测量时需要关闭仿真的字样,试了很多方法都没有找到原因,最后才知道是因为按钮太近的缘故。很多类似的经历让我明白:1. 在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,知道单片机片内片外的内容及其功能。 2. 设计程序关键要有一个清晰的思路和一个完整的软件流程图。模块化的设计思想在程序设计中的作用是重大的,它

10、可以为你提供一个比较清晰的思路,并且很容易找到头绪,不至于在编写一个程序时感觉到无从下手。 3. 在设计程序时,不能妄想一次就将整个程序设计好,反复修改,不断改进是程序设计的必经之路。程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要是花很多时间去修改程序。 4. 要养成注释程序的好习惯,让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。刚开始我在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中我就遇到了较大的麻烦,以至于不得不重新的作了注释,以增加程序的易读性,从而使修改过程变得容易一些。

11、总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。6.3、对设计的建议在设计前应该对所要实现的功能有一定的了解,定下有大概的流程图,把设计模块化,写程序时也应该一个模块一个模块的写,这样方便理解,也方便以后的检查。在仿真和实物的过程中要了解所使用芯片的功能及引脚的排列方式,这样焊接时比较方便。七 、C语言程序#include#define uchar unsigned char#define uint unsigned intuchar code tabl

12、e1=00:00:00;sbit lcden=P26 ;/位定义sbit lcdrw=P25;sbit lcdrs=P24;sbit s1=P30;sbit s2=P31;sbit s3=P32;sbit beep=P37;/定义蜂鸣器uchar num,count,s1num;/显示的位数;响应中断数;按键次数;uint i;char shi,fen,miao,shi1,fen1,miao1;void delay(uint z)/延时程序 uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void write_com(uchar com)/控制指令 lcdr

13、s=0; /低电平时选择指令寄存器 lcdrw=0;/ 低电平时进行写操作 delay(5); lcden=1; /E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令 P0=com; delay(5); lcden=0;void write_data(uchar date)/数据指令 lcdrs=1; lcden=1; /均为高时是读出数据的内容 delay(5); P0=date; delay(5); lcden=0;void init()/初始化 lcdrw=0; lcden=0;delay(15); write_com(0x38);/设置为4位总线,单行显示delay(5);w

14、rite_com(0x38);delay(5);write_com(0x38);write_com(0x38);/重复多次以确定可以正确设置write_com(0x08);/无光标正常显示write_com(0x01);/清显示write_com(0x06);/光标和显示模式设置 d1 I/D:光标移动方向,高电平右移 d0 S:屏幕上所有文字是否左移或者右移。低电平表示光标闪烁 write_com(0x0c);/ 显示开关控制。d2 D:控制整体显示的开与关,高电平表示开显示 d1 C:控制光标的开与关,低电平表示无光标 B:控制光标是否闪烁,低电平不闪烁 write_com(0x80+1)

15、;d7为高时,显示数据存储地址TMOD=0x11;工作方式3 TH0=(65536-50000)/256;/定时时间为50ms TL0=(65536-50000)%256; EA=1;/开总中断 ET0=1;/打开定时器 TR0=1;/启动定时器 write_com(0x80+4);/秒的设定 for(num=0;num8;num+) write_data(table1num); delay(20); write_com(0x80+0x40+4); for(num=0;num8;num+) write_data(table1num); delay(20); void write_sfm(uch

16、ar add,uchar date)/调整时间 uchar shi,ge; shi=date/10; ge=date%10; write_com(0x80+0x40+add);/控制指令,0x40:字符发生器RAM地址设置进行加 write_data(0x30+shi);/数据指令,功能设置命令 d4 DL:高电平时为4位总线 d3 N:低电平时单行显示 d2 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。write_data(0x30+ge);void write_shedingsfm(uchar add1,uchar date1)/设定定时时间 uchar shi1,

17、ge1; shi1=date1/10; ge1=date1%10; write_com(0x80+add1);/控制指令 write_data(0x30+shi1); write_data(0x30+ge1);void keyscan() if(s1=0) delay(5); if(s1=0) s1num+; while(!s1);/s1按下 if(s1num=1)/按下次数 TR0=0;/停止定时器工作 write_com(0x80+0x40+11);/调整时间设置,控制秒设定 write_com(0x0f); /d3 显示开关控制。d2 D:控制整体显示的开与关,高电平表示开显示 d1 C

18、:控制光标的开与关,高电平表示有光标d0 B:控制光标是否闪烁,高电平闪烁 if(s1num=2) write_com(0x80+0x40+8);/控制分钟设定 write_com(0x0f);/控制光标闪烁 if(s1num=3) write_com(0x80+0x40+5);/控制时设定 write_com(0x0f); if(s1num=4) TR0=1;/启动定时器,定时时间的设定 write_com(0x80+11);/控制秒的设定 write_com(0x0f);/光标显示 if(s1num=5) write_com(0x80+8);/定时分钟的设定 write_com(0x0f)

19、; if(s1num=6) write_com(0x80+5);/定时时的显示 write_com(0x0f); if(s1num=7) s1num=0; / 按键次数清零 write_com(0x0c);/显示此时为无光标状态 if(s1num!=0)/有按键时 if(s2=0) delay(5); if(s2=0) while (!s2); if(s1num=1) miao+; if(miao=60) miao=0; write_sfm(10,miao)/第10位进行秒的设定 write_com(0x80+0x40+11);/控制秒的设定 if(s1num=2) fen+; if(fen=

20、60) fen=0; write_sfm(7,fen); write_com(0x80+0x40+8); if(s1num=3) shi+; if(shi=24) shi=0; write_sfm(4,shi); write_com(0x80+0x40+5); if(s1num=4) TR0=1;/定时器启动 miao1+; if(miao1=60) miao1=0; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1+; if(fen1=60) fen1=0; write_shedingsfm(7,fen1); w

21、rite_com(0x80+8); if(s1num=6) shi1+; if(shi1=24) shi1=0; write_shedingsfm(4,shi1); write_com(0x80+5); if(s3=0) delay(5); if(s3=0) while (!s3); if(s1num=1) miao-; if(miao=-1) miao=59; write_sfm(10,miao); write_com(0x80+0x40+11); if(s1num=2) fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0x80+0x

22、40+8); if(s1num=3) shi-; if(shi=-1) shi=23; write_sfm(4,shi); write_com(0x80+0x40+5); if(s1num=4) TR0=1; miao1-; if(miao1=-1) miao1=59; write_shedingsfm(10,miao1); write_com(0x80+11); if(s1num=5) fen1-; if(fen1=-1) fen1=59; write_shedingsfm(7,fen1); write_com(0x80+8); if(s1num=6) shi1-; if(shi1=-1)

23、shi1=23; write_shedingsfm(4,shi1); write_com(0x80+5); void main()/主函数 init();/初始化函数 while(1) keyscan();/键盘扫描 if(count=20)/响应中断20次,时间1s count=0;/清零 miao+;/秒加1 if(miao=60)/60秒时分加1 miao=0; fen+; if(fen=60)/60分时时加1 fen=0; shi+; if(shi=24)/24时时时全为0,从00:00:00开始计时 shi=0; write_sfm(4,shi);/修改时 write_sfm(7,fen);/修改分 write_sfm(10,miao);/修改秒 if(shi=shi1)&(fen=fen1)&(miao=miao1)/蜂鸣器电路的运行 for(i=0;i10;i+) beep=0;/蜂鸣器响 delay(50); beep=1; delay(50); void timer0() interrupt 1/中断函数 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; 八、附图21

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服