欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    数字电子钟毕业设计.doc

    • 资源ID:7211645       资源大小:429.50KB        全文页数:25页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字电子钟毕业设计.doc

    湖南铁路科技职业技术学院数字电子钟设计专 业 应用电子技术 班 级 307-1班 学生姓名 敬勇攀 指导教师 刘刚老师 摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎参透了社会的各个领域,有力地推动了社会声处理的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 simulation Program with Integrated Circuit Emphasis (PSPICE)软件是专门用于电子电路仿真的“虚拟电子工作台PSPICE软件具有强大的电路图绘制功能、电路模拟仿真功能、图形后处理功能和元器件符号制作功能,以图形方式输入,自动进行电路检查,生成图表,模拟和计算电路。它的用途非常广泛,不仅可以用于电路分析和优化设计,还可用于电子线路、电路和信号与系统等课程的计算机辅助教学。与印制版设计软件配合使用,还可实现电子设计自动化。被公认是通用电路模拟程序中最优秀的软件,具有广阔的应用前景。目录摘要2引言4第一章 总体设计方案51.1、数字电子钟设计方案论证51.2、方案选择5第二章 总体设计框图62.1、主控制器62.2、LED显示62.3、驱动电路82.4、存储单元表9第三章 硬件部分103.1、数字电子钟与单片机的接口电路103.2、系统整体硬件电路11第四章 软件部分134.1、系统软件算法分析134.2、主程序134.3、中断程序144.4、调时功能程序15第五章 总程序清单16第六章 总结与体会25参考文献26引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字电子钟与传统的数字钟相比,具有读数方便,测时准确,其输出时间采用数字显示,主要用于对时间比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89S51,用6位共阳极LED数码管以串口传送数据,实现时间显示,能准确达到以上要求。第一章 总体设计方案1.1、数字电子钟设计方案论证1.1.1 方案一由于本设计是测时电路,可以使用普通电阻之类的器件利用其限流作用,在将随被时间变化的电压或电流采集过来,就可以用单片机进行数据的处理,在显示电路上,就可以将被时间显示出来。1.1.2 方案二进而考虑到用数字电子钟,在单片机电路设计中,大多都是使用计时器,所以这是非常容易想到的,上电后,系统自动进入计时状态,起始于00时00分00秒。SB4为年月日显示转换键,可使原来显示时分秒转换显示年月日。1.2、方案选择从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。第二章 总体设计框图数字电子钟电路设计总体设计方框图如图2-1所示,控制器采用单片机AT89S51,用6位LED数码管以串口传送数据实现时间显示。主 控 制 器LED显 示报警闹铃单片机复位时钟振荡报警点按键调整 图2-1 整体设计方框图2.1、主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2.2、LED显示数码管显示电路采用6位共阳LED数码管,从P3口RXD,TXD串口输出段码。示。共阴LED数码管结构、字段及引脚排列见图2图2共阴LED数码管由8只发光二极管VD1至VD8共阴连接并按?8?字形结构排列而成。这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有P2相应呈现高电位,VT个管导通,LED1的GND与地相接,LED位被选中才具备发光的使能条件;可见,在利用P2口送出位选码,使各位轮流得到发光使能条件的同时,通过P0口分别送出不同的段选码,就会在LED1至LED4中显示出不同的数字来。2.3、驱动电路 一个CD4511和一个LED数码管连接成一个CD4511驱动电路,数码管可从0-9显示,以次来检查数码管的好坏,如图所示2.4、存储单元分配表,如表2-4如表2-4第三章 硬件部分3.1、数字电子钟与单片机的接口电路LED数码管可以采用两种方式供电,一种是共阳的,那它低电平有效,一种是共阴的,那它高电平有效,如图3-4 所示单片机端口接单线总线。图3-4 数字钟与单片机的接口电路3.2、系统整体硬件电路3.2.1 主板电路系统整体硬件电路包括,时间显示电路,上下限报警调整电路,单片机主板电路等,如图3-5 所示。图3-5中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被规定的时间不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测时间值显示,这时可以调整报警上下限,图3-5 中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。3.2.2 显示电路显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰,如图3-6所示。图3-5 单片机主板电路图3-6 时间显示电路第四章 软件部分4.1、系统软件算法分析系统程序主要包括主程序,中断流程子程序,调试时功能程序等等。4.2、主程序主程序的主要功能是负责时间的实时显示、读出并处理LED数码管上当前温时间,秒钟每到60秒向分进1,分钟到60分向时进1其程序流程见图4-1所示。初始化调用显示子程序60秒到?60分到?小时加1,并复位秒钟值=0显示当前时间值NYYN图4-1 主程序流程图4.3、中断程序读出时间时其相应的时间进文需要中断来完成,已及时响应外表或内部的电路。其程序流程图如图4-2示Y定时中断,重装定时值加100MS调整秒单元读取操作,CRC校验调整分单元CRC校验正?确?调整时单元结束NNY图4-2 中断流程图4.4、调时功能程序图系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的那路P3置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNE A,#direct,rel,如下图 第五章 总程序清单SEC EQU 32H;秒即时时间伪指令MIN EQU 31H;分HOUR EQU 30H;时DAY EQU 35H;日MON EQU 34H;月YEAR EQU 33H;年MIN_1 EQU 41H;分定时器1路、开存储单元HOUR_1 EQU 42H;时DAY_1 EQU 43H;MON_1 EQU 44H;YEAR_1 EQU 45H;MIN_11 EQU 40H;分定时器1路、关存储单元HOUR_11 EQU 46H;时DAY_11 EQU 47H;日MON_11 EQU 48H;月YEAR_11 EQU 49H;年;*ORG 0000HLJMP MAINORG 0003H;中断转换显示年月日、INT0(SB4键)LJMP SHOWORG 000BH;计数中断T0、方式1LJMP TIMEORG 0013HLJMP CHANGE;调整时间、定时、INT1(SB0键);-主程序ORG 0030HMAIN:;-初始化付值MOV YEAR,#02MOV MON,#05MOV DAY,#01MOV HOUR,#00MOV MIN,#00MOV SEC,#00CLR 40H;定时单元1路清零CLR 41HCLR 42HCLR 43HCLR 44HCLR 45HCLR 46HCLR 47HCLR 48HCLR 49H;-开中断MOV TMOD,#01H;计数、模式1、T0MOV TL0,#0B0H;100SM计数定时MOV TH0,#3CH;clr p3.0MOV 20H,#0AH;10次*100SMSETB PT0;T0为最高级SETB TR0;允许计数SETB ET0;允许T0中断SETB EX0;允许INT0中断SETB EX1;允许INT1中断SETB EA;开总中断;-显示、定时器启动判断LOOP:MOV R1,#30H;存储单元MOV R4,#01H;位选通MOV R3,#03H;三组显示NEXT:MOV A,R1;MOV B,#10;将存储单元转换成两高低两组的BCD码DIV ABSWAP AORL A,BMOV P0,A;输出MOV P2,R4INC R1;下一单元MOV A,R4;RL A;位移MOV R4,ALCALL DE5SM;延时0.5SMDJNZ R3,NEXT;全扫描显示一偏;-判断定时输出(只编写了一路)CJNE R7,#88H,LOOP;是8则开,否则、定时已关、转;-开MOV A,YEARCJNE A,YEAR_1,LOOP_1;年比较,不等转关MOV A,MONCJNE A,MON_1,LOOP_1MOV A,DAYCJNE A,DAY_1,LOOP_1MOV A,HOURCJNE A,HOUR_1,LOOP_1MOV A,MINCJNE A,MIN_1,LOOP_1CPL P3.0;-关LOOP_1:MOV A,YEARCJNE A,YEAR_11,LOOP;年比较MOV A,MONCJNE A,MON_11,LOOPMOV A,DAYCJNE A,DAY_11,LOOPMOV A,HOURCJNE A,HOUR_11,LOOPMOV A,MINCJNE A,MIN_11,LOOPCPL P3.0LJMP LOOP;-年月日显示中断子程序SHOW:PUSH PSWpush ACCPUSH BPUSH 01HPUSH 02HPUSH 03HPUSH 04HMOV R2,#0FFH;中断扫描次数TURN:MOV R1,#33HMOV R4,#01HMOV R3,#03HNEXT_1:MOV A,R1MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,R4INC R1RL AMOV R4,ALCALL DE5SMDJNZ R3,NEXT_1DJNZ R2,TURN;反复显示一定时POP 04HPOP 03HPOP 02HPOP 01HPOP BPOP ACCPOP PSWRETI-计数中断服务子程序E:PUSH PSWPUSH ACCPUSH BPUSH 06HMOV TH0,#3CH;重装计数MOV TL0,#0BH;DJNZ 20H,OUT;转到中断跳出MOV 20H,#0AH;重装:100*-进位程序INC SECMOV R6,SEC;CJNE R6,#60,OUT;比较MOV SEC,#00;INC MINMOV R6,MINCJNE R6,#60,OUTMOV MIN,#00INC HOURMOV R6,HOURCJNE R6,#25,OUTMOV HOUR,#00INC DAYMOV R5,MONCJNE R5,#1,MON_22;是否MOV R5,DAYCJNE R5,#32,OUT;本月是INC MONMOV DAY,#1LJMP OUTT:POP 06HPOP BPOP ACCPOP PSWRETIN_22:MOV R5,MONCJNE R5,#2,MON_33;是否MOV A,YEAR;判断是否瑞年MOV B,#4DIV ABMOV A,BJNZ OUT_1;不是则转(A不为MOV R5,DAYCJNE R5,#30,OUT;如是瑞年、INC MONMOV DAY,#1LJMP OUTT_1:MOV R5,DAYCJNE R5,#29,OUT;平年二月INC MONMOV DAY,#1LJMP OUTN_33:MOV R5,MONCJNE R5,#3,MON_44MOV R5,DAYCJNE R5,#32,OUTINC MONMOV DAY,#1LJMP OUTMON_44:MOV R5,MONCJNE R5,#4,MON_55MOV R5,DAYCJNE R5,#31,OUTINC MONMOV DAY,#1LJMP OUTMON_55:MOV R5,MONCJNE R5,#5,MON_66MOV R5,DAYCJNE R5,#32,OUTINC MONMOV DAY,#1LJMP OUTMON_66:MOV R5,MONCJNE R5,#6,MON_77MOV R5,DAYCJNE R5,#31,OUTINC MONMOV DAY,#1LJMP OUTMON_77:MOV R5,MONCJNE R5,#7,MON_88MOV R5,DAYCJNE R5,#32,L1INC MONMOV DAY,#1L1:LJMP OUTMON_88:MOV R5,MONCJNE R5,#8,MON_99MOV R5,DAYCJNE R5,#32,L2INC MONMOV DAY,#1L2:LJMP OUTMON_99:MOV R5,MONCJNE R5,#9,MON_00MOV R5,DAYCJNE R5,#31,L3INC MONMOV DAY,#1L3:LJMP OUTMON_00:MOV R5,MONCJNE R5,#10,MON_AAMOV R5,DAYCJNE R5,#32,L4INC MONMOV DAY,#1L4:LJMP OUTMON_AA:MOV R5,MONCJNE R5,#11,MON_BBMOV R5,DAYCJNE R5,#31,L5INC MONMOV DAY,#1L5:LJMP OUTMON_BB:MOV R5,DAYCJNE R5,#32,L6INC YEARMOV MON,#1MOV DAY,#1L6:LJMP OUT;-校对时间、定时调整中CHANGE:PUSH PSWPUSH ACCPUSH BPUSH 00Hmov p2,#00hSHOW_1:MOV A,#01H;显示1MOV P0,AMOV P2,#0FFH;三组数码管都显示1路LCALL READ;调用读p1口键程序CJNE A,01H,SHOW_1;去抖后比较LCALL DE250SM;延时250秒CJNE A,#0FBH,ttT1LJMP SB3_1ttT1:CJNE A,#0FEH,SHOW_1AJMP SHOW_2;-二组显示SHOW_2:MOV A,#02H;显示2MOV P0,AMOV P2,#0FFH;LCALL READCJNE A,01H,SHOW_2;去抖后比较LCALL DE250SM;延时250秒CJNE A,#0FBH,T2;不等转去判断此时SB3按了没LJMP SB3_2T2:CJNE A,#0FEH,SHOW_2AJMP SHOW_3;_-三组显示SHOW_3:MOV A,#03H;显示3MOV P0,AMOV P2,#0FFH;位码LCALL READCJNE A,01H,SHOW_3;去抖后比较LCALL DE250SM;延时250秒CJNE A,#0FBH,T3;不等转去判断此时SB3按了没LJMP SB3_3T3:CJNE A,#0FEH,SHOW_3AJMP SHOW_4;-即时年单元调时、显示SHOW_4:MOV A,YEAR;调出年单元MOV B,#10;BCD转换DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#01H;LCALL READLCALL DE250SMCJNE A,01H,SHOW_4;去抖CJNE A,#0FEH,KEY2_1;按SB2转年调整AJMP MON_CH;按SB1往下调月单元KEY2_1:CJNE A,#0FDH,SHOW_4LCALL YEAR_AD;调用年调整AJMP SHOW_4;MON_CH:MOV A,MON;月单元调整MOV B,#10DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#02H;LCALL READLCALL DE250SMCJNE A,01H,MON_CH;去抖CJNE A,#0FEH,KEY2_2;按SB2转月调整LJMP DAY_CH;按SB1往下调日单元KEY2_2:CJNE A,#0FDH,MON_CHLCALL MON_AD;调用月调整LJMP MON_CH;DAY_CH:MOV A,DAY;日单元调整MOV B,#10DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#04H;LCALL READLCALL DE250SMCJNE A,01H,DAY_CH;去抖CJNE A,#0FEH,KEY2_3;按SB2转日调整LJMP HOUR_CH;按SB1往下调时单元KEY2_3:CJNE A,#0FDH,DAY_CHLCALL DAY_AD;调用日调整LJMP DAY_CHHOUR_CH:MOV A,HOUR;时单元调整MOV B,#10DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#01H;LCALL READLCALL DE250SMCJNE A,01H,HOUR_CH;去抖CJNE A,#0FEH,KEY2_4;按SB2转时调整AJMP MIN_CH;按SB1往下调分单元KEY2_4:CJNE A,#0FDH,HOUR_CHLCALL HOUR_AD;调用时调整AJMP HOUR_CH;MIN_CH:MOV A,MIN;分单元调整MOV B,#10DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#02H;LCALL READLCALL DE250SMCJNE A,01H,MIN_CH;去抖CJNE A,#0FEH,KEY2_5;按SB2转分调整AJMP SEC_CH;按SB1往下调秒单元KEY2_5:CJNE A,#0FDH,MIN_CHLCALL MIN_AD;调用分调整LJMP MIN_CH;SEC_CH:MOV A,SEC;秒单元调整MOV B,#10DIV ABSWAP AORL A,BMOV P0,A;MOV P2,#04H;LCALL READLCALL DE250SMCJNE A,01H,SEC_CH;去抖CJNE A,#0FEH,KEY2_6;按SB2秒调整LJMP OUT_A;按SB1跳出KEY2_6:CJNE A,#0FDH,SEC_CHCLR SEC;归零LJMP SEC_CH;-按SB2定时器年单元加1子程序SB3_2:LJMP SHOW_2;二路没编返回SB3_3:LJMP SHOW_3;三路没编返回SB3_1:MOV A,YEAR_1;调时年单元MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#01HLCALL READLCALL DE250SMCJNE A,01H,SB3_1CJNE A,#0FBH,KEY2_7;按SB2转年调整LJMP MON_111;按SB1往下调月单元KEY2_7:CJNE A,#0FDH,SB3_1INC YEAR_1;1路年单元加1MOV R5,YEAR_1CJNE R5,#09,SB3_1;益出MOV YEAR_1,#00HAJMP SB3_1;-月单元加1子程序MON_111:MOV A,MON_1;调时月单元显示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#02HLCALL READLCALL DE250SMCJNE A,01H,MON_111CJNE A,#0FBH,KEY2_8;按SB2转月调整LJMP DAY_111KEY2_8:CJNE A,#0FDH,MON_111INC MON_1;1路月单元加1MOV R5,MON_1CJNE R5,#13,MON_111;益出MOV MON_1,#01HAJMP MON_111;转到月显;_-日单元加1子程序DAY_111:MOV A,DAY_1;调时日单元显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#04HLCALL READLCALL DE250SMCJNE A,01H,DAY_111CJNE A,#0FBH,KEY2_9;按SB2转日调整LJMP HOUR_111KEY2_9:CJNE A,#0FDH,DAY_111INC DAY_1;1组日单元加1MOV R5,DAY_1CJNE R5,#32,DAY_111;益出MOV DAY_1,#01HAJMP DAY_111;转到日显;-按SB2时单元加1子程序HOUR_111:MOV A,HOUR_1;调时时单元显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#01HLCALL READLCALL DE250SMCJNE A,01H,HOUR_111CJNE A,#0FBH,KEY2_10;按SB2转时调整LJMP MIN_111KEY2_10:CJNE A,#0FDH,HOUR_111INC HOUR_1MOV R5,HOUR_1CJNE R5,#24,HOUR_111;益出MOV HOUR_1,#00HAJMP HOUR_111;转到时显;-分单元加1子程序MIN_111:MOV A,MIN_1;调时分单元、并显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#02HLCALL READLCALL DE250SMCJNE A,01H,MIN_111CJNE A,#0FBH,KEY2_11;按SB2转分调整AJMP OFF_CH;按SB3往下调定时:关单元KEY2_11:CJNE A,#0FDH,MIN_111INC MIN_1;1路分单元加1MOV R5,MIN_1CJNE R5,#60,MIN_111;益处MOV MIN_1,#00HAJMP MIN_111;转到分显年单元调整OFF_CH:MOV A,YEAR_11;调时年单元MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#01HLCALL READLCALL DE250SMCJNE A,01H,OFF_CHCJNE A,#0FBH,KEY2_F7;按SB2转年调整LJMP MON_OFF;按SB1往下调月单元KEY2_F7:CJNE A,#0FDH,OFF_CHINC YEAR_11;1路年单元加1MOV R5,YEAR_11CJNE R5,#09,OFF_CH;益出MOV YEAR_11,#00HAJMP OFF_CH;-月单元加1子程序MON_OFF:MOV A,MON_11;调时月单元显示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#02HLCALL READLCALL DE250SMCJNE A,01H,MON_OFFCJNE A,#0FBH,KEY2_F8;按SB2转月调整LJMP DAY_OFFKEY2_F8:CJNE A,#0FDH,MON_OFFINC MON_11;1路月单元加1MOV R5,MON_11CJNE R5,#13,MON_OFF;益出MOV MON_11,#01HAJMP MON_OFF;转到月显;_-日单元加1子程序DAY_OFF:MOV A,DAY_11;调时日单元显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#04HLCALL READLCALL DE250SMCJNE A,01H,DAY_OFFCJNE A,#0FBH,KEY2_F9;按SB2转日调整LJMP HOUR_OFFKEY2_F9:CJNE A,#0FDH,DAY_OFFINC DAY_11;1组日单元加1MOV R5,DAY_11CJNE R5,#32,DAY_OFF;益出MOV DAY_11,#01HAJMP DAY_OFF;转到日显;-按SB2时单元加1子程序HOUR_OFF:MOV A,HOUR_11;调时时单元显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#01HLCALL READLCALL DE250SMCJNE A,01H,HOUR_OFFCJNE A,#0FBH,KEY2_F10;按SB2转时调整LJMP MIN_OFFKEY2_F10:CJNE A,#0FDH,HOUR_OFFINC HOUR_11MOV R5,HOUR_11CJNE R5,#24,HOUR_OFF;益出MOV HOUR_11,#00HAJMP HOUR_OFF;转到时显;-分单元加1子程序MIN_OFF:MOV A,MIN_11;调时分单元、并显示提示MOV B,#10DIV ABSWAP AORL A,BMOV P0,AMOV P2,#02HLCALL READLCALL DE250SMCJNE A,01H,MIN_OFFCJNE A,#0FBH,KEY2_F11;按SB2转分调整LJMP ON_1;按SB3往下调定时:开与关KEY2_F11:CJNE A,#0FDH,MIN_OFFINC MIN_11;1路分单元加1MOV R5,MIN_11CJNE R5,#60,MIN_OFF;益处MOV MIN_11,#00HLJMP MIN_OFF;转到分显;-开、关定时ON_1:CJNE A,#0FBH,MIN_OFFK1:MOV A,#88HMOV R7,AMOV P0,AMOV P2,#0FFH;三组都显示开LCALL READLCALL DE250SMCJNE A,01H,ON_1;去抖后比较CJNE A,#0FBH,KEY2_12;按SB2转关LJMP OUT_A;按SB3调出、处于开状态KEY2_12:CJNE A,#0FDH,K1k2:MOV A,#00H;显示0关MOV R7,AMOV P0,AMOV P2,#0FFH;LCALL READLCALL DE250SMCJNE A,01H,K2;去抖后比较CJNE A,#0FBH,KEY2_13;按SB2转开LJMP OUT_A;SB3调出、处关状态KEY2_13:CJNE A,#0FDH,K2;比较按了没LJMP K1;按了SB2、转开OUT_A:POP 00HPOP BPOP ACCPOP PSWRETI;_-读取按键程序READ:MOV A,P1;读取按键MOV R1,ALCALL DE10MSMOV A,P1RET;_-延时程序DE5SM:PUSH 01HMOV R1,#0FFHDJNZ R1,$POP 01HRETDE10MS:PUSH 04HPUSH 05HMOV R4,#0AHDl1:MOV R5,#0FFHdl2:DJNZ R5,$DJNZ R4,dl1POP 05HPOP 04HRETDE250SM:PUSH 02HPUSH 00HMOV R0,#0FFHDEL:MOV R2,#0FFHDJNZ R2,$DJNZ R0,DELPOP 00HPOP 02HRET;_-调整时间进位程序MIN_AD:INC MINMOV R6,MINCJNE R6,#60,OU1MOV MIN,#00OU1:RETHOUR_AD:INC HOURMOV R6,HOURCJNE R6,#25,OU2MOV HOUR,#00OU2:RETDAY_AD:INC DAYMOV R6,DAYCJNE R6,#32,OU3;是否益出MOV DAY,#01HOU3:RETMON_AD:INC MONMOV R6,MONCJNE R6,#13,OU4;是否益出MOV MON,#01HOU4:RETYEAR_AD:INC YEARMOV R6,YEARCJNE R6,#09,OU5;是否益出MOV YEAR,#00HOU5:RETEND第六章 总结与体会在老师的精心指导下,终于完成了我的数字钟的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计让我受益匪浅,高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的毕业设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次毕业设计中的最大收获。参考文献1 李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版 社,19982 谢自美,电子线路设计、实验、测试武汉:华中理工大学出版社,2000阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989 3 何书森、何华斌实用数字电路原理与设计速成福州:福建科学技术出版社,2000.6

    注意事项

    本文(数字电子钟毕业设计.doc)为本站会员(苏美尔)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开