单片机实训——主任务为电子秒表

合集下载

单片机课程设计——电子秒表

单片机课程设计——电子秒表

安徽科技学院电气与电子工程学院《单片机原理与应用设计》课程设计设计说明书题目: 秒表姓名(学号) ************************************ 专业: 电气工程及其自动化班级: 133 指导教师: ***2016 年 5 月 9 日目录摘要 (1)关键字 (1)第一章硬件的选择与设计 (1)第二章软件设计 (9)第三章调试结果 (19)参考文献 (20)秒表摘要:本次课程设计,我们组设计的是秒表。

使用AT89C51单片机设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始计时/时间锁定”键和一个“复位”键。

通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。

在此期间,如“开始计时/时间锁定”按键按下,程序方将TR0置为1,从而开启中断,秒表开始计时,再按一次“开始计时/时间锁定”按键,则将TR0置0,秒表停止计时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。

我们设计的秒表完成了准确计时,和当前时间的显示。

通过Keil uvison4进行程序软件的编译,通过proteus进行仿真,最后调试通过,完成此次课程设计。

关键字:秒表51单片机MAX7219 定时第一章硬件选择与设计1、芯片简介(1)8051单片机MCS-51是指美国Inter公司生产的一系列单片机的总称。

这一系列单片机包括8031、8051、8751、8032、8052、8752等。

其中8051是最早、最典型的产品,该系列其他单片机都是以8051为核心发展起来的,都具有8051的基本结构和软件特征。

8051单片机内部包含了作为微型计算机所必需的基本功能部件,各部件相互独立地集成在一块芯片上,其基本功能特性如下:a、8位CPU;b、32条双向可独立寻址的I/O线;c、4KB程序存储器(ROM),外部可扩充至64KB;d、12KB数据存储器(RAM),外部可扩充至64KB;e、两个16位定时/计数器;f、五个中断源;g、全双工的串行通信口;h、具有布尔运算能力。

内蒙古工业大学单片机实训报告——电子秒表

内蒙古工业大学单片机实训报告——电子秒表

学校代码:10128单片机工程实践(第十一组)题目:电子秒表(任务一)组长:XXX (通信10-1班)学号:组员:X X X(通信10-1班)学号:XXXX(通信10-1班)学号:指导教师:设计时间:2013年2月27日~2013年3月8日目录一、设计目的 (1)二、设计任务 (1)基本任务 (1)随机选择任务 (1)任务分工 (1)三、框图硬件编程框图及相关说明 (2)蜂鸣器自检 (2)键盘自检 (2)LED 显示器自检 (2)自选任务电子秒表 (5)各任务流程框图蜂鸣器自检 (6)LED显示器自检 (7)键盘自检 (7)自选任务电子秒表 (8)四、程序清单蜂鸣器自检 (14)L E D显示器自检 (15)键盘自检 (16)自选任务电子秒表 (17)五、设计体会 (25)六、参考资料 (27)一、设计目的通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有蜂鸣器自检、七段LED 显示自检、键盘自检等接口电路的单片机应用系统的设计思想和方法。

学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。

通过上述过程提高学生工程实践能力和素质。

二、设计任务★基本任务:完成蜂鸣器、键盘、七段LED 显示器的自检程序设计。

(1)蜂鸣器自检要求:利用程序实现两种以上声音。

参见【例7-4-4】(2)键盘自检要求:确定键盘正确。

参见【例7-4-14】(3)七段LED 显示器自检要求:确定LED 显示器每一段均正确。

参见【例7-4-16】★随机选择任务:(抽签确定)任务:电子秒表功能:(1)显示时间范围0~59分59秒(2)跑表时间范围0~59分59秒硬件环境:LED显示器、键盘等★任务分工:袁祯祯(组长):各个小任务主程序的编制和框图的绘制,大任务的主程序编制和流程图的绘制。

乔文芳、张宇:完成各个小任务子程序的的编写与整理,部分大任务程序流程图的绘制,完成分配给的子程序的编制,实验报告整理与排版。

单片机电子秒表课程设计

单片机电子秒表课程设计

单片机电子秒表课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其内部结构和功能。

2. 使学生了解电子秒表的工作原理,掌握相关电子元器件的使用。

3. 帮助学生理解程序设计的基本思路,学会编写简单的单片机程序。

技能目标:1. 培养学生动手实践能力,能够独立完成单片机电子秒表的硬件搭建和程序编写。

2. 提高学生的问题解决能力,能够分析并解决在电子秒表制作过程中遇到的问题。

3. 培养学生的团队协作能力,学会在团队中分工合作,共同完成任务。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养创新精神和动手制作的热情。

2. 培养学生严谨的科学态度,注重实验数据的准确性和实验过程的完整性。

