[毕业设计精品]基于单片机AT89S51的99马表的设计_第1页
[毕业设计精品]基于单片机AT89S51的99马表的设计_第2页
[毕业设计精品]基于单片机AT89S51的99马表的设计_第3页
[毕业设计精品]基于单片机AT89S51的99马表的设计_第4页
[毕业设计精品]基于单片机AT89S51的99马表的设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计毕业设计 基于单片机的基于单片机的 9999 马表设计马表设计 班级班级: 电子 512 专业专业: 应用电子技术 所在系所在系: 机电工程系 学号学号: 指导老师指导老师: 完成时间 2008 年 4 月 10 日至 2008 年 6 月 18 日 目录目录 摘要:摘要: .2 引言:引言: .3 第一章第一章 单片机的发展与应用单片机的发展与应用 .4 1.1、单片机的发展.4 1.1.1、单片机的概念.4 1.2、mcs-51 单片机的简介.4 第二章第二章 基于单片机基于单片机 at89c51 的的 99 马表硬件系统马表硬件系统.8 2.1、基于单片机 at89c51 的 9

2、9 马表原理.8 2.11、主要功能:.8 2.1.2、系统板上硬件连线.9 2.2、at89s51 的介绍.9 2.2.1、主要特性.10 2.2.2、管脚说明.10 2.2.3、振荡器特性.12 2.2.4、芯片擦除.12 2.3、基于 at89s51 的 99 马表外围电路设计.13 2.3.1、 复位电路.13 2.3.2、时钟电路.15 2.3.3、数码管.15 2.3.4、键盘电路.18 第三章第三章 基于基于 at89s51 的的 99 马表软件系统马表软件系统.20 3.1、基于单片机 at89s51 的 99 马表汇编程序.20 3.1.1、基于单片机at89s51的99马表

3、流程图.20 3.1.2、基于单片机at89s51的99马表汇编程序.21 3.2、keil uvision2 集成开发环境介绍.25 3.21、keil的使用步骤.25 3.4 仿真软件 proteus.27 3.4.1、基于proteus软件的系统硬件仿真设计.27 3.4.2、基于proteus软件的系统硬件仿真运行.28 3.5、硬件系统的设计.28 3.5.1、protel dxp概述.28 3.5.2、原理图设计系统的特点.28 3.5.3、印制电路板(pcb)的设计系统的特点.30 第四章第四章 小结与展望小结与展望 .31 4.1、小结.31 4.2、全文展望.31 致致 谢谢

4、 .32 参考文献参考文献 .33 摘要摘要: 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带 动传统控制检测日新月异更新。系统实用性强、操作简单、扩展性强。本文介 绍了基于单片机 at89s51 的 99 马表的设计,重点讨论了 at89s51 单片机周围硬 件电路的原理和软件的编程以及仿真软件对电路功能的实现。 关键词:关键词:单片机 99 马表 设计 实现 abstractabstract: in recent years along with science and technology develop fast, the application of single

5、flat machine is moving towards thorough continuously, at the same time drive traditional control detection day the benefit of new moon update. the system usability is strong, simplicity of operator, extended. this article introduced based on the monolithic integrated circuit at89s51 99 stop watch de

6、signs, discussed around with emphasis at89s51 monolithic integrated circuit hardware circuits principle and softwares programming as well as the simulation software to electric circuit function realization. keywords:keywords: only flat machine 99 stopwatches design realize 引言:引言: 在单片机技术日趋成熟的今天,其灵活的硬

7、件电路的设计和软件的设计, 让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片 机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件 的一个缩影,可谓是“麻雀虽小,肝胆俱全”, 单片机的学习和研究是对微机系统学习和研究的简捷途径。本文中设计的基于 at89s51 单片的 99 马表具有体积小,结构简单,易于操作等特性,还具有强大 的扩展功能。它能够精确计时,并具有开始计时,计时停止,清零等功能,在 运动会上,汽车上等一些需要计时的地方处处可见它的生影。特别是利用单片 机做的马表,因其显示精准,误差小,价格较低而广受欢迎。 第一章第一章 单片机的发展与应用单片机

