时间管理单片机简易秒表正计时时间可设置.docx

上传人:scccc 文档编号:13400292 上传时间:2021-12-24 格式:DOCX 页数:41 大小:259.12KB
返回 下载 相关 举报
时间管理单片机简易秒表正计时时间可设置.docx_第1页
第1页 / 共41页
时间管理单片机简易秒表正计时时间可设置.docx_第2页
第2页 / 共41页
时间管理单片机简易秒表正计时时间可设置.docx_第3页
第3页 / 共41页
时间管理单片机简易秒表正计时时间可设置.docx_第4页
第4页 / 共41页
时间管理单片机简易秒表正计时时间可设置.docx_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《时间管理单片机简易秒表正计时时间可设置.docx》由会员分享,可在线阅读,更多相关《时间管理单片机简易秒表正计时时间可设置.docx(41页珍藏版)》请在三一文库上搜索。

1、最新卓越管理方案您可自由编辑第一章设计内容和要求1.1 设计任务用AT89C52a计一个4位的LED数码作为多功能“秒表”。1.2 设计目的1 .学习数码管显示的结构和工作流程,实现数码管分组显示数字组合。2 .学习有关单片机的内容,进一步了解 AT89C52®片的相关功能。3 .复习C语言的相关知识。4,培养自学能力和探索解决问题的能力。4 .3设计要求显示时间为00分00秒-59分59秒,每1秒自动加1,另外设计一个“开始 /暂停”键、一个“记录/查询”键、一个“清零”键、一个“模式切换”键、一 个“时间设置”键、一个“复位”键。秒表要求正计时时,可记录并且查询10组数据,倒计时

