版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要IIAbstractIII第一章绪论 .11.1 单片机的概述 .1.1.1 单片机的发展和定义 .1.1.2单片机的特点 .1112第二章材料选择与设计思路 .2.1材料选择 .222332.1.22.1.22.1.3单片机的选择 .LED 显示 .键盘 .2.2设计思路 .第三章主要技术的设计 .53.1主要技术 .53.2主要的设计方案 .558993.2.13.2.23.2.33.2.4定时器 .显示 .键盘 .利用定时中断进行显示和查键 .第四章电路 .124.1复位电路 .124.2元件及其作用 .124.3I/0 接口 .13第五章程序 .145.1程序流程图 .5.1.
2、1秒表的计时功能 .141415165.1.2秒表的倒计时功能流程图 .5.2程序 .第六章总结 .17参考文献 .18附录 .19基于单片机的多功能电子跑表摘要采用单片机技术制作一个具有到计时功能和多次数据计时并回显的多功能跑表。采用 51 单片机做为!单片机具体型号为 SST89E516RD2 是 SST 公司 8 位微处理器FlashFlex51 系列的成员,是采用先进的闪存 CMOS 半导体技术设计和制造,这些器件是采用 8051 的指令集,并和标准的 8051 控制器管脚兼容。带有 16/24/40/72Kbyte 的片内 FLASHEEPROM器,使用了 SST 公司专利的 CMO
3、S 闪存技术,器被分成两块独立的程序器,第一块(BLOCK0)占用 8/16/32/64Kbyte 的程序器空间,第二块(BLOCK0)占用 8Kbyte 的程序器空间。8Kbyte 的第二块 FLASH 可以到8/16/32/64Kbyte 空间的低地址,还可以被隐藏和当成类似 EEPROM 的独立的数据器。本次设计采用 SST89E516RD2 为加上必要的电路,再用共阴 7 段数码管 4 个进行显示输出,用按键控制功能选择,因为 SST89E516RD2 电源是 4.50V - 5.50V 操作,工作频率 040MHz 所以采用 5V 电源进行供电。设计分为(1)功能描述(2)系统构建和
4、材料选择(3)制作方案和制作流程图(4)程序设计(5)电路。如何应用单片机技术是毕业设计的!随着科学技术的不段发展,单片机技术已经成为现在智能化的高科技技术产品的和基础。单片机知识对于即将毕业的有着很重要的意义。:单片机,多功能电子跑表,共阴 7 段数码管Microcontroller-based Multi-Function Electronic StopwatchAbstractSCM technology can be used to make a memory of multiple sets of data and time whenthe record is complete da
5、ta set can display memory! We use 51 microcontroller as the core! SCM specific mfor the SST89E516RD2 SST company is 8-bit microcontrollerFlashFlex51 family members,Flash memory is the use of advanced design and manufacturing CMOS semiconductor technology, these deviare using the 8051 instruction set
6、, and the standard 8051 patible controller. With 16/24/40/72Kbyte chip FLASH EEPROM memory chip,using the SSTs proprietary CMOS flash memory technology, memory is dividedo twoindependent program memory, theone (BLOCK0) occupation 8/16/32 / 64Kbyteernalprogram memory space, the second block (BLOCK0)
7、occupied 8Kbyteernal programmemory space. 8Kbyte of the second block can be mapped to a FLASH 8/16/32/64Kbyaddress space cso be hidden and as similar to the independent data EEPROM memory.owThe design uses SST89E516RD2 the core with the nesary circuitry, and then commoncathode 7-segment 4 to display
8、 the output, with the key control option becauseSST89E516RD2supply with 5Ver is 4.50V - 5.50V operation, so the frequency of 0 40MHz Weer supply.Design is dividedo (1) Features (2) systems engineering and material selection (3)production programs and production flow chart (4) programming (5) circuit
9、 (6) production inkind。How to use microcontroller technology is the core of my graduation! not of scienceand technology with the development ofelligent single chip technology hase a hightechnology products are now the core and foundation. SCM knowledge is about to graduatewe have very important sign
10、ificance.Keywords:SCM ;multifunctional;electronic stopwatch第一章绪论1.1 单片机的概述1.1.1 单片机的发展和定义在一片集成电路上集成微处理器、器、I/O 接口电路,从而了单微型计算机,即单片机。又称:微控制器。单片机技术发展过程可分为三个主要阶段:单片机的初级阶段 1974 年1978 年,el 公司推出了 MCS-48 系列单片机 。8 位 CPU、1K 字节 ROM、64 字节 RAM、27 根 I/O 线和 1 个 8 位定时/计数器。特点是:器容量较小,寻址范围小(不大于 4K),无串行接口,指令系统功能不强。高性能阶段
11、 1980 年,el 公司推出了 MCS-51 系列单片机:8 位 CPU、4K 字节 ROM、128 字节 RAM、4 个 8 位并口、1 个全双工串行口、2 个 16 位定时/计数器。寻址范围 64K,并有控制功能较强的处理器。结构体系完善,性能已大大提高,面向控制的特点进一步突出。现在,MCS-51 已成为公认的单片机经典机种。微控制器化阶段 1982 年,el 推出 MCS-96 系列单片机。内集成:16 位CPU、8K 字节 ROM、232 字节 RAM、5 个 8 位并口、1 个全双工串行口、2个 16 位定时/计数器。寻址范围 64K。片上还有 8 路 10 位 ADC、1 路输
12、出及高速 I/O等。特点是:片内面向测控系统电路增强,使单片机可以方便灵活地用于复杂的自动测控系统及设备。“微控制器”的称谓更能反应单片机的本质。1.1.2单片机的特点控制性能和可靠性,高实时控制功能特别强,其 CPU 可以对 I/O 端口直接进行操作,位操作能力更是其它计算机无法比拟的。另外,由于 CPU、器及 I/O 接口集成在同一内,各间的连接紧凑,数据在传送时受干扰的影响较小,且不易受环境条件的影响,所以单片机的可靠性非常高。第二章材料选择与设计思路2.1材料选择电子跑表其实就是一个单片机的最小系统,单片机、晶振、复位电路、键盘输入电路、显示电路了这个最小系统。以下是对该最小系统的基本
13、的分析选择。2.1.2单片机的选择本次设计对单片机的数据和数据的处理要求都不高,所以选择的单片机要求也不太高 STT 公司的 SST89E516RD 与 805 的完全兼容, 开发工具兼容, 封RAM 共有 1Kbyte( 256Byte + 768Byte)256Bytes 寄装与引脚兼容。其存器/数据 RAM, 内含两块高性能 SuperFlash器( EEPROM)块(每个块的扇区大小8K/16K/32K/64Kbyte 的主块 + 8Kbyte 的次都是 128Byte)用 SoftLock 可以独立地对每个块进行安全加锁。实现应用中再编程( IAP: In-Application-P
14、rogramming) 两块可同时操作。在 IAP 过程中器的覆盖,支持中断响应。支持最大 64KByte 外部程序和数据存可实现储空间 P1 的 5、6、7 等三个引脚可驱动大电流( 每个可达 16mA)3 个 16位定时/计数器( T0, T1, T2) 全双工增强型串行通讯口( UART) 帧错误识别自动地址识别,10 个中断源, 4 个优先级,提供 4 个外部中断输入,带内部可编程看门狗( WDT),可编程计数器阵列( PCA),4 个 8 位 I/O个 I/O 引脚)和 1 个 4 位口,共 36 个 I/O。这款 51 单片机具备设计所需要的所有功能,同时他也是市面上常见的一款单片
15、机,所以口( 32本次选择它作为本次设计的单片机。2.1.2LED 显示通常把数码管、符号管、米字称为笔画显示器; 而把笔画显示器和矩这里采用的 7 段数码管所以阵管统称为字符显示器。因为详细介绍 下数码管的分类: 数码管可以按字高、颜色、结构、各发光段的连接方式等进行分类。按照各发光段的连接方式分,数码管可分为共阳极和共阴极两种。所谓的共阳方式就是笔画显示器各段发光管的阳极是公共的,而阴极是互相的。所谓的共阴方式就是笔画显示器各段发光管的阴极是公共的,而阳极是互相的LED 显示的原理。如图 2.1 所示为七段 LED 数码管的原理图,通过该图可以很容易地看出共阳极和共阴极的七段 LED 管的
16、工作原理的不同点。对于共阴极的数码管,所有发光二极管的阴极共连后接地,而阳极引出脚用于控制 LED 是否点亮。若阳极引出脚接地,则 LED 被熄灭;若阳极引出脚接, 则 LED 被点亮。图 2.17 段数码管的原理图共阳极的 LED 正好相反,所有发光二极管的阳极共连后接,而阳极引出脚用于控制 LED 是否点亮。若阴极引出脚接,则 LED 被熄灭;若阴极引出脚接地,则 LED 被点亮。因此共阳极和共阴极所需要的字型码正好相反。这里阴数码管进行本次设计。选用的是共2.1.3键盘外部指令对单片机的输入一般都是通过键盘等输入器件来实现的,而键盘的设计以及编程。方法在本例中将会重点介绍。在本例中,是利
17、用键盘来实现秒表的启停控制及功能的选择。2.2设计思路为了实现秒表的计时,需要利用单片机实现百分之一秒(10ms)的中断,在中断程序中实现数字的变化,并动态显示出来。显示采用的是动态扫描的方法。动态扫描的方法其实很简单,就是轮流点亮各数码管,同时把各数码管所需要的字符送到对应的 I/O 口;而中间需要有一定的延时,原因是单片机每一条指令执行的时间很短,如果切换得太快的话,发光二极管都来不及反应,在编程上可以加上一个延时子程序来解决。设置按键 1.2.来控制计时的启/停和倒计时模式下初值的设定,按键 3 来控制连续 8次计时和倒计时模式的转换,采用消抖方式进行处理。采用复位电路对单片机进行重置。
18、第三章主要技术的设计3.1主要技术单片机电子跑表需要解决的三个最主要的技术是:如何使用单片机的的定时器。如何实现动态扫描显示。如何写键盘的输入控制程序。3.2主要的设计方案3.2.1定时器单片机中定时器的使用是一项重要的内容,也是一项基本的内容。由于内容太多就不详细介绍了,在后面的设计中将会穿插说明。这里利用单片机百分之一秒(10ms)的中断,在中断程序中实现数字的变化并动态显示出来,从而实现秒表的计时。以下是具体的程序实现:程序:定义 /定义共阳极字符编码表uchar code TABLE10=0 xa0,0 xf9,0 xc4,0 xd0,0 x99,0 x92,0 x82,0 xf8,0
19、 x80,0 x98;uum;/计数值LED0,LED1,LED2,LED3; / 各位的数值uchar ms;/用于表示数码管显示位及计算是否 10ms 到设定定时器 T0 的工作方式TMOD= 0 x 01 ; /T0 方式 1 计时 1ms TL0=0 x18;TH0=0 xfc;EA= 1 ; /开中断, 启动定时器ET0=1; TR 0 = 1 ;动态显示字符的子程序void display(void)switch (ms%4) case 0:P3=0 xfe;/点亮百分一秒位的 LED 数码管P1=tableLED3; / 输出百分一秒位数值P1_7=1;break; case 1
20、: P3=0 xfd;P1=tableLED2;/点亮十分一秒位的 P1_7=1;/输出十分一秒位数值 break;case 2:P3=0 xfb;/点亮秒位的 LED 数码管 P1=tableLED1; / 输出秒位数值 P1_7=0;/点亮小数点位break; case 3:P3=0 xf7;/点亮十秒位的 LED 数码管 P1=tableLED0; / 输出十秒位数值 P1_7=1;break;default: return;LED数码管计算各位显示字符的子程序void add1(time)uutime;n,a;a=time/1000; LED 0 =a;/计算十秒位数值n=time%1
21、000; LED1=(n/100);/计算秒位数值n=n% 100 ;LED2=(n/10);/计算十分一秒位数值LED3=n% 10 ; /计算百分一秒位数值流程图如图 3.1 所示。图 3.1定时器方案流程图3.2.2显示显示采用的是动态显示驱动。动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一, 动态驱动是将所有数码管的 8 个显示笔划 a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决
22、于单片机对位选通 COM 端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 12ms,由于人的视觉暂留现象及发光二极管的效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更低。下面是一种常见的动态显示程序:uchar delay; for(;)display();/调用显示子程序for
23、( delay=0 ; delay=200 ; delay+);/延时程序ms+;/点亮下一个数码管这是一个很简单的动态显示程序, 完全按照动态显示的规则来编写的, 在很多单片机的入门中对单片机的显示都是采用类似的编程法。 但是这个程序有一个很大, 就是延时程序的出现。 延时程序实际上就是使单片机不断地进行递减或递加计数, 而在这一段时间内单片机是不能做其他任何事情的。 这显然不符合实际应用的要求, 因为在实际的应用中单片机除了显示外还有很多其他的事情是要处理的。 实际应用时这个显示程序要进行改写。3.2.3键盘键盘的最根本的功能就是当该按键按下后,单片机应用系统能够完成该按键所设定的功能。对
24、于一组键盘,必定会通过一个接口电路与单片机相连。CPU 要检测是否有键盘信息输入而且要判断是哪一个键被按下,然后根据键值来进行相应的工作。键盘最主要的技术就是消抖,现在无论什么键盘都是以机械接触点和合/断作用,而机械触点存在弹性在开关合/闭时候会有抖动从而引起输入点信号的抖动导致输入信号的确。所以首先要解决的就是键盘的消抖问题。消抖问题有两种处理方案。消抖和硬件消抖。硬件消抖:硬件消抖主要可以通过双稳态电路和滤波电路等消抖电路对按键进行消抖处理。常用的消抖电路如图 3.2 所示。消抖:消抖其实就是进行有 10ms 延时的两次查询,当第一次查询到按键按下后进行一个 10ms 的延时再进行一次查询
25、,如过这次查询结果也为按下则确认按键被按下,读出按值,等待按键。如果第二次查询按键状态为断开则视为干扰,断开检测同理。图 3.2硬件消抖动电路图因为消抖即能为节省材料又能为节省电路空间。所以本次设计应用消抖的方式来处理键盘的消抖问题。具体的程序将在最后的程序章节中给出。3.2.4利用定时中断进行显示和查键利用中断进行查键和显示可以节省单片机资源并且使程序更具可读性。定时查键(每10ms 进行一次查键)。图 3.3查键流程图图 3.2 为其中一个查键的流程图,cheak 为该键消抖标志位。当没有键被按下,则 cheak置 0,并返回。当有按键被按下时,则检查消抖标志位 cheak,如果标志位为
26、0,则说明了还没有进行消抖处理,将 cheak 置为 1 同时返回。因为过 10ms 才再进入一次查键, 所以相当于进行了 10ms 的延时效果,程序不需要进行延时。若再次查键的时候发现该键的消抖标志位 cheak 为 1,则说明此键已经过消抖处理,这时等待键的 从而实现该键的功能。定时扫描键盘的子程序为:bit cheak;/cheak 为 P2_1 bit keydown;bit start; bit stop;void scan(void) P2=0 x0f;if(P2_1=0).的消抖标志位/keydown 为 P2_1 按下的标志位/秒表启动标志位/秒表停止标志位/读入前先将电位拉高
27、 if(cheak=0)cheak=1;返回/若 cheak 为 0,则将 cheak置 1 并elsekeydown=1;置 1 cheak=0; if(P2_1=1) while(keydown=1)键/若 cheak 为 1, 则已消抖, 按下标志/同时将 cheak 置 0/若 P2_1 和 keydown 均为 1,则该 keydown=0; if(start=0)start=1;stop=0; else start=0;stop=1;从上面的子程序可以看出每一次按键工作都是以按键的为最终结束,程序检测到按键才开始实现该按键的功。利用定时中断进行显示。利用中断进行显示简化了显示程序而
28、且减轻了 CUP 的工作负担。具体的实现方法为;Void time0(void)TLO=0 x18;TH0=0 xfc; ms+if (ms=10);ms=0;errupt 1 using 1/重装数据/到 10 秒执行一次查键Scey=1;Display();/调用一次显示子程序第四章电路4.1复位电路复位电路是单片机中不可缺少的主要电路之一。所谓复位电路顾名思义就是使单片机重新启动的电路,当复位电路启动时单片机路如图 4.1 所示。的所有寄存器回到初始状态。复位电图 4.1复位电路对于 51 单片机来说他是高频复位,所谓高频复位就是 RST 保持两个机器周期以上时自动复位。从图 4.1 中
29、可以看出该电路可以实现两个功能:的上电复位:上电瞬间,电容充电电流最大,电容相当于短路,RST 端为,自动复位;电容两端的电压达到电源电压时,电容充电电流为零,电容相当于开路,RST 端为低电平,程序正常运行。手动复位:首先经过上电复位,当按下按键时,RST 直接与 VCC 相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC 对电容充电,充电电流在电阻上,RST 依然为路,RST 为低电平,正常工作。,仍然是复位,充电完成后,电容相当于开4.2元件及其作用单片机: SST89E516RD,主控制器。七段共阴数码管: LED1-LED4, 用于显示。NPN 三极管: SS9012
30、, 制作放大电路。按键 K1:在正常情况下,用于控制单一计时模式下秒表的启动/停止。在倒计时初值设定的情况下为倒计时初值的增加按键, 按一下 K1,倒计时初值增加 1;按住 K1 不放,倒计时初值连续增加;快速连按两下 K1 然后不放,则倒计时初值快速增加,增加的速度是连续增加的 10 倍。按键 K2:在正常情况下,用于控制连续计时 8 个的计时模式下秒表的启动/停止。在倒计时初值设定的情况下为倒计时初值的减少按键,按一下 K2, 倒计时初值减少 1; 按住 K2 不放, 倒计时初值连续减少;快速连按两下 K2 然后不放,则倒计时初值快速减少,减少的速度是连续减少的 10 倍。按键 K3: 用
31、于秒表的功能的选择, 在默认情况下, 为秒表的计时准备模式。按下 K3 后秒表进入倒计时的状态,这时通过按键 K1 和 K2可以进行倒计时初值的调整, 再按下 K3 则进入倒计时。按键 RESET: 在复位电路中, 对单片机起复位作用。LED5:用于显示单片机的工作状态,在准备计时的时候,LED5 点亮; 在计时的时候, LED5 闪烁; 在倒计时初值设定和倒计时工作的时候, LED5 熄灭。LED6: 用于显示单片机的工作状态, 在准备计时和计时工作的时候, LED6 熄灭;在倒计时初值设定的时候,LED6 点亮;在倒计时工作的时候, LED6 闪烁4.3I/0 接口P1.0 P1.7: 与
32、数码管的各个位相连, 用于传送数码管的段位码。 P3.0 P3.3:与数码管 LED1 LED4 相连,通过单片机的 P3.0 P3.3可以控制 LED 的显示。P2.1: 和按钮 K1 相连, 用于决定单一计时模式下的秒表启动/停止和倒计时初值的增加。P2.0: 和按钮 K2 相连, 用于决定连续计 8 个的计时模式下秒表启动/停止和倒计时初值的减少。P2.2: 和按钮 K3 相连, 用于单片机工作模式的选择。 P2.6:和 LED6 相连, 用于显示单片机的工作状态。 P2.7:和 LED5 相连, 用于显示单片机的工作状态第五章程序5.1 程序流程图5.1.1秒表的计时功能秒表的计时功能
33、流程图如图 5.1 所示。图 5.1秒表计时功能流程图5.1.2秒表的倒计时功能流程图秒表的倒计时功能分为:倒计时的初值增加如图 5.2 所示。倒计时的初值减少如图 5.3 所示。倒计时功能流程图如图 5.3 所示。5.2倒计时的初值增加流程图5.3倒计时的初值减少流程图5.4倒计时的功能流程图5.2程序具体程序见附录第六章总结现代电子科技发展越来越快,微型化、集成化、高密度化以及设备的高精度化已经成为一种长期的趋势,这就要求使用更精确的设备。本设计中使用的只是当前电子科技发展的一般产物,随着科技的不断发展,更高密度、更高精度的将会取代现有的产品,所以还是要不断的学习,不断的丰富和更新的产品,
34、提出更高的要求。就在当前经济形势的情况下,电子产品要找到新的增长点,唯一的出路是智能化。可以说,一切电子产品,包括通信、广播、电视控制、家用电器、电视音响等消费类电子产品,智能化的时代已经到来,“智能华”的无穷,模拟处处数字化的景象已经展现,今后将会迎来新的。由于时间和条件的限制,本方案在设计过程中仍然存在很多不尽完善的地方,敬请老师指导。参考文献1, 张为民,社,2004.189192., 等.MCS-51 系列单片机系统及应用M. 西安: 高等教育. RabbitMiniCore 系列模块让产品开发轻而易举J.电子技术应用,2009,35(02):42 45.Keil Software C
35、x51 编译器用户手册J45.单电源供电运算放大器设计方法J.电子工程师,2005,31(05):3135.低功耗单双电源供电的轨对轨仪表放大器 AD627J.国外电子元器件,2002.7(11):3334.6候建华.基于 TLC2543LL 的 A/D 转换模板的设计J.机电产品开发与创新,2007,20(01): 164 165.7.电子技术基础M.:,2006. 3136.8渠丰沛140.,.PADS2005 电路原理图与 PCB 设计M:机械工业,2009.1339高吉祥.数字系统与自动控制系统设计M,:电子工业,2007.1559.10.采用 MAX232 实现 MCS-51 单片机
36、与 PC 机的通信J.理工学院学报,1999,15(02):5861.11. SST 单片机应用J科技.电子线路设计实验测试M.12.华技大学,1998.6568.附录总程序头文件和变量定义包含 reg52.h 头文件。变量定义: 在程序中用到的变量如表 1 所示。/头文件及变量声名#include #define uchar unsigned char#define uunsigned/定义各管脚 sbit P2_0=P20; sbit P2_1=P21; sbit P2_2=P22; sbit P1_7=P17; sbit P2_6=P26; sbit P2_7=P27;/各变量的声名uc
37、har code TABLE10=0 xa0,0 xf9,0 xc4,0 xd0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x98;/段位码uchar ms,mm;u um,tab8; LED0,LED1,LED2,LED3;/各位的数字bit bit bit bit bit bit bit bit bit bit bit bit bit bit bitadd; bit_add1; bit_sub;scey;cheak; keydown; fast_add; double_key; K2_keydown; fast_sub; double_sub; sub; K3_key
38、up; K3_keydown; count_down;bit start; bit stop;bit eight_start; bit eight_stop;主程序在主程序中需要完成以下的功能: 首先调用初始化函数对各个变量进行初始化, 再对定时器的定时初值进行设定, 接着根据各个标志位的值来判断单片机的工作模式及工作状态。键盘扫描由scan( )来完成,各个位的数值的计算由 add1( )来完成。void man (void)begin1(); TMOD= 0 x 01 ; TL0=0 x18;TH0=0 xfc; EA= 1 ; ET0=1; TR 0 = 1 ;for(;)if(scey
39、=1)/调用初始化函数/进行键盘扫描scey=0;scan(); if(double_key=1) P2_6=0; P2_7=1; m=m+ 10 ;add1(m);/倒计时初值快速增加ist_add=1)/倒计时初值连续增加P2_6=0; P2_7=1; m + + ;add1(m); bit_add1=0;if(add=1) P2_6=0; P2_7=1;add= 0; m + + ;add1(m);/倒计时初值增加 1if(double_sub=1) P2_6=0; P2_7=1; m=m- 10; add1(m);/倒计时初值快速减少ist_sub=1)/倒计时初值连续减少P2_6=0
40、; P2_7=1; m-;add1(m); bit_sub=0;if(sub=1) P2_6=0; P2_7=1;sub=0; m-;add1(m);if(start=1)/计时开始/倒计时初值减少1if(mm=0)P2_7=!P2_7; P2_6=1;m + + ; if(m=6000)m=0;add1(m);if(stop=1) start=0;/计时停止if(count_down=1)/倒计时开始 if(m0)m-; P2_7=1;if(mm=0)P2_6=!P2_6;初始化子程序初始化子程序通常是在一开始就被调用, 用来初始化各个变量, 同时也显示了单片机上电后的工作状态。虽然有些变量
41、在定义的时候已被默认初始化了,但是为了自己检查方便, 还是应该加上初始化的子程序。void begin1(void)fast_add=0; bit_add1=0; m m = 0 ; m = 0 ;ms= 0 ; LED 0 = 0 ; LED 1 = 0 ; LED 2 = 0 ; LED 3 = 0 ;add= 0; double_key=0;scey=0;keydown=0; K3_keydown=0; count_down=0; P2_6=1; P2_7=0;定时器中断子程序这里的秒表的计时、键盘的扫描及数值显示等都是利用定时中断来完成的。定时的时间 设为 1ms, 用于数值显示; 同
42、时利用累加的方法实现 10ms 和 200ms 的定时, 用于键盘的扫描及控制显示灯的闪烁。void time0(void) TL0=0 x18;TH0=0 xfc; ms+; if(ms=10) ms=0; m m + +;if(mm=20)mm=0;scey=1;display();显示子程序显示子程序其实包括了 display()和 add1(time)两个子程序。add1(time)是用来计算数码管各个位要显示的数值的子程序, display()是查段位码表及进行动态扫描的子程序。void add1(time)uutime;n,a;a=time/1000; LED 0 =a;/计算十秒位数值n=time%1000; LED1=(n/100);/计算秒位数值n=n% 100 ; LED2=(n/10);/计算十分一秒位数值LED3=n% 10 ;/计算百分一秒位数值void display(void)switch (ms%4) case 0: P3=0 xfe;P1=tableLED3; P1_7=1;break; case 1: P3=0 xfd;P1=tableLED2; P1_7=1;break; case 2: P3=0 xfb;P1=tableLED1;P1_7=1break; case 3: P3=0 xf7;P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民办合肥经济技术职业学院《歌曲弹唱(Ⅱ)》2024-2025学年第二学期期末试卷
- 2026年中国电建集团核电工程有限公司招聘考试参考题库及答案解析
- 2026陕西省肿瘤医院临床护士招聘(18人)考试参考试题及答案解析
- 2026春季贵州六盘水市第二十四中学学期招聘3人考试备考试题及答案解析
- 自贡市嘉祥外国语学校招聘笔试备考试题及答案解析
- 工业企业内部会计制度
- 公司内部文控管理制度
- 幼儿园内部防疫管理制度
- 一人处公证内部管理制度
- 律所内部风险控制制度
- 2026年黑龙江能源职业学院单招职业适应性测试题库及答案1套
- 人工智能技术复习资料及题库
- 电子支付与安全课件
- 2026公安联考行测真题及答案
- 2025年NCCN肝细胞癌临床实践指南解读课件
- 个税汇缴培训课件
- 广铁集团校园招聘机考题库
- 雷达基础知识教学课件
- 2026年智能电网调度控制系统项目建议书
- 春季食堂安全知识培训
- 山东土地资本投资集团有限公司招聘11人备考题库及答案1套
评论
0/150
提交评论