8、的发展与应用 1.11.1、单片机的发展、单片机的发展 1.1.11.1.1、单片机的概念、单片机的概念 自 1946 年第一台数字式电子计算机 eniac 在美国宾夕法尼亚大学诞生以来, 计算机的发展已经历了四代,微型计算机属于第四代计算机。对微型计算机而 言,如果将 cpu、存储器、i/o 接口以及定时器/记数器集成在一块芯片上,就 成为单片微型计算机(sum,single chip microcomputer),简称单片机。它 具有体积小、功耗低、可靠性高、抗干扰能力强、价格低等优点,被广泛应用 于检测和控制领域。此外,单片机在家用电器、电子玩具、语言设备、机器人 等各个领域的应用也迅速

9、发展。 随着单片机在技术上、体系结构上的不断发展,国际上逐渐采用“微控制 器(mcu,micro controller unit)”来代替“单片微型计算机”这一名称, 但在国内,由于习惯,我们仍沿用“单片机”这一名称。 1.21.2、mcs-51mcs-51 单片机的简介单片机的简介 51 系列单片机是由美国 intel 公司生产的以 80c51 为核心发展起来的各类 单片机型号系列的总称。这类单片机都使用 80c51 的 cpu 内核及指令系统,且 mcs-51 系列中的 8051 成为许多半导体厂家。电气公司竞相选用的对象并以其 为基核,推出了许多兼容性的 chmos 单片机,且这些单片机

10、都具有极好的兼容 性,并有很强的生命力,统称 80c51 系列 mcs-51 系列单片机产品有 8051,8031,8751,80c51,80c31 等型号(前三 种为 cmos 芯片,后两种为 chmos 芯片)。它们的结构基本相同,其主要差别反 映在存储器的配置上。8051 内部设有 4k 字节的掩模 rom 程序存储器,8031 片 内没有程序存储器,而 8751 是将 8051 片内的 rom 换成 eprom。由 atmel 公司 生产的 89c51 将 eprom 改成了 4k 的闪速存储器,他们的结构大同小异。mcs- 51 单片机内部结构 8051 是 mcs-51 系列单片机

11、的典型产品,我们以这一代表性的机型进行系 统的讲解。 下图是 mcs-51 系列单片机的内部结构示意图 2。 8051 单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定时 /计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和 控制总线等三大总线,现在我们分别加以说明: 图 1 1)中央处理器(cpu): 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据宽度的处理器,能 处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调的 工作,完成运算和控制输入输出功能等操作。 2)数据存储器(ram): 8051 内部有 128 个 8

12、 位用户数据存储单元和 128 个专用寄存器单元,它们 是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不 能用于存放用户数据,所以,用户能使用的 ram 只有 128 个,可存放读写的数 据,运算的中间结果或用户定义的字型表。 3)程序存储器(rom): 8051 共有 4096 个 8 位掩膜 rom,用于存放用户程序,原始数据或表格。 4)定时/计数器(rom): 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于 控制程序转向。 5)并行输入输出(i/o)口: 8051 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对

13、外部数据的传输。 6)全双工串行口: 8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该 串行口既可以用作异步通信收发器,也可以当同步移位器使用。 7)中断系统: 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一 个串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。 tcon 的中断标志: 位号 7 6 5 4 3 2 1 0 字节地址: 88h it0:外部中断 int0 触发方式控制位。 ie0:外部中断 int0 中断请求标志位。ie0=1 时,表示 into 向 cpu 请 tf1tr1tf0tr0ie1it1ie0tt0 求中断。

14、 it1:外部中断 int1 触发方式控制位。 ie1:外部中断 int1 中断请求标志位。ie0=1 时,表示 int1 向 cpu 请 求中断。 tf0:定时/计数器 t0 益出中断请求标志位。在 t0 启动后就开始由出 值加 1 记数,直至最高位产生益出由硬件置位 tf0,向 cpu 响应中断。cpu 响应中断时,tf0 由硬件自动清 0。 tf1:定时/计数器 t1 益出中断请求标志位。 中断允许控制: cpu 对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许 寄存器 ie 控制的。ie 的状态可通过程序由软件设定。某位设定为 1,相应 的中断源允许;某位设定为 0,相应的中断

