版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与信息技术学院《单片机原理及接口术》课程设计报告姓名:赵晶学号:211101041187班级:2011级嵌本班2012年6月28日
电子闹钟说明文档一、功能描述1、功能:1)在数码管上显示小时和分钟,用小灯的闪烁表示秒。2)用按键调整时间,按键2为功能选择键,按键3和按键4为调时键及调分键。3)用按键设置闹钟,可设两个闹钟,按键2为功能选择键,按键3和按键4为调时键及调分键。4)整点报时。5)在正常走时时按键可查看闹钟2、操作方法:K2键(右1)为功能选择键:不按K2(右1)键时,按K3(右2)键查看闹钟1,按K4(右3)键查看闹钟2,。按一下进入调时,时钟停止更新,K3键(右2)调整分钟,K4键(右3)调整小时。按两下进入闹钟1调整,K3键(右2)调整分钟,K4键(右3)调整小时。按三下进入闹钟2调整,K3键(右2)调整分钟,K4键(右3)调整小时。按四下时间恢复显示,标志位清零。二、线路连接,音皿称想「JD2kJ即16ABCDLfa7AA1IBB!>KCG36DD4J-hLE5,音皿称想「JD2kJ即16ABCDLfa7AA1IBB!>KCG36DD4J-hLE5TI,Uu2LS&IE7PIOphP12P13P14P15PMP17RESTP»RXD-PSL-TO?P尽旬PjA-intiPM-T3P35-TLP3fi耍P37.-RDXDU2XIAL!amSTC98C52JIxqq璞F言=DS13S?图1(线路连接图)IRQ--P2"3,DS---P2"4,RW--P2"5,AS--P2"6,CS--P2"7,A--P「0,B-P1"1,C--P1"2,D--P1"3,LE--P1"4,s11--P3"0,s12--P3"1,f11--P32,f12--P3"3,LED1--P「5,LED2--P1"6,k2--P2"2,k3--P2"1、
k4--P2"0,buzzer--P1"7:、实验器材一个DS12C887—片—一片四个—一个若干三个一个DS12C887—片—一片四个—一个若干三个三、功能实现b^bs图2(实验板)1、CD4511图2(实验板)CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码一七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。
DADBDCDD-皿BiLT图3DADBDCDD-皿BiLT图3(CD4511的引脚图及接线图)BI:4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。LT:3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入dcba状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。LE:锁定控制端,当LE=0时,允许译码输出。LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。A1、A2、A3、A4、为8421BCD码输入端。a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。输入输出LEBILIDCBAabcdefg显示XX0XXXX11111118X01XXXX0000000消隐01100001111110001100010110000101100101101101201100111111001301101000110011401101011011011501101100011111601101111110000701110001111111801110011110011901110100000000消隐01110110000000消隐01111000000000消隐01111010000000消隐01111100000000消隐0111111000000消隐111XXXX锁存锁存图4(CD4511真值表)!*消隐:在对共阴极(或共阳极)数码管进行动态扫描时(注:共阴极(或共阳极)数码管所有数码管共有一个数据输入。),先将第一个数码管打开然后给他一个数据,当将第二个数码管打开时,第一个数据会随即传入,然后我们才给他第二个数据导致在第二个数码管上会有第一个数据的影子。如此循环两个数码管都会有先前数据的影子。*消隐方法:1)、在打开第二个数码管之前,加一个合理的延迟时间。2)、改变传入数据的顺序,先传数据再打开数码管。3)、利用CD4511的消隐功能,在送第一个数据后将数码管锁存(即数码管不在改变)再将数据消隐(8个发光二极管全灭),然后锁存,再送第二个数码管,再锁存。(此方法效果最好)2、DS12C887;;24nN□VdcSOW□3221NCI4210NCDs200NCn6L9Q而】7isnRESET]&叩QDS]9L6QNCI】0i5n诚]IIAS]12>3t]csDSI2CRS724-Pin图5(DS12C887的引脚图)HCC01234567DMONNADAOAOACADAOADAOGN(1)MOT:模式选择脚。(23)SQW:方波输出脚。AD0〜AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出现在AD0〜AD7上的是地址信息,可用以选通DS12C887内的RAM,总线周期的后半部分出现在AD0〜AD7上的数据信息。(14)人,:地址选通输入脚。(17)DS/RD:数据选择或读输入脚。(15)R/W:读/写输入端。时亳日新中中祷萄低任撅响;该脚有效对矗薛器有影响,在典型的应用中,RESET可以置接接VCC,这样可以保证DS12C887在掉电时,其内部控制寄存器不受影布寄存器:寄存器A更新位UIP:用来标志芯片是否即将进行更新。当UIP位为1时,表示芯片正处于更新周期或即将开始更新周期。当它为0时,表示在至少244us后才开始更新周期(即在这244us内,芯片不会更新)。UIPDV0,DV1,DV2:这3位是用来开关晶体振荡器和复位分频器。当[DV0DV1DV2]=[010]时,晶体振荡器开启并且保持时钟运行;当[DV0DV1DV2]=[01X]时,晶体振荡器开启,但分频器保持复位状态。RS3,RS2,RS1,RS0作用:1、设置周期中断允许位(PIE);2、设置方波输出允许位(SQWE);3、两位同时设置为有效并且设置频率;4、全部禁止。寄存器BSET:当该位为0时,芯片处于正常工作状态,每秒产生一个更新周期来更新时标寄存器;该位为1时,芯片停止工作,程序在此期间可初始化芯片的各个时标寄存器。SET位可读写,并不会受到复位信号的影响。PIE—周期中断当PIE=0:禁止周期中断输出到IRQ;当PIE=1:允许周期中断输出到IRQ。AIE——闹钟中断当AIE=0:禁止闹钟中断输出到IRQ;当AIE=1:允许闹钟中断输出到IRQ。UIE—更新结束中断当UIE=0:禁止更新结束中断输出到IRQ;当UIE=1:允许更新结束中断输出到IRQ。此位在复位或设置SET为高时清0SQWE一方波输出允许位当SQWE=0:SQW脚保持低电平;当SQWE=1:按寄存器A输出速率选择位所确定的频率方波。DM——格式选择位DM=0:BCD格式;DM=1:二进制格式。此位不受复位信号影响24/12—小时模式设置位为1—24小时制;为0—12小时制DSE——夏令时允许标志DSE=1,夏令制设置有效,夏时制结束可自动刷新恢复时间;DES=0,无效。夏令时:在四月的第一个星期日的1:59:59AM,时钟调到3:00:00AM;在十用的最后一个星期日的1:59:59AM,时钟调到1:00:00AM。图6(时钟芯片寄存器表)时序图:以1602写时序为例:图7(1602写时序图)时序参数符号极限值单位测试条件最小值典型值最大值E信号周期tc400—ns引脚EE脉冲宽度tPW150—n,E上升沿/下降沿时间tR.tF—25ns地址建立时间tSPI30——ns引脚E、RS、R/W地址保持时间tHDI10—ns数据建立时间(读操作)to—100ns引脚DBO〜DB7数据保持时间(读操作)tHO220—ns数据建立时间(写操作)tSP240—ns数据保持时间(写操作)tHO210—ns1、注意时间轴,如果没有标明(其实大部分也都是不标明的),那么从左往右的方向为时间正向轴,即时间在增长。2、上图框出并注明了看懂此图的一些常识:(1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。(2).有线交叉状的部分,表示电平在变化,如上所标注。(3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。(4).上图下,密封的菱形部分,注意要密封,表示数据有效,ValidData这个词也显示了这点。3、需要十分严重注意的是,时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。在类似于18B20这样的单总线器件对此要求尤为严格。4、以上几点,并不是LCD1602的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则。图8(DS12C887写时序图)图9(DS12C887读时序图)3、按键去抖图10(按键按下时的波形)if(k2==0)检测按键是否按下delay(50);延迟,忽略按下时抖动if(k2==0)再次检测按键是否按下flag++;执行程序while(k2==0);等待释放,当我们一直按着按键时进入while死循环,放下按键跳出死循环。如果没有此死循环一直按键时会导致flag图9(DS12C887读时序图)3、按键去抖图10(按键按下时的波形)if(k2==0)检测按键是否按下delay(50);延迟,忽略按下时抖动if(k2==0)再次检测按键是否按下flag++;执行程序while(k2==0);等待释放,当我们一直按着按键时图11(按键去抖流程)四、总结1、遇到问题及解决方法:1)、调写程序时不进入按键函数,将按键检测全放入一个函数里在主函数while循环中调用。2)、数码管不能消隐,方法如上。3)、时钟芯片经常跑乱,写入初始值。4)、一直按数码管时,四个数码管只有一个显示数据,在按键的死循环中加上显示函数。2、收获:1)、学会了DS12C887及CD4511的使用。2)、明白了数码管消隐。3)、理解了按键去抖。4)、学会利用时序图写读写函数。五、源程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitIRQ=P2A3;sbitDS=P2A4;sbitRW=P2A5;sbitAS=P2A6;sbitCS=P2A7;/ZDS12C887的引脚定义sbitA=P1A0;sbitb=P1A1;sbitC=P1A2;sbitD=P1A3;sbitLE=P1A4;//CD4511的引脚定义sbits1=P3A0;sbits2=P3A1;sbitf1=P3A2;sbitf2=P3A3^码管的未选端sbitl1=P1A5;sbitl2=P1A6;//表示秒的两个小灯sbitk2=P2A2;sbitk3=P2A1;sbitk4=P2A0;//调整时间和闹钟的按键sbitbut=P1A7;//蜂鸣器的引脚定义ucharhour=12,minute=23,second=56,second19flag=09flag1=0,flag2=0flag3=0;uchart_hour1=12,t_minute1=12,t_hour2=12,t_minute2=22,hour1J;voiddelay(uintx)//延迟函数{for(;x>0;x--)_nop_();}//根据时序图写出从某内存地址中读出数据的函数voidwrite(ucharaddress,uchardatas){CS=0;〃先将四个信号全部清0DS=1;AS=1;RW=1;//根据时序图调整信号P0=address;//将地址给P0口写入芯片AS=0;RW=0;//调整信号P0=datas;//将数据给P0写入芯片AS=1;RW=1;CS=1;//调整信号ucharread(ucharaddress){uchardatas;CS=0;〃先将四个信号全部清0DS=1;AS=1;RW=1;//根据时序图调整信号P0=address;//将地址给P0口写入芯片AS=0;DS=0;//调整信号P0=0xff;〃稳定P0的数据datas=P0;//从芯片中读出数据给P0口AS=1;CS=1;DS=1;//调整信号return(datas);//返回数值}voidinit()〃时钟芯片初始化{AS=0;DS=0;RW=0;CS=0;开启闹钟中断write(0x0a,0x20);//打开振荡器开启闹钟中断write(0x0b,0x26)W设置24小时模式,数据二进制格式,}voidset(){write(0x00,t_minute2);〃设置时间初始值write(0x03,t_minute1);write(0x05,t_hour1);write(0x06,t_hour2);}倦数码管上显示小时和分钟voiddisplay(ucharshow,ucharflag1){ucharshow1,show2;switch(flag1){_case1://时显示show1=show/10;//计算小时的十位D=(show1>>3)&0x01;C=(show1>>2)&0x01;b=(show1>>1)&0x01;A=(show1>>0)&0x01;LE=0;//利用CD4511给数码管送数据f1=1;f2=1;s2=1;s1=0;//开一个数码管delay(20);LE=1;f1=1;f2=1;s2=1;s1=1;A=1;b=1;C=1;D=1;LE=0;delay(20);LE=1;〃消隐show2=show%10;//计算小时的个位D=(show2>>3)&0x01;C=(show2>>2)&0x01;b=(show2>>1)&0x01;A=(show2>>0)&0x01;LE=0;//利用CD4511给数码管送数据f1=1;f2=1;s2=0;s1=1;//开一个数码管delay(20);LE=1;}break;case2:〃分显示{show1=show/10;/计算分钟的十位D=(show1>>3)&0x01;C=(show1>>2)&0x01;b=(show1>>1)&0x01;A=(show1>>0)&0x01;LE=0;渊用CD4511给数码管送数据f1=0;f2=1;
s2=1;s1=1;〃开一个数码管delay(20);LE=1;f1=1;f2=1;s2=1;s1=1;A=1;b=1;C=1;D=1;LE=0;//消隐delay(20);LE=1;show2=show%10;D=(show2>>3)&0x01;C=(show2>>2)&0x01;b=(show2>>1)&0x01;A=(show2>>0)&0x01;LE=0;//利用CD4511给数码管送数据f1=1;f2=0;s2=1;s1=1;〃开一个数码管delay(20);LE=1;}break;〃蜂鸣器函数voidbuzzer(){inti;for(i=0;i<30;i++){but=0;delay(5);but=1;delay(5);voidadjust。if(k2==0)//功能选择键delay(50);if(k2==0){flag++;〃标志位自加}while(k2==0){display(houi,1);display(minute,2);if(flag==0){if(k4==0){delay(50);if(k4==0)while(k4==0){display(t_hour2,1);display(t_minute2,2);}}if(k3==0){delay(50);if(k3==0)while(k3==0){display(t_hour1,1);display(t_minute1,2);if(flag==1)//调时功能{write(0x0a,0xe0);〃时钟更新停止if(k3==0){delay(50);//去抖if(k3==0)minute++;if(minute==60)minute=0;write(0x02,minute);//调分钟}while(k3==0){display(houi,1);display(minute,2);}//等待释放}if(k4==0){delay(50);//去抖if(k4==0){hour++;if(hour==24)hour=0;write(0x04,hour);//调小时}while(k4==0){display(houi,1);display(minute,2);}//等待释放}}elseif(flag==2)//设置闹钟1{if(k3==0){delay(50);if(k3==0){flag2=1;〃闹钟1标志t_minute1++;if(t_minute1==60)t_minute1=0;write(0x03,t_minute1);//调分钟}while(k3==0)display(t_hour1,1);display(t_minute1,2);}//等待释放}if(k4==0){delay(50);if(k4==0){flag2=1;//闹钟1标志t_hour1++;if(t_hour1==24)t_hour1=0;write(0x05,t_hour1);//调小时}while(k4==0){display(t_hour1,1);display(t_minute1,2);}属待释放elseif(flag==3)//设置闹钟2if(k3==0){delay(50);if(k3==0){flag3=1;//闹钟2标志t_minute2++;if(t_minute2==60)t_minute2=0;//调分钟while(k3==0){display(t_hour2,1);display(t_minute2,2);}属待释放}if(k4==0)delay(50);if(k4==0)flag3=1;//I闹钟2标志t_hour2++;if(t_hour2==24)t_hour2=0;〃调小时}while(k4==0){display(t_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 编译原理课程设计
- 2025年度智能办公大楼绿色物业全面承包服务合同3篇
- 2024年长期借款合同印花税申报期限及延期申报规定3篇
- 物流快递的课程设计
- 2025版企业员工工作环境改善与安全防护协议3篇
- 2025版智能设备研发生产合伙协议书3篇
- 2024消防工程验收涉及的争议调解与法律适用合同
- 第7课 战国时期的社会变化
- 2025版集装箱式临时展览中心租赁合同范本3篇
- 2024深圳汽车租赁合同书范本(含车辆租赁争议解决)3篇
- 江苏省盐城市、南京市2024-2025学年度第一学期期末调研测试高三政治试题(含答案)
- 中央2024年住房和城乡建设部信息中心招聘3人笔试历年典型考点(频考版试卷)附带答案详解
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之19:“7支持-7.2能力”(雷泽佳编制-2025B0)
- 2024秋新商务星球版地理7年级上册教学课件 第5章 地球表层的人文环境要素 第4节 发展差异与区际联系
- 2024-2025学年二年级数学上册期末乐考非纸笔测试题(二 )(苏教版)
- 光伏项目施工总进度计划表(含三级)
- 沟通的艺术智慧树知到期末考试答案章节答案2024年湖南师范大学
- 2024高考复习必背英语词汇3500单词
- 汽车吊吊装计算
- 个人独资公司章程范本-
- 中国核电标准化组织方式及工作方案
评论
0/150
提交评论