课程设计(单片机系统设计)单片机电子时钟_第1页
课程设计(单片机系统设计)单片机电子时钟_第2页
课程设计(单片机系统设计)单片机电子时钟_第3页
课程设计(单片机系统设计)单片机电子时钟_第4页
课程设计(单片机系统设计)单片机电子时钟_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程论文首页院、系(部)闽江学院物理学与电 子信息工程系专业电子信息工程班级12电信(2)班学号3121003210姓名李书杰任课教师薛小铃,贾俊荣课程名称课程设计(单片机系统设计)论文题目单片机电子时钟成绩评语签字:年 月日复核人息见签字:年 月日(单片机系统设计)课程设计-单片机电子时钟中文摘要:本课程设计是利用89c52单片机最小系统,综合应用单片机定时器、 中断、液晶显示、蜂鸣报警、独立式键盘输入等知识,设计电子时钟。采用延时 程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进 一,满六十分小时进一,满二十四小时小时清零。在完成计时的基本要求之后对 电子时钟的功能进

2、行拓展,设计闹铃电路。闹铃电路是根据计时系统的输出状态 产生一脉冲信号,然后去触发蜂鸣器实现闹钟功能。显示部分利用lcd1602a示, 加上按键的人机交换可以随时对时间进行调整。电源电路部分,使用开发板或者 试验箱上的5v电源进行供电。关键词:单片机电子时钟延时一、整体设计1、图1是电子时钟整体设计框图。由电源、按键、蜂鸣器、液晶显示组成图1电子时钟总体方框图2、整机工作原理电子钟的工作主要框图如图1所示:电子钟电路的核心 at89s52单片机, 其内部有8kb的rom,无须外扩程序储存器。当从键盘电路获得按键信息, 经过软件协调驱动硬件电路工作,由单片机生成相应操作代码并再通过限流传送 给显

3、示电路,从而显示出从键盘处获得的信息。 在整个过程中,由时钟电路提供 单片机保持稳定工作的工作时钟;复位电路利用按键复位功能,其中按键是从键 盘电路得到的。 整点报时电路是根据计时系统的输出状态产生一脉冲信号,然 后去触发蜂鸣器实现报时。另系统配备lcd显示,stc89c52的p0口和p1.0p1.2口作为 lcd 的输入口。二、硬件电路设计2. 1 89s52单片机最小系统at89c52单片机作为电子时钟的最小系统与电源按键ds1302时钟芯片等完成设计功能是设计的核心部分其组成如图 2.1 所示:vcc :电源。gnd :接地。p0 口: p0 口为一个 8 位漏级开路双向 i/o 口,每

4、脚可吸收8ttl 门电流。当 p1 口的管脚第一次写 1 时,被定义为高阻输入。 p0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在fiash 编程时, p0 口作为原码输入口,当fiash进行校验时,p0输出原码,此时p0外部必须被拉高。p1 口: p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口, p1 口缓冲器能接 收输 出 4ttl 门电流。 p1 口管脚写入 1 后,被内部上拉为高,可用作输入, p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash 编程和校验时, p1 口作为第八位地址接收。p2 口: p2 口为一个内部上拉电阻

5、的 8 位双向 i/o 口, p2 口缓冲器可接收,输出 4 个 ttl 门电流,当 p2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时, p2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, p2 口输出其特殊功能寄存器的内容。 p2 口在 flash 编程和校验时接收高八位地址信号和控制信号。p3 :p3 口管脚是8个带内部上拉电阻的双向i/o 口,可接收输出4个ttl门电流。当 p

6、3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, p3 口将输出电流( ill )这是由于上拉的缘故。p3 口也可作为 at89c51 的一些特殊功能口,如下表所示:口管脚 备选功能p3.0 rxd (串行输入口)p3.1 txd (用行输出口)p3.2 /into (外部中断0)p3.3 /int1 (外部中断1)p3.4 t0 (记时器0外部输入)p3.5 t1 (记时器1外部输入)p3.6 /wr (外部数据存储器写选通)p3.7 /rd (外部数据存储器读选通)p3 口同时为闪烁编程和编程校验接收一些控制信号。rst:复位输入。当振荡器复位器件

7、时,要保持 rst脚两个机器周期的高 电平时间。ale/prog : 当访问外部存储器时, 地址锁存允许的输出电平用于锁存地址的地位字节。 在 flash 编程期间, 此引脚用于输入编程脉冲。 在平时, ale 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是: 每当用作外部数据存储器时,将跳过一个ale 脉冲。如想禁止ale 的输出可在 sfr8eh 地址上置0。此时,ale只有在执行 movx , movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale禁止,置位无效。psen:外部程

8、序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信 号将不出现。ea/vpp:当/ea保持低电平时,则在此期间外部程序存储(0000h-ffffh), 不管是否有内部程序存储器。注意加密方式 1时,/ea将内部锁定为reset; 当/ea端保持高电平时,此间内部程序存储器。在 flash编程期间,此引脚也 用于施加12v编程电源(vpp)。图2.1 89s52 单片机最小系统2.1.1 .电子时钟设计的整体思想原理说明:利用定时器t0定时,每隔10ms产生一次中断,中断100次(1s) 后秒单元加1;秒单元sec

