基于单片机的多功能秒表系统课程设计

合集下载

课程设计单片机秒表

课程设计单片机秒表

课程设计单片机秒表一、教学目标本课程旨在通过学习单片机秒表的设计与实现,让学生掌握单片机的基本原理、编程方法和实际应用。

具体的教学目标如下:1.了解单片机的基本结构和工作原理;2.掌握C语言编程的基本语法;3.掌握单片机秒表的设计方法和步骤。

4.能够使用单片机开发工具进行程序编写和调试;5.能够独立完成单片机秒表的设计和实现;6.能够对单片机程序进行优化和升级。

情感态度价值观目标:1.培养学生的创新意识和团队合作精神;2.培养学生对新技术的敏感度和持续学习的兴趣;3.培养学生对社会和科学的负责任态度。

二、教学内容本课程的教学内容主要包括以下几个部分:1.单片机的基本原理:介绍单片机的结构、工作原理和编程语言;2.C语言编程:讲解C语言的基本语法和编程技巧;3.单片机秒表的设计:讲解单片机秒表的设计方法和步骤,包括硬件设计和软件编程;4.实践操作:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现。

三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:讲解单片机的基本原理和C语言编程基础知识;2.案例分析法:分析具体的单片机秒表设计案例,让学生了解实际应用;3.实验法:安排实验室实践环节,让学生亲手操作单片机,完成秒表的设计和实现;4.讨论法:学生进行小组讨论,培养团队合作精神和创新意识。

四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:选择合适的单片机和C语言编程教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,帮助学生更好地理解教学内容;4.实验设备:准备单片机开发板和实验工具,让学生进行实践操作。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生的学习态度和积极性;2.作业:布置相关的编程练习和设计任务,评估学生的编程能力和设计水平;3.考试:安排期末考试,测试学生对单片机秒表设计和C语言编程知识的掌握程度。

基于单片机的电子秒表课程设计

基于单片机的电子秒表课程设计

目录第一章绪论 (3)1.1概述 (3)1.2设计目的 (3)1.3设计任务和内容 (3)第二章总体设计及核心器件简介 (4)2.1总体设计 (4)2.2MCS-51之80C51 (4)第三章单元电路模块设计 (6)3.1按键电路 (6)3.2时钟电路 (7)3.3LED数码管显示电路 (7)3.4复位电路 (9)3.5 总体功能介绍 (11)第四章软件编程设计 (12)第五章设计体会及总结 (13)参考文献 (14)附录一程序流程图 (15)附录二系统程序设计 (16)一、题目:基于单片机的电子秒表二、任务要求:本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0—99.9秒。

要求按键输入采用中断方式,按键A接INT0,B接INT1。

三、组内成员:XXXXXXXXXXXXXXXX四、指导老师:XXX2019.7.7第一章绪论1.1概述单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。

单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。

20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。

由于单片机功能功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。

本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有低功耗,保密性好等优良特点,具有广阔的市场前景1.2设计目的加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

单片机课程设计之秒表设计

单片机课程设计之秒表设计

单片机课程设计之秒表设计一、课程目标知识目标:1. 学生理解单片机的基本原理,掌握单片机编程基础知识;2. 学生掌握秒表设计的流程和关键步骤,了解计时器的工作原理;3. 学生熟悉并掌握单片机中断、定时器等相关知识,并能将其应用于实际项目中。

技能目标:1. 学生能够运用所学知识,独立设计并实现一个简单的秒表程序;2. 学生能够通过编程调试,解决在秒表设计过程中遇到的问题;3. 学生具备团队协作能力,能够与同学共同分析问题、讨论方案并完成项目。

情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新精神和实践能力;2. 学生养成勤奋好学、独立思考的良好习惯,形成积极向上的学习态度;3. 学生在项目实践中,培养团队精神,学会相互尊重、沟通协作。