3. 增强学生的自信心,让学生在完成任务的过程中体验成功,树立学习的信心。

课程性质:本课程为实践性较强的课程,旨在培养学生的动手实践能力和创新能力。

学生特点:学生处于初中或高中年级,对电子制作有一定的兴趣,但可能缺乏实际操作经验。

教学要求:结合学生特点和课程性质,教师应注重理论与实践相结合,充分调动学生的积极性,引导学生在实践中学习,提高学生的综合能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 理论部分:- 单片机原理与结构:介绍单片机的基本组成、工作原理和性能特点。

- 电子秒表原理:讲解电子秒表的工作原理,包括计时、停止和清零等功能。

- 程序设计基础:阐述C语言编程的基本语法,以实现电子秒表功能为例,进行编程指导。

2. 实践部分:- 硬件搭建:指导学生使用相应的电子元器件,搭建单片机电子秒表的硬件电路。

- 程序编写:教授学生编写实现电子秒表功能的程序,并进行调试与优化。

- 功能测试:让学生对自己的作品进行功能测试,确保秒表的准确性。

3. 教学大纲:- 第一阶段:介绍单片机原理与结构,让学生对单片机有基本的认识。

- 第二阶段:讲解电子秒表原理,使学生了解其工作过程。

单片机,电子秒表计时器

单片机,电子秒表计时器

课程设计说明书课程名称:《单片机技术》设计题目:电子秒表计时器院(部):电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2013年5月17日课程设计任务书电子秒表计时器摘要:本次设计主要完成具备基本功能的电子秒表的理论和实践设计,此计时器系统使用AT89C51单片机为中心器件,由电源电路、时钟电路、复位电路、显示电路组成。

其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS软件进行仿真,使得系统能够实现三个8位LED数码管显示,显示时间为0.0~99.9秒,能正确的进行计时,能同时进行五次计时,并能对所记录的时间进行查询,此系统易于仿真、制作简单且使用方便。

关键词:AT89C51、电子秒表、数码管显示、仿真目录1.设计背景 (1)1.1单片机简介 (1)1.2设计目的 (1)2.设计方案 (1)2.1方案一 (1)2.2方案二 (1)2.3综合比较 (2)3.方案实施 (2)3.1整体工作原理 (2)3.2硬件系统设计 (3)3.3软件程序设计 (5)3.4系统仿真 (5)3.5系统的制作过程 (6)4.结果与结论 (7)4.1结果 (7)4.2结论 (7)5.收获与致谢 (7)6.参考文献 (7)7.附件 (8)1. 设计背景1.1单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.2设计目的电子秒表是重要的记时工具,广泛运用于各行各业中。

实训1:单片机秒表设计

实训1:单片机秒表设计

单片机秒表设计(论文)题目名称:单片机秒表设计专业班级:学号:学生姓名:指导教师:2011年 6月 15日一、单片机的功能单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器 RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

MCS-51系列单片机,其主要功能如下:·8位CPU·4kbytes 程序存储器(ROM)·128bytes的数据存储器(RAM)·32条I/O口线·111条指令,大部分为单字节指令·21个专用寄存器·2个可编程定时/计数器·5个中断源,2个优先级·一个全双工串行通信口·外部数据存储器寻址空间为64kB·逻辑操作位寻址功能·双列直插40PinDIP封装·单一+5V电源供电40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。

⒈ 电源:⑴ VCC - 芯片电源,接+5V;⑵ VSS - 接地端;注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。

但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。

⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊ 控制线:控制线共有4根,⑴ ALE/PR OG:地址锁存允许/片内EPROM编程脉冲① ALE功能:用来锁存P0口送出的低8位地址② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源。

单片机课程设计---电子秒表设计

单片机课程设计---电子秒表设计

单片机原理及系统课程设计摘要本设计是一个基于单片机的电子秒表设计。

设计采用AT89C51单片机和四位一体的LED数码管,通过单片机内部定时器/计数器定时的原理来达到秒表的计时功能。

设计中秒表的开始,暂停功能是通过控制单片机内部定时器的打开与关闭来实现的。

最后采用proteus仿真软件将软件与硬件相结合来模拟实现秒表的各项功能。

关键词:单片机;秒表;功能AbstractThis design is a microcontroller-based electronic stopwatch design. Design using AT89C51 microcontroller and four-in-one LED digital tube, through the microcontroller internal timer / counter timing principle to achieve a stopwatch timing function. Design of the stopwatch to start, pause function is achieved by opening and closing of the control microcontroller internal timer. Finally, proteus simulation software to software and hardware combination to simulate the various functions of the stopwatch. Keyword :SCM ,Stopwatch,functions基于单片机的秒表设计1引言随着现代科技的发展,自动化理念已经深入到了人们生活的各个领域。

