电子钟项目总体设计说明书

上传人:仙*** 文档编号:33405157 上传时间:2021-10-17 格式:DOC 页数:21 大小:253.50KB
收藏 版权申诉 举报 下载
电子钟项目总体设计说明书_第1页
第1页 / 共21页
电子钟项目总体设计说明书_第2页
第2页 / 共21页
电子钟项目总体设计说明书_第3页
第3页 / 共21页
资源描述:

《电子钟项目总体设计说明书》由会员分享,可在线阅读,更多相关《电子钟项目总体设计说明书(21页珍藏版)》请在装配图网上搜索。

1、 电子钟项目电子钟项目总体设计说明书总体设计说明书编制单位:侏罗纪工作室作 者:王鹏版 本:V0.1发布日期:2011-1-23审 核 人:批 准 人:TS006_硬件总体设计说明书修订历史记录修订历史记录发布日期发布日期版本版本说明说明作者作者2011-1-23V0.1硬件总体设计说明书初稿王鹏2008-12-20V0.2按照文档格式要求修改格式王鹏2011-01-23V0.2按照需求要求修改文档内容 王鹏TS006_硬件总体设计说明书i目目 录录1.1.引言引言 .1 11.1.编写目的: .11.2.背景 .11.3.定义 .21.4.参考资料 .22.2.总体设计总体设计 .3 32.

2、1.开发与运行环境 .32.2.硬件功能描述 .32.3.硬件结构 .33.3.硬件模块设计硬件模块设计 .4 43.1.描述 .43.2.功能 .64.4.嵌入式软件设计嵌入式软件设计 .7 74.1.流程逻辑 .74.2.算法 .85.5.经验总结经验总结 .7 75.1.硬件 .75.2.软件 .86.6.附录附录 .7 7电子钟总体设计说明书11.1. 引言引言1.1.1.1. 编写目的编写目的:电子表在生活中的应用,可以说无处不在,在日常生活中我们无时不在使用电子表,给我们的生活和学习带来了说不尽的方便,使我们的生活更加有节奏和规律。使用二十四时制。并用实验室的 PCB 制作机器来完

3、成电路板的绘制,尽量使 PCB 小,而且功能齐全,全面练习了我们的 C 语言工程应用经验和 PCB 板的制作过程和熟练程度。在本次设计中需要下面的准备工作 复习本学期学过的单片机和上学期学过的 C 语言。 本实验没有用外接时钟源,所以在编写 C 语言时要尽可能的减小程序产生的误差。 列出电子秒表单元电路的测试表格。 列出调试电子表的步骤。 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时,分频和执行数字运算以及其它特定的逻辑功能. 计数器种类很多.按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器.根据计数制的不同,分为二进制计数器

4、,十进制计数器和任意进制计数器.根据计数的增减趋势,又分为加法,减法和可逆计数器.还有可预置数和可编程序功能计数器等等. 译码器是一个多输入,多输出的组合逻辑电路.它的作用是把给定的代码进行翻译,成相应的状态,使输出通道中相应的一路有信号输出.译码器在数字系统中有广泛的用途,不仅用于代码的转换,终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等.不同的功能可选用不同种类的译码器. 译码器可分为通用译码器和显示译码器两大类.前者又分为变量译码器和代码变换译码器. 一个LED数码管可用来显示一位09十进制数和一个小数点.小型数码管(0.5寸和0.36寸)每段发光二极管的正向压降,随显示光(

5、通常为红,绿,黄,橙色)的颜色不同略有差别,通常约为22.5V,每个发光二极管的点亮电流在510mA.LED数码管要显示BCD码所表示的十进制数字就需要有一个专门的译码器,该译码器不但要完成译码功能,还要有相当的驱动能力. 这些都是最简单的门电路,在设计和制作中可以准确的应用最简单的电路图做出来,相比较这些门电路功能简单搭建方便。价格相对其他的集成芯片较便宜,整个制作完成价格不电子钟总体设计说明书2超过50元人民币。而且易于制作和方便检查错误,精度较高。 1.2.1.2. 背景背景a、本次实验主要设计一个带有闹钟和定时功能的电子表。b、本次实验是在大三第一学期学完单片机的基础上通过 C 语言使

