欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    简易秒表的制作的电子时钟设计.doc

    • 资源ID:1031179       资源大小:125.67KB        全文页数:17页
    • 资源格式: DOC        下载积分:10积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要10积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    简易秒表的制作的电子时钟设计.doc

    1、淄博职业学院毕业设计摘 要单片机的简易秒表。采用动态扫描的方式。四数码管用于显示秒,分的个位十位。电路有三个按键,一个启动建,一个暂停键。一个清零键。按下开始建后,电路零开始计时;按下暂停键后,停止计时,并显示时间,;按下清零键后,显示00分00秒。关键词: 8051芯片,LED数码管 ,复位电路 目 录第一章 设计方案41.1 要求41.2 方法41.3 试验线路分析41.4 软件设计41.5 程序编制51.6 资源分配表5第二章 8051芯片的介绍62.1 电源引脚62.2 外接晶体引脚62.3 复位 RST 972.4 输入输出引脚7第三章 硬件线路设计图9第四章 程序流程图10第五章

    2、系统软件编程12第六章 设计心得17参考文献18II第一章 设计方案1.1 要求用8051单片机,采用动态扫描的方式,用4位LED数码管显示秒、分值。晶振采用6MHZ。具体要求如下:(1) 从右往左显示秒值的个位、十位,分值的个位、十位,个位能向十位进位;(2) 上电后首先显示00 ,表示从00 秒开始计时,当时间显示到59 时,4位显示都清零,从零开始。(3) 以三个独立式按键实现复位、启动、停止。1.2 方法用中断的编程思路使用定时器T0,定时器工作在定时方式,实现1秒定时,每50ms溢出中断一次,中断20次后就到1秒钟;秒表计时显示用动态显示方式实现;通过键盘扫描方式取得KE0、KE1、

    3、KE2的键值,用键盘的中断处理程序实现秒表的启动、停止、清0等功能。1.3 试验线路分析4位LED显示的位码由单片机的P2口输出,段码由P1口输出,P2口线与LED之间接有200欧限流电阻;LED为共阳极数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断INT0、INT1,第3个按键连接到定时器1的T1端口,以中断方式实现键盘的扫描。动态显示程序中,在单片机内部RAM中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的P0口输出;位码数据由累加器循环左移指令产生,再通过P2口输出。1.4 软件设计整

    4、体程序主要分为3个部分:主程序、显示子程序和定时器中断程序。主程序主要是初始化部分和不断调用动态显示子程序部分。动态显示子程序完成四位LED的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。显示时间的刷新由定时器中断产生,定时器每50ms中断一次,当中断20次后(即1s后),对时间单元(秒计数单元、分计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个BCD码,并送到显示缓冲区。返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。1.5 程序编制编程时置KE0健为“启动”,置KE1键为“停止”,置KE2键为“清0”,因按键较少,所以采

    5、用独立式按键即可满足条件,其中两个按键分别连接到外部接口INT0、INT1,另外一个连接到外部引脚T1,编程时置T1为8位计数方式,初始值设定为0FFH.程序中,INT0、INT1和T1均允许中断,故按键的处理通过各相应中断子程序来完成。4位LED显示的数据由显示缓冲区30H33H单元中的数据决定,顺序是从右至左。动态显示时,每位显示持续时间为1ms,1ms延时由软件实现,4位显示约耗时4ms。1秒定时采用定时器T0方式1中断,每50ms中断一次,用20H(MCEC)作50ms计数单元,每20次为一个循环体,计满20次,秒计数单元21H(SEC)加1。21H、22H单元的数据均采用十六进制计数

    6、,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的30H、31H、32H、33单元。1.6 资源分配表名称地址分配用 途初始化值MSEC20H定时器50ms计数单元14HSEC21H秒计数单元00HMIN22H分计数单元00H30H35H显示缓冲区00H30H:秒的个位31H:秒的十位32H:分的个位33H:分的十位40H以上堆栈区 表 1-1资源分配表第二章 8051芯片介绍8051芯片内部有一高增益反相放大器,用于构成振荡器,反向放大器输入端为XTAL1,输出端XTAL2。在XTAL1和XTAL2两端跨接一个石英晶体及两个电容就构成了稳定自激振荡器,电容器C1和C2通常都取30PF左右

    7、,对振荡频率有微调作用。振荡频率范围是1.2-12MHZ。2.1 电源引脚Vcc 40 电源端GND 20 接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。2.2 外接晶体引脚 图 2-1外接晶体引脚XTAL1 19 XTAL2 18 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。型号同样为AT89C51的芯片,在其后面还有频率

    8、编号,有12,16,20,24MHz可选。大家在购买和选用时要注意了。如AT89C51 24PC就是最高振荡频率为24MHz,40P6封装的普通商用芯片。2.3 复位 RST 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。常用的复位电路如图所示。复位操作不会对内部RAM有所影响。图 2-2 常用复位电路2.4 输入输出引脚(1) P0端口P0.0-P0.7 P

    9、0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。

    10、输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体请看表22.。P13端口在做输入使用时,因内部有上接电阻,被外部拉低的引脚会输出一定的电流。

    11、P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0(INT0)P3.3外部中断1(INT1)P3.4定时器0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RD 表 2-1端口引脚兼用功能表第三章 硬件线路设计图图 3-1硬件线路设计图第四章 程序流程图主程序 显示子程序开始定时器中断初始化秒单元初始化显示缓冲区初始化子程序入口保护现场显示初始化查表取字型码段码送p1口位码送p2口延时显示位码右移显示缓冲区下一位四位显示完?保护现场返回启动定时器调用显示子程序定时器中断子程序(如下图):1s到吗?调

    12、用拆字子程序60分到吗?恢复现场调用拆字子程序调用拆字子程序置定时器初始值保护现场中断入口调用拆字子程序60s到吗?秒清0调用拆字子程序分单元加1调用拆字子程序分单元清0返回置50ms计数初始值秒加1第五章 系统软件编程MSEC EQU 20H ;50ms计数单元 SEC EQU 21H ;秒单元 MIN EQU 22H ;分单元;-各程序入口- ORG 0000H LJMP MAIN ORG 0003H AJMP KE1 ORG 000BH AJMP CONT ORG 0013H LJMP KE0 ORG 001BH LJMP KE2;-主程序-;-初始化部分-MAIN :MOV TMOD,

    13、#61H ;置T0方式1定时,T1方式2计数 MOV TH0,#0F6H ;T0置初值 MOV TL0,#3CH MOV TH1,0FFH ;T1置初值 MOV TL1,#0FFH MOV SEC,#00H ;60s计数单元置初值 MOV MIN,#00H ;分单元置初值 MOV MSEC,#14H ;50ms计数单元置初值 MOV SP,#3FH ;堆栈指针置初值 MOV 30H,#00H ;显示缓冲区清0 MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV IE,#8FH ;打开中断源 SETB TR1 ;启动定时器1 CLR A ;累加器清0START:

    14、LCALL DISP ;调显示子程序 SJMP START ;跳动START,不断调显示子程序;-显示子程序部分-DISP: MOV R2,#04H ;LED待显示位数送R2 MOV R1,#00H ;设定显示时间 MOV R4,#08H ;共阳管的位码初始值,从右端LED管先亮 MOV R0,#30H ;显示缓冲区首址送R0 MOV A,R0 ;秒显示个位送ADISP1:MOV DPTR,#TAB ;指向字形表首址 MOVC A,A+DPTR ;查表取得字形码 MOV P1,A ;字形码送P0口 MOV A,R4 ;取位选字 MOV P2,A ;位码送P2口 DJNZ R1,$ ;延时0.5

    15、ms DJNZ R1,$ ;延时0.5ms RR A ;位选字右移位 MOV R4,A ;移位后的位选字送R4 INC R0 ;指向下一位缓冲区地址 MOV A,R0 ;缓冲区数据送A DJNZ R2,DISP1 ;未扫描完,继续循环 SJMP DISP RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极LED字型表 DB 92H,82H,0F8H,80H,90H ;-按键0中断服务程序-;功能:启动 KE0: SETB TR0 ;启动定时器0,开始计时 RETI ;中断返回;-按键1中断服务程序-;功能:暂停KE1: CLR TR0 ;关闭定时器0,暂停计时 RE

    16、TI ;中断返回;-按键2中断服务程序-;功能:清0KE2: MOV SEC,#00H ;秒清0 MOV MIN,#00H ;分清0 MOV 30H,#00H ;显示缓冲区清0 MOV 31H,#00H ;显示缓冲区清0 MOV 32H,#00H MOV 33H,#00H RETI ;-定时器中断子程序-;功能:50ms执行一次,完成秒、分单元的刷新并拆开放到显示缓冲区;出口:显示缓冲区30H33H中存放的待显示的4个数据CONT: PUSH ACC ;保护现场 MOV TH0,#3CH ;重置定时器初始值 MOV TL0,#0B0H DJNZ MSEC,RN ;判断到20次吗,若未到说明没有

    17、到1s ;直接返回主程序:否则说明1s到 MOV MSEC,#14H ;1s到,重置50ms定时器溢出次数初始值为20次 INC SEC ;秒单元内容加1 MOV A,SEC ;秒单元给A累加器 MOV R7,#31H ;指向显示缓冲区的31H单元 LCALL BINBCD ;调拆字子程序,将秒计数单元拆开为十位 ;个位,分别放到缓冲区31H单元和30H单元 MOV A,SEC ;秒单元给A CJNE A,#60, RN ;判断到60s吗,若未到则返回主程序 MOV A,#00 ;60s到,则秒单元清0 MOV SEC,A MOV R7,#31H ;指向显示缓冲区的31H单元 LCALL BI

    18、NBCD ;调拆字子程序 MOV A,MIN ;分单元内容加1 INC A MOV MIN,A MOV R7,#33H ;R1指向显示缓冲区33H单元 LCALL BINBCD ;调拆字子程序,将分计数单元拆开为十位、 ;个位,分别放到缓冲区33H单元和32H单元 MOV A,MIN ;分单元给A CJNE A,#60, RN ;判断到60分吗,若未到则返回主程序 MOV A,#00H ;60分到,分单元清0 MOV MIN,A MOV R7,#33H ;指向显示缓冲区的33H LCALL BINBCD ;调拆字子程序RN: POP ACC RETI ;中断返回;-十六进制转BCD码拆字子程序

    19、-;入口参数:A累加器(待拆开的十六进制数); R1 (拆开后BCD码所存放的末地址);功能:将A累加器中的十六进制数拆开为两个BCD码,分别存放到R1指向的两个缓冲单元中BINBCD: MOV B,#10 DIV AB ;除以10,得到时间值的十位和个位 MOV R1,A ;十位送相应的显示缓冲区 DEC R1 ;指向显示缓冲区中的个位 MOV A,B ;个位给ACC MOV R1,A ;个位值送缓冲区的相应位置 RET END第六章 设计心得在本次设计的过程中,我发现很多的问题,这就要求我在以后的学习中,应该注意到这一点,更重要的是我们要学会把从书本中学到的知识和实际的电路联系起来,这不论

    20、是对我们以后的就业还是学习,都会起到很大的促进和帮助,我相信,通过这次的课程设计,在下一阶段的学习中我会更加努力,力争把这门课学好,学精。通过本次课程设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上相结合了起来;考验了我们借助互联网络搜集、查阅相关文献资料,和组织材料的综合能力;从中可以自我测验,认识到自己哪方面有欠缺、不足,以便于在日后的学习中得以改进、提高!加强实际操作能力的培养,今后多多参加社会实践活动。像我们即将面临就业的毕业生,更加要积极投身于社会的大家庭里,做好吃苦耐劳的准备。调整自己的目标,使自己的目标和现实相对一致,不好高骛远,不坐享其成,脚踏实地地去工作,为

    21、自己今后的生活作好铺垫。善于总结经验教训,通过实训发现问题,解决问题,为今后的职业生涯扫清一切因自身原因产生的障碍.这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。参考文献1 何立民单片机应系统设计系统配置与接口技术北京:北京航空航天大学出版社,199

    22、92 张洪润单片机应用技术教程北京:清华大学出版社,19973 薛栋梁MCS-51/151/251单片机原理与应用中国水利水电出版社,20014 张迎新单片微型计算机原理、应用及接口技术北京:国防工业出版社,19935 朱宇光单片机应用新技术教程北京:电子工业出版社,20006 房小翠单片机实用系统设计技术北京:国防工业出版社,19997 李华MCS-51系列单片机实用接口技术北京:北京航空航天大学出版社,19938 杨忠煌单芯片8051实务与应用北京:中国水利水电出版社,20019 徐淑华单片微型机原理及应用哈尔滨:哈尔滨工业大学出版社,199410张友德单片微型机原理、应用与实验上海:复旦大学出版社,199211胡汉才单片机原理及其接口技术北京:清华大学出版社,1996


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922