数码管对按键次数计数

上传人:kms****20 文档编号:37973515 上传时间:2018-04-25 格式:DOC 页数:17 大小:92.50KB
返回 下载 相关 举报
数码管对按键次数计数_第1页
第1页 / 共17页
数码管对按键次数计数_第2页
第2页 / 共17页
数码管对按键次数计数_第3页
第3页 / 共17页
数码管对按键次数计数_第4页
第4页 / 共17页
数码管对按键次数计数_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数码管对按键次数计数》由会员分享,可在线阅读,更多相关《数码管对按键次数计数(17页珍藏版)》请在金锄头文库上搜索。

1、河南理工大学 计算机科学与技术学院 课程设计报告200 8 200 9 学年第 1 学期课程名称 单片机 C 语言应用程序设计设计题目 秒表 学生姓名 郭兴层 学 号 310609010311 专业班级 计算机 06 级 3 班 指导教师 2008 年 12 月 29 日摘要摘要单片机自 20 世纪 70 年代问世以来,由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特优点,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。而 51 单片机是各单片机中最为典型和最有代表性的一种。本设计是设计一个用单片机控制

2、的多功能秒表系统。该秒表系统采用AT80C51 单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED 数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位 LED 显示,显示时间为 0.09.9 秒,每100MS 自动加 1,能正确地进行计时。其中软件系统采用汇编语言编写程序,包括显示程序,加计数程序,中断,延时程序,并在 WAVE 中调试运行,并利用PROTEUS 作出仿真图仿真,简单且易于观察,在仿真中就可以观察到实际的工作状态。通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计

3、和开发软、硬件的能力。目录目录 1 1 概述概述33 1.1 设计任务3 1.2 设计要求3 2 2 系统总体方案及硬件设计系统总体方案及硬件设计4 2.1 系统总体设计方案4 2.2 硬件设计4 3 3 软件设计软件设计 8 3.1 主程序流程图8 3.2 子程序流程图9 3.3 子程序模块设计11 4.proteus4.proteus 软件仿真软件仿真 14 5 5 课程设计体会课程设计体会 16 参考文献参考文献 16 附附 1 1:源程序代码:源程序代码 17 附附 2 2:系统原理图:系统原理图 231 1 概述概述1.1 设计任务:设计一个单片机控制的简单秒表计时系统。利用单片机的

4、定时器/计数器定时和记 数的原理,结合显示电路、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使得系统能够用两个数码管来显示秒表数据,一个显示秒,另一个显示十分 之一秒。有一个按键来启动秒表的开始和结束。1.2 设计要求:基本要求 1.两位 LED 显示,显示时间为 0.09.9 秒。2.每十分之一秒自动加 1。3.一个按键能够表示开始和结束。2 2 系统总体方案及硬件设计系统总体方案及硬件设计2.1 系统总体设计方案该简单秒表设计采用 AT80C51 单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED 数码管以及键盘电路来设计计时器。将软、

5、硬件有机地结合起来,使得系统能够实现两位 LED 显示,显示时间为 0.09.9 秒,每十分之一秒自动加 1,能正确地进行计时。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在 WAVE 中调试运行,并利用 PROTEUS 作出仿真图仿真,简单且易于观察,在仿真中就可以观察到实际的工作状态2.2 硬件设计:设计的中心环节:单片机(80C51) 外围电路: 单单片片机机外围外围 电路电路 电源电源 电路电路 显示电路显示电路 键盘电路键盘电路 图 2.1 外围电路1.晶体振荡电路 图 2.2 晶体振荡电路通过 XTAL1 和 XTA

6、L2 外接晶体振荡器构成内部振荡 方式。C1、C2 对频率有微调作用,当外接晶振时,C1 和 C2 通常选择 10 到 30Pf。选择震荡频率 12MHz。在设计印刷电路板时,晶体谐振器和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证震荡器稳定和可靠工作。2 电源电路:传统的电源3 显示电路: 我们采用的是动态的 led 数码管显示电路,其电路图如下:图 2.5 显示电路5 键盘电路:3 3 软件设计软件设计:3.1 主程序流程图:开始初始化判断 按键p1.0=0?Y停止Y图 3.1 3.2 子程序流程图 加 1 程序: 进位清零加 1到 100?(20H)清零个位十位分开返回Y初始化