15、源屏蔽。cpu 复为时,ie 各位 清 0,禁止所有中断。 ie 寄存器: 位号 7 6 5 4 3 2 1 0 字节地址: a8h ex0:外部 int0 中断允许位。 et0:定时/计数器 t0 中断允许位。 ex1:外部 int1 中断允许位。 et1:定时/计数器 t0 中断允许位。 es:串行口中断允许位。 ea:cpu 中断允许(总允许)位。 eaeset1ex1et0ex0 第二章第二章 基于单片机基于单片机 at89c51at89c51 的的 9999 马马 表硬件系统表硬件系统 2.12.1、基于单片机、基于单片机 at89c51at89c51 的的 9999 马表原理马表原

16、理 2.12.11 1、主要功能:主要功能: 1)开始时,显示“00”,第 1 次按下 sp1 后就开始计时。 2)第 2 次按 sp1 后,计时停止。 3)第 3 次按 sp1 后,计时归零。 图2-1 基于单片机 at89c51 的 99 马表原理图 2.1.22.1.2、系统板上硬件连线系统板上硬件连线 1) 把“单片机系统”区域中的 p1.0/ad0p1.7/ad7 端口分别用导连接到 led 数码显示器 u2 的 ah 端口上;要求:p1.0/ad0 对应着 a,p1.1/ad1 对 应着 b,p1.7/ad7 对应着 h。 2) 把“单片机系统”区域中的 p2.0/a8p2.7/a

17、15 端口分别用导连接到 led 数码显示器 u1 的 ah 端口上;要求:p2.0/a8 对应着 a,p2.1/a9 对应 着 b,p2.7/a15 对应着 h。 3) 把“单片机系统“区域中的 p3.5/t1 用导线连接到”独立式键盘“区域中 的 sp1 端口上; 2.22.2、at89s51at89s51 的介绍的介绍 at89s51 是一种带 4k 字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable read only memory)的低电压,高性能 cmos8 位 微处理器,俗称单片机。该器件采用 atmel 高密度非易失存储器

18、制造技术制造, 与工业标准的 mcs-51 指令集和输出管脚相兼容。由于将多功能 8 位 cpu 和闪烁 存储器组合在单个芯片中,atmel 的 at89c51 是一种高效微控制器,为很多嵌 入式控制系统提供了一种灵活性高且价廉的方案。如图 2-2 图 2-2 at89s51 引脚图 2.2.12.2.1、主要特性、主要特性 1) 与 mcs-51 兼容 2) 4k 字节可编程闪烁存储器 3) 寿命:1000 写/擦循环 4) 数据保留时间:10 年 5) 全静态工作:0hz-24hz 6) 三级程序存储器锁定 7) 128*8 位内部 ram 8) 32 可编程 i/o 线 9) 两个 16

19、 位定时器/计数器 10)5 个中断源 11)可编程串行通道 12)低功耗的闲置和掉电模式 13)片内振荡器和时钟电路 2.2.22.2.2、管脚说明管脚说明 vcc:供电电压。 gnd:接地。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。 当 p1 口的管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据 存储器,它可以被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原 码输入口,当 fiash 进行校验时,p0 输出原码,此时 p0 外部必须被拉高。 p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口

20、,p1 口缓冲器能 接收输出 4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入, p1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作为第八位地址接收。 p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可接收, 输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻拉高,且 作为输入。并因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由 于内部上拉的缘故。p2 口当用于外部程序存储器或 16 位地址外部数据存储器 进行存取时,p2 口输出地址的高八位。在给出

21、地址“1”时,它利用内部上拉 优势,当对外部八位地址数据存储器进行读写时,p2 口输出其特殊功能寄存器 的内容。p2 口在 flash 编程和校验时接收高八位地址信号和控制信号。 p3 口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可接收输出 4 个 ttl 门电流。当 p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。 作为输入,由于外部下拉为低电平,p3 口将输出电流(ill)这是由于上拉的 缘故。 p3 口也可作为 at89c51 的一些特殊功能口,如下表所示: p3 口管脚 备选功能 1)p3.0 rxd(串行输入口) 2)p3.1 txd(串行输出口) 3)p3

22、.2 /int0(外部中断 0) 4)p3.3 /int1(外部中断 1) 5)p3.4 t0(记时器 0 外部输入) 6)p3.5 t1(记时器 1 外部输入) 7)p3.6 /wr(外部数据存储器写选通) 8)p3.7 /rd(外部数据存储器读选通) 9)p3 口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高 电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址 的地位字节。在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端 以不变的频率周期输出正脉冲信号,此频率为振荡器