本课程针对单片机课程设计之秒表设计,结合学生年级特点,注重理论与实践相结合,培养学生的动手能力和实际操作技能。

通过课程学习,使学生能够掌握单片机基础知识,具备实际项目设计与实施能力,同时培养他们的团队协作和创新能力。

课程目标明确、具体,可衡量,有助于学生和教师在教学过程中清晰了解预期成果,并为后续教学设计和评估提供依据。

二、教学内容1. 单片机基础知识回顾:主要包括单片机的结构、工作原理、指令系统及编程基础;2. 定时器与中断:讲解单片机定时器的工作原理,中断处理过程,以及如何利用定时器实现精确计时;3. 秒表设计原理:分析秒表的功能需求,设计流程,以及所需硬件和软件资源;4. 程序设计:根据秒表设计原理,编写程序代码,实现秒表的开始、停止、计次、清零等功能;5. 硬件电路设计:介绍秒表所需硬件电路的设计方法,包括单片机、按键、显示屏等部分的连接;6. 调试与优化:教授学生如何对程序进行调试,找出并解决存在的问题,优化程序性能;7. 课外拓展:引导学生思考如何改进秒表功能,增加趣味性和实用性。

教学内容依据课程目标制定,涵盖单片机基础知识、定时器与中断、程序设计、硬件电路设计等方面,以确保内容的科学性和系统性。

基于单片机的秒表课程设计

基于单片机的秒表课程设计

基于单片机的秒表课程设计————————————————————————————————作者:————————————————————————————————日期:基于单片机的秒表课程设计姓名:班级:学号:专业:指导老师:年月日目录1、总体设计方案简介1.1设计课程任务1。

2系统分析1。

3系统方案1.4方案论证2、硬件设计2。

1控制芯片的介绍2.2硬件接线2。

2。

1硬件接线接口2。

2。

2硬件接线图3、软件设计3.1程序设计思路3.2流程图3.3源程序3.4仿真结果4、元件清单5、心得体会基于单片机的秒表课程设计摘要本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字式秒表的硬件电路的。

电子秒表电路主要由AT89S51单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八段数码显示和计时,能通过控制电路控制时间的暂停和开始。

关键字:AT89S51 数码管最小系统1总体设计方案简介1。

1设计课题任务设计一个具有特定功能的数字式秒表。

用AT89C52设计一个2位LED 数码显示“秒表”,显示时间为00-59,另设计一个“开始”按钮和一个“复位”按钮。

按键说明:按“开始"按键,开始计数,数码管从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00。

1.2系统分析设计的电路主要是能多次计时,计时的多少通过显示电路出来,设计框图如图所示;控制部分技术和存储部显示部分1.3系统方案利用AT89C52单片机设计数显定时器。

此方案采用AT89C52单片机系统来实现。

AT89C52芯片内含8KB 的EEPROM ,不需要外扩展存储器,可是系统整体结构更为简单。

设计框图如图所示;1.4方案论证此方案是以AT89C52芯片为中心控制系统,可实现计时、清零等功能,大大提高了系统的智能化,也是的系统所测结果精度大大提高。

所以此方案可行。

2硬件设计2。

1控制芯片的介绍AT89S52是一种低功耗、高性能的片内含有4KB 快闪可编程/擦除只读存储器,的8位CMOS 微控制器,使用高密度、非易失存储技术制造,并外部控制开关AT89C52单 片 机七段数码显示与80S52引脚和指令系统完全兼容。

基于51单片机的数字秒表课程设计

基于51单片机的数字秒表课程设计