6、用 51 单片机来实现电子钟,在寒假期间用十天左右来完成制作,在实验室王老师的大力鼓励和支持下我们实验室大三十七个人一起共同努力每人完成一个,要求是现在单片机开发板上用 C 语言来实现功能,并自己绘制 PCB 板,由大四的师哥师姐们帮我们完成板子的刻制,并且自己焊元件,调试板子,来实现自己所要的功能。项目任务提出者:项目开发者: 王鹏软件开发者:王鹏系统调试: 王鹏项目用户: 单片机爱好者系统运行环境:HOT51 单片机开发板、单片机仿真软件 Wave6000、单片机最小系统电路板。1.3.1.3. 定义定义1.3.1 专门术语的定义四位八段数码管:就是四个单个数码管连在一起的二极管显示器,可

7、以显示从 0 到 9 数字的显示。晶振:用来产生单片机工作所需的工作脉冲。1.2.2 外文首字母组词的原词组PCB:常称为印刷电路板是用来固定元件并可以导电的电路板。1.01.7PP:在本文中代表 89C51 单片机的接口,即 I/O 口 P1 口。1.4.1.4. 参考资料参考资料1、李朝青.单片机原理及接口技术(第三版)M.北京:北京航空航天大学出版社,2005.9电子钟总体设计说明书32、谭浩强.c 语言程序设计(第二版).3、HOT51 增强版单片机开发板资料.2.2. 总体设计总体设计2.1.2.1. 开发与运行环境开发与运行环境 2.1.1 系统硬件运行环境在常温下由电池供电,在基

8、于 89C51 单片机的系统版上运行,最后在自制的 PCB 最小系统版上运行。2.1.2 系统软件运行环境程序使用软件主要是 keil uvision3 中调试、编译、连接,然后由 stc-isp 软件下载到单片机中,在单片机开发板上运行。软件运行环境为 Windows XP。2.2.2.2. 硬件功能描述硬件功能描述 本系统硬件包括 PCB 集成电路板一个(芯片元件集成) 、三个单稳态开关(用于数字钟对时) ,一个自锁开关(电源开关) 、12MHz 晶振一个,89C51 单片机一个(程序执行) 、蜂鸣器一个(闹钟报警) 、电源接口一个(电路供电) 、四位一体八段数码管两个(显示时间) 、1K

9、 排阻一个、发光二极管一个(电源指示灯) 、74HC38 译码器芯片一个、若干导线。2.3.2.3. 硬件结构硬件结构 硬件端口定义:数码管片选接至单片机 P0 口,接至数码管引脚图如下:86571234电子钟总体设计说明书4从单片机的 P0 口分别接至数码管的段选口,共八个接口,从单片机的P2.1、P2.2、P2.3 接位选驱动芯片 74138,驱动芯片输出引脚接数管的位选端。单稳态开关接口单稳态开关接口为四个引脚,其引脚功能如下图所示: 在开关按下去时 1 和 3 接通,2 和 4 接通,在程序里高电平为有效电平,所以在电路图中用1 和 3 接口。电源开关为单刀双置开关,当开关按下去时 1

10、 和 2 接通,所以在电路图中所用1 和 2 引脚。电路中用到的唯一一个三极管是 9012,是 NPN 的管子,所以其接法和 PNP 刚好相反, E 引脚接电源的正,c 引脚接电源的地,此电路为闹钟部分驱动蜂鸣器,也可以换成 9013 或是 PNP 的管子,只要能提供比较大的电流就可以。 3.3. 硬件模块设计硬件模块设计3.1.3.1. 描述描述3.1.1 89C51 单片机1、89C51RC:此型号单片机是目前最流行的一款常用单片机,单片机是本系统的心脏,主要是用来执行二进制代码,实现所需功能的。此单片机的主要参数如下: ROM 为 64KB, RAM 为3.1.2 PCB 板1、PCB

11、板概述: 标准的 PCB 板上头没有零件,常被称为“应刷电路板“。板子本身的基板是由绝缘隔热、并不易弯曲的材质制作而成。在表面可以看到细小线路是铜箔, ,原本铜箔是覆盖在整个板子上的,而在制造过程中部分被蚀刻处理掉,留下来的部分就变成了网状的细小线路。这些线路被称为导线或称布线,并用来提供 PCB 上零件的电路连接。为了将零件固定在 PCB 板电子钟总体设计说明书5上,我们将原件的接脚直接焊在布线上,在最基本的 PCB 上,零件都集中在其中的一面。这么一来我们就需要在板子上打洞,这样我们才能将引脚穿过板子到另一面,所以零件的焊接在另一面上的。应为如此,PCB 的正反面被称为零件面与焊接面。如果