23、频率的 1/6。因此它可用 作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存 储器时,将跳过一个 ale 脉冲。如想禁止 ale 的输出可在 sfr8eh 地址上置 0。 此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略 微拉高。如果微处理器在外部执行状态 ale 禁止,置位无效。 psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信 号将不出现。 ea/vpp:当 ea保持低电平时,则在此期间外部程序存储器(0000h- ffffh

24、),不管是否有内部程序存储器。注意加密方式 1 时,ea将内部锁定为 reset;当/ea 端保持高电平时,此间内部程序存储器。在 flash 编程期间,此 引脚也用于施加 12v 编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 2.2.32.2.3、振荡器特性、振荡器特性 xtal1 和 xtal2 分别为反向放大器的输入和输出。该反向放大器可以配置 为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, xtal2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外 部时钟信号的脉宽无任何要求,

25、但必须保证脉冲的高低电平要求的宽度。 2.2.42.2.4、芯片擦除、芯片擦除 整个 perom 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保 持 ale 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1” 且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,at89s51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支 持两种软件可选的掉电模式。在闲置模式下,cpu 停止工作。但 ram,定时器, 计数器,串口和中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结 振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 2.32.3、基于、

26、基于 at89s51at89s51 的的 9999 马表外围电路设计马表外围电路设计 2.3.12.3.1、 复位电路复位电路 系统复位是任何微机系统的第一步,它能使整个控制芯片回到默认的硬件 初始状态下。复位对单片机来说,就是回到初始状态,程序计数器赋值 0000h,为程序运行做好贮备工作。 1)复位的实现: 当在单片机的 rst 引脚上加上高电平并保持两个机器周期(24 个始终震 荡周期),就可以完成复位操作。为了达到这个要求,可以使用很多方法, 这里提供一种方法参考,其电路图如 2-3 所示。 +5v 1k 10f 按键 地 图 2-3 复位电路 这种复位电路的工作原理是:通电时,电容两

27、段相当于是短路,于是 rst 引脚上为高电平,然后电源通过电阻对电容充电,rst 端电压慢慢下降,经过 mcs-51 res 一段时间,达到低电平,单片机开始正常工作。 根据实际操作的经验,图 1-2 中复位电路的电容、电阻参考值分别为 c=10uf,r1=1k,r2=10k。 2)单片机复位后的状态 单片机的复位操作使单片机进入初始化状态。51 单片机在系统复位时, 将其内部的一些重要寄存设置为特定的值,其中包括使程序计数器 pc 为 0000h,程序从 0000h 地址单元开始执行;21 个特殊功能寄存器复位后的状 态为确定值;p0、p1、p2、p3 口输出高电平;运行中的复位操作不改变内

28、 部 ram 的数据,重新上电时片内 ram 则为随机值,如表 2-4 所示。 表 2-4 21 个特殊功能寄存器复位后的状态 特殊功能寄存器初始状态特殊功能寄存器初始状态 a00htmod00h b00htcon00h psw00hth000h sp07htl000h dpl00hth100h dph00htl100h p0p3ffhsbuf 不定 ip00000bscon00h ie000000bpcon0 b psw=00h:表明选积存器 0 组为工作寄存组。 sp=07h:表明堆栈指针指向片内 ram 07h 字节单元。 p0p3=ffh:表明已向各端口线写入 1,此时,各端口既可用于

29、输入用 可用于输出。 ip=xxx00000b:表明各个中断源处于低优先级 ie=0xx00000b:表明各个中断均被关断。 rst 引脚的第二功能是作为备用电源的输入端,当主电源发生故障、电 压值降低到规定的低电平时,+5v 电源自动接入 rst 端,作为备用电源 为系统供电,保证复位后能继续正常运行。 2.3.22.3.2、时钟电路、时钟电路 at89c51 片内设有一个由反向放大器所构成的振荡电路,xtal1 和 xtal2 分别为振荡电路的输入和输出端,时钟可以由内部方式产生或外部方式产生。 内部方式时钟电路如图 2-5 所示。在 xtal1 和 xtal2 引脚上外接定时元件,内 部