电气与自动化工程学院卓越工程师培养计划暑期实训报告题目秒表系统的设计年级11级专业自动化班级卓越班学号*********姓名俞雷地点大学生创新实验室日期2012年8月12日~2012年8月20日目录一、单片机简介............................................................................- 2 -二、设计目标................................................................................- 3 -1、设计目的: (3)2、具体操作: (3)三、硬件设计................................................................................- 4 -原理图:. (4)四、系统的软件设计....................................................................- 5 -1、软件整体设计思路: (5)2、软件流程图: (5)3、程序: (6)(1)数码管秒表显示程序: ...................................................- 6 -(2)1602液晶秒表显示程序:............................................ - 13 -五、系统的调试及设计结果..................................................... - 18 -1602液晶——秒表显示效果图:. (18)LED数码管——秒表显示效果图: (18)六、创新实验室课程设计小结................................................. - 19 -一、单片机简介单片机以其高可靠性、高性价比、低电压、低功耗等一系列优点,近几年得到迅猛发展和大范围推广,广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。

基于单片机的秒表设计单片机课程设计

基于单片机的秒表设计单片机课程设计
复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。
显示电路由四位数码管组成,采用动态显示方式,因此有八位段控制端和四位位控制端,八位段控制接P0口,P0.0~P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,单片机的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。四位位控制则由低位到高位分别接到P2.0~P2.3口,当P2.0~P2.4端口任意一个端口为高电平时,对应的数码管导通显示。
Keywords:AT89C51Microcontroller;Digital stopwatch;Digital tubes
第1章绪论
1.1 概述
人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。
1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都安装了定时器来控制开关或工作时间。
基于单片机的秒表设计单片机课程设计
单片机课程设计
项目名称基于单片机的秒表设计
专业班级通信102班
学生姓名青瓜
指导教师…
2012年11月20日
摘要
本课程设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现五位LED显示,显示时间为0~99.99秒,计时精度为0.01秒,能精确地进行计时,并可以随时暂停和开始。软件系统采用C语言编写,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到系统实际的工作状态。

单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计

单片机课程设计_基于单片机的数字秒表设计在当今科技迅速发展的时代,电子设备的应用无处不在,其中数字秒表作为一种常见的计时工具,具有广泛的应用场景,如体育比赛、科学实验、工业生产等。

本次课程设计旨在基于单片机技术实现一个数字秒表,通过对硬件电路的设计和软件程序的编写,掌握单片机系统的开发流程和方法,提高实践动手能力和解决问题的能力。

一、设计要求1、能够实现秒表的启动、暂停、复位功能。

2、计时精度达到 001 秒。

3、能够通过数码管显示计时结果。

二、系统方案设计1、硬件设计单片机选型:选用常见的 STC89C52 单片机作为核心控制器,其具有性能稳定、价格低廉、易于编程等优点。

显示模块:采用 8 位共阴极数码管作为显示器件,通过动态扫描的方式实现数字的显示。

按键模块:设置三个独立按键,分别用于启动、暂停和复位操作。

时钟模块:使用单片机内部的定时器/计数器产生精确的时钟信号,实现计时功能。

2、软件设计主程序:负责系统的初始化、按键扫描和计时处理等。

中断服务程序:利用定时器中断实现 001 秒的定时,更新计时数据。

三、硬件电路设计1、单片机最小系统包括单片机芯片、晶振电路和复位电路。

晶振频率选择 12MHz,为单片机提供时钟信号。

复位电路采用上电复位和手动复位相结合的方式,确保系统能够可靠复位。

2、显示电路将 8 位数码管的段选引脚通过限流电阻连接到单片机的 P0 口,位选引脚通过三极管连接到单片机的 P2 口。

通过动态扫描的方式,依次点亮每个数码管,实现数字的显示。

3、按键电路三个按键分别连接到单片机的 P10、P11 和 P12 引脚,采用低电平有效。

当按键按下时,相应引脚的电平被拉低,单片机通过检测引脚电平的变化来判断按键的操作。

四、软件程序设计1、主程序流程系统初始化后,进入主循环。

在主循环中,不断扫描按键状态,如果检测到启动按键按下,则启动计时;如果检测到暂停按键按下,则暂停计时;如果检测到复位按键按下,则将计时数据清零。