9、ond满60后向分单元进位,分单元 minute加1;当分 单元满60后时单元hour加1。2.1.2 电子时钟显示思想利用1602液晶进行显示第一行显示年月日,第二行显示时分秒。实物电路如 图 2.1.2ll图 2.1.22.2 电源电路没有制作电源电路部分。使用开发板或者试验箱上的5v电源进行供电。2.3 按键电路独立式按键如图2.3按键1为功能键按一次可分别进入调节时钟的秒和分、时、日、月、年, 按两次可调节闹钟定时时间,按三次返回正常显示时间。加键,每按一下相 应位置数值加一。按键2设定调节时分秒的位置按键3,按键4分别为数字加一和减一键。复位键,按一下时间复位。图2.3独立式按键2.

10、4 蜂鸣器单片机端口输出的方波经放大滤波后,驱动蜂鸣器发声。如图 2.4图2.42.5 复位电路:stc89c52单片机通常采用上电自动复位和按钮复位(如图2.5)两种方式:(一)上电自动复位是通过外部复位电路的电容充电来实现, 这样,只要电vcc 的上升时间不超过1ms,就可以实现上电自动复位。(二)按键手动复位有电平方式和脉冲方式两种, 其电平复位是通过使复位端通 过vcc电源与电阻接通来实现的,而脉冲复位则是利用了 rc微分电路产生的 正脉冲来实现的。本设计选用上电与按键均有效的复位电路, 它不仅在上电时可 以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作 .图2.52.6

11、时钟振荡电路:在mcs-52芯片内部有一个高增益反相放大器,其输入端为芯片引脚xtal1 ,输出端为引脚xtal2 ,在芯片的外部通过两个引脚跨接晶体振荡器和 微调电容,形成反馈电路,就0够成了一个稳定的自激振荡器。如图 2.6图2.62.7 pcb封装图如图2.7所示p2id1曰 0口cj图2.7三、程序设计3.1主程序流程图:主程序先开始,然后启动定时器,并lcd初始化和显示时间,后扫描键盘,判 断功能键是否按下。:i定时器开lcd初始化|i j显示时间i扫描键盘i i 设置时间i :图3.2延时程序约1ms幅g立止希um付搐i沈近人用阿设 宜惶式陆2舐送义阳科设 丑样式h的性佰式 画午a

12、n快节目位m x ifllr. 技反节的他由性黑坨酷理喻1印我isl近网正常醍而“固窗d 强一 2t|m图3.3子程序按键流程四、实验操作相关图 见附录1五、程序如下见附录2六、总结通过通过此次试验更加深刻的将课本理论与实际结合进一步熟悉单片机芯 片的结构及掌握了其工作原理和具体使用方法与相关元件的参数计算方法,深刻了解电路板的开发和制作。调试要点:首先确保各器件的完好性,其次检测各芯片的电源线和地线是否 接触良好,然后焊接器件,接好电源用万用表检测各电源端、 地端的状态是否正 常。拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路 和断路,尤其要避免电源短路;元器件在安装前要

13、逐一检查,用万用表测其数值, 看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查 各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入, 再次检 查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测 一下,看是否符合要求。检查无误后插上at89s51并烧写一简易的程序,观察电路是否能协同工作。 最后烧写工作程序,根据显示现象调试程序直至成功。这次的设计使我认识到本人对单片机方面的知识知还不够全面,对于书本上的很多知识还不能灵活运用,在对电路的焊接处理还是不够熟练,从中学到了一 些很重要的东西,可以很好的将理论转化成实践之后的产物。我在这一次数字电

14、 子钟的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达 能力,最终完成了。这为自己今后进一步深化学习,积累了一定宝贵的经验。撰 写论文的过程也是专业知识的学习过程, 它使我运用已有的专业基础知识, 对其 进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。 培养了我运用所学知识解决实际问题的能力。通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实 践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个实验十分有 意义 我获得很深刻的经验。七.元器件清单:器件名称数目dip40脚