2、时,时间用户可设置,并且时间到时蜂鸣器报警。5 .4设计创新在基本设计基础上添加了正向查询 10条记录后蜂鸣器同时报警。6 .5设计意义简易秒表具有读取方便,显示直观,功能多样,电路简洁,成本低廉等诸多 优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。本次设计将基于单 片机的工作原理,设计简易秒表的基本电路,深入的了解其工作原理,掌握其基 本的工作特点。同时简易秒表在生活中应用广泛,从实际出发,不断创新。第二章方案设计与选择2.1 技术可行性20世纪以来,微电子,IC集成电路行业发展迅速,其中单片机行业发展最 引人注目。单片机利用大规模集成电路技术把中央处理器和数据存储器( RAM, 程

3、序存储器(ROM及其他I/O通信口集成在一块芯片上,构成最小的计算机系 统。如今的单片机发展集成了更多的特殊功能单元,例如A/D, D/A转换器,通信控制,DMA PWM空制输出单元等。因此,只要外加一些扩展电路及必要的通 道接口就可以构成各种计算机应用系统。单片机除了具备体积小,价格低,速度快,用途广,可靠性高等特点,在硬 件结构和指令设置上还有以下独特之处:1 .存储器ROMP口 RAM1严格分工的。前者存放程序,常数和数据表格,后者 存放临时数据和变量。2 .采用面向控制的指令系统,构成的应用系统有较大的可靠性。大部分测控 功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当的改变系

4、统功能。3单片机的硬件功能具有广泛的通用性。4.品种规格的系列化。2.2 单片机的选择方案一:采用AT89C521|片机AT89C52g一种低功耗、高性能 CMOS航微控制器,具有8K在系统可编程 Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常 规编程器。在单芯片上,拥有灵巧的8位CPUS在系统可编程Flash,使得AT89C52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。该芯片且具备在线 编程可擦除技术,当在对电路停止调试时,因为顺序的过错修正或对步伐的心删 功能需要

5、烧进程序时,没有需要对芯片屡次插拔,所以不会对芯片形成破坏。方案二:采用FTC10F04II片机FTC10F0W片机还带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位CMO微处理芯片,市场应用最多。其主要特点如下:8KBFlash ROM 可以擦除1000次以上,数据保存10年。方案三:采用8051单片机8051单片机最早由Intel公司推出,内部具有4KB RO附储空间。其后多 家公司购买了 8051的内核,使得以8051为核心的MCUS列单片机在世界上产量 最大,应用也最广泛。有人推测 8051可能最终形成事实上的标准 MCUE片。LG 公司生产的 GMS90K列单片机,与

6、Intel MCS-51 系列、Atmel 89C51/52,89C2051 等单片机兼容,CMOSfc术,高达40MHz勺时钟频率。应用于:多功能电话,智 能传感器,电度表,工业控制,防盗报警装置,各种计费器,各种IC卡装置、DVD VCD CD-ROM由于本系统对CPU!算速度要求很高,需要执行很复杂的运算,方案一,三 成本比较低,适合做设计,方案二运算速度高,性能好,所以三种方案都有可取 之处。本次设计选用方案一作为主方案,设计以AT89C5劾主控电路的方案电路。2.3 显示模块的选择方案一:使用液晶显示屏显示时间数字。 液晶显示屏(LCD具有轻薄短小、 低耗电量、无辐射危险,平面直角显

7、示以及影象稳定不闪烁等优势, 可视面积大, 画面效果好,分辨率高,抗干扰能力强等特点。但由于液晶是以点阵的模式显示 各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较 多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片, 不易维护。方案二:使用传统的LED数码管显示。数码管具有:低能耗、低损耗、低 压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低, 易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。数码管采用BCD编码显示数字,程序编译容易,资源占用较少。根据以上的论述,采用方案二。在本系统中,我们采用了四位一体数码管用 口的动态

8、显示,因选用四位一体共阳数码管,所以要加共阳的驱动,采用 pnp 的驱动。2.4 键盘模块的选择在对倒计时时间可设置,对正计时、倒计时的模式选择时,清零时都需要用 按键。方案一:使用独立式键盘。独立式键盘是指直接用I/O 口线构成的单个按键 电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、 列的交叉点上,行线、列线分别连接到按键开关的两端。具特点是简单且不增加 成本,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要的按键不多,只需要开始 /暂停”键、“记录 /查询”键、“清零”键、“模式切换”键、“时间设置”键。所以采用

9、方案一独立式键盘。2.5 时钟电路的选择时钟电路常用的有内部时钟方式和外部时钟方式, 但因为本设计中只需要 片单片机,所以采用内部时钟方式比较简单。第三章系统总体结构3.1 系统结构框图图3 13.2 各框图实现功能3.2.1 单片机模块按照系统设计功能的要求,初步确定系统由主控模块,存储模块,驱动模块, 显示模块和键盘接口模块组成,如图3 - 1。这些模块中单片机占主控地位,采 用 AT98C52K片。3.2.2 按键模块键盘电路模块主要是对输出显示进行控制调节作用,采用普通独立按钮元件, 共5个,“开始/暂停”键、”记录/查询”键、“清零”键、“模式切换”键、“时间设置”键。本设计选择了按

10、钮电平复位电路, 其他几个按钮则是通过单片 机判断高低电平的不同来控制按钮。3.2.3 显示模块显示输出部分所用的数码管有共阴极和共阳极两类数码管之分,不管使用何 种数码管,P0 口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因 为单片机的4个并行I/O 口的输出电流一般是1mA短路电流为4mA右,而数 码管的最少驱动电流也需要 10mA因而不管在使用共阴数码管时,单片机输出 口也必须使用上拉电阻提高输出电流,才能驱动数码管。本电路中采用的是共阴 极数码管。驱动部分主要是数码管分组显示的选择控制,本电路中通过 P1 口和 P2 口的配合进行数码管的选通。在显示模块中,它的连接方式为8

11、位数码管的各段控制口 a,b,c,d,e,f,g,dp 分别需接到P0 口。数码管的显示码是由P0 口输入的,位选端是通过 P2 口控制 的。数码管的显示编码已经编好放在计算机的内存里,时间的显示可以通过软件的计算把显示码调出显示。显示模块直接用数码管来显示时间。先将显示码存入 数组中,指向最左边一位,然后取出要显示的数据,指向换码表首地址,取出显 示码,从P0 口输出显示码,P2 口输入位选码,aI fbdh图3 2数码管笔段分布图3.2.4 驱动模块驱动部分电路选择S 8 0 5 0芯片,通过与单片机的连接,将电平拉高才能 使发光管正常发光。第四章硬件设计由图3-1系统结构框图可知硬件选择

12、如下: AT89C52®片,LED数码管组, 数码管驱动三极管,电阻,按钮等外围应用电路构成。下面介绍各外围电路。4.1AT89C52单片机基本引脚接线图AT89C52勺基本连接电路如图,有复位电路,内部时钟电路,VCC VSS的连接,其余控制电路根据程序设计分别连至个I/O 口实现功能。图3 1为AT89C52 的引脚图,在设计中大部分采用4 0引脚的双列直插式芯片。图3 2介绍的是AT89C52乍为基本连接电路中。P0 : P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当 P1 口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储 器,它可以

13、被定义为数据/地址的第八位。在FIASH编程时,P0 作为原码输入 口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 是一个内部提供上拉电阻的 8位双向I/O 口,P1 口缓冲器能接 收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 作为第八位地址接收。P2 : P2 为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收, 输出4个TTL门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作 为输入。并因此作为输入时,P2

14、 口的管脚被外部拉低,将输出电流。这是由于 内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行 存取时,P2口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势, 当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在FLASHS程和校验时接收高八位地址信号和控制信号。P3 : P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为AT89C52勺一

15、些特殊功能口, P 口管脚备选功能P3.0 RXD (串行输入口)P3.1 TXD (用行输出口)P3.2 /INT0 (外部中断0)P3.4 T0 (记时器0外部输入)P3.6 /WR外部数据存储器写选通RST复位输入ALE/PROG当访问外部存储器时,P3.3 /INT1 (外部中断1)P3.5 T1 (记时器1外部输入)P3.7 /RD 外部数据存储器读选通地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH®程期间,此引脚用于输入编程脉冲。在平时, ALE端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而

16、要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EK址上置0。此时,ALE 只有在执行MOVX MOV的令是ALE才起作用。另外,该引脚被略微拉高。如果 微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的 /PSEN信 号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH, 不管是否有内部程序存储器。注意加密方式 1时,/EA将内部锁定为RESET当 /EA端保持高电平时,此间

17、内部程序存储器。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。(TQ) PBO (T1) PB1 (A4N0) PBS (AlHI) PH3(66)PB4 (M03lj PBfi (MISO) PBB(8CKJ PH 7RESET (RXD)PDO (TXD) PD1 (»NTOJ PD2 UNT" PB3PD4 (0C1A> PQ5 (WR| PUB 丽,PQTX7XL2XTAL1匚匚匚匚匚匚匚匚匚匚匚匚匚匚匚u uucnj NDGvccPAO (ADO) PAI (A01) PA2 (AC2) PAS (AD3) 摩4 (

18、ADI) PAE (ADE) PA6(ADS) PAT(AD7) tCFALECC1BPCT (A 15 PCB (AU) PC5 (A13) PO+ Al 2) PC3 (AH) PG2 (A10JPC1 科 3) PC口 (A«)AT89C52引脚图10n母HlOkOP3. JPl. 0VCCPL 1Pk DPL 2PO, LPl. 2Pk 2Pl. 4FO. ?PL 5P0. 4PL 6PU.51J1. /Ptk 5NPO. 1P?. 0EA1工1ALP? 2HSIAps 1P2. 7P?. 4P2. f)P?.5P尢5P?. 6F2. 4P3. 7P2. 3XJAL2P2.1

19、XTAL1P2 JGNDP2. 0ICI SrC89C52R21292877AT89C52基本电路接线图P 口. 0P0. 1P0. 31也7Pi. TP2. ? P2> P23 谡北 P2 T PET4.2时钟电路图4-3时钟电路时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。如图3 2中的XTAL1和XTAL2弓唧间的部分,晶振频率根据设计需要设为11.0592MHz;根据谐振性质,电路中的电容 C1、C2选择为30pF。该电容的的大 少会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。4.3 按钮电路本设计采用独立按钮,按键未按下时,端口为电阻上拉高电平,

20、按键被按下 时,端口为低电平并送到相应控制端口。如图4 3所示,一共设置为五个按钮。 本次设计采用独立按键,同时应用行列式键盘中的11、21、41、81.一行实现独立式键盘,可方便焊接,再接一个按钮即可实现五个按钮的控制。4.4 复位电路本电路中采用上电复位电路,上电瞬间,电容充电电流最大,电容相当于短 路,RS础为高电平,自动复位;电容两端的电压达到电源电压时,电容充电电 流为零,电容相当于开路,RS础为低电平,程序正常运行。如图 4 2中RST 引脚的接线。4.5 显示电路发光二极管(LED由特殊的半导体材料神化钱、磷神化钱等制成,可以单 独使用,也可以组装成分段式或点阵式 LED显示器件

21、(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外 加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图4-2是共阳式、共 阴式LED数码管的原理图和符号。押日极7段数码管图4-4 共阳式、共阴式LED数码管的原理图和数码管的符号图本设计电路为时,分,秒的显示,显示采用了四位一体的共极数码管。其中 这个数码管组都由P0 控制输出显示,片选信号由P2 实现,由于为共阳极 数码管,片选=1时,该位所对应的数码管进行位驱动,其余为 00电路开始时, 两个四位一体数码管组显示时间。L

22、ED显示器的显示控制方式按驱动方式可分成 静态显示方式和动态显示方式两种。 对于多位LED显示器,通常都是采用动态扫 描的方法进行显示。,41女支E. 0. E, 0.0.J I I I I图4 5多位数码管的段驱动和位驱动的连接4.6 驱动电路电路中为共阳极数码管,所以选择9013NPNE极管进行电路驱动。如图4-6图4 - 6 利用三极管对数码管进行位驱动4.7 电源电源由小变压器通过220V降压至5V由导线引至电路两端获得。由于设计芯 片的工作电压为5 V,所以若想直接从住宅供电获取,则可采用小型变压器,高 压侧由导线接至插头,低压侧可用导线连接杜邦线,直接接在芯片上获得所需工 作电压。

23、或者采用干电池直接提供5 V电压,可根据自身条件选择。第五章软件设计系统的软件设计也是工具系统功能的设计。单片机软件的设计主要包括执行 软件(完成各种实质性功能)的设计和监控软件的设计。单片机的软件设计通常 要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计 出合理的总体结构,使软件开发清晰、简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。既便于调试、链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可

24、读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性。5.1软件系统框图图5-15.2主程序流程图图5-25.3系统主程序#include <reg52.h>#define uc unsigned char#define ui unsigned intvoid display。;char code tab尸0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/ 数 字对应显木码表char code tabi尸0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/ 小

25、数点char code index尸0x10,0x20,0x40,0x80;0xef,0xdf,0xbf,0x7f;每位数字对应数码管显示位置uc num8; /每位数字存放数组uc val104;/存储的记录10为记录序列,8为每组记录中的数字char val_index;/ t己录序歹U标志位uc set_index,ok_flag,timing;bit mode=1;运行模式,1为正向计数,0为反向计数。bit fin_flag=0;/完成标志位,当反向计数结束时,此位为高电平,触发蜂鸣器bit set_shan;sbit beep=P3A2;sbit key1=P3A3;sbit ke

26、y2=P3A4;sbit key3=P3A5;sbit key4=P3A6;sbit key5=P3A7;void delay(ui z)ui i,j;for(i=0;i<z;i+)for(j=0;j<121;j+);void init()TMOD=0x11;TL0=0xff;TH1=0x4b;TL1=0xff;ET1=1;TR1=1;ET0=1;TR0=0;EA=1;val_index=0;)void clr()(uc i;for(i=0;i<8;i+)numi=0;)void setup()(ok_flag=0xff;set_index=0;while (ok_flag)

27、(display();if(key1=0) 按动KEY1设置值加1(delay(5);if (set_index=0)|(set_index=2)|(set_index=4)|(set_index=6)numset_index+;if(numset_index=10) numset_index=0;else if(set_index=1)|(set_index=3)|(set_index=5)|(set_index=7)numset_index+;if(numset_index=6) numset_index=0;while(!key1) display();if(key2=0)/按动KEY2

28、设置位置加1delay(5);if(key2=0)set_index+;if(set_index=8) set_index=0;while(!key2) display();if(key5=0)/按动KEY5设置结束(delay(5);if(key5=0)(ok_flag=0x00;mode=0;while(!key5) display();)void display()(uc i;if(ok_flag!=0xff)(if(timing=0)(for(i=0;i<4;i+)(P0=0xff;P2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay

29、(2); /修改此参数可修改刷新频率else(if(set_shan=0)(for(i=0;i<4;i+)(P0=0xff;P2=indexi;P0=tab10;delay(2); /修改此参数可修改刷新频率else if(set_shan=1)(for(i=0;i<4;i+)(P0=0xff;P2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay(2); /修改此参数可修改刷新频率elseif(set_shan=0)(if(set_index=0)(for(i=0;i<4;i+)(if(i=0)(P2=index0;P0=tab1

30、0;delay(2);/修改此参数可修改刷新频率P0=0xff;else(P2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay(2);/修改此参数可修改刷新频率P0=0xff;else if(set_index=1)(for (i=0;i<4;i+)(if(i=1)P2=index1;P0=tab10;delay(2); /修改此参数可修改刷新频率P0=0xff;)else(P2=indexi;P0=tabnumi;delay(2); /修改此参数可修改刷新频率P0=0xff;)else if(set_index=2)(for (i=0;i&

31、lt;4;i+)(if(i=2)(P2=index2;P0=tab10;delay(2); /修改此参数可修改刷新频率P0=0xff;)else(P2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay(2); /修改此参数可修改刷新频率P0=0xff;)else if(set_index=3)for (i=0;i<4;i+)if(i=3)P2=index3;P0=tab10;delay(2); /修改此参数可修改刷新频率P0=0xff;)elseP2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay(

32、2); /修改此参数可修改刷新频率P0=0xff;)else if(set_index=4)(for (i=4;i<8;i+)(if(i=4)(P2=index0;P0=tab10;delay(2);/修改此参数可修改刷新频率P0=0xff;else(P2=indexi-4;if(i=6)P0=tab1numi;elseP0=tabnumi;delay(2);/修改此参数可修改刷新频率P0=0xff;else if(set_index=5)(for (i=4;i<8;i+)(if(i=5)P2=index1;P0=tab10;delay(2);/修改此参数可修改刷新频率P0=0xf

33、f;)else(P2=indexi-4;if(i=6)P0=tab1numi;elseP0=tabnumi;delay(2);/修改此参数可修改刷新频率P0=0xff;)else if(set_index=6)(for (i=4;i<8;i+)(if(i=6)(P2=index2;P0=tab10;delay(2);/修改此参数可修改刷新频率P0=0xff;)else(P2=indexi-4;if(i=6)P0=tab1numi;elseP0=tabnumi;delay(2); /修改此参数可修改刷新频率P0=0xff;else if(set_index=7)for (i=4;i<

34、8;i+)if(i=7)P2=index3;P0=tab10;delay(2); /修改此参数可修改刷新频率P0=0xff;elseP2=indexi-4;if(i=6)P0=tab1numi;elseP0=tabnumi;delay(2); /修改此参数可修改刷新频率P0=0xff;)else(for (i=0;i<4;i+)(P2=indexi;if(i=2)P0=tab1numi;elseP0=tabnumi;delay(2);/修改此参数可修改刷新频率P0=0xff;) )void alarm()(if(num4=0)&&(num5=0)&&(nu

35、m6=0)&&(num7=0)timing=0; elseif(num4=num0)&&(num6=num2)&&(num5=num1)&&(num7=num3) timing=1;void main()(uc h,g,k;init();clr();while(1)(display(); /刷屏显示数码管alarm();if(key1=0)/开始/暂停按钮(delay(5);if(key1=0)(TR0=TR0;while(!key1) display();if(key2=0)/ 记录按钮(delay(5);if(key2=0)(

36、if(TR0=1)/当在运行中按下记录键则存储记录(for(g=1;g<10;g+)(for(k=0;k<4;k+)valg-1k=valgk;)for(h=0;h<4;h+)(val9h=numh;/将当前时间存储)else/在停止状态下按下记录键查看记录,按动一次序列递减一次,即查看上一次记录(for(h=0;h<4;h+)numh=valval_indexh;/ 将当前时间存储val_index-;if(val_index<0)val_index=9;)while(!key2) display。;)if(key3=0)/ 复位按钮(delay(5);if(k

37、ey3=0)(clr();while(!key3) display();)if(key4=0)&&(TR0=0)/模式选才i按钮,仅在停止状态下有效(delay(5);if(key4=0)(mode=-mode;while(!key4) display();)if(key5=0)&&(TR0=0)/时间设置,仅在停止状态下有效(delay(5);if(key5=0)(while(!key5)display();setup();)void T0_time() interrupt 1(uc m;TH0=0x4b;/定时器定时时间为 50msTL0=0xff;m+;i

38、f(m=20)m=0;if(mode=1)/ 正向计数(num0+;if(num0=10)(num0=0;num1+;if(num1=6)(num1=0;num2+;if(num2=10)(num2=0;num3+;if(num3=10) num3=0;)else(num0-;if(num0>9)(num0=9;num1卜-;if(num1>5)num1=5;num2-;if(num2>9)(num2=9;num3-;if(num3>9)(num3=0;TR0=0;fin_flag=1;clr();void T1_time() interrupt 3(uc shan,b

39、eep_stop;TH1=0x4b;TL1=0xff;shan+;beep=0;if(shan=10)(shan=0;set_shan=set_shan;if(fin_flag)|(timing=1) 当反向计数完成时 或计时时间到时(beep_stop+;beep=1;if(beep_stop=10)(fin_flag=0;timing=0;beep_stop=0;beep=0;)第六章系统调试单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。6.1硬件调试拿到电路板后,首先要检查加工质量,并确保没有任何方

40、面的错误,如短路 和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值, 看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入, 再次检 查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测 一下,看是否符合要求。1 .数码管组各段的确定:将万用表调到标有二极管的档位,由于已知数码管 为共阳极电路,则先将两表笔放到任意两端测量, 若此时二极管均不发光,则二 者为两位一体的数码管组的位驱动端。确认好后将黑表笔放于位驱动的一端,红 表笔依次触碰其他管脚,观察对应发光段,即可确定各管脚

41、的标号,操作以来十 分方便。2 .当元件焊接好时,我接通电源,首先发现数码管不亮,完全没有显示,所 以我用万用表测量p0 口的电压,发现端口都有电压,但是偏小,只有0.8v左右, 然后考虑到共阳的驱动,重新加了驱动电路,数码管有显示,但是也存在蜂鸣器 不报警的问题,所以又单独对蜂鸣器的电路进行了分析, 最后发现时由于粗心焊 接了错误的电源线导致的,改正之后板子正常工作了。3 .2软件调试软件调试是通过对程序的连接、执行来发现程序中存在的语法错误与逻辑 错误并加以排除纠正的过程,也可以通过 keil软件进行仿真,能大大的减少设 计过程中的错误。第七章设计小结这次在科研实践的过程中,我受益匪浅。首

42、先,我意识到平时扎实的基础 是关键,只有平时学得牢,在面对时思路才会敏捷,在面对问题时才会快速找到 症结所在并找到解决之道。其次,程序设计是个很复杂的过程,在大的构思实现 之后我们往往还要在很多的细节上对程序加以改进。在过去的大学学习中,我们大多数接触的是专业课,我们在课堂上学习的 也都是专业课的理论知识,为了锻炼我们的实践能力把所学的专业理论知识运用 到实践中去,这次科研实践为我们搭建了这样一个练习的平台。在这次科研实践中,我们培养了在实践中研究问题、分析问题和解决问题的能力,并意识到程序设计不仅要注重整体, 更要注重细节;当程序运行过程中 遇到问题时,我们要打开思路,发挥创新精神,力求用最有效简洁的方法解决; 遇到难以解决的困难时,我们要多多请教书本、老师、同学,坚持不懈,就算程 序运行失败了也不要气馁。这一次的科研实践,让我体会到知识的应用所带来的成就感。 与此同时,科 研实践也使我们体会到了团结的力量,再复杂的程序在我们的讨论中也可以得到 答案。科研实践所带来的经验可以让我更好的学习。参考文献(1)51系列单片机高级实例开发指南李军著 北京航空航天大学出版社(2)单片机原理与实用技术付晓光著清华大学出版社(3)AT89系列单片机原理与接口技术王幸之著 北京航空航天大学出版社(4)单片机应用系统设计技术张齐朱西宁著电子工业出版社附录1:元器件清单

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1