12、 PCB 上头有些零件需要在制作完成后可以拿掉或装回去,那么零件安装时会用到底座。由于底座是直接焊接在板子上的,零件可以任意的拆装。PCB 上绿色或是红的的是阻焊漆的颜色,这层是绝缘的防护层,可以保护铜线,也可以防止零件被焊接到不正确的地方。在阻焊层上另外会应刷上一层网应刷面。通常在这层上面会印刷上文字与符号,以标示出各零件在板子上的位置。网丝应刷面也被称为图标面。印刷电路板将零件与零件之间复杂的电路铜线经过细致整齐的规划后蚀刻在一块板子上,提供电子零件组件在安装与互联时的主要支撑体,是所有电子产品不可或缺的基础零件。印刷电路板以不导电的材料所制成的平板,在此平板上通常都设计安装孔以安装元件。

13、组件的孔有助于让预先定义在板子上印制的金属路径以电子方式连接起来,将电子组件的接脚穿过 PCB 后,再以导电性的金属焊条粘附在 PCB 上而形成电路。PCB 可以分为单面板,双面板,多层板。2、在本次实验中要求我们自己绘制 PCB 板,并且用实验室所提供的 PCB 刻板机刻制自己的板子,由于本次实验所用的电路简单,所以用单面板,PCB 设计所用的软件为 DXP PROTELL,因为没有用到高频电路,所以板子的绘制相对简单,但在绘制过程中出现了不少的问题,详细分析见后,绘制的 PCB 板如下图所示:电子钟总体设计说明书63.2.3.2. 功能功能本系统为二十四小时制带有闹钟功能的电子表,可以校对

14、时间和闹钟,可以开启和关闭闹钟。本系统共分为四部分,第一部分为显示区,第二部分为按键区,第三部分为闹钟功能区,第四部分为电源区。显示区主要是数码管的显示,主要是用来显示结果,走时。本部分还需要驱动芯片和数码管的动态扫描。按键区有两部分,一是电源的开关按键,用来接通电源和断开电源。二是电子表校时按键,共有三个按键,S1 是功能选择,从电子钟的小时校对、分钟校对、闹钟的小时校对、分钟校对。S2 是加校对按键,在相应的功能选择下加。S3 是减校对按键,在相应的功能选择下电子钟总体设计说明书7减。闹钟功能区是闹钟的功能电路,主要是在闹钟时间到时开始响闹钟。电源区是电源接通显示,用一个发光二极管,当发光

15、二极管亮表示电源接通,反之则表示电源未接通。4.4. 嵌入式软件设计嵌入式软件设计4.1.4.1. 流程逻辑流程逻辑程序用 tab数组来定义共阴数码管的显示状态;用定时器 0 来实现电子钟的走时;用定时器 1 来实现数码管的动态扫描;用外部键盘扫描来实现电子钟的校准,查询方式如下:定义电子钟的初始值为 23:59:00。程序流程图如下:开始初始化T0,T1 设置为 16 位计数器模式允许 T0,T1 中断显示程序外部按键中断功能程序电子钟总体设计说明书8查询方式流程图查询方式流程图 本次试验,用到单片机外部中断,也就是按键,使用按键最主要的就是防抖动,防抖动的方法很多我使用的方法为延时,就是重

16、新定义一个函数,功能是延时一定的时间,在按键程序中调用此函数。void delay(unsigned int cnt) /延时函数 while(-cnt);4.2.4.2. 算法算法定时器工作模式控制字 TMOD本次实验用到了单片机的所有的定时器中断,T0 用来实现电子钟的计时,T1 用来实现数码管的动态扫描。当用计时器 0 时给 TMOD 赋值为 0X01,用定时器 1 时给 TMOD 赋值为 0X10,也可以一次性赋值为 0X11。定时器是一种中断响应的工作方式,所以在使用定时器时必须给定时器赋初值,当定时器达到初值时向 CPU 申请中断,来处理中断。在电子钟计时要求是要很准确的,在定时器