本课程设计是在学习先修课程《单片机原理与系统设计》之后,为加强对学生系统设计和应用能力的培养而开设的综合设计训练环节。

单片机应用技术实习任务书5电子秒表

单片机应用技术实习任务书5电子秒表
单片机应用技术实习任务书5电子秒表单片机秒表实习任务书单片机原理及应用单片机的应用单片机原理与应用单片机应用单片机应用领域单片机应用技术单片机应用技术选编pic单片机应用
长沙理工大学
课程实习任务书
课程:单片机应用技术实习
题目:单片机电子跑表的设计
城南学院工业自动化专业班
任务起止日期:2013年6月3日至2013年6月14日
(2)对学生进行基本技能训练,例如组成系统、编程、调试、绘图等,使学生理论联系实际,提高动手能力和分析问题、解决问题的能力。
2、具体要求:
(1)设计一个51单片机系统,画出系统的电路原理图;
(2)用汇编语言编写一个51单片机程序,实现电子秒表功能;
(3)程序控制4个数码管的显示,秒表精度为0.1秒,通过按键控制秒表启动、停止、清零,最大计时9分59.9秒;
2.南京伟福实业有限公司.LAB6000U(USB接口)单片机/微控制器仿真实验系统[EB/OL]./products/lab6000u/lab6000u.htm,2007-06-01.
3.胡汉才.单片机原理及其应用[M].北京:清华大学出版社,2004.
4.何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,2006.
5.何立民.单片机应用文集1-8[M].北京:北京航空航天大学出版社,2000.
同组设计者:
注:1、此任务书应由指导教师填写。
2、此任务书必须在课程设计开始前下达给学生。学生送交成果Fra bibliotek期学生签名
(4)编写程序,并调试通过。
课题完成后应提交的文件和图表(或设计图纸):
1.画出的电路原理图;
2.画出程序流程图;
3.写出课程实习论文,附有原理图、流程图、程序清单,内容要正确,概念要清楚,文字要通顺。

单片机课程设计——秒表

单片机课程设计——秒表

单片机预习报告--------------秒表一、题目分析利用单片机内部定时/计数器和中断功能,实现分、秒、十分之一秒的正计时和倒计时功能,并将计时时间通过六位数码管实时动态显示出来。

倒计时模式中可通过键盘上的按键分别对分、秒进行定时设定,在计时过程中,可通过相应按钮进行暂停、开始,从而实现了六位倒计时秒表功能。

二.系统总体设计与框图系统框图如图下图所示。

该过程是:利用单片机8051实现计数功能,按键开关 K4按下,切换定时与计时。

定时范围在0到99分,计时范围在0到99.99.秒。

首先通过检测按键K4,来确定系统工作什么模式,计时模式有开始,暂停,复位3种功能,倒计时模式有,置数,开始,暂停,复位功能。

系统总体设计与框图三.解决方案:初始化为何种状态,开关是否按下,显示是定时状态还是计时状态。

若为定时状态,。

用6个共阴数码管LED显示起显示时间,采用动态显示的方法,P2.4、P2.5、P2.6、P2.7作为位选信号,P0口输出选段码。

键盘为独立式按键,分别接在P3.2、P3.3、P3.4、P3.5上。

K1为设置/启动功能键。

按下时,系统进入时间设置;再按下,系统启动。

K2为倒计时时间十位数设定键,按下时十位数字在0到9的范围。

K3倒计时个位数设定键,按下时,个位数字在0到9的范围。

K4为复位键。

K5为定时与计时的切换键,按下切换到计时状态,不按为定时状态。

P3.5连接发光二极管状态指示,系统时间设为定时状态熄灭,倒计时状态闪烁。

P3.6输出控制信号驱动蜂鸣器,倒计时时间到,蜂鸣器响。

开始正计时,正计时结束,蜂鸣器再响,程序结束。

四.各模块方案1.计时模式开始计时:利用外部中断1与定时中断1进行开始功能与计时功能暂停计时:利用外部中断关闭时实现暂停功能硬件复位:利用电容的冲电与放电特性实现硬件复位。

实现方法:用8051单片机做一个最小系统,计数器的复位功能通过单片机的硬件复位来实现。

秒表的显示用数码管显示,秒表的秒计数和循环通过程序控制单片机的输出来显示在数码管上。

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

