《2022年单片机系统的电子钟设计方案与仿真.docx》由会员分享,可在线阅读,更多相关《2022年单片机系统的电子钟设计方案与仿真.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品学习资源基于单片机系统的电子钟设计与仿真王金胜摘 要近年来随着运算机在社会领域的渗透和大规模集成电路的进展,单片机的应用正在不断地走向深化,由于它具有功能强,体积小,功耗低,价格廉价,工作牢靠,使用便利等特点,因此越来越广泛地应用各个领域 .本文的电子钟系统是以单片机 as the core, the clock chip DS1302, LED display driver chip components, such as MAX7219 component.Describes the application of Proteuss ISIS software of the electr
2、onic single-chip system clock to achieve the design and simulation methods in details.The method can not only test the property of the system precisely,but also improve development efficiency and reduce development cost,which values in popularity.Key words: AT89C51 ; DS1302; MAX7219 ;Proteus; electr
3、onics clock欢迎下载精品学习资源目 录第一章绪论. 21.1 引言 21.2 Proteus 软件简介 2其次章系统设计2.1 电子钟系统器件挑选 332.1.1 AT89C51单片机简介 .32.1.2实时时钟电路 DS1302工作原理 .62.1.3 MAX7219工作原理简介 .82.2 电子钟系统设计流程 .11第三章硬件电路设计. 123.1 Protel DXP 电路图设计 .123.2 Proteus 电路图设计 12第四章软件设计. 144.1 程序流程图设计 .144.2 源程序设计 .144.3 KeilC51 进行程序调试 18第五章系统调试与仿真.195.1
4、Proteus 中 Hex 文件挑选 .195.2 Proteus 进行电子钟系统仿真 .20终止语21参考文献.21致谢.21欢迎下载精品学习资源第一章 绪 论1.1 引 言随着半导体技术的飞速进展,以及移动通信、网络技术、多媒体技术在嵌入 式系统设计中的应用,单片机从4 位、8 位、16 位到 32 位,其进展历程始终受到广大电子爱好者的极大关注;单片机功能越来越强大,价格却不断下降的优势无疑 成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到 基于单片机系统的开发行列中,推动着单片机技术的创新进步;然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格
5、不菲的电子设备外,开发过程也较繁琐;来自英国Labcenter Electronics公司的Proteus软件很好地诠释了利用现代EDA工具便利快捷开发单片机系统的优势;它 包括 PROTEUS VSMVirtual System Modelling )、 PROTEUS PCB DESIG两N大组成部分,在 PC 机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程;单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面 ,其调试过程一般分为软件调试、硬件测试、系统调试3 个过程;
6、假如采纳单片机系统的虚拟仿真软件Proteus ,就不用制作详细的电路板也能够完成以上工作;1.2 Proteus 软件简介PROTEU软S 件由 Labcenter 公司开发,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微掌握器系统与外设的混合 电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是目前唯独能够对各种处理器进行实时仿真、调试与测试的EDA工具;微掌握器系统相关的仿真需建立编译和调试环境,可挑选Keil C51uVision2软件;该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时仍支持 PLM、汇编和 C语言的程
7、序设计;它的界面友好易学,在调试程序、软件仿真方面有很强大的功能; 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、 LED、LCD、欢迎下载精品学习资源开关等,实时看到运行后的输入、输出的成效,协作系统配置的虚拟仪器如示波器、规律分析仪等, Proteus为我们建立了完备的电子设计开发环境;欢迎下载精品学习资源其次章系统设计2.1 电子钟系统硬件组成电子钟系统硬件主要由 AT89C51单片机、时钟芯片 DS1302、数码管显示驱动芯片MAX7219等元器件组成;AT89C51是一种带 4K 字节闪耀可编程
8、可擦除只读储备器的低电压,高性能位微处理器,俗称单片机CMOS8DS1302 是美国 DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时;MAX7219是 MAXIM公司生产的串行输入 / 输出共阴极数码管显示驱动芯片;单片机晶振电路8位LED 显示单片机复位电路时钟芯片DS1302AT89C51单片机数码管显示驱动芯片MAX7219蜂鸣器按键电路图 2.1 电子钟系统硬件电路组成框图2.1.1 AT89C51 单片机简介AT89C51 是一 种带 4K 字节 闪耀 可编程可擦除 只读 储备器FPEROM Falsh Programm
9、able and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机; AT89C2051是一种带 2K 字节闪耀可编程可擦除只读储备器的单片机;单片机的可擦除只读储备器可以反复擦除100 次;该器件采纳 ATMEL高密度非易失储备器制造技术制造,与工业标准的MCS-51 指令集和输出管脚相兼容;由于将多功能 8 位 CPU和闪耀储备器组合在单个芯片中, ATMEL的 AT89C51是一种高效微掌握器, AT89C2051是它的一种精简版本; AT89C单片机为许多嵌入式掌握系统供应了一种敏捷性高且价廉的方案;欢迎下载精品学习资源图 2.11
10、 AT89C51 单片机1. 主要特性与 MCS-51 兼容 4K 字节可编程闪耀储备器 寿命: 1000 写/ 擦循环 数据保留时间: 10 年 全静态工作: 0Hz-24Hz 三级程序储备器锁定 128*8 位内部 RAM 32可编程 I/O 线 两个 16 位定时器 / 计数器 5 个中断源可编程串行通道低功耗的闲置和掉电模式 片内振荡器和时钟电路2. 管脚说明VCC:供电电压;GND:接地;P0 口: P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸取 8TTL 门电流;当 P1口的管脚第一次写 1 时,被定义为高阻输入; P0 能够用于外部程序数据储备器,它可以被定义为数据
11、/ 地址的第八位;在 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”时,其
12、管脚被内部上拉电阻拉高,且作为输入;并因此作为输入时, P2 口的管脚被外部拉低,将输出电流;这是由于内部上拉的缘故; P2 口当用于外部程序储备器或16 位地址外部数据储备器进行存取时, P2 口输出地址的高八位;在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据储备器进行读写时,P2 口输出其特别功能寄存器的内容;P2 口在 FLASH编程和校验时接收高八位地址信号和掌握信号;P3 口: P3 口管脚是 8 个带内部上拉电阻的双向I/O口,可接收输出 4 个 TTL 门电流;当 P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入;作为输入,由于外部下拉为低电平,P3 口
13、将输出电流 ILL )这是由于上拉的缘故;P3 口也可作为 AT89C51的一些特别功能口,如下表所示:P3.0 RXD串行输入口P3.1 TXD串行输出口P3.2 /INT0外部中断 0P3.3 /INT1外部中断 1P3.4 T0记时器 0 外部输入P3.6 /WR外部数据储备器写选通P3.7 /RD外部数据储备器读选通RST:复位输入;当振荡器复位器件时,要保持RST脚两个机器周期的高电平常间; ALE/PROG:当拜访外部储备器时,地址锁存答应的输出电平用于锁存地址的位置字节;在 FLASH编程期间,此引脚用于输入编程脉冲;在平常,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器
14、频率的1/6 ;因此它可用作对外部输出的脉冲或用于定时目的;然而要留意的是:每当用作外部数据储备器时,将跳过一个 ALE脉冲;如想禁止 ALE的输出可在 SFR8EH地址上置 0;此时, ALE 只有在执行 MOVX, MOVC指令是 ALE才起作用;另外,该引脚被略微拉高;假如微处理器在外部执行状态ALE禁止,置位无效;/PSEN:外部程序储备器的选通信号;在由外部程序储备器取指期间,每个机器周期两次 /PSEN有效;但在拜访外部数据储备器时,这两次有效的/PSEN 信号将不显现;/EA/VPP :当/EA 保持低电平常,就在此期间外部程序储备器0000H-FFFFH), 不管是否有内部程序
15、储备器;留意加密方式1 时, /EA 将内部锁定为 RESET;当 /欢迎下载精品学习资源EA端保持高电平常,此间内部程序储备器;在FLASH编程期间,此引脚也用于施加 12V 编程电源 , SCLK始终是输入端;3. DS1302 的寄存器DS1302有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD码形式 ,此外, DS1302 仍有年份寄存器、掌握寄存器、充电寄存器、时钟突发寄存器及与 RAM相关的寄存器等;时钟突发寄存器可一次性次序读写除充电寄存器外的全部寄存器内容; DS1302 与 RAM相关的寄存器分为两类:一类是单个RAM单元,共 31 个,每个单
16、元组态为一个 8 位的字节,其命令掌握字为 C0H FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写全部的 RAM的 31 个字节,命令掌握字为 FEH写、FFH读;欢迎下载精品学习资源2.1.3 MAX7219 工作原理简介MAX7219是 MAXIM公司生产的串行输入 / 输出共阴极数码管显示驱动芯片,一片MAX7219可驱动 8 个 7 段包括小数点共 8 段)数字 LED、LED条线图形显示器、或64 个分立的 LED发光二级管;该芯片具有 10MHz传输率的三线串行接口可与任何微处理器相连,只需一个外接电阻即可设置全部LED的段电流;它的
17、操作很简洁, MCU只需通过模拟 SPI 三线接口就可以将相关的指令写入MAX7219的内部指令和数 据寄存器,同时它仍答应用户挑选多种译码方式和译码位;此外它仍支持多片7219串联方式,这样 MCU就可以通过 3 根线即串行数据线、串行时钟线和芯片选通线)掌握更多的数码管显示 ;图 2.1.3.1 DS1302 芯片 MAX7219 的外部引脚安排欢迎下载精品学习资源1. 引脚安排及功能图 2.1.3.2MAX7219的内部引脚安排各引脚的功能为:DIN:串行数据输入端DOU:T 串行数据输出端,用于级连扩展LOAD:装载数据输入 CLK:串行时钟输入 DIG0DIG7: 8 位 LED位选
18、线,从共阴极 LED中吸入电流 SEG ASEG G DP7 段驱动和小数点驱动ISET:通过一个 10k 电阻和 Vcc 相连,设置段电流2. 寄存器介绍MAX7219内部的寄存器如下列图,主要有:译码掌握寄存器、亮度掌握寄存器、扫描界限寄存器、关断模式寄存器、测试掌握寄存器;编程时只有正确操作这些寄存器, MAX7219才可工作;欢迎下载精品学习资源图 2.1.3.3MAX7219 内部的相关寄存器分别介绍如下:()译码掌握寄存器 X9H)如下列图, MAX7219有两种译码方式: B 译码方式和不译码方式;当挑选不译码 时, 8 个数据为分别一一对应 7 个段和小数点位; B 译码方式是
19、 BCD译码,直接送数据就可 以显 示; 实际 应用中 可以 按位 设置 选 择 B 译码 或是不 译码方 式 ;图 2.1.3.4 MAX7219的译码掌握寄存器()扫描界限寄存器 XBH)如下列图,此寄存器用于设置显示的LED 的个数18),比如当设置为 0xX4 时,LED 05显示;欢迎下载精品学习资源图 2.1.3.4 MAX7219的扫描界限掌握寄存器()亮度掌握寄存器 XAH)共有 16 级可挑选,用于设置 LED的显示亮度,从 0xX00xXF()关断模式寄存器 XCH)共有两种模式挑选,一是关断状态, 最低位 D0=0)一是正常工作状态 ;/ 显示时间void showDat
20、avoid;/ 显示日期void showDishivoid;/ 显示定时void int_0void;/ 中断 0void int_1void;/ 中断 1void flash_max7219unsigned char n;/ 闪一个位 max7219/*/*实时时钟模块时钟芯片型号: DS1302 */*/*/sbit T_CLK = P23; /* 实时时钟时钟线引脚 */ sbit T_IO = P24; /* 实时时钟数据线引脚 */ sbit T_RST = P25; /* 实时时钟复位线引脚 */*/void v_RTInputByteuchar ucDa; /往 DS1302写
21、入 1Byte 数据uchar uc_RTOutputBytevoid;/从 DS1302读取 1Byte 数据void v_W1302uchar ucAddr, uchar ucDa;/ 往 DS1302写入数据uchar uc_R1302uchar ucAddr;/ 读取 DS1302某地址的数据/void v_BurstW1302Tuchar *pSecDa;/ 往 DS1302 写入时钟数据 多字节方式/void v_BurstR1302Tuchar *pSecDa;/ 读取 DS1302时钟数据/void v_BurstW1302Ruchar *pReDa;/ 往 DS1302 寄存
22、器数写入数据 多字节方式/void v_BurstR1302Ruchar *pReDa;/ 读取 DS1302寄存器数据void v_Set1302uchar *pSecDa;/ 设置初始时间 , 输入: pSecDa:初始时间地址;初始时间格式为 :秒 分 时 日 月 星期 年void v_Get1302uchar ucCurtime;/ 读取 DS1302当前时间欢迎下载精品学习资源ucharshowTime8=0,0,10,0,0,10,0,0;/显示的时间*全局变量uchar setTime2=0,0;/ 定时的设定uchar time7=0,0x59,0x19,0x24,0x7,0x
23、01,0x08;/ 秒 分 时 日 月 星期年uchar Tmod=7;/ 此时的调剂模式void maindelay_ms200 ;/sound ;initMAX7219 ;/ 初始化 max7219 cls ;/ 清屏 max7219/v_Get1302& time;/v_Set1302& time;EX0=1;EX1=1;IT1=1 ;/ 下降沿触发IT0=1 ;EA=1;/ 开中断v_Get1302& time ;showDay;/int_1;/int_0;while1v_Get1302& time ;showDay;if setTime0=time2&setTime1=time1so
24、und;/*显示时间void showDayvoid欢迎下载精品学习资源/ 将数据转化为显示格式showTime7=time0 & 0x0f;/ 个位showTime6=time04;/ 十位showTime4=time1 & 0x0f;showTime3=time14;showTime1=time2 & 0x0f;showTime0=time24;showTime2=showTime5=10 ;disp_88& showTime ;/*显示日期void showDatavoidshowTime7=time3 & 0x0f;showTime6=time34;showTime4=time4 &
25、0x0f;showTime3=time44;showTime1=time6 & 0x0f;showTime0=time64;showTime2=showTime5=10 ;disp_88& showTime ;/*显示定时void showDishivoidshowTime1=setTime0 & 0x0f;showTime0=setTime04;showTime4=setTime1 & 0x0f;showTime3=setTime14;showTime6=12 ;showTime7=13 ;showTime2=showTime5=10 ;disp_88& showTime ;欢迎下载精品学习
26、资源4.3 KeilC51 进行程序调试欢迎下载精品学习资源第五章 系统调试与仿真5.1 Proteus 中 Hex 文件挑选系统仿真分析电路原理图在ISIS里设计完成,并将系统软件编译成 .Hex 文件, 再进行电子时钟的系统虚拟仿真;1)在 ISIS的原理图中,右键单击AT89C51 将其选中,然后单击左键打开AT89C51的 Edit Component对话框,如下图所示;图 5.1 Edit Component 对话框2)挑选相应的 .Hex 文件,再在 Proteus ISIS编辑窗口的 File菜单中挑选Save Design选项,储存设计,生成 .DSN文件;欢迎下载精品学习资源
27、5.2 Proteus 进行电子钟系统仿真在 Proteus ISIS的 Debug菜单中挑选 Execute,运行程序,系统仿真结果如下图所示;实现功能:当进入调整功能时,按第一个键K1 进行减运算,按其次个键K2 进行加运算;按下第三个键 K3, 实现日期 时间调整及 定时功能,等数字闪耀后,按一二键进行加减,从而可以进行详细日期时间调整;当定时设定后,到预定时间后,系统通过C51 音乐程序演唱歌曲 - 八月桂花;按下第四个键 K4,可以进行时间日期切换, 8 位 LED 数码管将显示时间或日期,采纳 24 小时制;时间显示格式为:时 - 分- 秒;日期显示格式为:日 - 月- 年;具有实时显示当前运算机系统时间和日期的功能;图 5.2 Proteus 系统仿真结果欢迎下载精品学习资源终止语本文的电子钟系统是以单片机AT89C51)为核心,时钟芯片 DS1302、数码管显示驱动芯片 MAX7219等元器件组成;详细介绍应用Protel DXP进行电路原理图设计, Keil C51软件调试程序以及 Proteus的 ISIS软件进行单片机系统的电子钟设计与仿真;实现了硬件软化的目的;欢迎下载