基于单片机的多功能秒表系统课程设计

基于单片机的多功能秒表系统课程设计

基于单片机的多功能秒表系统课程设计单片机课程设计报告多功能秒表系统设计姓名:学号:专业班级:指导老师:所在学院:2009年6月10日单片机已经无处不在,与我们生活更是息息相关并已渗透到了生活的方方面面。

单片机的特点是体积小,重量轻,功能强,通用性好,也就是说集成度高,其内部的结构是普通的计算机系统的简化。

在增加一些外围电路之后,就能成为一个完整的系统。

在众多单片机中,MCS-51系列单片机具有系统结构完整,特殊功能寄存器规范化以及指令系统的控制功能强等特色,使起成为单片机中的主流机型。

本设计是一个由AT89C51单片机控制,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路按键计时来实现的多功能秒表系统。

在本次设计中我们以AT89C51单片机为主要器件,利用它的定时器/计数器定时和记数的原理,结合7809电源提供的+5V稳压电压,上电加按钮复位电路,晶体振荡电路,由P0口驱动的LED动态显示电路,键盘电路等来完成多功能秒表的设计。

这个多功能秒表系统能够实现两位LED显示,显示的时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,能同时记录4个相对独立的时间,通过上翻键和下翻键来查看这4个不同的计时值,还具有快加和复位功能,基本上实现了老师的要求。

我们使用汇编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复位子程序和显示子程序等。

将源程序代码在WAVE中进行编译和调试,硬件系统利用Proteus软件来实现,可以方便的看到运行结果。

关键词:多功能秒表、单片机、子程序模块、Proteus仿真1 概述 (3)1.1单片机简介 . (3)1.2设计任务 (3)1.3设计要求 (3)2 系统总体方案及硬件设计 ......................................................错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计报告多功能秒表系统设计姓名:学号:专业班级:指导老师:所在学院:2009年6月10日单片机已经无处不在,与我们生活更是息息相关并已渗透到了生活的方方面面。

单片机的特点是体积小,重量轻,功能强,通用性好,也就是说集成度高,其内部的结构是普通的计算机系统的简化。

在增加一些外围电路之后,就能成为一个完整的系统。

在众多单片机中,MCS-51系列单片机具有系统结构完整,特殊功能寄存器规范化以及指令系统的控制功能强等特色,使起成为单片机中的主流机型。

本设计是一个由AT89C51单片机控制,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路按键计时来实现的多功能秒表系统。

在本次设计中我们以AT89C51单片机为主要器件,利用它的定时器/计数器定时和记数的原理,结合7809电源提供的+5V稳压电压,上电加按钮复位电路,晶体振荡电路,由P0口驱动的LED动态显示电路,键盘电路等来完成多功能秒表的设计。

这个多功能秒表系统能够实现两位LED显示,显示的时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,能同时记录4个相对独立的时间,通过上翻键和下翻键来查看这4个不同的计时值,还具有快加和复位功能,基本上实现了老师的要求。

我们使用汇编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复位子程序和显示子程序等。

将源程序代码在WAVE中进行编译和调试,硬件系统利用Proteus软件来实现,可以方便的看到运行结果。

关键词:多功能秒表、单片机、子程序模块、Proteus仿真1 概述 (3)1.1单片机简介.. (3)1.2设计任务 (3)1.3设计要求 (3)2 系统总体方案及硬件设计 ..................................................... 错误!未定义书签。

2.1、电源 (5)2.2、复位电路 (5)2.3、晶体振荡电路 (6)2.4、显示电路 (7)2.5、键盘电路 (8)3 软件设计 (9)3.1、设计思想 (10)3.2、系统流程图 (14)4 Proteus软件仿真 (17)5 课程设计体会 (19)参考文献 (20)附1:源程序代码 (21)附2:系统原理图 (25)1 概述1.1单片机简介单片机是性能价格比高、体积小、对国民经济渗透力大、最有前途的微控制器。