单片机工程实践题 目: 电子秒表(任务一)学校代码: 10128目录一、设计目的 (1)二、设计任务 (1)2.1任务内容 (1)基本任务自选任务2.2任务分工 (1)三、框图3.1各任务硬件框图3.11蜂鸣器自检 (2)3.12键盘自检 (2)3.13 LED 显示器自检 (2)3.14 A/D自检 (5)3.15自选任务电子秒表 (6)3.2各任务流程框图3.21蜂鸣器自检 (6)3.22键盘自检 (7)3.23 LED 显示器自检 (7)3.24 A/D自检 (8)3.25自选任务电子秒表 (8)四、程序清单4.1蜂鸣器自检 (14)4.2键盘自检 (15)4.3 LED 显示器自检 (16)4.4 A/D自检 (17)4.5自选任务电子秒表 (19)五、设计体会 (25)六、参考资料 (27)一、设计目的:通过以51单片机为核心的智能仪表的硬件调试过程,掌握具有蜂鸣器、按键、LED 显示、A/D等接口电路的单片机应用系统的设计思想和方法,并熟悉定时器中断、外部中断系统的使用,进而对51单片机有更深层次的认识。

学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,合理分工,完成给定的任务。

通过上述过程提高学生工程实践能力和素质。

二、设计任务:2.1任务内容:基本任务:完成蜂鸣器、键盘、七段LED 显示器、A/D的自检程序设计。

(1)蜂鸣器自检要求:利用程序实现两种以上声音。

(2)键盘自检要求:确定键盘正确。

(3)七段LED 显示器自检要求:确定LED 显示器每一段均正确。

(4) A/D自检要求:确定AD7109工作是正常的。

