版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录 摘摘 要要.I ABSTRACT.II 1 引言引言.1 2 功能要求功能要求.1 3 方案论证与设计方案论证与设计.1 3.1 控制部分的方案选择.1 3.2 测温部分的方案选择.1 3.3 显示部分的方案选择.2 4 系统硬件电路设计系统硬件电路设计.2 4.1 主控器 AT89C52 .2 4.2 时钟电路 DS1302.3 4.2.1. DS1302 的性能特性.3 4.2.2 DS1302 数据操作原理.3 4.3 测温电路的设计.5 4.3.1 温度传感器工作原理 .5 4.3.2 DS18B20 与单片机的接口电路.8 4.4 显示电路的设计.9 4.5 键盘接口的设计
2、.10 5 系统程序的设计系统程序的设计.10 5.1 阳历程序设计.10 5.2 时间调整程序设计.11 5.3 温度程序设计.12 5.3.1 主程序 .12 5.3.2 读出温度子程序 .12 5.3.3 温度转换命令子程序 .12 5.3.4 计算温度子程序 .13 5.3.5 显示数据刷新子程序 .13 调试及性能分析调试及性能分析.13 6.1 调试步骤.14 6.2 性能分析.14 总结总结.14 参考文献参考文献.14 致致 谢谢.14 基于 51 单片机的电子万年历的设计 摘 要 电子万年历是单片机系统的一个应用,由硬件和软件相配合使用。硬件由主控器、时钟电路、 温度检测电路
3、、显示电路、键盘接口 5 个模块组成。主控模块用 AT89C52、时钟电路用时钟芯片 DS1302、显示模块用 LED 数码管、温度检测采用 DS18B20 温度传感器、键盘接口电路用普通按键接 上拉电阻完成;软件利用 C 语言编程实现单片机程序控制。单片机通过时钟芯片 DS1302 获取时间 数据,DS18B20 采集温度信号送该给单片机处理,单片机再把时间数据和温度数据送给 74LS154 译 码,然后通过三极管 C9015 放大驱动 LED 数码管显示阳历年、月、日、时、秒、闹钟、星期、温度。 关键词 电子万年历;单片机;温度传感器;时钟;数码显示 I Abstract Electron
4、ic perpetual calendar which is an application of the single-chip processor system, is utilized by combining hardware and software. And Hardware is composed of five modules: Main control unit, clock circuit, temperature test circuit, display circuit, keyboard interface. Main control board adopts AT89
5、S52, clock circuit adopts the DS1302 clock chip, display module adopts the LED digital tube, and temperature test adopts the DS18B20 temperature sensor, keyboard interface circuit is completed by connecting ordinary button with pull-up resistor. Software takes advantage of C to program, so as to rea
6、lize the programmed control of single-chip processor. Single-chip processor gets the time data through using the DS1302 clock chip. The DS18B20 gathers temperature signals and transmits them to single-chip processor. Then, single-chip processor transmits the time data and the temperature data to the
7、 74LS154 decoder. Lastly, the LED displays solar calendar year, year, month, day, hour, minute, second, alarm clock, week and temperature with being enlarged and driven by the C9015 triode. Keywords: Electronic perpetual calendar; single-chip processor; temperature sensor; clock; digital display 马培:
8、基于 51 单片机的电子万年历设计 共 15 页,第 0 页 1 1 引言引言 随着微电子技术和超大规模集成电路技术的不断发展,家用电子产品不但种类日益丰富,而 且变得更加经济实用,单片微型计算机体积小、性价比高、功能强、可靠性高等独有的特点,在 各个领域得到了广泛的应用。电子万年历是一种应用非常广泛的日常计时工具,数字显示的日历 钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用。LED 数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。功能 也越来越齐全,除了公历年月日、时分秒、星期显示及闹铃。但通过我们对各种电子钟表、历的 不断观
9、察总结发现目前市场的钟、历都存在一些不足之处,比如:时钟不精确、产品成本太高、 无环境温度显示等,这都给人们的使用带来了某些不便。为此设计了一种功能全面、计时准确、 成本低廉的基于 51 单片机的万年历。 2 2 功能要求功能要求 1. 万年历能用数码管显示阳历年、月、日、星期、小时、分、秒并设置指定时间的闹铃。 2. 数字式温度计要求测温范围-50100C, LED 数码管直读显示。 3 3 方案论证与设计方案论证与设计 3.13.1 控制部分的方案选择控制部分的方案选择 1. 用可编程逻辑器件设计。可采用 ALTERA 公司的 FLEX10K 系列 PLD 器件。设计起来结构清晰, 各个模
10、块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本 设计的特点,EDA 在功能扩展上比较受局限,而且 EDA 占用的资源也相对多一些。从成本上来讲, 用可编程逻辑器件来设计也没有什么优势。 2. 用凌阳 16 位单片机设计。凌阳 16 位单片机有丰富的中断源和时基,方便本实验的设计。 它的准确度相当高,并且 C 语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O 口功能 也比较强大,方便使用。用凌阳 16 位单片机做控制器最有特色的就是它的可编程音频处理,可完 成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。但 是,在控
11、制与显示的结合上有些复杂,显示模组资源相对有限,而且单片机的稳定性不是很高。 3. 主控芯片使用 51 系列 AT89C52 单片机,时钟芯片用美国 DALLAS 公司推出的一种高性能、 低功耗、带 RAM 的时钟 DS1302。采用 DS1302 作为主要计时芯片,可以做到计时准确。更重要的是, DS1302 可以在很小电流的后备电源(2.55V 电源,在 2.5V 时耗电小于 300nA)下继续计时,停 电后时钟无需重新调整,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备 电源基本不耗电,还可自设闹铃,阳历、星期与年月日自动对应。本系统采用了此方案。 3.23.2 测温部分
12、的方案选择测温部分的方案选择 1.在日常生活及工农业生产中经常要乃至温度的检测及控制,传统的测温元件有热电偶和热电 阻。而热电偶和热电阻测一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持,硬件 电路复杂,软件调试复杂,制作成本高。 2.与前面相比,采用美国 DALLAS 半导体公司继 DS1820 之后推出的一种改进型智能温度传感器 DS18B20 作为检测元件,测温范围为-55125,最大分辨率可达 0.0625。DS18B20 可以直 接读出被测温度值,而且采用 3 线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用 的特点。 共 15 页,第 1 页 3.33.3 显示
13、部分的方案选择显示部分的方案选择 1. 液晶显示方式。液晶显示效果出众,可以运用菜单项来方便操作,但是在显示时,特别是 使用秒表功能时扫描速度跟不上,屏幕会有明显的闪烁。而且由于 61 板的存储空间有限,液晶显 示就不能与语音播抱程序同时实现。这些大大影响了电子万年历的性能。 2. 相比液晶显示,8 段数码管虽然操作比液晶显示略显繁琐,但可视范围十分宽,而且经济 实惠,也不需要复杂的驱动程序。所以最后选择 LED 数码管显示方案。 综上所述,按照系统设计功能的要求,确定硬件系统由主控制器、时钟模块、测温电路、显示 模块、键盘接口共 5 个模块组成,总体系统构成框图如图 3.1 所示。 图 3.
14、1 电子万年历系统构成框图 4 4 系统硬件电路设计系统硬件电路设计 电子万年历电路原理图见附件一,系统由主控制器 AT89C52、时钟芯片 DS1302、温度传感器 DS18B20 传感器、显示电路及键盘扫描电路组成。 4.14.1 主控器主控器 AT89C52AT89C52 ATMEL 公司生产的 AT89C52 单片机采用高性能的静态 80C51 设计,由先进工艺制造,并带有非 易失性 Flsah 程序存储器。它是一种高性能、低功耗的 8 位 CMOS 微处理芯片,市场应用最多。主 要性能特点有: 8KB Flash ROM,可以檫写 1000 次以上,数据保存 10 年。 256 字节
15、内部 RAM。 电源控制模式 时钟可停止和恢复; 空闲模式; 掉电模式。 6 个中断源。 4 个中断优先级。 4 个 8 位 I/O 口。 全双工增强型 UART。 3 个 16 位定时/计数器,T0、T1(标准 80C51)和增加的 T2(捕获和比较) 。 全静态工作方式:024MHz。 DS1302 时钟模块 AT89C52 主控制器 DS18B2 温度探测 键盘扫描电路 数码显示电路 马培:基于 51 单片机的电子万年历设计 共 15 页,第 2 页 4.24.2 时钟电路时钟电路 DS1302DS1302 4.2.1.4.2.1. DS1302DS1302 的性能特性的性能特性 实时时
16、钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数; 用于高速数据暂存的 318 位 RAM; 最少引脚的串行 I/O; 2.55.5V 电压工作范围; 2.5V 时耗电小于 300nA; 用于时钟或 RAM 数据读/写的单字节或多字节(脉冲方式)数据传送方式; 简单的 3 线接口; 可选的慢速充电(至 Vcc1)的能力。 DS1302 时钟芯片包括实时时钟/日历和 31 字节的静态 RAM。它经过一个简单的串行接口与微 处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于 31 天的月和月末 的日期自动调整,还包括闰年校正的功能。时钟的运行可以采用 24h 或带 A
17、M(上午)/PM(下午)的 12h 格式。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM 数据。DS1302 有主电源/后备电源双电源引脚:Vcc1在单电源与电池供电的系统中提供低电源, 并提供低功率的电池备份;Vcc2在双电源系统中提供主电源,在这种运用方式中,Vcc1连接到备份 电,以便在没有主电源的情况下能保存时间信息以及数据。DS1302 由 Vcc1或 Vcc2中较大者供电。 当 Vcc2大于 Vcc1+0.2V 时,Vcc2 给 DS1302 供电;当 Vcc2小于 Vcc 时, DS13026 由 Vcc1供电。 4.2.24.2.2
18、DS1302DS1302 数据操作原理数据操作原理 DS1302 在任何数据传送时必须先初始化,把 RST 脚置为高电平,然后把 8 位地址和命令字装 入移位寄存器,数据在 SCLK 的上升沿被输入。无论是读周期还是写周期,开始 8 位指定 40 个寄存 器中哪个将被访问到。在开始 8 个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在 读操作时输出数据,在写操作是写入时写入数据。时钟脉冲的个数在单字节方式下为 8 加 8,在多 字节方式下为 8 加字节数,最大可达 248 字节数。 如果在传送过程中置 RST 脚为低电平,则会终止本次数据传送,并且 I/O 引脚变为高阻态。上 电运行
19、时,在 Vcc 大于等于 2.5V 之前,RST 脚必须保持低电平。只有在 SCLK 为低电平时,才能将 RST 置为高电平。DS1302 的引脚及内部结构图如图 4.1 所示,表 4.1 为各引脚的功能。 DS1302 的控制字如图 4.2 所示。控制字节的最高位(位 7)必须是逻辑 1;如果它为 0,则不 能把数据写入到 DS1302 中。位 6 如果为 0,则表示存取日历时钟数据;为 1 表示存取 RAM 数据。 位 51(A4A0)指示操作单元的地址。最低有效位(位 0)如为 0,表示要进行写操作;为 1 表 示进行读操作。控制字节总是从最低位开始输入/输出。 为了提高对 32 个地址
20、的寻址能力(地址/命令位 15=逻辑 1) ,可以把时钟/日历或 RAM 寄存 器规定为多字节(burst)方式。位 6 规定时钟或 RAM,而位 0 规定读或写。在时钟/日历寄存器中 的地址 931 或 RAM 寄存器中的地址 31 不能寄存数据。在多字节方式中,读或写从地址 0 的位 0 开始。必须按数据传送的次序写最先的 8 个寄存器。但是,当以多字节方式写 RAM 时,为了传送数 据不必写所有 31 字节。不管是否写了全部 31 字节,所写的每一字节都将传送至 RAM。 共 15 页,第 3 页 1 2 3 4 5 6 7 8Vcc1 SCLK I/O RST Vcc2 X1 X2 G
21、ND 电源 控制 Vcc1 Vcc2 GND 输入移位 寄存器 I/O SCLK 实时时钟 命令与 控制逻辑 振荡器与 分频器 318RAM RST X2X1 32.768kHz DATA BUS 图 4.1 DS1302 引脚及内部结构 表 4.1 DS1302 引脚功能 引脚号引脚名称功 能 1Vcc2主电源 2,3X1,X2振荡源,外界 32.768kHz 晶振 4GND地线 5RST复位/片选线 6I/O串行数据输入/输出端(双向) 7SCLK串行数据输入端 8Vcc1后备电池 7 6 5 4 3 2 1 0 1 RAM CK A4A3A2A1A0 RAM K 图 4.2 DS1302
22、 的控制字 DS1302 共有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。 其日历、时间寄存器及其控制字见表 3.2,其中奇数为读操作,偶数为写操作。 时钟暂停:秒寄存器的位 7 定义位时钟暂停位。当它为 1 时,DS1302 停止震荡,进入低功耗 的备份方式。通常在对 DS1302 进行写操作时(如进入时钟调整程序) ,停止震荡。当它为 0 时,时 钟将开始启动。 AMPM/1224小时方式:小时寄存器的位 7 定义为 12 或 24小时方式选择位。它为高 电平时,选择 12小时方式。在此方式下,位 5 是 AM/PM 位,此位是高电平时表示 PM
23、 低电平表示 AM。在 24小时方式下,位 5 为第二个 10小时位(2023h) 。 马培:基于 51 单片机的电子万年历设计 共 15 页,第 4 页 表 4.2 内部寄存器地址和内容 命令字节 积存器内容 积存器名 写读 取值范围 76543210 秒积存器80H81H0059CH10SSEC 分积存器82H83H0059010 minMIN 小时积存器84H85H0023 或 011212/24010A/PHRHR 日积存器85H87H0128,29,30,310010DATEDATE 月积存器88H89H011200010MMONTH 周积存器8AH8BH010700000DAY 年
24、积存器8CHD3H009910YEARYEAR DS1302 的晶震选用 32.768kHz,电容推荐值为 33pF,因为震荡频率较低,也可以不接电容, 对计时精度影响不大。 4.34.3 测温电路的设计测温电路的设计 测温电路主要使用温度传感器 DS18B20,由于精度要求不高所以采用 2 位共阳 LED 数码管以动 态扫描法实现温度显示。其设计原理图如附件一所示。 4.3.14.3.1 温度传感器工作原理温度传感器工作原理 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传 统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要示
25、通过简单的编程实现 912 位的数字值读数方式。DS18B20 的性能特点如下: 独特的单线接口仅需要一个端口引脚进行通信; 多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能; 无须外部器件; 可通过数据线供电,电压范围为 3.03.5V; 零待机功耗; 温度以 9 或 12 数字量读出; 用户可定义的非易失性温度报警设置; 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20 采用 3 脚 PR35 封装或脚 SOIC 封装,其内部结构框图如图 4.3 所示。 64 位 ROM 的位
26、结构如图 4.4 所示。开始 8 位是产品类型的编号,接着是每个器件的唯一的序 号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信 的原因。非易失性温度报警触发器 TH 和 TL,可通过软件写入户报警上下限。 DS18B20 温度传感器的内部存储器还包括一个调整暂存 RAM 和一个易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节存储器,结构如图 4.5 所示。头 2 个字节包含测得的温度信 息,第 3 和第 4 节是 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节为配置寄存 共 15
27、页,第 5 页 器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时按此寄存器中的分辨率将温度转 换为相应 64 位 ROM 和 单线接口 图 4.DS18B20 内部结构图 存储器与控制逻辑 高速 缓存 温度传感器 高温触发器 TH 低温触发器 TL 配置寄存器 8 位 CRC 发生 器 I/O C VDD 8 位检验 CRC48 位序列号8 位工厂代码 (10H) MSB LSB MSB LSB MSB LSB 图 4.4 64 位 ROM 结构图 温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 TH 用户字节 1 配置寄存器 TL 用户字节 2 保留 保
28、留 保留 CRC 1 字节 2 字节 3 字节 4 字节 5 字节 6 字节 7 字节 8 字节 9 字节 图 4.5 高速暂存 RAM 结构图 精度的数值。该字节各位的定义如图 4.6 所示。低 5 位一直 1,M 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动,R1 和 R0 决定温度转换的精度位数,即用来设置分辨率,定义方法见表 4.3。 由表 4.3 可见,DS18B20 温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据 转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存
29、RAM 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值就以 16 位带符号扩 展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通过单线接口读出该数据, EEROM 马培:基于 51 单片机的电子万年历设计 共 15 页,第 6 页 读数据时低位在先,高位在后,数据格式以 0.0625C/LSB 形式表示。温度值格式如图 4.7 所示。 TMR1R011111 图 4.6 配置寄存器 表 4.3 DS18B
30、20 分辨率的定义规定 R1R0分辨率/位测量最大转换时间/ms 00993.75 0110187.5 1011375 1112750 表 4.4 DS18B20 温度与测得值对应表 温度/C二进制表示十六进制表示 +1250000 0111 1101 000007D0H +850000 0101 0101 00000550H +25.06250000 0001 1001 00010191H +10.1250000 0000 1010 001000A2H +0.50000 0000 0000 10000008H 00000 0000 0000 00000000H -0.51111 1111 1
31、111 1000FFF8H -10.1251111 1111 0101 1110FF5EH -25.06251111 1110 0110 1111FE6FH -551111 1100 1001 0000FC90H 232221202-12-22-32-4 SSSSSS6S5S4 图 4.7 温度数字值格式 LS 字节 MS 字节 共 15 页,第 7 页 预置 计数 器 1 减法计数器 1 低温度系数振荡器 减到 0 减法计数器 2 预置 温度寄存器 减到 0高温度系数振荡器 斜率累加器 计数比较器 增加 图 4.8 DS18B20 测温原理图 停止 当符号位 S=0 时,表现测得的温度值为正
32、值,可以直接将二进制位转换为十进制,当符号位 S=1 时,表示测得的温度值为负值,要先将补码变成原码再计算十进制值。表 4.4 是一部分温度值 对应的二进制温度数据。 DS18B20 完成温度转换后,把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。若 TTH 或 T4.1ms 等待100us 检查忙标志或延时 40us 检查忙标志或延时 40us 检查忙标志或延时 40 us 检查忙标志或延时 1.64 检查忙标志或延时 40 第第 3 3 节节 软件设计软件设计 主要能过编写软件来控制硬件完成以下各模块的功能: 3.13.1 定时读数定时读数 3.23.2 量程转换量程转换 电
33、源 开 VDD 上升到 4.5V 后等待15 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 N F RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 0 RS R/W DB7 DB6
34、 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 0 0 1 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 0 1 I/D S 初 始 化 结 束 共 15 页,第 27 页 3.33.3 BCDBCD 转换转换 3.4LCD3.4LCD 显示的功能显示的功能 单片机当C/T=1时为计数方式,多路开关与定时器的外部引脚连通,外部计数脉冲 由引脚输入。当外部信号由1至0跳变时,计数器加1,此时T0成为外部事件的计数器。 由于确认一次由1至0的跳变要用24个振荡器周期,所以计数器的计数频率为单片机内 部计数器频率的
35、1/24。 当CT=0时为定时方式,对单片机内部计数器进行m2分频后,计数器的实际计数 频率为单片机内部频率凡的1/m2, 当GATE=0时,反相器输出为1,或门输出为1,打开与门,使定时器的启动仅受TRO 端信号电平的控制。 在此种情况下,INT0引脚的电平变化对或门不起作用。TRO=1时接通控制开关,计 数脉冲加到计数器上,每来一个计数脉冲,计数器加1,只有当TRO=0时,控制开关断 开,计数器停止计数。 当GATA=0时,若TRO=1,或门、与门全部打开,外部信号电平通过INTO引脚直接控制定 时器的启动和关闭。输人高电平时允许计数,否则停止计数。 根据定时器的结构原理,若我们将 GAT
36、E 位、TR0 均设为1 ,INT0 端输人被测频 率信号,当被测信号的高电平到来时,开始计数;当被测信号的低电平到来时,计数 器停止计数,此时 TL0、TH0 的数据就是相应的 N 值。 马培:基于 51 单片机的电子万年历设计 共 15 页,第 28 页 结结 束束 语语 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。 在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量 迅速,精确度高,显示直观,会被经常使用到。 通过本次课程的设计,不但加深我对在课程上所学到的单片机理论知识的认识和 理解,重新让自己认识到了这门学科的在应用方面的广阔前景,
37、并且通过知识与应用 于实践的结合更加丰富了自己的知识。扩展了知识面,不但掌握了本专业的相关知识, 而且对其他专业的知识也有所了解,而且较系统的掌握单片机应用系统的开发过程, 因而自身的综合素质有了全面的提高 。 经过这次一个较完整的产品设计和制作过程,对于认识到自己在知识方面存在的 不足,明确今后的学习方向是非常有益的,为将来的的就业提前打了下坚实的基础。 在设计过程中,得到了我的指导老师的悉心指导与帮助,还有其他老师和同学的大力 支持和协助,在此一并表示衷心的感谢。 共 15 页,第 29 页 参考文献参考文献 1李光飞 ,楼苗然主编.51系列单片机.北京:北京航空航天大学出版社,2003
38、2黄正瑾编著.CPLD系统设计技术入门与应用. 北京: 电子工业出版社, 2002 3谢自美编著.电子线路设计实验测试.华中理工大学出版社,2002 4陈永甫编著.电子电路智能化设计.实例与应用.北京:电子工业出版,2002.8 5康华光主编.电子技术 基础(第四版).北京:高等教育出版社,1999 马培:基于 51 单片机的电子万年历设计 共 15 页,第 30 页 附录附录 汇编源程序代码汇编源程序代码 RS BIT P2.0 ;P3.4 脚接 RS 端 RW BIT P2.1 ;P3.5 脚接 R_W 端 E BIT P2.2 ;P3.3 脚接 E 端 ORG 0000H LJMP MA
39、IN ORG 002BH LJMP IT1 MAIN: MOV P0,#01H ;清除屏幕 ACALL ENABLE MOV P0,#01H ;清除屏幕 ACALL ENABLE MOV P0,#01H ;清除屏幕 ACALL ENABLE MOV P0,#38H ;8 位点阵方式 ACALL ENABLE MOV P0,#0cH ;开显示 ACALL ENABLE MOV P0,#06H ;移动光标 ACALL ENABLE MOV P0,#80H ;显示位置 ACALL ENABLE mov p0,#80h ;第一行的位置 call enable mov dptr,#date call w
40、rite3 mov p0,#0c0h ;第二行的位置 call enable MOV SP,#7FH CLR CY mov r6,#00 mov r2,#00 MOV R3,#00 MOV TMOD,#15H MOV TL0,#00H MOV TH0,#00H mov th1,#high(65536-50000) mov tl1,#low(65536-50000) ;setb ET1 cha1: SETB TR1 ;LCALL XIANSHI SETB TR0 共 15 页,第 31 页 mov 27h,#00h CLR C MOV C,P1.6 MOV 27H.0,C CLR C MOV C
41、,P1.7 MOV 27H.1,C mov a,27h ANL A,#03H MOV 17H,A CHA: JBC TF1,JINWEI ;益处进位 JMP CHA JINWEI:CLR TR1 mov th1,#high(65536-50000) mov tl1,#low(65536-50000) SETB TR1 INC R3 MOV A,R3 ;JNB P3.2,$ CJNE A,#20,CHA CLR TR0 CLR TR1 MOV R3,#00 MOV R2,TH0 MOV R6,TL0 lcall zhuan LCALL write1 MOV TL0,#00H MOV TH0,#0
42、0H jmp cha1 ZHUAN: MOV A,R2 CLR C MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 24H,#00H MOV 25H,#00H MOV R3,#10H NEXT: RLC A MOV R2,A MOV A,20H ADDC A,20H DA A MOV 20H,A MOV A,21H 马培:基于 51 单片机的电子万年历设计 共 15 页,第 32 页 ADDC A,21H DA A MOV 21H,A MOV A,22H ADDC A,22H DA A MOV 22H,A MOV A,R2 DJNZ R3,NEXT MOV
43、 A,R6 clr c MOV R3,#08H NEXT1: RLC A MOV R6,A MOV A,24H ADDC A,24H DA A MOV 24H,A MOV A,25H ADDC A,25H DA A MOV 25H,A mov a,r6 DJNZ R3,NEXT1 clr c mov a,24h addc a,20h da a mov 20h,a mov a,25h addc a,21h da a mov 21h,a mov a,22h addc a,#00h da a mov 22h,a mov a,22h anl a,#0fh mov 31h,a mov a,22h anl
44、 a,#0f0h swap a mov 30h,a mov a,21h 共 15 页,第 33 页 anl a,#0f0h swap a mov 32h,a mov a,21h anl a,#0fh mov 33h,a mov a,20h anl a,#0f0h swap a mov 34h,a mov a,20h anl a,#0fh mov 35h,a ret ;* ;LCD 显示 ;* ENABLE: CLR RS CLR RW CLR E ACALL DELAY SETB E RET write1: ;写数据 MOV 10H,#00H MOV 11H,#00H MOV 12H,#00H
45、 MOV 13H,#00H MOV 14H,#00H MOV 15H,#00H MOV 16H,#00H mov p0,#0ch call enable mov p0,#0c0h ;第二行的位置 call enable MOV A,17H XRL A,#02H JNZ XIAN1 MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,30H 马培:基于 51 单片机的电子万年历设计 共 15 页,第 34 页 MOV 44H,31H MOV 45H,32H JMP XIAN XIAN1:MOV A,17H XRL A,#01H JNZ XIAN2 MOV
46、 40H,#00H MOV 41H,#00H MOV 42H,30H MOV 43H,31H MOV 44H,32H MOV 45H,33H JMP XIAN XIAN2:MOV A,17H XRL A,#00H JNZ XIAN3 MOV 40H,#00H MOV 41H,30H MOV 42H,31H MOV 43H,32H MOV 44H,33H MOV 45H,34H JMP XIAN XIAN3:MOV A,17H XRL A,#03H JNZ XIAN MOV 40H,30H MOV 41H,31H MOV 42H,32H MOV 43H,33H MOV 44H,34H MOV 4
47、5H,35H XIAN:mov r0,#40h mov a, r0 JZ L20 MOV 10H,#0FFH MOV 15H,#0FFH mov dptr,#date1 movc a,a+dptr call write2 L20:INC R0 共 15 页,第 35 页 MOV A, 10H CJNE A, #00H,PP mov a, r0 JZ L21 PP: MOV 11H,#0FFH MOV 15H,#0FFH mov a, r0 mov dptr,#date1 movc a,a+dptr call write2 L21:INC R0 MOV A, 11H CJNE A, #00H,P
48、P2 mov a, r0 JZ L22 PP2: MOV 12H,#0FFH MOV 15H,#0FFH mov a, r0 mov dptr,#date1 movc a,a+dptr call write2 MOV A, 15H CJNE A,#0FFH,L22 MOV A,#00H mov dptr,#XIAOSHUDIAN movc a,a+dptr call write2 L22: INC R0 MOV A, 12H CJNE A, #00H,PP3 mov a, r0 JZ L23 PP3: MOV 13H,#0FFH mov a, r0 mov dptr,#date1 movc a
49、,a+dptr call write2 L23:INC R0 MOV A, 13H CJNE A, #00H,PP4 mov a, r0 马培:基于 51 单片机的电子万年历设计 共 15 页,第 36 页 JZ L24 PP4: MOV 14H,#0FFH mov a, r0 mov dptr,#date1 movc a,a+dptr call write2 L24:INC R0 mov a, r0 mov dptr,#date1 movc a,a+dptr call write2 MOV A,15H CJNE A, #00H,KHZ MOV A,#00H MOV dptr,#DANWEI1
50、 JMP QUSHU KHZ:MOV dptr,#DANWEI2 QUSHU:movc a,a+dptr call write3 mov r5,#4 l3:mov a,#20h call write2 djnz r5,l3 ret write2: mov p0, a setb rs CLR rw clr e call delay setb e ret write3: mov r1,#00h ;写数据 a2: mov a, r1 movc a, a+dptr call write2 inc r1 cjne a,#00h,a2 ret delay: mov r7, #255 d1: mov r6,
51、 #255 共 15 页,第 37 页 d2: djnz r6, d2 djnz r7, d1 ret date: db the frequency is,00h date1: db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h DANWEI1: DB HZ ,00h DANWEI2: DB KHZ ,00h XIAOSHUDIAN: DB .,00h 马培:基于 51 单片机的电子万年历设计 共 15 页,第 38 页 基于单片机的简易逻辑分析仪基于单片机的简易逻辑分析仪 目目 录录 第第 1 1 节节 引引 言言3 1.1 系统概述3 1.1.1 系统的特
52、点4 1.1.2 系统的功能4 第第 2 2 节节 系统主要硬件电路设计系统主要硬件电路设计5 2.1 系统结构框图5 2.2 主体控制模块5 2.3 系统硬件的主体实现7 2.3.1 数字信号发生器模块的电路设计与实现7 2.3.2 主控系统模块的电路设计与实现8 2.3.3 LED 显示模块的电路设计与实现10 2.3.4 硬件的抗干扰措施12 第第 3 3 节节 系统软件设计系统软件设计13 3.1 系统软件流程13 3.2 中断服务子程序15 3.3 AT24C04 程序设计15 第第 4 4 节节 结束语结束语19 参考文献参考文献20 基于单片机的简易逻辑分析仪基于单片机的简易逻辑
53、分析仪 共 15 页,第 39 页 第第 1 节节 引引 言言 信息时代是数字化的时代,数字技术的高速发展,出现了以高性能计算机为核心的 数字通信、数字测量的数字系统。在研究这些数字系统产品的应用性能的同时也必须 研究在设计、生产和维修他们的过程中,如何验证数字电路设计的合理性、如何协调 硬件及其驱动应用软件的工作、如何测量其技术指标以及如何评价其性能。逻辑分析 仪的出现,为解决这些问题提供了可能。 随着数字系统复杂程序的增加,尤其是微处理器的高速发展,用示波器测试己显 得有些无能为力。1973 年在美国应运而生的逻辑分析仪(Logic Analyzer),能满足数 字域测试的各种要求。它属于
54、总线分析仪一类的数据域测试仪器*主要用于查找总线 (或多线)相关故障同时对于数据有很强的选择能力和跟踪能力,因此,逻辑分析汉 在数字系统的测试中获得了广泛的应用。 逻辑分析仪(Logic Analyzer)是以逻辑信号为分析对象的测量仪器。是一种数 据域仪器,其作用相当于时域测量中的示波器。正如在模拟电路错误分析中需要示波 器一样,在数字电路故障分析中也需要一种仪器,它适应了数字化技术的要求,是数 字、逻辑电路、仪器、设备的设计、分析及故障诊断工作中不可按少的工具。在测试 数字电路、研制和维修电子计算机、微处理器以及各种集成化数字仪表和装置中具有 广泛的用途;还是数字系统设计、侦错、软件开发和
55、仿真的必备仪器;作为硬件设计 中必不可少的检测工具,还可将其引入实验教学中,建立直观感性的印象,提升学生 的硬件设计能力,可以全面提高教学质量; 随着科技的发展,LA 在多通道、大存储量、 高采样速率、多触发功能方面得到更快的发展,在航天、军事、通信等数字系统领域 得到越来越广泛的应用。 我们从上面可以看出逻辑分析仪在各个领域的广泛应用。那么我们在学习、应用 的同时设计并制作一个简易的逻辑分析仪就显的意义重大了,这样这个过程既可以让 我们更加深入理解其原理,又可以提高动手设计并制作整个系统电路的能力,还可以 将其作为简易仪器应用于以后的实验中。 1.11.1系统概述系统概述 因在本节中,我们将
56、对简易逻辑分析仪的应用进行分析。给出它的特点,能实现的 功能以及系统的简单操作 1.1.11.1.1 系统的特点系统的特点 逻辑分析仪也称逻辑示波器,它是用来分析数字系统逻辑关系的一种仪器。逻辑 分析仪的主要作用有二个:一是用于观察的形式显示出数字系统的运行情况,相当于 扩展了人们的视野,起一个逻辑显示器的作用;二是对系统运行进行分析和故障诊断。 马培:基于 51 单片机的电子万年历设计 共 15 页,第 40 页 一般的逻辑分析仪是由数据获取和数据显示两大部分组成的。前者捕获并存储所 要观察分析的数据,后者用多种形式显示这些数据。在这里,关键是触发它的作用 是在被分析的数据流中按索特定的数据
57、字。一旦发现这个数据字,便产生触发信号去 控制和存储有效数据。因此,它决定了观察的数据窗口在数据流中的位置。 本设计具有以下特点: 1、具有足够多的输入通道,一般的示波器只有 2 路通道,本设计了 8 路输入通道。 2、多种触发方式:设置了单字触发和三级触发两种触发模式 3、具有记忆能力:采用 EEPROM 实现数据的掉电存储 本设计的主要特色: 数字信号发生器使用 AT89C2051 单片机来控制,达到了高精度的信号输出。 数字信号的逻辑状态显示也用 AT89C2051 单片机辅助主 CPU 系统实现。 使用 D/A 电阻网络,结合单片机对信号幅度进行灵活地控制。 采用发光二极管来指示电路测
58、试点,一目了然,便于调试。 在系统的软硬件设计中均加入了运行良好的抗干扰措施。 强大的软件设计功能,大大简化了硬件电路。 1.1.21.1.2 系统的功能系统的功能 逻辑分析仪的逻辑分析仪(简称 LA)是新型的数据域分析仪器,它有许多 独特的功能。把这些功能分成取数、触发、存储、显示等几个方面, 本系统实现的功能是: (1)能产生 8 路可预置的循环移位逻辑信号序列,输出信号为 TTL 电平,序列时钟 频率为 100Hz,并能够重复输出。 (2)单次触发采集存储显示,单次触发方式是指在满足触发条件后,能对被测信号进 行一次采集、存储。之后输出通过 DAC 转化为模拟电压后输出,在示波器上显示出
59、 8 路信号,并能显示触发位置。 (3)任意两通道三级触发存储显示,由键盘输入 8 路中任意 2 通道的通道号及 3 级触 发字,当指定通道的触发字连续依次满足时,能对被测信号进行一次采集,存储,送 DAC 后输出显示。同时在屏幕上标记出 3 级触发字的位置。 (4)显示触发字的位置,可以在模拟示波器显示屏上对触发字进行标记。 (5)显示可以移动的光标,可以通过键盘的加、减控制光标在水平方向的坐标。 (6)翻页显示,可以用键盘控制翻页显示,每隔 32bit 为一页的内容,扩展了存储深 度。 第第 2 2 节节 系统主要硬件电路设计系统主要硬件电路设计 2.12.1 系统结构框图系统结构框图 共
60、 15 页,第 41 页 图 2-1 系统结构框图 本系统采用单片机和可编程器件作为数据处理及控制核心,整个系统由一个信号 发生器和一个简易逻辑分析仪构成。将设计任务分解为数字信号发生、信号采集存储、 信号融合处理、显示、掉电保护等功能模块。图 1 即为该系统的总体框图。考虑到硬 件电路的紧凑性,故将上述模块合理分配连接成以下三个模块:数字信号发生器、最 小系统主控器、键盘/显示。由于数字信号发生器是用于测试的需要而设计的一个模块, 那么下面对各模块的设计进行逐一论证比较。 2.22.2 主体控制模块主体控制模块 系统主控模块包括最小系统和数字信号处理控制模块。该模块是硬件电路的核心, 有如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论