30、振荡电路就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐 振回路。晶振可以在 1.2mhz 到 12mhz 之间选择,电容值在 5-30pf 之间选择, 电容的大小可起频率微调作用。 电容 1 晶振 电容 2 图 2-5 内部方式时钟电路 外部方式的时钟很少用,若要用时,只要将 xtal1 接地,xtal2 接外部振 荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低 于 12mhz 的方波信号。 时钟发生器把振荡频率两分频,产生一个两相时钟信号 p1 和 p2 供单片机 使用。p1 在每一个状态 s 的前半部分有效,p2 在每个状态的后半部分有效。 2.3.32.

31、3.3、数码管数码管 在数字需要用数字器件将数字、文字和符号直观地显示出来。能够用来直 观显示数字、文字和符号的器件称为显示器。数字管器件的种类很多,按显示 xtal1 xtal2 方式的不同,可分为字形重迭式、分段式样、点阵式;按发光材料不同可分为 荧光管显示器、半导体发光二极管显示器(led)和液晶显示器(lcd)等。本 设计运用的是 led 数码管。 led 数码显示器是一种由 led 发光二极管组合显示字符的显示器件。它使用 了 8 个 led 发光二极管,其中 7 个用于显示字符,1 个用于显示小数点。led 数 码显示器有两种连接方法: 1)共阴极接法(如图 2.2)。 把发光二极

32、管的阳极连在一起构成公共阴极,使用时公共阴极接地, 每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入低电平时, 发光二极管就导通点亮,而输入高电平时则不点亮。 图 2.2 共阴极接线图 2)共阳极接法(图 2.3)。 把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接地。 每个发光二极管的阴极通过电阻与输入端相连。当阴极端输入高电平时, 发光二极管就导通点亮,而输入低电平时则不点亮。 图 2.3 共阳极线路图 led 显示器的特点是清晰悦目工作电压低(1.53v) 体积小寿面长 响应速度快颜色丰富(有红绿黄) 工作可靠. 表 2-8 lcd 数码管显示字形与字段码关系 显示字形共阳

33、极字段码共阴极字段码显示字形共阳极字段码共阴极字段码 0c0h3fh990h6fh 1f9h06ha88h77h 2a4h5bhb83h7ch 3b0h4fhcc6h39h 499h66hda1h5eh 592h6dhe86h79h 682h7dhf8eh71h 7f8h07h g(熄灯) ffh00h 880h7fh 2.3.42.3.4、键盘电路、键盘电路 1)键盘的结构与原理 触点式按键开关,起主要功能是把机械上的通断转换为电气上的逻辑关系 (1 和 0)。常见的种类有:独立式按键和矩阵式键盘。 开始时,显示“00”,第 1 次按下 sp1 后就开始计时。第 3 次按 sp1 后, 计时

34、归零。 第 2 次按 sp1 后,计时停止。(图 2-9 键盘控制电路) 图 2-9 键盘控制电路 2)按键电路的抖动问题 由于按键是机械触点,当机械触点断开、闭合时,会有抖动,这种抖动对 于人来说是感觉不到的,但对于计算机来说,则是完全可以感觉到的,因为计 算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言, 这已是个“漫长”的时间了。为使 cpu 能正确地读出按键的状态,对每一次按 键只作一次响应,就必须考虑如何去除抖动。常用的去除抖动方法有两种:硬 件方法和软件方法。单片机中常用软件法,软件法其实很简单,就是在单片机 获得端口为低的信息后,不是立即认定开关已被按下,而是

35、延时 10ms 或更长一 些时间后再次检测该口,如果认为低电平,说明开关的确按下了,这实际上是 避开了按键按下的抖动时间。以上是消除键斗动的原则。在本片电路中消除键 的抖动是调用一个 5ms 的延时程序。 第三章第三章 基于基于 at89s51at89s51 的的 9999 马表软件系统马表软件系统 3.13.1、基于单片机、基于单片机 at89s51at89s51 的的 9999 马表汇编程序马表汇编程序 3.1.13.1.1、基于单片机、基于单片机 at89s51at89s51 的的 9999 马表流程图马表流程图 1)主程序框图 t0 中断服务程序框图 图 4.17.2 3.1.23.1

36、.2、基于单片机、基于单片机 at89s51at89s51 的的 9999 马表汇编程序马表汇编程序 tcnta equ 30h ;初始化 tcntb equ 31h sec equ 32h keycnt equ 33h sp1 bit p3.5 org 00h ;主程序从 00 起 ljmp start org 0bh ;定时器 0 中断 0bh 起 ljmp int_t0 start: mov keycnt,#00h ;按键统计为 0 mov sec,#00h ;秒内容(32h)为 0 mov a,sec ;显示秒内容 mov b,#10 div ab mov dptr,#table mo