单片机自20世纪70年代初研制成功并发展至今,已进入第四代。

它主要是在一块芯片上集成了CPU、存储器以及输入输出电路,在工业过程中被广泛应用在控制电路中。

从单片机的系列来看,国内外已超过50个系列、近500个品种,当前正处于更新换代、百花齐放的时期。

新的系列和专用系列正在不断涌现。

按位数分类有4位、8位、16位以及32位单片机等,4位单片机由于价格低和出现的早得到了广泛的应用,特别是在家电应用领域中其还有很大的优势,为了抵御8位机的竞争,4位机在结构和功能上都有很大的改进。

8位机的生产厂家以及品种都很多,在实际的生产中应用也最为广泛,其中intel公司的8051系列单片机在我国应用最为广泛,另外8位单片机也在其功能和内部结构上不断的进行改进,目前功能是越来越强大。

16位单片机在数据处理以及单片机的性能上有了很大的改进。

32位单片机是随着高科技产业的发展而产生的。

1.2设计任务:设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、用两个LED数码管以及按键来设计00~99秒计时器。

将软、硬件有机地结合起来,使得系统能够正确地进行加计时,同时数码管能够正确地显示时间。

1.3设计要求:1、能同时记录四个相对独立的时间并分别显示。

2、两位LED动态显示,显示时间为00~99秒。

3、每秒自动加1。

4、一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮(每10ms 快速加一)。

5、翻页按钮查看四个不同的计时值。

2 系统总体方案及硬件设计本设计的最主要的元器件就是MCS-51单片机。

MCS-51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。

MCS-51单片机是INTEL公司在1980年推出的高档8位单片机。

它的典型产品有:8051,8031,8751,80C51,80C31,87C51。

1:AT89C51单片机AT89C51(图1)单片机由CPU,振荡器与时序电路,4个8位的I/O端口(P0,P1,P2,P3),串行口等组成。

P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图中的D0~D7为数据总线接口)。

2、外部扩展存储器时,当作地址总线(如图中的A0~A7为地址总线接口)。

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口只做I/O口使用:其内部有上拉电阻。

P2口有两个功能:1、扩展外部存储器时,当作地址总线使用;2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由寄存器来设置。

ALE:地址锁存控制信号PSEN:外部程序存储器读选通信号EA/VPP:访问和序存储器控制信号RST:复位信号XTAL1和XTAL2 外接晶振引脚VCC:电源+5V输入VSS:GND接地。

图2:整体设计电路图2.1 电源:采用7809电源提供+5V稳压电压。

电源电路是单片机系统最基本的部分,所以我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,电源部分做好才能保证电路的正常工作。

对电源电路来说,最重要的就是稳压,我们采用的是7809电源提供的+5V 稳压电压。

2.2 复位电路:采用上电加按钮复位。

其中,在这个系统中的复位电路是采用上电加按钮来实现的。

因为MCS-51单片机的复位是靠外部电路实现的。

MCS-51单片机工作之后,只要在他的RST 引线上加载10ms以上的高点平,单片机就能有效地进行复位。

MCS-51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。

图3:复位电路2.3晶体振荡电路:通过XTAL1和XTAL2外接晶体振荡器构成内部振荡方式。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

图3晶振电路2.4 显示电路:采用LED动态显示,用P0口驱动显示。

显示电路既可以选用液晶显示器,也可以选用数码管显示。

我们采用的是数码管显示电路。

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示的程序比较复杂,但是所使用的端口比较少,可以节省单片机的I/O口,我们在这次系统设计中采用的是动态显示。

但是由于我们编程知识的局限性,显示的结果并没有达到我们预期的效果,敬请老师原谅。

图5:显示电路2.5 键盘电路:用部分P1口做开始开关,P1.0停止,P1.1复位,P1.2快加,P1.3暂停记录,P1.4上翻,P1.5下翻,用外中断INT0开始,用软件法消除抖动。