自选任务:电子秒表功能:(1)显示时间范围0~59分59秒(2)跑表时间范围0~59分59秒硬件环境:LED显示器、键盘等2.2任务分工:李晓乐(组长):各个小任务主程序编制,大任务的主程序编制,大任务程序流程图的绘制张保增:完成各个小任务流程图的编制与整理,部分大任务程序流程图的绘制,完成分配给的子程序的编制,实验报告整理与排版三、框图(包括自检和任务的框图):1、硬件编程框图(1)蜂鸣器自检硬件编程框图电路图:(2)键盘自检硬件编程框图电路图:P2.3P1P2.5P2.6 P2.7LED蜂鸣器(3)LED 自检硬件编程框图字 型 口 字 位 口P0P2.7P2.6 P2.5电路图:(4)A/D 自检硬件编程框图A/D 7109LED 显示P2.5 P2.6模拟量输入P1IN电路图:(5)自选题目电子秒表编程框图:键盘K1:计时、暂停、续计K2跑表清零K3切换时间表单片机LED显示器138译码器2、各个任务框图(1)蜂鸣器自检程序框图开始蜂鸣器停调用延时1蜂鸣器响蜂鸣器停调用延时2蜂鸣器响蜂鸣器停调用延时3蜂鸣器响蜂鸣器停调用延时4蜂鸣器响返回(2)键盘自检框图否是否 是(3)LED 显示器自检程序框图关蜂鸣器 键盘采样 是否有键按下调用延时去抖动采样,按键是否在 蜂鸣器响 开始返回 开始检测每一位数码管的每一段动态显示12345一闪一闪显示good(4)A/D 自检程序框图YNNY(5)自选题目:电子秒表框图一级框图开始初始化显示高八位中低四位数据显示低八位中高四位数据显示低八位中低四位数据 数据溢出 蜂鸣器响外部中断读高八位数值送是否溢出采集数据送值结束开始 初始化 LED 显示秒表跑表显示状态 定时器中断初始化按条件改变初始值结束二级框图 主程序NYY NNNNYNY开始 初始化按键扫描K1?秒表显示 跑表显示为00:00K1? 跑表计时 跑表暂停 K1?K1? 跑表续计时 K1? K2? K3? K2?K3?下面为定时器框图,定时器0用于跑表定时,定时器1用于秒表定时,以下两个框图中不满足条件的则直接跳出定时器中断服务程序(要不图画的比较乱)定时器0中断初始值设定为5ms R4是否为2 MIAO22加一miao22=10?miao11加1 miao11=10?Fen22加1 Fen22=10?Fen21=10?Fen21加1Fen21清0结束定时器1中断初始值设定为50ms R3是否为20 MIAO02加一Miao02=10?Miao01=6 ?Fen2=10?Fen1=6?Miao01加1Fen2加1Fen1加1Fen1清0结束子程序框图(主要): 1)初始化框图2)蜂鸣器延时子程序框图3)显示子程序框图(包括秒表显示与跑表显示)开始使蜂鸣器响延时 关蜂鸣器 返回开始缓冲区清零设定初置、开中断、栈顶设计结束开始送偏移地址,送要显示的内容位选数码管延时显示返回四、程序清单:(1)蜂鸣器自检START: ORG 0000HQQ: MOV R5,#50H ;第一声音延迟时间AA: SETB P2.3CLR P2.3 ;第一个声音LCALL DELAY1LCALL DELAY2SETB P2.3LCALL DELAY1DJNZ R5,AAMOV R5,#0A0HBB: SETB P2.3CLR P2.3 ;第二个声音LCALL DELAY1SETB P2.3LCALL DELAY1DJNZ R5,BBMOV R5,#60HCC: CLR P2.3 ;第三声音LCALL DELAY1SETB P2.3LCALL DELAY2DJNZ R5,CCMOV R5,#60HDD: CLR P2.3 ;第四声音 LCALL DELAY3SETB P2.3LCALL DELAY2DJNZ R5,DDLJMP QQ;************************************ ; 三个延时程序,2最长,1次之,3最短;************************************ DELAY1:MOV R6,#05H ;外循环次数延时2.5毫秒LOOP1:MOV R7,#0F8H ;内循环次数NOPLOOP2:DJNZ R7,LOOP2DJNZ R6,LOOP1RETDELAY2:MOV R6,#14H ;延时 1秒LOOP21:MOV R7,#0F8HNOPLOOP22:DJNZ R7,LOOP22DJNZ R6,LOOP21RETDELAY3:MOV R6,#14H ;2.3毫秒LOOP31:MOV R7,#0A4HNOPLOOP32:DJNZ R7,LOOP32DJNZ R6,LOOP31RET(2)键盘自检:START:MOV P0,#0C1: LCALL SEL8 ;开按键三态门MOV P1,#0FFHMOV A,P1CJNE A,#0FFH,C2 ;是否有键按下SJMP C1 ;如没有键按下循环等待C2:LCALL DELAY1 ;有键按下降沿消抖 CJNE A,#0FFH,K1SJMP C1 ;再次判断是否真正按下K1: JB ACC.0,K2 ;判断第一;个按键,可屏蔽拨盘影响K11: LCALL SEL3 ;选择数码管第三位 MOV A,#0CHMOV P0,ALCALL BEEPLCALL SEL8 ;打开三态门重新取此键值,实现“键连锁保护MOV P1,#0FFHMOV A,P1JNB ACC.0,K11 ;LCALL DELAY1JNB ACC.0,K11K2: JB ACC.1,K3K21: LCALL SEL3MOV A,#0B6HMOV P0,ALCALL BEEP LCALL SEL8MOV P1,#0FFHMOV A,P1JNB ACC.1,K21LCALL DELAY1 ;松开按键上升;沿去抖动JNB ACC.1,K21K3: JB ACC.2,K4K31: LCALL SEL3MOV A,#9EHMOV P0,ALCALL BEEPLCALL SEL8MOV P1,#0FFHMOV A,P1MOV A,P1JNB ACC.2,K31LCALL DELAY1 ;松开按键上;升沿去抖动JNB ACC.2,K31K4: JB ACC.3,c3K41: LCALL SEL3MOV A,#0CCHMOV P0,ALCALL BEEPLCALL SEL8MOV P1,#0FFHMOV A,P1JNB ACC.3,K41LCALL DELAY1 ;松开按键上升沿去抖动JNB ACC.3,K41c3: AJMP C1;***************************** ;延时子程序DELAY1: MOV R6,#1AHLOOP1:MOV R7,#0F8HNOPLOOP2:DJNZ R7,LOOP2DJNZ R6,LOOP1RETDELAY2: MOV R3,#0FFHLOOP21: MOV R2 ,#0F8HNOPLOOP22: DJNZ R2,LOOP22DJNZ R3,LOOP21RET;******************************** ; 蜂鸣器响子程序BEEP: CLR P2.3LCALL DELAY2SETB P2.3LCALL DELAY2RET;******************************** ; 打开三态门,位选子程序SEL8: SETB P2.7SETB P2.6SETB P2.5RETSEL3: CLR P2.7SETB P2.6CLR P2.5RET(3) LED自检程序:LED0 EQU 30HLED1 EQU 31HLED2 EQU 32HLED3 EQU 33HLED4 EQU 34HMAIN: LCALL SEL1 ;测第1个数码管LCALL ST2LCALL SEL2 ;测第2个数码管 LCALL ST1LCALL SEL3 ;测第3个数码管 LCALL ST1LCALL SEL4 ;测第4个数码管 LCALL ST1LCALL SEL5 ;测第5个数码管LCALL ST1MOV R0,#30HMOV R1,#1HMOV DPTR,#TABSS: MOV A,R1 ;动态显示12345 MOVC A,@A+DPTRMOV @R0,AINC R0INC R1CJNE R1,#7DH,SSMOV R3,#32HWW: LCALL DISPLAY ;动态显示;12345延时一段时间DJNZ R3,WWLCALL SEL7LCALL DELAYMOV R0,#30H ;缓冲区送;对应的tab值,最终显示 goodMOV @R0,#0CHINC R0MOV @R0,#0DEHINC R0MOV @R0,#7EHINC R0MOV @R0,#7EHINC R0MOV @R0,#0BCH ZZ: MOV R3,#0AH ;最终显示;为good,在此循环KK: LCALL DISPLAYDJNZ R3,KKLCALL SEL7LCALL DELAYSJMP ZZ;********************************* ;第2到第5个数码管段选显示子程序 ST1 : MOV A,#01HT1: MOV P0,AACALL DELAYMOV P0,#00H ;消RL AJNB ACC.0,T1RET;******************************** ;第一个数码管单独段选显示,避开二;极管检测子程序ST2: MOV A,#01HMOV P0,AACALL DELAYMOV A,#04HMOV P0,AACALL DELAYMOV A,#08HMOV P0,AACALL DELAYMOV A,#80HMOV P0,AACALL DELAYRET;******************************** ;检查每一段时的延迟时间子程序DELAY: MOV R6,#0FFHLOOP1: MOV R7,#0FFHNOPLOOP2: DJNZ R7,LOOP2DJNZ R6,LOOP1RET;******************************** ;动态扫描延时时间DELAY1: MOV R6,#2aHLOOP21: MOV R7,#2aHLOOP22:DJNZ R7,LOOP22;延时3.425ms DJNZ R6,LOOP21RET;******************************** ;位选子程序SEL1: CLR P2.7CLR P2.6CLR P2.5RETSEL2: SETB P2.7CLR P2.6CLR P2.5RETSEL3: CLR P2.7 SETB P2.6CLR P2.5RETSEL4: SETB P2.7SETB P2.6CLR P2.5RETSEL5: CLR P2.7CLR P2.6SETB P2.5RETSEL7:SETB P2.5;关全部位选CLR P2.6SETB P2.7RET;******************************** ;动态显示子程序DISPLAY:LCALL SEL7 MOV P0,LED0LCALL SEL1LCALL DELAY1MOV P0,LED1LCALL SEL2LCALL DELAY1MOV P0,LED2LCALL SEL3LCALL DELAY1MOV P0,LED3LCALL SEL4LCALL DELAY1MOV P0,LED4LCALL SEL5LCALL DELAY1RETTAB:DB 7EH,0CH,0B6H,9EH, 0CCH,0DAH ,0FAH,0EH,0FEH,0DEH,0FFH(4) A/D自检程序:AD_BUF EQU 30HORG 0000H ; ;程序入口AJMP MAIN ; ;转向主程序ORG 0003H ; ;外部中断0入口地址AJMP INT00 ; ;转到中断服务子程序ORG 0030HMAIN:SETB EA ;开总中断SETB EX0 ;开INT0中断MOV DPTR,#TAB ;tab表头地址START:MOV R1,#AD_BUF ; 将;D_BUF中存放采集的高八位的数据,;将高八位赋给r1MOV A,@R1 MOVC A,@A+DPTR ;将要显的;对应数据从tab表中取得MOV P0,A ;显示MOV R2,ALCALL SEL2LCALL DELAY1INC R1MOV A,@R1 ;从31H中取低八位 MOV B,A ;暂存A中的数据于B SWAP A ; 高八位与第四位交换 ANL A,#0FH ; 处理出7109 ;低八位中的高四位数据MOVC A,@A+DPTR;在tab中查;要显示的对应数据MOV P0,A ; 显示MOV R3,ALCALL SEL3LCALL DELAY1MOV A,BANL A,#0FH ;处理7109;低八位中的低四位数据MOVC A,@A+DPTR ;在tab中;查找要显示的对应数据MOV P0,A ;显示MOV R4,ALCALL SEL4LCALL DELAY1;因为超出5伏对应显示的数据为000, ;用以下三条语句判断是否为000,若;超出范围,蜂鸣器报警CJNE R2,#7EH,STARTCJNE R3,#7EH,STARTCJNE R4,#7EH,STARTLCALL BEEPSJMP START ;主程序循环运行;********************************;数码管动态扫描延时时间DELAY1: MOV R6,#2AHLOOP1: MOV R7,#2AHLOOP2:DJNZ R7,LOOP2;延时3.425msDJNZ R6,LOOP1RET;********************************;蜂鸣器响延时时间DELAY2: MOV R6,#0FFHLOOP21: MOV R7 ,#0F8HNOPLOOP22: DJNZ R6,LOOP22DJNZ R7,LOOP21RET;******************************** SEL2: SETB P2.7 ;位选第二个数码管CLR P2.6CLR P2.5RETSEL3: CLR P2.7 ;位选第三个数码管SETB P2.6CLR P2.5RET SEL4: SETB P2.7 ; 位选第四个数码管 SETB P2.6CLR P2.5RET;******************************** ;蜂鸣器响BEEP: CLR P2.3 LCALL DELAY2LCALL DELAY2SETB P2.3RET;******************************** ;中断程序INT00:CLR EA ;关中断MOV R0,#AD_BUFAD1: CLR P2.0CLR P2.1 ;读高8位 MOV A,P1SETB P2.1MOV C,ACC.4;是否溢出? JC AD2ANL A,#0FHMOV @R0,AINC R0CLR P2.2 ;读低8位MOV A,P1SETB P2.2SETB P2.0MOV @R0,A ;最终采集;到的7109的高八位数据放在30;中低八位数据放到31h中AD2: SETB EARETI;********************************TAB:DB7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH,0FEH,0DEH,0EEH,0F8H,72H,0BCH,0F2H,0E2H; tab表,对应显示0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,;********************************自选题目:电子秒表程序:;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本小组任务:电子秒表; 硬件环境:LED显示器、键盘等; 组别:7; 小组成员:李晓乐、张保增; 功能描述:通过K1键控制跑表的暂停、;计时、续计时的功能,K2键为清零键,以; 便从新计时,K3键为返回秒表键;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FEN1 EQU 30HFEN2 EQU 31HMIAO1 EQU 32HMIAO2 EQU 33H FEN21 EQU 34HFEN22 EQU 35HMIAO21 EQU 36HMIAO22 EQU 37HORG 0000HAJMP MAINORG 000BHAJMP T01ORG 001BHAJMP T11MAIN:MOV 30H,#0HMOV 31H,#0HMOV 32H,#0HMOV 33H,#0HMOV TMOD,#11H ;工作方式1MOV TH0,#0EEHMOV TL0,#15H ;装初值,每50ms MOV TH1,#4CHMOV TL1,#0D0HSETB EA ;开总中断SETB ET0 ;开定时器0中断SETB ET1 ;开定时器1中断 SETB TR1 ;启动定时器1MOV SP,#40HLCALL MBXIANSHILCALL AJSAOMIAOJB ACC.0,START1;按下则顺序执行,;没按下则跳转LCALL DELAY2 ;延时去抖动LCALL AJSAOMIAOJB ACC.0,START1LCALL BEEPSTART11:LCALL MBXIANSHILCALL AJSAOMIAOJNB ACC.0,START11ST: LCALL QINGLING ;第一次按下HOU;显示 00:00LCALL PBXIANSHILCALL AJSAOMIAOJB ACC.0,K2LCALL DELAY2 ;延时去抖动LCALL AJSAOMIAOJB ACC.0,K2SETB TR0;第二次按下 ,开始计时,;没按下判断K2,K3键LCALL BEEPST1: LCALL PBXIANSHILCALL AJSAOMIAOJNB ACC.0, ST1;第二次按下后弹起;向下执行,常按不松开,循环执行显示跑;表计时START2: LCALL PBXIANSHI;仍然续计时 LCALL AJSAOMIAOJB ACC.0,START2LCALL DELAY2 ;延时去抖动 LCALL AJSAOMIAOJB ACC.0,START2CLR TR0 ;第三次按下;则顺序执行,暂停显示,没按下则跳转,;仍然继续显示跑表计时LCALL BEEPSTART22:CLR TR0LCALL PBXIANSHILCALL AJSAOMIAOJNB ACC.0,START22 ;第三次若弹;起,则顺序执行,暂停显示,常按则跳转,; 也暂停显示START3:CLR TR0;K1第三次按下,暂停显示LCALL PBXIANSHILCALL AJSAOMIAOJB ACC.0,K21LCALL DELAY2 ;延时去抖动LCALL AJSAOMIAOJB ACC.0,K21SETB TR0 ;第四次按下后,开定;时器0,续时LCALL BEEPSTART33:LCALL PBXIANSHI ;若第四次没弹;起,则循环跳转续时,若弹起,则;顺序执行LCALL AJSAOMIAOJNB ACC.0, START33START4:LCALL PBXIANSHILCALL AJSAOMIAOJB ACC.0,START4LCALL DELAY2LCALL AJSAOMIAOJB ACC.0,START4LCALL BEEPSJMP START22K2: JB ACC.1,K3LCALL DELAY2LCALL AJSAOMIAOJB ACC.1,K3LCALL BEEPK2221:LCALL PBXIANSHILCALL AJSAOMIAOJNB ACC.1,K2221LJMP STK3:JB ACC.2,ST33LJMP ST34ST33:LJMP STST34:LCALL DELAY2LCALL AJSAOMIAOJB ACC.2,ST3LJMP ST4ST3: LJMP STST4: LCALL BEEPLJMP START1K21: JB ACC.1,K31LCALL DELAY2 ;延时去抖动LCALL AJSAOMIAOJB ACC.1,K31LCALL BEEPLJMP STK31: JB ACC.2,K311SJMP K312K311: LJMP START3K312: LCALL DELAY2JB ACC.2,K313SJMP K314K313:LJMP START3 K314:LCALL BEEPLJMP START1;************************************ ;蜂鸣器响;************************************ BEEP:CLR P2.3LCALL DELAY3SETB P2.3RETDELAY1:MOV R6,#2aH ;数码管动态扫;描时间延时子程序LOOP21: MOV R7,#2aH LOOP22:DJNZ R7,LOOP22;延时;3.425msDJNZ R6,LOOP21 RET;************************************;延时10ms ,消除抖动子程序;*********************************** DELAY2:MOVR6,#1AH LOOP1: MOV R7,#0F8H NOPLOOP2:DJNZ R7,LOOP2 DJNZ R6,LOOP1 RET;************************************ ;蜂鸣器延时时间子程序;************************************ DELAY3: MOV R3,#0FFHLOOP31: MOV R2 ,#0F8HNOPLOOP32: DJNZ R2,LOOP32 DJNZ R3,LOOP31 RET;************************************;秒表动态显示子程序;************************************ MBXIANSHI:MOV DPTR,#TAB ;记表格表头地址START1:MOV R0,#FEN1 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL2 LCALL DELAY1INC R0MOV A,@R0MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P0,A LCALL SEL3 LCALL DELAY1MOV DPTR,#TABINC R0 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL4 LCALL DELAY1INC R0 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL5LCALL DELAY1 RET;************************************ ;跑表动态显示子程序************************************* PBXIANSHI: MOV R0,#FEN21MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL2 LCALL DELAY1MOV DPTR,#TAB1 INC R0 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL3 LCALL DELAY1MOV DPTR,#TAB INC R0 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL4 LCALL DELAY1INC R0 MOV A,@R0 MOVC A,@A+DPTR MOV P0,A LCALL SEL5LCALL DELAY1 RET;*********************************;数码管位选子程序;********************************* SEL2: SETB P2.7 CLR P2.6 CLR P2.5 RET SEL3: CLR P2.7 SETB P2.6 CLR P2.5 RET SEL4: SETB P2.7 SETB P2.6 CLR P2.5 RET SEL5: CLR P2.7 CLR P2.6 SETB P2.5 RET SEL7: CLR P2.7 SETB P2.6 SETB P2.5SEL8: SETB P2.7 SETB P2.6 SETB P2.5 RET;************************************ ;键盘扫描子程序;************************************ AJSAOMIAO: LCALL SEL8MOV P1,#0FFHMOV A,P1 SEL7 RET;************************************ ; 跑表显示清零子程序;************************************ QINGLING: MOV 34H,#0HMOV 35H,#0HMOV 36H,#0H MOV 37H,#0H RET;************************************ ;定时器0中断;************************************T01: MOV TH0,#0EEHMOV TL0,#15HINC R4CJNE R4,#2H,WEI1 MOV R4,#0H INC MIAO22MOV A,MIAO22 CJNE A,#0AH,WEI1 MOV MIAO22,#0H INC MIAO21 MOV A,MIAO21 CJNE A,#0AH,WEI1 MOV MIAO21,#0H INC FEN22 MOV A,FEN22 CJNE A,#0AH,WEI1 MOV FEN22,#0H INC FEN21 MOV A,FEN21 CJNE A,#0AH,WEI1 MOV FEN21,#0H WEI1: RETI;************************************;定时器1中断;************************************T11:MOV TH1,#4CHMOV TL1,#0D0HINC R3CJNE R3,#14H,WEI MOV R3,#0H INC MIAO2 MOV A,MIAO2 CJNE A,#0AH,WEI MOV MIAO2,#0H INC MIAO1MOV A,MIAO1CJNE A,#6H,WEIMOV MIAO1,#0HINC FEN2MOV A,FEN2CJNE A,#0AH,WEIMOV FEN2,#0HINC FEN1MOV A,FEN1CJNE A,#0AH,WEIMOV FEN1,#0HWEI: RETI;************************************ ;不带点显示表;************************************ TAB: DB 7EH,0CH,0B6H,9EH,0CCH,0DAH,0FAH,0EH, 0FEH,0DEH;************************************ ; 带点显示表;************************************ TAB1: DB 7FH,0DH,0B7H,9FH,0CDH,0DBH,0FBH,0FH,0 FFH,0DFH。

相关文档
最新文档