17、工作在方式一最大的计时为 2 21616,当使定时器定时为 20mm 时根据如下据算公式:定时器的定时时间计算公式为 t=(2t=(21616 T0T0 初值初值)振荡周期振荡周期1212 在用定时器 0 计时,系统晶振为 12MHz,算出初值为 3CB0H,也就是把定时器中断循环 50次刚好是一秒。电子钟总体设计说明书9同样用定时器 1 动态扫描数码管时根据公式 2.063ms 扫描一次,初值定义为 F8F0H,再循环 20 次调用一次显示程序,这样就实现数码管动态扫描。5 5经验总结经验总结本次实验主要是正对单片机的应用和在 C 语言的基础上设计完成,在制作和设计过程中遇到了很多问题,也暴

18、露出了自己的很多不足。本次实验主要一部分还是 PCB 板的制作,由于是初次制作 PCB 板,所以大四的师哥师姐门给了我们很多的帮助。下面就针对每一部分出现的问题做进一步的探讨。1、软件设计软件设计软件部分在设计中用的是 C 语言,具体的思路和设计方法在前面已经提到,现在主要来说一下在设计过程中遇到的问题。在软件设计过程中遇到的首要问题是数码管的动态扫描,因为我们用的数码管位选芯片是 74HC138,此芯片四 COMS 芯片,信号比较稳定,属于高电平有点,我用 51 单片机的 P2.0、P2.1、P2.2 通过 3-8 译码器位选择数码管。单片机用的是 12MHz 的晶振,在数码管扫描的时候频率

19、大概是 1/40 的晶振频率,用单片机 T1 中断,但在起初设计时我把数码管的扫描程序加载数码管的段选程序中,结果出现了问题,数码管的扫描很不稳定,只有电子钟的秒不断地加,而电子钟的其他全都显示的是初始时间,不变。在参考了单片机开发板的程序后发现要把数码管的扫描程序单独写成函数,然后调用函数,这要数码管的段选和位选分开,互不干扰。结果问题消失,这就像王老师说的,在 C 程序中要尽可能的使程序模块化,这样在以后的修改和添加新的功能是就方便很多,也便于程序的优化。 在程序设计中遇到的最棘手的问题就是电子钟的时间误差,由于是用 C 语言编写,所以很难准确的算出每一个代码所执行的时间,所以要消除电子钟

20、的误差,需要在硬件电路设计出来后通过更改软件了消除。电子钟引起误差的因素很多,但有些是可以避免的,有些事无法消除的,所以我在设计过程中主要是通过软件来使电子钟走时准确。在刚开的表误差是 12 个小时差 2 分钟,这对于我们日常所用的表来说误差太大。设计要求是 12 个小时误差要控制在 30 秒之内,我起初使用改变计时中断循环次数来消除误差,但其精度远远不够,最后实验室所有队员共同商量,分析解决问题的方法,其方法见后面的附录部分。2、硬件设计硬件设计电子钟总体设计说明书10(1)问题一首先,我们本次实验是设计一个电子钟,主要涉及的是数码管的驱动和数码管的动态扫描,起初我们根据单片机开发板我们用的

21、是 74LS258,但是在设计过程中我们要求;绘制的 PCB 板要尽可能的小,所以我把数码管驱动芯片换成了 2003,由于自己的粗心和设计缺乏经验,没有考虑到驱动芯片的工作电压,由于单片机用的是 5V 的电压,所以在电源供电使用电池,但 2003 芯片的工作电压时 15V,所以在调试电路的时候数码管没有让任何显示,在经过查找资料,终于找出了问题的原因,由于制作的电路板已经成型,所以改变电路时很困难的,所以直接把 2003 芯片短路,数码管显示问题解决。但是数码管由于没有驱动芯片,所以显示很暗,限于电路结构没法调整,只能修改至此。如果需要彻底解决问题,就需要另找驱动芯片,然后重新封装,再制作一个

22、符合要求的PCB,再次调试。(2)问题二 在使用 PROTEL 软件制作 PCB 板的时候由于第一次画 PCB,所以很多主意事项没有重视,以至于在后期使用实验室的 PCB 制作机器时线路走线很不科学,饶了很多弯路,在有些地方可以直线连接,但在自动布线时软件饶了很长的线路,自己也没有一根一根检查,所以浪费了电线,并且使电路工作稳定性不是很高。在制作 PCB 时很多电子元件封装没有或是和实物对不上,所以要自己画封装,在制作封装时先使用游标卡尺测量实物的引脚间距,实物的边缘尺寸。还有焊盘直径和过孔直径,线路的宽度。由于实验室的 PCB 制作机器刻刀只有 0.2mm,0.3mm,0.6mm,0.7mm

23、,0.8mm,0.9mm,1.0mm,所以为了在刻线时刻刀走宽度的整数倍,所以在画 PCB 板时线路只能选择 0.6mm1.0mm,起初我认为 0.6mm 的线因该能够满足我电路的需要,忽视了在后期调试电路板时需要手工改变一些走线,以至于在后期调试电路板时很难再加一些线路。对我后期完成实验出现了很多困难。在电子钟调试好后八段数码管只没有用小数点,就在我调试程序准确性的时候王老师要求我们的电子表要对闹钟有控制即有闹钟开关功能和闹钟开关的标志,所以我想用一个数码管的小数点来显示闹钟的开启和关闭状态。在 PCB 板上只能飞线。用单片机的 P0.7 来接数码管的小数点,连接三根飞线。在做完 PCB 后

24、拿到板子才知道自己做的很多封装都和实际不相符合。尤其是电路板的走线、焊盘大小、线宽度。一般情况下导线的宽度是 0.8mm,焊盘大小是 1.4mm,过孔直径是 0.8mm。但在本次实验的时候由于缺乏经验,焊盘太小,导致在焊接元件的时候很困难,有些地方焊盘太小在电烙铁一电子钟总体设计说明书11接触焊盘就掉落。在封装过孔直径的时候没有测量实际的引脚宽度,导致元件无法插上。在走线的时候线宽度设置成 0.6mm,在板子实际刻出来后导线太细,导致电阻太大,致使信号的稳定度太低或是电阻太大致使信号太弱。6 6附录附录附录一附录一 用软件校正由中断冲突引起的延时误差用软件校正由中断冲突引起的延时误差根据中断处

25、理过程,和在中断嵌套的原则,具体思路是在按键的时候不影响电子钟的计时,应为电子钟计时是由定时器 0 的中断实现的,在默认状态下外部中断优先级比定时器优先级高,所以在软件中设置定时器优先级最高,这样在两个同时申请中断或在响应外部中断的时候定时器申请中断,马上响应定时器中断,这样电子钟走时就会更加准确。中断处理流程图由于电子钟的时间误差,消除误差有好几种方法,我采用控制中断优先级的方法来实现电子钟的走时准确。在程序中我用计时中断来实现电子钟的位选扫描和电子钟的走时。所以中断有个先后次序。电子钟的按键也是由外部中断响应的,在设计软件时用定时器0 的中断来计时,20mm 然后循环 50 次达到一秒的计

26、时时间。但是外部中断 0 的优先级比定时器 0 的要高,也就是说当定时器 0 和外部中断同时向 cpu 申请中断时 cpu 会先响应外部中断,这样定时器 0 会等待 cpu 的中断响应,所以在软件设计中要使计时中断优先电子钟总体设计说明书12级最高,在两个同时申请中断时先响应定时器 0 的请求。把定时器中断设置成高级中断,而把外部中断设置成低级中断,中断响应如下图所示,在两个同时申请中断时先响应定时中断,这样就不影响电子钟正常走时。用软件实现中断优先级设置时使用中断有限设置位中断优先级控制位 PS串行口中断优先级控制位。 PT1定时器/计数器 T1 中断优先级控制位。 PX1外部中断 1 中断

27、优先级控制位。 PT0定时器/计数器 T0 中断优先级控制位。 PX0外部中断 0 中断优先级控制位。 在软件中设计中断优先级时实际上就是给优先控制字负值,根据如上所述的控制字要实现所需功能,就给 IP 幅值 0AH,即 00001010B。在实际应用中把 IP=0AH 写在主函数中,完成程序的误差更改。把本修给的程序下载到芯片中后让电子钟走时 12 小时,在没修改以前的 12 小时误差 1min26seco 减少到 12 小时误差 48seco,效果不是特别理想。根据具体的电路和程序分析,总结原因主要如下:1、电路的晶振不是特别准确,有系统误差。2、在没有按键的情况下本次做的误差校准是不起作

28、用的,没有从程序的根本上解决问题。电子钟总体设计说明书133、分析程序,发现在有中断的情况下每次执行的程序代码是不定的,也就是说程序的执行时间不确定,这也就导致走时不准确。附录二附录二 系统源程序系统源程序#include sbit KEY1=P32;sbit KEY2=P33;sbit KEY3=P34;sbit a=P23;sbit a1=P35;sbit a2=P36;sbit b=P37;sbit led=P11;code unsigned char tab=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; /共阴

29、数码管 0-9unsigned char StrTab8; /定义缓冲区unsigned char minute=59,hour=23,second; /时间定义并且初始化值unsigned char minute1=00,hour1=00;/second1; /闹钟定义并且初始化值 unsigned char flag=0;unsigned char num;unsigned int count;unsigned int h1;unsigned int flag1=0;void delay(unsigned int cnt)/延时函数 while(-cnt);void play(void)

30、StrTab7=tabhour/10; /显示正常时间StrTab5=tabhour%10;StrTab1=0 x40;StrTab4=tabminute/10;StrTab3=tabminute%10;StrTab6=h1; StrTab2=tabsecond/10;StrTab0=tabsecond%10; void nplay(void) StrTab7=tabhour1/10; /显示闹钟时间StrTab5=tabhour1%10;StrTab1=0 x40;StrTab4=tabminute1/10;StrTab3=tabminute1%10;电子钟总体设计说明书14StrTab6=

31、h1; StrTab2=tab0/10;StrTab0=tab0%10;main()/主函数 TMOD =0 x01;/定时器 0 12M crystal 用于计时TH0=0 x3c;TL0=0 xb0;ET0=1;TR0=1; TMOD =0 x10; /定时器 1 用于动态扫描TH1=0 xF8;TL1=0 xf0;ET1=1;TR1=1; EA =1; play();while(1)/主循环 if(!KEY1) /按键 1 去抖以及动作 delay(10000);if(!KEY1)flag+; if(flag=1) if(!KEY2) delay(10000); if(!KEY2) ho

32、ur+;if(hour=24)hour=0; /正常时间 小时 加 1 play(); if(!KEY3) delay(10000); 电子钟总体设计说明书15if(!KEY3) hour-;if(hour=0)hour=23; /正常时间 小时 减 1 play(); if(flag=2) if(!KEY2) /按键去抖以及动作 delay(10000); if(!KEY2) minute+;if(minute=60)minute=0;/分加 1 play(); if(!KEY3) /按键去抖以及动作 delay(10000); if(!KEY3) minute-;if(minute=0)m

33、inute=59; /分减 1 play(); if(flag=3) /闹钟对时 if(!KEY2) delay(10000); if(!KEY2) hour1+;if(hour1=24)hour1=0; /闹钟时间 小时 加 1 nplay(); if(!KEY3) delay(10000); if(!KEY3) 电子钟总体设计说明书16 hour1-;if(hour1=0)hour1=23; /闹钟时间 小时 减 1 nplay(); if(flag=4) if(!KEY2) /按键去抖以及动作 delay(10000); if(!KEY2) minute1+;if(minute1=60)

34、minute1=0;/闹钟分加 1 nplay(); if(!KEY3) /按键去抖以及动作 delay(10000); if(!KEY3) minute1-;if(minute1=0)minute1=59; /闹钟分减 1 nplay(); void nz() /闹钟控制 if(minute=minute1 & hour=hour1 & flag1=0) /闹钟程序 if(second%2=1) a=0; else a=1; if(!KEY2 & !KEY3) flag1+; if(flag1=1) h1=0 x40; if(flag1=0) h1=0 xc0; if(flag1=2) fl

35、ag1=0;电子钟总体设计说明书17 if(flag=5)flag=0;/*/* 定时中断 1 */*/void time1_isr(void) interrupt 3 /定时器 1 用来动态扫描 ,l,l TH1=0 xF8;/重入初值TL1=0 xf0;switch (num) case 0:P2=0;P0=StrTabnum;break; /分别调用缓冲区的值进行扫描 case 1:P2=1;P0=StrTabnum;break; case 2:P2=2;P0=StrTabnum;break; case 3:P2=3;P0=StrTabnum;break; case 4:P2=4;P0=

36、StrTabnum;break; case 5:P2=5;P0=StrTabnum;break; case 6:P2=6;P0=StrTabnum;break; case 7:P2=7;P0=StrTabnum;break; default:break; nz();num+; /扫描 8 次,使用 8 个数码管if(num=8) num=0;/*/* 定时中断 0 */*/void tim(void) interrupt 1 /using 1TH0=0 x3c;TL0=0 xb0;count+; switch (count) case 0: case 20: if(flag=1 | flag=2 | flag=0) /隔一定时间调用显示处理 play(); break; case 40: if(flag=3 | flag=4)电子钟总体设计说明书18 nplay(); break; case 60: case 80: default:break; if (count=159) count=0; second+;/秒加 1if(second=60) second=0; minute+; /分加 1 if(minute=60) minute=0; hour+; /时加 1 if(hour=24) hour=0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!