




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、设计任务书设计题目:设计题目: 基于单片机的电子日历设计设计要求:设计要求:1.七段数码管正常显示阳历、阴历日期;2.七段数码管显示的格式为年-月-日;3.利用外部按键的操作实现阳历和阴历之间的转换;4.利用外部按键的操作实现阴历和阳历显示的暂停、运行等功能。设计进度要求:设计进度要求:第一周:确定毕业设计题目第二周:查找资料第三周:收集和整理资料第四周:收集和整理资料第五周:完善设计内容、撰写报告第六周:上交设计论文电子稿第七周:修改论文第八周:论文答辩指导教师(签名):指导教师(签名): i毕业设计(论文)任务书毕业设计(论文)任务书 填表时间: (指导教师填表)学生姓名专业班级机电指导教
2、师课题类型软件设计题目基于单片机的电子日历设计主要研究目标(或研究内容)本课题在透彻了解电子日历的工作过程及功能的基础上,设计出简单实用的应用程序。主要内容有:1、开题报告;2、电子日历硬件设计;3、电子日历软件设计;4、编写说明书;5、翻译与设计有关的外文资料通过设计过程以考察学生的对于单片机的设计能力,并培养学生用以解决实际工程能力。课题要求、主要任务及数量(指图纸规格、张数,说明书页数、论文字数等)1、通过调查研究,撰写开题报告。2、通过分析论证,确定设计方案,正确绘制电子日历的硬件连接图;并且编制其应用程序。3、查阅 20 篇以上与题目相关的文献。4、按要求的格式独立撰写 500080
3、00 字以上的说明书。5、翻译一篇本专业外文文献(500010000 个以上印刷符号) ,并附译文进度计划57 周,查阅资料,熟悉设计内容,拟订设计方案。814 周,进行电子日历硬件设计,并编写其应用软件。1516 周,修改完善设计,翻译资料,写说明书,准备答辩。主要参考文献1、 单片机技术及应用2、 单片机彻底研究实习篇3、 单片机彻底研究基础篇4.单片机编程手册 指导教师签字: 教研室主任签字: 年 月 日ii摘摘 要要设计以单片机at89s51为核心部件的电子日历,利用74ls245作为驱动器,74ls138作为译码器使用,六个七段数码管均采用共阴极的方式,p0口作为段选码输出口,p2口
4、作为位选码输出口。本次设计的题目是基于单片机的电子日历设计,可以正常的显示年、月、日,还可以利用外部按键实现阴历和阳历之间的转换以及暂停等功能。电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。本次设计可分为两部分:硬件系统、软件系统。硬件系统包括:at89s51单片机、74ls245驱动器、74ls138译码器、rc复位电路、+5v直流电源电路、去抖电路、动态显示扫描电路。软件系统主要有单片机的编程构成。关键词关键词:单片机,日历,位码,段码,显示iiiabst
5、ract single-chip at89s51 design as the core components of the electronic calendar, use as a 74ls245 drives, 74ls138 used as a decoder, six and seventh digits are a total of cathode way, p0 mouth as paragraph code output selection, p2 i, as bit selection code output. the design is based on the topic
6、of single-chip design of the electronic calendar, you can show a normal year, month, day, can also be used to achieve external keys as well as conversion between 阴阳历 lunar and solar calendarsuspend functions. electronic calendar with stable performance, high accuracy, low cost, ease of production, a
7、s well as convenient, practical and so on. apply to families, companies, agencies and many other places. for peoples daily life, travel arrangements, providing a convenient, daily life has become an indispensable part of. the design can be divided into two parts: hardware systems, software systems.
8、hardware system, including: at89s51 single-chip, 74ls245 drive, 74ls138 decoder, rc reset circuit, +5 v dc power supply circuit, to stir up the circuit, dynamic display scanning circuit. there are single-chip microcomputer software system constitute the programming. key words: single-chip, calendar,
9、 code, code above to showi目 录摘 要.ii前 言.11 设计方案.111 设计思路.112 系统总体框图.12 硬件设计.321 单片机 at89s51 的简介.322 动态显示电路的介绍.823 去抖电路的工作原理.1024 复位电路的方式.1125 中断系统的介绍.133 软件设计.1531 程序清单 .1532 流程图 .21结 论.26致 谢.27参考文献.28附 录.291前 言随着社会不断的发展,科学技术不断的进步,单片机的问世和飞速发展掀起了计算机工程应用的一场新革命,使计算机技术冲破了实验室和机房的界限,广泛地应用于工业控制系统、数据采集系统、自动测
10、试系统、智能仪表和接口以及各类功能模块等广阔的领域。单片机应用系统已经成为实现许多控制系统的常规性工具。我们说,单片机开辟了计算机应用的一个新时代是并不过分的。单片机的发展历史虽然只有短短20年,但由于计算机科学和微电子集成技术的飞速发展,单片机自身也在不断地向更高层次和更大规模发展。世界各大半导体厂商纷至沓来争先挤入这一市场,激烈的市场竞争也促进了单片机迅速更新换代,带来了它们更为广泛的应用。由于单片机应用系统的高可靠性,硬、软件的高利用系数,优异的性能价格比,使它的应用范围由开始传统的过程控制,逐步进入数值处理、数字信号处理以及图像处理等高技术领域。我们在本次的设计中广泛用到了单片机的应用
11、系统,下面我们就逐一的叙述。21 设计方案1 11 1 设计思路设计思路设计的题目是基于单片机的电子日历设计。根据设计要求日历显示正常的年、月、日,同时利用外部按键实现阴历和阳历之间的转换,以及暂停等功能。要想实现上述功能,就必须将硬件系统和软件系统有机的结合在一起,方可实现我们设计任务中的各项要求。硬件系统主要有单片机 at89s51、74ls245 驱动器、74ls138 译码器、rc 复位电路、独立式键盘接口去抖电路等。软件系统主要是单片机的编程。根据设计要求,电子日历要显示年、月、日就需要 6 个显示数码管,如(09 年 05 月 01 日即显示为 09-05-01) ,由于数码管的数
12、量较多,必须采用动态显示扫描的方式。例如 09-05-01,首先日分为个位和十位,个位显示到 09时,应向日的十位自动进位,即个位清 0,十位置 1,显示为 10,继续累计;当显示为 31 时,日的十位就自动向月的个位进位,显示为 06,当月显示到 09时,月的个位自动向月的十位进位,个位清 0,十位置 1,即为 10,当月至 12时,月向年的个位进位,即显示 08,同时月、日开始从 01 月 01 日继续显示,即显示为 10-01-01,依次周而复始的循环运行。此外利用外部按键实现阴历和阳历的转换,当按下 k1 按键时,当前的阳历显示暂停,而由软件系统调用阴历的显示程序,即显示为阴历的日期;
13、当按下 k2 键时,当前的显示暂停,松开按键时,当前的显示继续运行;当按下 k3键时,显示的当前日期暂停。利用单片机将 rc 复位电路、动态显示电路、电源电路、去抖电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。1 12 2 系统总体框图系统总体框图硬件电路采用的是at89s51芯片来作cpu,显示部分采用74ls245作为驱动电路,74ls138作为译码器使用,七段共阴极数码管作为显示部分,采用rc复位电路以及独立式键盘接口电路去抖的方法来完成此次的设计。在确定系统的形式3后,画出本系统的总体框图,如图1.1所示: 图 1.1 系统框图系统总体框图包括:单片机、电源电路
14、、复位电路、显示电路、去抖电路。单片机at89s51芯片的主要功能是:存储程序,对存储程序进行相应的处理,并从i/o口输出;复位电路:在单片机上有一个复位引脚rest,在单片机外部用电容和电阻控制rest;电源电路:采用+5v的直流电源供电;显示电路:主要用于显示日历的结果;去抖电路:消除外部按键按下时的抖动造成的误操作。42 硬件设计硬件电路主要包括:单片机、去抖电路、显示电路、复位电路、电源电路等。单片机的选择:选用at89s51芯片, p0.0-p0.7作为段选码输出口,p2.1-p2.3作为位选码输出口。去抖电路的选择:采用独立式键盘电路;显示电路的选择:采用动态扫描显示,共阴极七段数
15、码管;复位电路的选择:rc复位电路;电源电路的选择:+5v直流电源。2 21 1 单片机单片机 at89s51at89s51 的简介的简介2 21 11 1 at89s51at89s51 简介简介1.at89s51 是一种低功耗,高性能的片内含有 4kb 的快闪可编程/擦处只读存储器(fperom-flash programmable and erasable read only memory )的8 位 coms 微控制器,使用高密度、非易失存储技术改造,并且与 at80c51 引脚和指令系统完全兼容。芯片上的 fperom 允许在线编程或者采用通用的非易失存储编程器对存储器重复编程。at8
16、9s51 具有多种的 8 位 cpu 与 fperom 结合在一个芯片上,为很多嵌入式控制应用提供了非常灵活而有方便的方案,其性能价格比远低于 at87c51。由于片内带 eprom 的 at87c51 价格偏高,而片内带 eprom 的 at89s51 价格低且与at80s51 兼容,这就显示了 at89s51 的优越性。at89c2051 是一种带 2k 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次,该器件采用 atmel 高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼容。由于将多功能 8 位 cpu 和闪烁存储
17、器组合在单一芯片上,atmel 的 at89s51是一种高效微控制器,at89c2051 是它的一个精简版本。at89s51 单片机可以为很多嵌入式控制系统提供一种灵活性高且价格低廉的方案。2 21 12 2 at89s51at89s51 内部资源内部资源1.中央处理器(cpu)5cpu 是单片机内部的核心部件,是一个 8 位二进制数的中央处理单元,主要有运算器和控制器构成。运算器用来完成算术运算、逻辑运算、位变量处理和数据传送等功能。它是 89s51 内部处理各种信息的主要部件,运算器主要有算术运算和逻辑运算组成。算术逻辑单元,89s51 中算术逻辑单元由加法器和一个布尔处理器组成。主要是实
18、现 8 位数据的加、减、乘、除算术运算和与、或、异或、循环、求反等逻辑运算;布尔处理器主要用来处理位操作,它是以进位标志位 c 为累加器的,可执行置位、复位、取反、等于 1 转移、等于 0 转移、等于 1 转移且清 0以及进位标志位与其他位寻址的位之间进行数据传送等位操作,也能使进位标志位与其他可以寻址的位之间逻辑与、或操作。控制器:控制器是单片机内部各部件按一定时序协调工作的控制核心。是分析和执行指令的部件,控制器主要有程序计数器 pc、指令寄存器 ir、指令译码器 id、振荡器和定时控制逻辑电路等构成。程序计数器 pc 是专门用于存放下一条将要执行指令的 16 位地址的一个部件,由 8 位
19、计数器 pch(高 8 位)和 pcl(低 8 位)组成。cpu 就是根据 pc 中的地址到 rom 中去读取程序指令码和数据。指令寄存器 ir 是用于存放 cpu 根据 pc 地址从 rom 中读出的指令操作码并送给 id。指令译码器 id 是用于分析指令操作的部件,指令操作码经译码后送至定时控制电路,产生一定序列的脉冲信号,来执行指令规定的操作。振荡器及定时控制逻辑电路,在它们外接石英晶体和微调电容(230pf) ,即可以产生 1.2-12mhz 的脉冲信号,作为 89s51 工作的基本节拍。2存储器89s51 单片机内部有 128b 的 ram 数据存储器和 4kb 的掩膜式 rom,当
20、不够使用时,可以分别扩展为 64kb 外部 ram 存储器和 64kb 外部程序存储器。程序存储器是可读不可写的,用于存放编好的程序和表格常数。数据存储器是既可以读也可以写的,用于存放运算的中间结果,进行数据暂存及数据缓冲等。3定时/计数器689s51 内部有 2 个 16 位可编程定时器/计数器,简称为定时器 0(t0)和定时器 1(t1) ,t0 和 t1 分别有两个 8 位寄存器构成,其中 t0 由 th0(高 8 位)和tl0(低 8 位)构成。t1 由 th1(高 8 位)和 tl1(低 8 位)构成。4中断控制系统 单片机的中断是指 cpu 暂停正在执行的原程序转而为中断源服务,在
21、执行完中断服务程序后再回到原程序继续执行。中断系统是指能够处理中断过程部分的电路。89s51 单片机设有 5 个中断源(外中断 2 个,定时/计数中断 2 个,串行中断 1 个) ,2 个优先级,可以实现两级中断嵌套。5内部总线总线是用于传送信息的公共通道。总线可以分为数据总线、地址总线、控制总线。单片机内的 cpu、存储器、i/o 接口等单元部件都是通过总线连接到一起的,采用总线结构可以减少信息传输线的根数,提高系统可靠性,增强系统灵活性。2 21 13 3 at89s51at89s51 性能及特点性能及特点(1)与 mcs-51 微控制器产品兼容(2)片内有 4kb 可以在线重复编程的快闪
22、擦写存储器(flash memory)(3)存储器可以循环写入/擦除 100 次(4)存储器数据可以保存时间为 10 年(5)较宽的工作电压范围:vcc 可以为 2.7-6v(6)全静态工作 (7) 程序存储器具有 3 级加密保护(8)128*8 位内部 ram(9)32 条可编程 i/o 接口(10)2 个 16 位定时/计数器(11)终端结构具有 5 个中断源和 2 个优先级(12)可编程全双工串行通道(13)空闲状态维持低功耗和掉电状态保存存储内容由于 eprom 具有在线改写,并且在掉电状态下保存数据的特点,可以为用户的特殊应用提供方便。但是擦除和写入对于要求数据高速吞吐的应用还显的时
23、间过长,这就是 eprom 芯片的主要缺陷。7at89s51 的内部硬件结构中除了程序存储器由 fperom 取代了 87c51 的eprom 外,其余部分完全相同。at89s51 的引脚和 at8051 的引脚完全兼容。at89s51 的引脚图如下图 2.1 所示:图 2.1 at89s51 芯片引脚图pin40: 电源脚,工作电压为+5vpin20:接地端p0 口:p0 口为一个 8 位漏极开路的双向 i/o 口,每脚可以吸收 8ttl 门电流。当 p0 口的管脚第一次写“1”时,被定义为高阻输入,p0 口能够用于外部数据存储器,它可以被定义为数据/地址的第八位,在 flash 编程时,p
24、0 口作为原码输入口,当 flash 进行校验时,p0 口输出原码,此时,p0 外部必须被拉高。p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4ttl 门电流,p1 口管脚写入 1 时,被内部上拉为高,可用作输出,p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在8flash 编程和校验时,p1 口作为第八位地址接收。p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可以接收、输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。因此作为输入时,p2 口的管脚被
25、外部拉低,将输出电流,这就是内部上拉的缘故。p2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址的高八位, 。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,p2 口输出其特殊功能寄存器的内容。p2 口在 flash 编程和校验时接收八位地址信号和控制信号。p3 口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可以接收输出 4个 ttl 门电流。当 p3 口写入“1”时,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平;p3 口将输出电流,这就是上拉的缘故。p3 口也可以作为 at89s51 的一些
26、特殊功能口,如下所示:p3.0: rxd (串行输入口)p3.1: txd (串行输出口)p3.2: (外部中断 0)p3.3: (外部中断 1)p3.4:t0 (定时/计数器 0)p3.5: t1 (定时/计数器 1)p3.6: (外部数据存储器写选通线)p3.7: (外部数据存储器读选通线)p3 口同时为闪烁编程和编程校验接收一些控制信号ret 复位输出:当振荡器复位时,要保持 ret 脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出脉冲信
27、号,此频率为振荡器频率的 1/6,因此它用作对外部输出的脉冲或用于定时目的。然而应注意的是,每当用作外部数据存储器时,将跳过一个 ale 脉冲,如想禁止 ale 的输出可在数据地址上置 0。此时,ale 只有在执行 movx、movc 指令时 ale 才其作用。另外,该引脚被略微拉高,如果处9理器在外部执行状态 ale 禁止,置位无效。xtal1:反向振荡器的输入及内部时钟工作电路的输入xtal2:来自反向振荡器的输出振荡器特性:xtal1 和 xtal2 分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器,石英振荡器和陶瓷振荡器均可采用,如果采用外部时钟源驱动器件,xtal2 应
28、不连接,有余的输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉冲没有任何严格的要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个 perom 系列和三个锁定位的电擦除可通过正确的控制信号组合,并保证 ale 管脚处于低电平,在芯片擦除操作中,代码阵列全被写“1” ,且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89s51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu 停止工作,但 ram、定时器、计数器、串口和中断系统仍工作;在掉电模式下,保存 ram 的内容并且冻结振荡器,禁止所用芯片的其他功能,直到
29、下一个硬件复位为止。为了满足一些应用系统的特殊要求,如在一些工业控制中系统中,有时要进行一些系统的扩展设计以弥补单片机内部资源的不足。单片机的扩展系统通过并行 i/o 接口作总线,在外部扩展程序存储器、数据存储器或输入输出接口以及其他功能的部件以满足一些控制系统的特殊要求。2 22 2 动态显示电路的介绍动态显示电路的介绍led 动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。对于数码管来说,每隔一段时间点亮一次,如此循环,利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。在动态显示方式中,同一时刻,
30、只有一位 led 数码管在显示,其他各位是关闭的。在段选码和位选码每送出一次后,应保持 1ms 左右,这个时间应根据实际情况而定,不能太小,因为发光10二极管从导通到发光有一定的延时,导通时间太小,发光太弱,人眼无法看清,但是也不能太大,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用cpu 时间也就越多。1. 采用动态显示方式比较节省 i/o 接口,硬件电路也比静态显示方式简单,在此次的设计中我们利用 89s51 作为 i/o 接口,六个七段数码管均采用共阴极的方式显示,p0 口作为段选码输出口使用,p2 口作为位选码输出口使用,它们的显示缓冲区分别为:mov 30h,#01h mov 4
31、0h,#05hmov 31h,#00h mov 41h,#01hmov 32h,#05h mov 42h,#03hmov 33h,#00h mov 43h,#00hmov 34h,#07h mov 44h,#07hmov 35h,#00h mov 45h,#00h2显示部分我们利用动态显示电路,而其显示电路中的驱动部分我们则采用一片 74ls245 芯片作为驱动部分,来完成电路的动态显示。374ls245 是一种三态输出的 8 总线收发驱动器,无锁存功能。它的端和 dip 端是控制端,当它的端为低电平时,如果 dip 为高电平,则 74ls245将 a 端数据传送至 b 端;如果 dip 为低
32、电平,则 74ls245 将 b 端数据传送至 a端。在其他情况下不传送数据,并输出高阻态,它的引脚图如下图 2.2 所示,其功能表如表 2.1 所示。 474ls138 是一种 3-8 译码器,其中 g1、g2a、g2b 脚为使能端,只有11g1 为高电平时,g2a、g2b 为低电平时,译码器才可以使用。a、b、c 为译码器的信号输入端,y0-y7 为译码器的输出端,低电平有效。74ls138 译码器如图 2.3 所示:图 2.3 74ls138 译码器2 23 3 去抖电路的工作原理去抖电路的工作原理1. 目前,mcs-51 单片机应用系统上常采用键盘作为输入设备,通过键盘的操作将数据、内
33、存地址、命令及指令等输入系统中,来实现简单的人机通信。mcs-51 单片机在应用系统上的按键常用机械触点式按键,它在闭合及断开的瞬间均有抖动的过程,时间长短与开关的机械特性有关。一般为 510ms,由于抖动会造成被查询的开关状态无法正确读出,造成误操作。为了保证 cpu 对按键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的(前沿)后沿的抖动影响,在本次设计中我们采用独立式键盘接口电路的方式来消除按键抖动的现象。2. 独立式键盘的接口电路独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根 i/o 接口线上,这种连接方式的键盘
34、称为独立式键盘。每个独立按键单独占有一根 i/o 接口线,每根i/o 接口线的工作状态不会影响到其他 i/o 接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根 i/o 线,i/o 接口线浪费较大。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,i/o接口线有确定的高电平。当 i/o 接口内部有上拉电阻时,外电路可以不配置上拉电阻。如图 2.4 所示: 12图 2.4 独立式键盘接口电路2 24 4 复位电路的方式复位电路的方式1单片机在开机时或者在工作中因干扰而使程序失控,或工作中程序处于某死循环状态,在这些情况下都需要复位,复位的作用是使中央处理器 cp
35、u 以及其他功能部件都需要恢复到一个确定的初始状态,并从这个状态重新开始工作。289s51 单片机的复位靠外部的电路实现,信号由 rest 引脚输入,高电平有效,在振荡器工作时,主要保持 rest 引脚高电平两个机器周期,单片机即复位,复位后,pc 程序计数器的内容为 0000h。3智能系统一般应有手动或上电复位电路。复位电路可以采用简单的电阻,电容及按键开关构成上电自动复位电路入图 2.5 所示,而手动复位电路如图2.6 所示,也可以选择专用的复位芯片。复位电路的实现通常有两种方式:即专用 p 监控电路和 rc 复位电路。前者成本较高,但复位可靠性高,尤其是高可靠重复复位;后者电路实现简单,
36、成本低,但复位可靠性相对较低。对于复位要求高、并对电源电压进行监视的场合,大多采用前者复位电路。13图 2.5 上电自动复位电路图 2.6 手动复位电路(1)专用监控 p 电路专用 p 监控电路又称为电源监视电路,具有上电时可以产生复位信号和电源电压跌落到“门槛值”时可以产生复位信号等功能。按有效电平分,有高电平输出、低电平输出两种;按功能分,有简单的电源监视复位电路、带“看门狗”定时器(watch dog timer,wdt)的监控电路和 wdt + e2prom 的监控电路等多种类型。比较常见的生产厂家有 maxim、philips、imp 及 dalls 等,51系列微处理器中常用的型号
37、有 max8l3l、max8o9、x25043/5 等。(2)rc 复位电路14本次设计采用的是 rc 复位方式。rc 复位电路的实质是一阶充放电电路,结合图 2.7 说明这种复位电路的特点。系统上电时该电路提供有效的复位信号rst(高电平)直至系统电源稳定后撤销复位信号(低电平) 。从理论上说,51系列单片机复位引脚只要外加两个机器周期的有效信号即可复位,即只要保证t=rc 2m(机器周期)便可。但在实际设计中,通常 c1 取值为 10f 以上, rl 通常取值 10k 左右。实践发现,rl 如果取值太小,例如 lk,则会导致 rst信号驱动能力变差而无法使系统可靠复位。图 2.7 rc 复
38、位电路2 25 5 中断系统的介绍中断系统的介绍中断技术是计算机中在实时处理和实时控制中不可缺少的一个很重要的技术。它既和硬件有关,也和软件有关。而且中断是现代计算机必须具备的重要功能,也是计算机发展史上的一个里程碑。1.中断的概念当计算机执行正常程序时,系统中出现了某种急需处理的异常情况和特殊请求,这时 cpu 暂时终止当时正在执行的程序,转而去对随机发生的紧迫事件进行处理(执行中断服务程序) ,待该事件处理完毕,cpu 自动的返回到原来被中断的程序继续执行,这个过程称为“中断” 。2.中断的作用(1)实现同步工作:计算机有了中断功能后,就解决了快速 cpu 与低速外设之间的矛盾,可以使 c
39、pu 和外设同时工作。cpu 启动外设后,继续执行15主程序,同时外设也在工作。当外设把数据准备好后,就发出中断请求,请求cpu 中断正在执行的程序,转而执行中断服务程序(i/o 处理) ,中断服务程序执行完后,cpu 恢复执行主程序,外设也继续工作。这样,cpu 可以指挥多个外设同时工作,从而大大提高了 cpu 的效率。(2)实现实时处理:在实时控制系统中,为使控制系统能保持在最佳的工作状态,被控系统的各种控制参量可随时向计算机发出中断请求,要求 cpu 处理。对此,cpu 必须作出快速响应和及时处理,这种实时控制功能只有靠中断技术才能实现。(3)实现故障处理:若计算机在运行过程中出现了事先
40、预料不到的情况或故障时,如电源掉电、存储出错、传输错误等,可以利用中断系统自行处理,而不必停机。3.中断系统的功能(1)进行中断优先权的排队(2)实现中断嵌套(3)自动响应中断并返回4.89s51 的中断请求源89s51 有 5 个中断源,它们是 2 个外部中断、2 个定时器中断和一个串行接口中断。它们分别是外部中断 0、定时/计数器 0、外部中断 1、定时/计数器 1和串行接口中断。它们的中断向量表如下表 2.2 所示:中断向量表 2.2中断源入口地址外部中断 00003h定时/计数器 t0000bh外部中断 10013h定时/计数器 t1001bh串行接口中断0023h163 软件设计3
41、31 1 程序清单程序清单org 0000hljmp mainorg 000bh ;定时器 t1 入口地址ljmp ctco1org 001bh ;定时器 t2 入口地址ljmp ctco2org 0030hmain:mov 30h,#01hmov 31h,#00hmov 32h,#05hmov 33h,#00hmov 34h,#07hmov 35h,#00h ;显示初始化mov 40h,#05hmov 41h,#01hmov 42h,#03hmov 43h,#00hmov 44h,#07hmov 45h,#00h ;显示初始化mov r3,#10mov r4,#10mov tmod,#11h
42、mov th0,#3chmov tl0,#0b0hmov th1,#3chmov tl1,#0b0h17setb easetb et0setb tr0setb et1setb tr1next:jb p1.0,mmm ;判 p1.0 是否等于 1?lcall display1 ;调阳历显示程序mmm:lacll dealy ;调用延时程序lcall display2 ;调阴历显示程序jb p1.1,www ;判位 p1.1 是否等于 1?sjmp next ;中断返回www:clr ea ;暂停jb p1.2,qqq ;判 p1.2 是否等于 1?clr ea ;暂停qqq:setb ea ;开
43、启定时sjmp nextctco1:push acc ;开启中断 1push pswdjnz r3,back1 ;减 1 不为 0 转移mov r3,#10hinc 30hmov a,31hcjne a,#03h,loop9 ;判断十位是否等于 3?mov a,30hcjne a,#02h,back1 ;判断个位是否等于 01?mov 30h,#01hmov 31h,#00hsjmp back1loop9:mov a,30h18cjne a,#0ah,back1 ;判断个位是否等于10?inc 31h ;十位加 1mov a,31hmov 30h,#00h ;个位清 0sjmp back1ba
44、ck1:mov th0,#3chmov tl0,#0b0h ;重装初值,恢复现场pop pswpop accreti ;中断返回ctco2:push acc ;开启中断 2push pswdjnz r4,back2mov r4,#10inc 40hmov a,42hcjne a,#04h,loop1 ;判断百位是否等于4?mov a,41hcjne a,#02h,loop3 ;判断十位是否等于1?mov a,40hcjne a,#07h,back2 ;判断个位是否等于6?mov 40h,#05hmov 41h,#01hmov 42h,#03hsjmp back219loop1:mov a,41
45、hcjne a,#03h,loop3 ;判断十位是否等于3?mov a,40hcjne a,#02h,back2 ;判断个位是否等于1?inc 42h ;百位置 1mov 41h,#00h ;十位清 0mov 40h,#01h ;个位置 1sjmp back2loop2:mov a,40hcjne a,#0ah,back2 ;判断个位是否等于10?inc 41h ;十位加 1mov 40h,#00h ;个位清 0sjmp loop1loop3:mov a,40hcjne a,#0ah,back2 ;判断个位是否等于10?inc 41h ;十位加 1mov 40h,#00h ;个位清 0sjmp
46、 back2back2:mov th1,#3chmov tl1,#0b0h ;重装初值pop pswpop accreti ;子程序返回display1:mov r0,#30h ;阳历显示程序mov r2,#01h20mov dptr ,#tabl1:mov a,r0movc a,a+dptrcjne r2,#04h,k2orl a,#80h ;显示小数点k2:cjne r2,#16h,k1 ;不显示orl a,#80hk1:mov p0,a ;段码送到 p0 端口mov p2,r2 ;位码送到 p2 端口lcall dealy ;调用延时程序inc r0mov a,r2jb acc.5,l2
47、rl a ;左移位码mov r2,asjmp l1l2:ret ;子程序返回display2:mov r0,#40h ;阴历显示程序mov r5,#01hmov dptr,#tabl3:mov a,r0movc a,a+dptrcjne r5,#04h,k9orl a,#80hk9:cjne r5,#16h,k8orl a,#80hk8:mov p0,a ;段码送到 p0 端口mov p2,r5 ;位码送到 p2 端口lcall dealy21inc r0mov a,r5jb acc.5,l4rl a ;左移位码mov r5,asjmp l3l4:rettab:db 3fh,06h,5bh,4
48、fh,66h,6dh ;查表显示程序db 7dh,07h,7fh,6fh,77h,7chdb 39h,5eh,79h,71h,00hdealy:mov r6,#05hll2:mov r7,#200ll1:djnz r7,ll1djnz r6,ll2ret ;子程序返回end ;结束22开始显示初始化定时器赋初值中断初始化计数器初始化开启定时器调显示程序3 32 2 流程图流程图 初始化查表取段码段码送p0口位码送p2口调整数据指针显示入口循环一周?左移位码子程序返回yn取数图 3.1 主程序流程图 图 3.2 显示程序流程图 23中断2入口保护现场1天到了吗?个位加1百位= 4?十位= 1?中
49、断返回十位= 3?ynnnyy个位= 6?恢复初值重装初值个位= 1?百位置1十位清0个位置1个位=10?个位= 10?个位清0十位加1个位清0十位加1nyyynnnnyy图 3.3中断 2 程序流程图24 调阴历调阳历暂停延时开启定时p1.1=1?p1.2=1?p1.0=1?yyynnn图 3.4中断 1 程序流程图 图 3.5外部按键程序流程图254 系统调试完成了硬件的设计、制作和软件编程之后,要使系统能够按设计思路正常运行,必须进行系统调试。系统调试包括硬件调试和软件调试两个部分。不过,作为一个单片机系统,正常运行是硬件系统和软件系统相结合的,因此,硬件、软件系统的调试是紧密相关,二者
50、是相辅相成的。程序的调试应一个模块一个模块地进行,单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的连接是否正常等;最后逐步将各个子程序连接起来进行统一的调试。统一的调试需要注意的是,各程序模块间能否正确传送数据,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下:将所要调试的程序输入到伟福 6000 中,然后进行编译,根据系统的提示,将出错的地方修改正确,之后再编译,直到准确无误后方可以保存。例如:有的是标号未定义;有的是少标点符号;有的是标号重复定义;有的是多输入一个空格符等。最后以*.asm 扩展名保存。将在伟福中编译好的程序加入 keil 内,并且在 keil 内进行一些必要参数的设置,例如 11.0592mhz。设置完毕应将单片机实验箱与计算机通过总线的形式进行正确的连接,然后在 keil 中进行添加程序,运行程序,根据试验箱显示部分所显示的结果分析程序,修改程序中错误的地方直到正常运行为止。在调试过程中出现的问题:(1)七段数码管全部显示的是 888888,经分析原因在试验箱的 p0、p2 口接线有误,显
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设计风格应用规范
- 2025西安外事学院辅导员考试试题及答案
- 2025辽宁税务高等专科学校辅导员考试试题及答案
- 2025贵州黔南科技学院辅导员考试试题及答案
- 2025茅台学院辅导员考试试题及答案
- 2025福州黎明职业技术学院辅导员考试试题及答案
- T/ZGZS 0308-2023废活性炭热处理再生技术规范
- 机器人学导论 课件 第二章-2.1节-位姿描述与变换
- 儿童性心理卫生
- 房地产管理员考试试卷及答案2025年
- 2025年货物购销合同范本
- 2025年教育管理与政策研究考试试题及答案
- 2025届北京市北京一零一中学生物七下期末质量检测试题含解析
- 2025Q1 BrandOS出海品牌社媒影响力榜单-OneSight
- 2025陕西延安通和电业有限责任公司供电服务用工招聘103人笔试参考题库附带答案详解
- 《生成式人工智能职业技能评估规范》
- 颁奖礼仪队培训体系
- 2025年新媒体运营专员面试题及答案
- 心血管-肾脏-代谢综合征患者的综合管理中国专家共识2025解读-1
- 【9化二模】2025年5月安徽省合肥市瑶海区5月中考二模化学试卷
- 人防知识考试试题及答案
评论
0/150
提交评论