15、插座1stc89c52rc-40c-pdip401蜂鸣器5v1单排针(长 11mm 1*40pin2.54mm412mhz石英晶振1石英晶振32.768k130pf瓷片电容24脚开关5电解电容25v/10uf 体积5*1111k电阻110k电阻24.7k电阻4s9012三极管1lclm晶屏1200欧电阻49pb阻1参考文献:1薛小铃.单片机系统设计课程设计指导书r.福州:闽江学院电子工程教研室,2011.92李朝青.单片机原理及接口技术m北京:北京航空航天大学出版社,2006.123张迎新,单片机原理、应用及接口技术(第二版)m.北京:国防工业出版社,2010.94潘永雄。新编单片机原理与应用

16、m.西安:西安电子科技大学出版社,2009.25付家才。单片机控制实践技术m.北京:化学工业出版社,2011.36刘军等,单片机原理与接口技术m.上海:华东理工大学出版社,2008.67何书森等,电子线路设计速成 m.胡州:互见科学技术出版社,2009.10附录:1、与本次试验相关图如下:2.程序#include#define uchar unsigned char#define uint unsigned intsbit key1=p1a0;sbit key2=p1a1;sbit keyup=p1a2;sbit keydw=p1a3;sbit beep=p2a3;sbit lcdrs=p1a

17、4;sbit lcdrw=p1a5;sbit lcden=p1a6;uchar table2尸0123456789-;intm1,m2,m3,m4,m5,m6,k,n,p,q,m8,w,a,ri,yue,ni an;void delayms(int j)int i;for(j;j0;j-)for(i=125;i0;i-);/ lcd写地址void writecom(uchar com)lcden=0;lcdrs=0;lcdrw=0;delayms;lcden=1;delayms;p0=com;delayms;lcden=0;/lcd写数据void writedata(uchar dat)lcd

18、en=0;lcdrs=1;lcdrw=0;delayms(1);lcden=1;delayms(1);p0=dat;delayms(1);lcden=0;/ lcd初始化void lcd_init()delayms(15);writecom(0x38);delayms(5);writecom(0x38);delayms(5);writecom(0x38);writecom(0x38);writecom(0x08);writecom(0x01);writecom(0x06);writecom(0x0c);void beepinit(void)beep=0;delayms(100);beep=1;

19、void beep2()beep=0;delayms(500);beep=1;void display。writecom(0x80+0x02);writedata(table2nian/1000);writedata(table2nian%1000/100); writedata(table2nian%100/10); writedata(table2nian%10);writedata(table210);writedata(table2yue/10);writedata(table2yue%10);writedata(table210);writedata(table2ri/10);wri

20、tedata(table2ri%10);writecom(0x80+0x40);writedata(table2m1/10);writedata(table2m1%10);writedata(table210);writedata(table2m2/10);writedata(table2m2%10);writedata(table210);writedata(table2m3/10);writedata(table2m3%10);writecom(0x80+0x48);writedata(table2m4/10);writedata(table2m4%10);writedata(table2

21、10);writedata(table2m5/10);writedata(table2m5%10);writedata(table210);writedata(table2m6/10);writedata(table2m6%10);if(k=20)k=0;m3+;m8+;)if(m3=60)(m3=m3-60;m2+;)if(m2=60)(m2=m2-60;m1+;)if(m1=24)(m1=m1-24;ri+;)switch(yue)(case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(ri=32)(yue+;ri=ri-31;) br

22、eak;case 4:case 6:case 9:case 11:if(ri=31)( yue+; ri=ri-30;) break;case 2:if(nian%100=0&nian%400=0)|(nian %100!=0&nian%4=0)( if(ri=29) (yue+; ri=ri-28;) else if(ri=30) (yue+; ri=ri-29;) break;default:yue=1; break;) if(m6=60)(m6=m6-60;m5+;)if(m5=60)(m5=m5-60;m4+;)if(m4=24)(m4=m4-24;上调时钟void keyupinit

23、()if(p=1) 时间上调if(!keyup)delayms;if(!keyup)switch(n)case1m3=m3+1;break;case2:m3=m3+10;break;case3m2=m2+1;break;case4:m2=m2+10;break;case5m1=m1+1;break;case6:m1=m1+10;break;case7: ri=ri+1;break;case8:ri=ri+10;break;case9:yue=yue+1;break;case 10:yue=yue+10;break;case 11:nian=nian+1;break;case12:nian=ni

24、an+10; break;case13:nian=nian+100;break;case14:nian=nian+1000; break;beepinit();while(!keyup);if(p=2)/ 闹钟上调if(!keyup)delayms(1);if(!keyup)switch(n)case 1: m6=m6+1;break;case 2: m6=m6+10;break;case 3: m5=m5+1;break;case 4: m5=m5+10;break;case 5: m4=m4+1;break;case 6: m4=m4+10; break;beepinit();while(

25、!keyup);下调时钟void keydwinit()if(p=1)/时可下调if(!keydw)delayms;if(!keydw)switch(n)case 1: m3=m3-1;break;case 2: m3=m3-10;break;case 3: m2=m2-1;break;case 4: m2=m2-10;break;case 5: m1=m1-1;break;case 6: m1=m1-10;break;case 7: ri=ri-1;break;case 8:ri=ri-10;break;case 9: yue=yue-1;break;case 10: yue=yue-10;

26、break;case 11: nian=nian-1;break;case12:nian=nian-10; break;case13:nian=nian-100;break;case14:nian=nian-1000;break;beepinit();while(!keydw);if(p=2)/ 闹钟下调if(!keydw)delayms(1);if(!keydw)switch(n)case 1: m6=m6-1;break;case 2: m6=m6-10;break;case 3: m5=m5-1;break;case 4: m5=m5-10; break;case 5: m4=m4-1;break;case 6: m4=m4-10; break;beepinit();while(!keydw);/选择位数/p:模式选择void xuanze()n=1;p=1;while(p=1) 时间模式if(!key2)if(n=7)n=1;key

温馨提示

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

评论

0/150

提交评论