7、图 3.2(3)加 1 子程序此程序只为简单的加 1,并判断是否到 100?到则从 0 开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。JIA1: MOV A,20H ;CLR CINC ACJNE A, #100, GO1;是否加到 100?MOV 20H, #00HRETGO1: MOV 20H, A;将个位十位分开显示MOV B, #0AHDIV ABMOV 31H, AMOV 30H, BRET 定时 1 秒程序:压栈保护赋定时初值到 1 秒?调用加 1 程序调用显示程序中断返回Y图.3.4 3.3 子程序模块设计(1)停止子程序按键后,使秒表停止,即关闭定时器 0,

8、1,程序如下:STOP: CLR TR0 CLR TR1;关闭定时器 0,1ACALL DISP;显示(3)加 1 子程序此程序只为简单的加 1,并判断是否到 100?到则从 0 开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。JIA1: MOV A,20H ;CLR CINC ACJNE A, #100, GO1;是否加到 100?MOV 20H, #00HRETGO1: MOV 20H, A;将个位十位分开显示MOV B, #0AHDIV ABMOV 31H, AMOV 30H, BRET4.proteus4.proteus 软件仿真软件仿真PROTEUS 软件是我们在单

9、片机学习过程中不可或缺的一个重要工具。它能够快速,形象,方便,简单地把我们设计的程序思想反映在计算机模拟软件系统中。经过 proteus 软件的仿真后,该程序不仅能够完整的实现老师所提出的基本要求,即能够记录四个相对独立的时间并分别显示,两位 LED 显示,并分别显示时间 0099 秒,每秒自加一,一个“开始”按键,一个“复位”按键,一个“暂停”按键,一个“快加”按键(每 10ms 快速加一) ,一个“翻页”按键查看四个不同的计时值这几项功能外,还能实现老师所提出的提高要求中的一些功能,例如:通过“setup”按键实现不功能之间的转换,一个“拨位”按键分别实现加法和减法计数功能等提高要求的功能

10、。5 5 课程设计体会课程设计体会1、 通过本次课程设计使我加深了对单片机课程的全面认识和掌握,对单片机课程的应用有了进一步的了解。2、 掌握定时器、外部中断的设置和编程原理。3、 通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4本实验利用单片机的定时器验。/计数器定时和记数的原理,结合 80C51单片机、LCD 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本实验设计了四个开关按键:其中按键按下去时以 0.1 秒加一开始计时,即秒表开始键。在按一下按键秒表停止工作。5 通过本次课程设计,也是我了解到在做课设

11、之前一定要认真审题,看懂题目的要求.而且在做设计时要复习相关的知识,查询相关的资料,根据实验条件,找到适合的方案,选择合适的元器件。7 程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。而且有些比较成熟的程序可以拿来借鉴,这样就可以节省许多时间。8 这次的单片机课程设计重点是理论与实际的相结合。不再只是读书了,如果该设计从头到尾都自己参与,熟悉整个设计的过程,就能锻炼自己的能力,提高自己的综合素质。参考文献参考文献1马忠梅单片机的 C 语言应用课程设计.北京航空航天大学版社2杨凌霄. 微型计算机原理及应用.中国矿业大学

12、出版社附 1.源程序代码ORG0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100HMAIN: MOV SP, #50HMOV TMOD, #11HMOVTH1,#0D8H ;定时 10msMOVTL1, #0F0HMOVTH0,#0D8H ;定时 10msMOVTL0, #0F0HMOV20H, #00H ; BIN SECONDMOV30H, #00H ; SECONDMOV31H, #00HMOV40H, #100MOV 71H,#00H ;记录暂存区MOV 72H, #00HMOV 73

13、H, #00HMOV 74H, #00HMOV 50H, #04HMOV 51H, #04HMOV R1, #71HSETB EASETB EX1SETB ET1SETB ET0CLR PT0CLR PT1SETB PX1SETB IT1MOVP0, #0FFHCLRTR0CLRTR1CLR 7FHML1:ACALL DISPSTART: JB P1.0,L1 ; P1.0=0,停止ACALL DELAY10JB P1.0, L1JNB P1.0, $LJMP STOPL1: JB P1.1,L2 ; P1.1=0,快减ACALL DELAY10JB P1.1, L2JNB P1.1, $LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加ACALL DELAY10JB P1.2, L3JNB P1.2, $LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暂停记录ACALL DELAY10JB P1.3, L4JNB P1.3, $LJMP JILUL4: JB P1.4,L5 ; P1.4=0,下翻ACALL DELAY10JB P1.4, L5JNB P1.4, $LJMP XFANL5: JB P1.5,L ; P1.5=0,上翻ACALL DELAY10JB P1.5, LJNB P1.5,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号