




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
前言时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机51芯片和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟一、 设计方案1、数字时钟方案本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。2、数码管显示方案方案一:静态显示。所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。该方式每一位都需要一个8 位输出口控制。静态显示时较小的电流能获得较高的亮度,且字符不闪烁。但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。但本设计只显示时分两位,可以用静态显示。二、硬件部分1、STC89C51单片机介绍STC89C51单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM和128bytes的RAM,2个16位定时计数器5。 STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型计算机。其管脚图如图所示。C51单片机管脚结构图VCC:电源。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。2、上电按钮复位电路 本设计采用上电按钮复位电路:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,单片机芯片正常工作。其中电阻R2决定了电容充电的时间,R2越大则充电时间长,复位信号从VCC回落到0V的时间也长。3、晶振电路本设计晶振电路采用12M的晶振。晶振的作用是给单片机正常工作提供稳定的时钟信号。单片机的晶振并不是只能用12M,只要不超过20M就行,在准许的范围内,晶振越大,单片机运行越快,还有用12M的就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M的话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接的是30pF的电容。机器周期=10*晶振周期=12*系统时钟周期4、显示电路 就时钟而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。本时钟采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。三、 流程图主程序开始设定定时器常数,开中断显示时间到1秒?T0中断现场保护重装定时器初值满16次否?满24小时否?满60秒否?满60分否?恢复现场时值加1时缓冲单元清零秒值加1分缓冲单元清零秒缓冲单元清零分值加1结束扫描键盘否调用显示程序 有键按下?是调用显示程序否有键按下?是求取键号返回键盘扫描程序流程图四、程序 ORG 0000H SJMP MAIN ORG 000BH LJMP ITOP ORG 0030HMAIN: MOV 50H,#0FFH ;按键信息初始化为未按键状态 MOV 30H,#1 ;月单元 MOV 31H,#1 ;日单元 MOV 32H,#0 ;时单元 MOV 33H,#0 ;分单元 MOV 34H,#0 ;秒单元 MOV 2FH,#16 ;2FH为十六分之一秒计数单元 CLR 20H.1 ;校正状态标志清零,为正常走时状态 SETB 20H.0 ;时间/日期标志置1 MOV TMOD,#01H ;置T0工作于方式1 MOV TH0,#0BH ;采用12M晶振,定时十六分之一秒 MOV TL0,#0DCH ;装载定时器初值 MOV IE,#82H ; 允许中断 SETB TR0 ;启动定时器 SJMP $ITOP: PUSH PSW ;现场保护 PUSH ACC MOV TH0,#0BH MOV TL0,#0DCH DJNZ 2FH,KEY ;计数开始 MOV 2FH,#16 ;十六分之一秒计数单元 MOV A,34H ADD A,#01H ;在09之间,加01H DA A ;进行十进制调整 MOV 34H,A ;送到秒计数单元 CJNE A,#60H,KEY ;未到六十秒转移到KEY,到了则顺序往下执行 MOV 34H,#00H ;秒单元清零 MOV A,33H ;分单元加1,并做十进制调整 ADD A,#01H DA A MOV 33H,A ;送到分计数单元 CJNE A,#60H,KEY ;未到六十分转移到KEY MOV 33H,#00H ;分单元清零 MOV A,32H ;时单元加1,并做十进制调整 ADD A,#01H DA A MOV 32H,A ;送到时单元 CJNE A,#24H,KEY ;未到二十四小时转移,到了则顺序往下执行 MOV 32H,#00H ;时单元清零 MOV A,31H ;日单元加1,并做十进制调整 ADD A,#01H DA A MOV 31H,A ;送到日单元 CJNE A,#31H,KEY ;未到三十一天转移 MOV 31H,#01H ;日单元变为一 MOV A,30H ;月单元加1,并做十进制调整 ADD A,#01H DA A MOV 30H,A ;送到月单元 CJNE A,#12H,KEY ;未到十二个月转移 MOV 30H,#01H ;月单元变为一KEY: JNB 20H.1,ZOUSHI ;判断是否校正状态,不是,则转非校正状态 LJMP JIAOSHI ;是,则转为校正状态ZOUSHI: MOV A,P1 CJNE A,50H,KEY1 ;判断是否与上次按键相同,不相同则转移到KEY LJMP NONE1 ;相同则不断判键KEY1: MOV 50H,A ;保存上次按键信息 JNB ACC.4,SWITCH1 ;是否按下切换键 JNB ACC.5,SET1 ;是否为校正键 LJMP NONE1 ;没按与无效键均不作判断SWITCH1:CPL 20H.0 ;时间与日期的转换NONE1: JNB 20H.0,DATE1 ;判断日期与时间的标志 MOV 3BH,32H ;将时间送到显示缓冲区 MOV 3AH,33H LJMP DISPDATE1: MOV 3BH,30H ;将日期送到显示缓冲区 MOV 3AH,31H LJMP DISPSET1: SETB 20H.1 ;切换到校正标志 MOV 21H,#0 ;校正指针并请零 CLR 20H.0 ;选择日期标志 MOV 3BH,30H ;将日期送到显示缓冲区 MOV 3AH,31H LJMP DISPJIAOSHI:MOV A,P1 CJNE A,50H,KEY2 ;判断是否与上次按键相同 LJMP NONE2 ;若相同则不能判断按键KEY2: MOV 50H,A ;保存上次按键信息 JNB ACC.5,SET2 ;是否为校正键 JNB ACC.6,ADD2 ;是否为加键 JNB ACC.7,SURE ;是否为确定键 LJMP NONE2 ;空操作SET2: INC 21H ;校正指针并自动加1 ANL 21H,#03H SJMP NONE2ADD2: MOV A,#30H ;指向需要校正的指针 ADD A,21H MOV R0,A MOV A,R0 ;需要校正的指针并自动加1 ADD A,#1 DA A MOV R0,A CJNE R0,#30H,DATE ;判断月是否校正完成,校正完成跳转日 CJNE R0,#13H,NONE2 MOV R0,#1 SJMP NONE2DATE: CJNE R0,#31H,HOUR ;判断日是否校正完成,完成则跳转到时 CJNE R0,#32H,NONE2 MOV R0,#1 SJMP NONE2HOUR: CJNE R0,#32H,MIN ;判断时是否校正完成,完成则跳转到分 CJNE R0,#24H,NONE2 MOV R0,#0 SJMP NONE2MIN: CJNE R0,#60H,NONE2 ;校正分 MOV R0,#0 SJMP NONE2SURE: CLR 20H.1 ;校时完成跳转到走时标志 SJMP TIME2NONE2: JNB 21H.1,DATE2 ;判断送到显示缓冲区的是时间还是日期TIME2: SETB 20H.0 ;时间/日期标志置1,为显示时间状态 MOV 3BH,32H ;时间送到显示缓冲区 MOV 3AH,33H LJMP DISPDATE2: CLR 20H.0 ;时间/日期标志位清零,为显示日期状态 MOV 3BH,30H ;日期送到显示缓冲区 MOV 3AH,31H DISP: MOV A,3BH ;显示缓冲区中的内容分解为四位BCD码依次放入43H40H单元 ANL A,#0F0H SWAP A MOV 43H,A MOV A,3BH ANL A,#0FH MOV 42H,A MOV A,3AH ANL A,#0F0H SWAP A MOV 41H,A MOV A,3AH ANL A,#0FH MOV 40H,A JNB 20H.1,DISP1 ;不是校正状态,正常显示,否则校正状态下,闪烁显示 JNB 2FH.3,DISP1 ;若2FH.3为0正常显示,若2FH.3为1,校正内容对应的BCD码单元送熄灭码 JNB 21H.0,N1 ;从校正指针判断送熄灭码的单元,为0高两位传送,为1低两位传送 MOV 40H,#0AH MOV 41H,#0AH SJMP DISP1N1: MOV 42H,#0AH MOV 43H,#0AH LJMP DISP1DISP1: MOV DPTR,#TAB ;指向表单 MOV A,43H ;查最高位 MOVC A,A+DPTR CJNE A,#09H,NEXT1 ;判断最高位是否为0 MOV A,#0FFH ;为0 则给熄灭码NEXT1: MOV SBUF,A ;传送到数码管上,串行静态显示 JNB TI,$ CLR TI MOV A,42H ;查第二位 MOVC A,A+DPTR MOV C,2FH.3 ;判断并改变小数点,并判断半秒亮半秒灭 ANL C,20H.0 MOV ACC.0,C MOV SBUF,A ;传送到数码管上 JNB TI,$ ;等待传输完毕 CLR TI ;允许继续传输 MOV A,41H ;查第三位 MOVC A,A+DPTR ;查显示数据对应段码 JB 20H.0,NEXT2 ;判断时间/日期标志 CJNE A,#09H,NEXT2 ; 日期灭0,时间状太不灭0 MOV A,#0FFHNEXT2: MOV SBUF,A JNB TI,$ CLR TI MOV A,40H ;查第四位 MOVC A,A+DPT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-湖南-湖南房管员四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-湖南-湖南医技工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-湖南-湖南保安员三级(高级工)历年参考题库典型考点含答案解析
- 数字化会员服务在2025年零售行业的应用与发展研究报告
- 2025-2030中国纺纱纸锥行业应用潜力与投资盈利预测报告
- 2025年事业单位工勤技能-海南-海南铸造工一级(高级技师)历年参考题库含答案解析
- 2025年储能电池在储能电站储能系统智能化监控中的应用研究报告
- 金融行业审计智能化路径探析:2025年人工智能算法应用报告
- 2025-2030中国笔制造行业发展前景与趋势预测分析报告
- 2025-2030中国立体蓝牙耳塞市场供需现状与销售渠道规划报告
- 2025年发展对象考试题库附含答案
- 2025年兵团基层两委正职定向考录公务员试题(附答案)
- 2025年新专长针灸考试题及答案
- 高三生物一轮复习课件微专题5电子传递链化学渗透假说及逆境胁迫
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 2025四川雅安荥经县国润排水有限责任公司招聘5人笔试历年参考题库附带答案详解
- 2025中国银行新疆区分行社会招聘笔试备考试题及答案解析
- 污水采样培训课件
- 药品医疗器械试题及答案
- 子宫内膜类器官构建与临床转化专家共识解读 2
- 幼师培训:如何上好一节课
评论
0/150
提交评论