图5:键盘电路3 软件设计3.1设计思想因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。

模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。

我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。

每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。

它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

其中的模块即为子程序,子程序是功能独立的程序段。

子程序的基本思想是编写一次,可以重复使用。

子程序的形式可以是一个程序文件,也可以是一个过程或函数。

子程序总被其他程序调用而不单独执行,这与主程序相对。

这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,加计数、减计数、延时、快加、复位,计数和显示等,在具体需要时调用相应的模块即可。

程序模块设计:(1)主程序MAIN: MOV SP, #50HMOV TMOD, #11HMOV TH1,#0D8H ;定时10msMOV TL1, #0F0HMOV TH0,#0CFH ;定时25msMOV TL0, #02CHMOV 20H, #00H ;BIN SECONDMOV 30H, #00H ; SECONDMOV 31H, #00HMOV 40H, #40MOV 71H, #00HMOV 72H, #00HMOV 73H, #00HMOV 74H, #00H ;对71H—74H单元清零MOV R2, #04HMOV R3, #04HMOV R1, #71HSETB EASETB EX1CLR ET1SETB ET0CLR PT0CLR PT1SETB PX1SETB IT1MOV P0, #0FFHCLR TR0CLR TR1CLR 7FH判断是否有键按下,并确定是哪一个键,转移到相应的子程序的入口地址去执行子程序。

没有键按下则一直等待,直到有键按下。

ML1: ACALL DISP ;调用显示程序P1.0键按下时,计数停止START: JB P1.0, LOOP1ACALL DELAY10 ;延时JB P1.0, LOOP1 ;P1.0=1,跳转到LOOP1执行JNB P1.0, $LJMP STOP ;P1.0=0,跳转到停止子程序P1.1键按下时,数字清零复位LOOP1: JB P1.1, LOOP2ACALL DELAY10 ;延时JB P1.1, LOOP2 ;P1.1=1,跳转到LOOP2执行JNB P1.1, $LJMP RESET ;P1.1=0,跳转到复位子程序P1.2键按下时,进行快加计数LOOP2: JB P1.2,LOOP3ACALL DELAY10 ;延时JB P1.2, LOOP3 ;P1.2=1,跳转到LOOP3执行JNB P1.2, $LJMP KUAIJIA ;P1.2=0,跳转到快加子程序P1.3键按下时,执行记录功能LOOP3: JB P1.3,LOOP4ACALL DELAY10 ;延时JB P1.3, LOOP4 ;P1.3=1,跳转到LOOP4执行JNB P1.3, $LJMP JILU ;P1.3=0,跳转到暂停记录子程序P1.4键按下时,执行上翻功能LOOP4: JB P1.4,LOOP5 ;P1.4=0,SHANGFANACALL DELAY10 ;延时JB P1.4, LOOP5 ;P1.4=1,跳转到LOOP5执行JNB P1.4, $LJMP XIAFAN ;P1.4=0,跳转到上翻子程序P1.5 键按下时,执行下翻功能LOOP5: JB P1.5,LOOP ;P1.5=0,XIAFANACALL DELAY10 ;延时JB P1.5, LOOP ;P1.5=1,跳转到LOOP执行JNB P1.5, $LJMP SHANGFAN ;P1.5=0,跳转到下翻子程序LOOP: SJMP HERE(2)停止子程序软件对定时器0和定时器1的控制位清零,使定时器停止工作STOP: CLR TR0CLR TR1ACALL DISPSJMP HERE(3)复位子程序软件对显示的各内存单元清零,并回到开始前的初始状态,具体程序如下所示:RESET: CLR TR0CLR TR1 ;关闭定时器0,1MOV 20H, #00HMOV 30H, #00HMOV 31H, #00HACALL DISP ;调用显示子程序SJMP HERE(4)按键消抖程序DELAY10: MOV R4,#14H延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。

相关文档
最新文档