37、vc a,a+dptr mov p1,a ;显示十位 mov a,b mov dptr,#table movc a,a+dptr mov p2,a ;显示个位 mov tmod,#02h ;选择 8 位定时工作方式;工作方式 2 就具 有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载 工作方式。在这种工作方式中,16 位计数器分为两部分,即以 tl0 为计数器, 以 th0 作为预置寄存器,初始化时把计数初值分别加载至 tl0 和 th0 中,当计 数溢出时,不再象方式 0 和方式 1 那样需要“人工干预”,由软件重新赋值, 而是由预置寄存器 th 以硬件方法自动给计数器

38、tl0 重新加载。 setb et0 setb ea wt: jb sp1,wt ;直接寻址位为 1 转移(按键按下时 sp1 为 0) lcall dely10ms jb sp1,wt ;接着 sp1 变为 1 inc keycnt mov a,keycnt cjne a,#01h,kn1 ;立即数与 a 比较,不等转移 setb tr0 ;tr0 置 1,启动定时器 t0 , 允许定时/计数器计 数 mov th0,#06h ;用于自动恢复定时初值 mov tl0,#06h ;置 t0 定时初值 250us ( 2 的 8 次方减 250,再转为 16 进制) mov tcnta,#00h

39、 mov tcntb,#00h ljmp dkn kn1: cjne a,#02h,kn2 clr tr0 ljmp dkn kn2: cjne a,#03h,dkn ;清零 mov sec,#00h mov a,sec mov b,#10 div ab mov dptr,#table movc a,a+dptr mov p1,a mov a,b mov dptr,#table ; movc a,a+dptr mov p2,a mov keycnt,#00h dkn: jnb sp1,$ ;直接寻址为 0 转移,否则循环 ljmp wt dely10ms: mov r6,#20 d1: mov

40、 r7,#248 djnz r7,$ djnz r6,d1 ;(248*2+2)*20=9960 10ms 延时 ret ;子程序返回 int_t0: inc tcnta mov a,tcnta cjne a,#100,next ;不等转移 mov tcnta,#00h inc tcntb mov a,tcntb cjne a,#40,next ;不等转移 mov tcntb,#00h inc sec mov a,sec cjne a,#100,done mov sec,#00h done: mov a,sec mov b,#10 div ab mov dptr,#table movc a,a

41、+dptr mov p1,a mov a,b mov dptr,#table movc a,a+dptr mov p2,a next: reti table: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end 3.23.2、keilkeil uvision2uvision2 集成开发环境介绍集成开发环境介绍 keil uvision2 集成开发环境是基于 80c51 内核的软件开发平台,支持工 程建立,程序的编译与链接,软件仿真,硬件仿真,目标代码的生成等功能。 keil uvision2 编译器在产生代码的准确性和效率达到了较高的水平。 keil

42、uvision2 的安装与其他软件类似。keil 集成开发环境的工具栏,菜 单等的使用,可参考集成开发环境的帮助文件。 与大多数集成开发环境类似,keil 集成开发环境也使用工程的方法来管 理文件,在一个工程文件中源程序(c51 程序、汇编程序)头文件等都可以进 行统一管理。 3.23.21 1、keilkeil 的使用步骤的使用步骤 1)双击桌面 keil.u.vision2 快捷图标.进入 keil 集成开发环境.在主菜单 中选择 projectnew project.建立一个新工程 pltest.uv2,并根据提示进行工 程的保存等操作。 2)工程保存后,keilc51.u.vision

43、2.将立即弹出对话器件选择框。不同型 号的 51 单片机内部资源不同,keilc51.u.vision2 可以根据所选定的芯片进行 sfp 预定义,在软、硬件仿真时提供观察窗口等,这里假定选用了 atmel 公司 的 at89c51 单片机。 3)新建.c 或.asm 文件并保存代码。这里假设编写的汇编程序和 c51 程序 命名为 p1test.asm 和 p1test.c。p1test.asm 和 p1test.c 文件也可用其他编辑 软件事先写好,再进行在工程中添加源文件,将 p1test.asm 添加到工程中,这 样即可完成一个完整工程的建立工程。添加完 p1test.asm 后的窗口。

44、至此,工 程文件已经做好了进行编译链接的准备。 4)单击编译工程快捷图标或选择下拉菜单中的编译链接选项,即可在 build 窗口中看到编译链接结果。 5)keilc51.u.vision2 集成开发环境为用户提供了仿真调试功能,对应工 程选项对话框中 debug 选项卡的 use simulator 选项,集成开发环境还为制造 商提供了 keil monitor-51 driver 接口,制造商可以利用该接口设计硬件仿真 接口。此外仅使用开发环境的软件仿真调试功能,选中调试菜单的开始调试选 项进行软件仿真,进入调试状态后软件仿真的调试及观察窗口。 5)u.vision2 中给出了全速运行、单步

45、运行等多种运行方式。以及观察各 种变量的窗口,用户可以根据需要使用。 6)编译仿真过程中可以调试软件的语法错误,在软件仿真时可以观察到 p1 口的变化是否符合要求等。要使程序真正能点亮发光二极管,还应与硬件相 结合,给出了硬件的接线图,可将仿真器与硬件相连。点亮发光二极管,还可 将可执行文件写入芯片直接测试程序执行。写入芯片的文件一般为.hex 文件, 要得到.hex 文件,可在工程选项对话框中选择 output 选项卡,选中 great hex file 项即可。下图 3-1 是 keil 软件开发 at89c5199 马表的汇编程序介面: 图 3-1keil 软件开发基于 at89s51

46、的 99 马表的汇编程序介面 3.43.4 仿真软件仿真软件 proteusproteus proteus 软件的特点:全部满足我们提出的单片机软件的标准,并在同类 产品中具有明显的优势。具有模拟电路仿真、数字电路仿真、单片机及其外围 电路组成的系统的仿真、rs232 动态仿真、12c 调试器、sp1 调试器、键盘和 lcd 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器 等。目前支持的单片机类型有:68000 系列、8051 系列、avr 系列、pic12 系列! pic16 系列、pic18 系列、z80 系列、hc11 系列以及各种外围芯片。支持大量的 存储器和外围芯片

47、。总之,该软件是一款集单片机和 spice 分析于一身的仿真 软件,功能极其强大,是其他任何一款软件不能相比的。 3.4.13.4.1、基于、基于 proteusproteus 软件的系统硬件仿真设计软件的系统硬件仿真设计 图 3-2protenus 软件的系统硬件原理图 3.4.23.4.2、基于、基于 proteusproteus 软件的系统硬件仿真运行软件的系统硬件仿真运行 图 3-3proteus 环境下运行效果 3.53.5、硬件系统的设计、硬件系统的设计 3.5.13.5.1、protelprotel dxpdxp 概述概述 protel dxp 是 altium 公司于 2002

48、 年推出的板极电路设计系统,主要运行 于 windowsxp 操作系统。在套软件把原理图设计、电路仿真、pcb 绘制编辑、 拓扑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供 了全线的设计解决方案,使设计者可以轻松进行设计。 3.5.23.5.2、原理图设计系统的特点、原理图设计系统的特点 原理图是电子产品设计的第一步,protel dxp 的原理图编辑器为设计者提 供高速、智能的原理图编辑手段。图 3-6 所示为基于 at89s5199 马表的原理图。 1 1 2 2 3 3 4 4 dd cc bb aa title numberrevisionsize a4 date:

49、2008-6-17sheet of file:g:图sheet1.schdocdrawn by: at89s51 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 rst 9 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.5/t1 15 p3.6/wr 16 p3.7/rd 17 xtal2 18 xtal1 19 gnd 20 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5

50、/a13 26 p2.6/a14 27 p2.7/a15 28 psen 29 ale 30 ea 31 p0.7/ad7 32 p0.6/ad6 33 p0.5/ad5 34 p0.4/ad4 35 p0.3/ad3 36 p0.2/ad2 37 p0.1/ad1 38 p0.0/ad0 39 vcc 40 u1 12 y1 30pf c1 30pf c2 1k r1 s1 100pfc? 1 2 3 4 5 6 7 a b c d e f g 8dp 9 gnd a bf c g d e dp nc ds1 1 2 3 4 5 6 7 a b c d e f g 8dp 9 gnd a bf c g d e dp nc ds

温馨提示

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

评论

0/150

提交评论